刚开始接触 Linux 时,建议在虚拟机中安装,因为在本机上直接安装 Linux 可能会遇到各种问题,很让人不知所措。
先说说我在 Linux 下学到的东西。我现在可以手不离开键盘用 Vim 写代码,在阅读代码时通过 ctags 在不同文件中跳转,用 Makefile 构建代码,用 GDB 调试,了解动态库、静态库的区别,链接的过程等。这些都是我在用 Windows 时一直没有学到的。
就 C 而言,说几个 Linux 的好处:
1. 环境配置简单
一条命令就行,如果是 Debian 系,就是 sudo apt-get install build-essential;如果是Fedora一类,就是 su -c "yum groupinstall development-tools",一条命令而已,这对于自己写小项目足够了。
2. 查手册方便
在 Linux 下如果你不清楚一个库函数的用法,直接man,还锻炼英语了。如果想了解man,那就先 man man。
3. 文本编辑器的选择
除了 vim,还可以选择 gedit 等编辑器。不过建议学好 vi/vim。因为玩 Linux,如果系统宕掉,进入单用户模式时,你就只能用 vi。vim可以作为一个平行于 C 语言的学习方向,一边用 gedit 学 C,一边学 vim,等 vim 练熟之后再用 vim 写 C。vim 的学习可以看这里:简明 Vim 练级攻略(我就是在这儿学的。)
可选的扩展阅读:手把手教你把Vim改装成一个IDE编程环境(图文)
4. 高效使用 Linux 的命令行
一遍又一遍地打命令很乏味?在 Linux 的命令行下工作,要学会几个技巧:
学会用Tab补全命令;
学用用ctrl-r查询历史命令;
学会用上下键查询上一条下一条命令。
先说这些,上面的内容练熟之后,就可以进阶了,进阶的内容有:
Makefile,GDB,Linux 常用命令(grep、find 等,读源码时会用到,同样用 man 学习它们的用法),cscope。
在 Linux 下学 C,就是先专注语言本身,其他的东西先本着够用的原则,学 C 的同时,一点点地去学习它们就可以了。
最后,推荐一个 Linux 下学习 C 语言的教程:Learn C The Hard Way
还有一本关于 C 的书:Expert C programming(http://book.douban.com/subject/1784687)
|