1.Linux
为什么我们要用或必须用linux???!!!
- free software不仅是因为他是免费的,他更是开源的,是真正自由的
你知道自己到底要做什么,想怎么做,不需要有人来强制你安装一些东西,完全控制你的电脑,甚至是私人订制,DIY你的电脑 - 我觉得linux对我们来说,最重要的就是安装一些软件十分方便,配置环境更是几行命令的事,他带了很多高效的工具,比如git,vim,gdb等等,可以在终端(写一写shell脚本)实现一切操作…可能你们现在没太感觉到,但等你熟练以后,一定会发现他的好处的!而且,这个系统上没有游戏,等一些乱七八糟的软件,这会一定程度上阻止你开小差。。。所以,总的来说,linux真的是一个十分高效的,更适合程序员的操作系统。还有一个重要原因是,我们软件工程师,开发环境就是linux,当年C语言就是和Unix一起被发明出来的,后面所有的东西也都是unix为基础的
- 再退一步说,,,windows是什么?是比尔当年为了让他的老妈那样一点也不懂计算机的人使用而发明的。所以很多人也说GUI是万恶之源,,,windows从他的诞生,就注定被程序员鄙视,,,大家想想,用windows是不是大多数时间都是在玩游戏娱乐上,所以推荐大家,无论如何都要用上linux,投入开源大家庭
2.什么是终端,bash,shell, 控制台(console)
shell(有bash,zsh…等等) 就是命令行解释器,实现用户与linux内核交互
这里推荐大家使用zsh,可以用oh-my-zsh快速安装zsh
终端 更具体说是虚拟终端
3.c语言的编译gcc
- 编译过程
gcc hello.c
—-> 预处理(Preprocessing)-> 编译(Compilation)->汇编(Assemble)->链接(Linking)
预处理--预处理用于将所有的#include头文件以及宏定义替换成其真正的内容
编译--生成汇编代码
汇编--将汇编代码生成二进制目标文件
链接--将各个目标文件链接起来,形成.out可执行文件
- gdb调试 必须掌握 拒绝10 printf
例如文件:hello.c
(用-o了来指定输出的文件名字)
gcc -g hello.c -o hello
— 注意用gdb 调试,必须使用GCC编译的 (其实是用GNU的编译器编译程序,c语言是gcc)
- 2.
gdb hello
进入调试 - 3.常用命令
run (r)
开始运行
break (b)
设置断点,break main(函数名)/5(num在当前文件的第五行)/hello.c:5(Break at line 5 of hello.c)clear/delete
清楚,删除谋个断点display/undisplay
展示谋个值,变量,每次运行时都进行展试print
只是这次展示一次某一个值watch
监视某个值,每次发生变化都会展示rwatch
定一个变量,如果这个变量被读,则暂停程序运行,在调试器中显示信息,并等待下一个调试命令。list
展示一段代码next
单步执行 (在停止之后); 跳过函数调用step
单步执行 (在停止之后); 进入函数调用continue
继续运行程序 (在停止之后,比如在一个断点之后)运行到下一个断点set
设置变量的值。例如:set nval=54 将把54保存到nval变量中
4.w文本编辑器vi/vim(vi是vim老版本)
1.vim的三种模式:命令模式(Command mode),输入模式(Insert mode)和 底线命令模式
基本操作
进阶操作