一、编写代码必须掌握的基础linux指令
命令 | 作用 | 示例 |
---|---|---|
mkdir | 新建文件夹 | mkdir test,mkdir -p test1/test2/test3 |
cd | 更改当前的工作目录 | cd test |
ls | 列出文件夹下包含的文件信息 | ls,ls -R,ls -a,ls-l |
pwd | 查看当前工作目录 | pwd,pwd -P |
cp | 拷贝文件 | cp test1.c test2.c,cp test1.c ../test2 |
rm | 删除文件或文件夹 | rm test1.c,rm -r test |
mv | 移动文件 | mv test1.c ./test2 |
touch | 创建文件或更新文件时间 | touch test.c,touch test.c test.c |
cat | 查看文件内容 | cat test.c,cat -b test.c,cat -s test.c |
二、vi编辑器:Linux下的vi编辑器分为三种模式,分别为一般模式、插入模式、底行指令模式。
1、一般模式:刚进入的模式或者当前为插入模式下按ESC键可到一般模式。一般模式常用快捷键:
快捷键 | 作用 |
---|---|
u | 撤销上一步的操作 |
0 | 光标移动到当前行的行首 |
$ | 光标移动到当前行的行尾 |
3G | 光标移动到第3行的行首 |
dd | 剪切行内容 |
yy | 复制行内容 |
p或P | 粘贴当前行内容,小写p是向下粘贴,大写P是向上粘贴 |
2、编辑模式:用来编辑代码内容,一般模式用来复制、粘贴、删除等操作。
3、底行命令模式:底行命令模式主要用来保存文件、退出、查找文本内容等。常用指令:
命令 | 作用 |
---|---|
:w | 保存内容 |
:q! | 强制退出 |
:q | 退出未修改的文件。 |
:x或:wq | 保存并退出 |
:w 文件名 | 另存为文件名的文件 |
:r 文件名 | 读入文件内容插入到当前光标位置 |
:N | 光标移动到第N行 |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
:/string | 查找string字符串(通过n或者N分别向下或反向查找) |
:s/string1/string2 | 将字符串string1替换为string2.(注:可以是“:起始行,结束行 :s/string1/string2 ”来将某一范围内的字符串替换,在末尾如果加/g表示所有找到的字符都替换。) |
:!+linux命令 | 可执行Linux命令,执行后可再次回到编辑界面 |
三、gcc编译
1、Gcc编译器在编译一个C语言程序时需要经过以下 4 步:
(1) 将C语言源程序预处理,生成.i文件。
(2)预处理后的.i文件编译成为汇编语言,生成.s文件。
(3)将汇编语言文件经过汇编,生成目标文件.o文件。
(4)将各个模块的.o文件链接起来生成一个可执行程序文件。
其中.i文件、.s文件、.o文件可以认为是中间文件或临时文件,如果使用 GCC 一次性完成C语言程序的编译,那么只能看到最终的可执行文件,这些中间文件都是看不到的,因为 GCC 已经经它们删除了。当然,可以使用 GCC 选项看到这些中间文件。
2、常用的GCC编译选项
gcc编译选项 | 选项的意义 |
---|---|
-c | 编译、汇编指定的源文件,但是不进行链接 |
-S | 编译指定的源文件,但是不进行汇编 |
-E | 预处理指定的源文件,不进行编译 |
-o [file1] [file2] | 将文件 file2 编译成可执行文件 file1 |
-I directory | 指定 include 包含文件的搜索目录 |
-g | 生成调试信息,该程序可以被调试器调试 |
注意:gcc 编译选项会区分大小写。因此-o
选项和-O
选项的效果是不一样的。前者表示源文件编译成为可执行文件,后者表示将源文件编译成为可执行文件并且进行一级优化。