Linux 存活指南

若想使用课程组的 web 终端进行工作,则必须学会一些基础的 linux 命令行指令。

很多同学(包括我)在此之前都没怎么接触过命令行。稍稍总结了一下能帮助我们在命令行中活下去的指令:

  • cd:进入工作目录。
  • grep:在文件中查找字符串。我通常的使用方法是 grep -r "要寻找的内容" .,会递归地查找当前目录下所有文件。
  • find:在指定目录下查找文件和目录。我通常的使用方法是 find -name 要寻找的名字
  • mkdir:创建文件夹。
  • touch:更新文件时间戳。不过一般地用法是使用此指令来创建文件。
  • rm:删除文件。删除目录时要加上 -r 参数。
  • ls:列出当前目录下所有文件。
  • cp:复制文件。
  • mv:移动文件。

以上应当是最常用的几条指令了。记住这几条指令可以初步拥有在命令行中工作的能力。

每条指令都可以附带额外的参数来实现相应的功能。若想查看一条指令的详细使用方法,可以输入 man 指令指令 --help

此外使用 TAB 键可以快速补全指令(文件名),当可以补全的选项不唯一时,快速双击 TAB 可以查看候补的补全项。

使用上下键可以快速切换历史指令。

注意,在命令行中使用鼠标拖动选择文本时会自动复制文本。

在命令行中一些 ctrl + ... 的行为有特殊的含义:

  • ctrl + C:终止当前程序。跑出很恐怖的循环时直接毙掉就行了。
  • ctrl + Z:挂起当前程序。一开始会习惯性按撤回按出 ctrl + Z 挂起当前程序。在挂起时会提供挂起编号。在误挂时使用 fg n 即可恢复程序(n 即为挂起编号)。
  • ctrl + D:终止输入。可以简单地理解为 EOF
  • ctrl + L:清屏。这个真的很好用!

vim 存活指南

常用的编辑器是 vim。一开始用着很不习惯,但是在逐渐适应了之后编辑效率直线上升。

使用 vim 打开文件: vim 文件名vi 文件名

在刚进入文件时,处于 Normal 模式。在 Normal 模式下各个按键都有其独特的涵义。

常用的控制指令:

  • i:进入插入模式。在插入模式下按 ESC 回到 Normal 模式。
  • a:进入插入模式,不过是在光标之后进行插入。
  • x:删除当前光标处的字符。
  • :wq:保存并退出。(:w 是保存,:q 是退出)
  • dd:删除当前行,并将删除的行保存到剪切板。
  • yy:复制一行内容到剪切板。
  • p:粘贴剪切板(在当前位置之后)。
  • P:粘贴剪切板(在当前位置之前)。
  • G:移动至最后一行。
  • gg:移动至第一行。
  • hjkl:移动光标,和 ←↓↑→ 一样。

以上这些足够让你在 vim 中挣扎着活下去了。但是这远远没有发挥出 vim 的威力。

以下是一些进阶命令:

  • o:在当前行后插入一个新行。
  • O:在当前行前插入一个新行。
  • 0:移动光标到行首。
  • ^:移动光标到本行第一个非空白字符的位置。
  • $:移动光标到本行行尾。
  • g_:移动光标到本行最后一个非空白字符的位置。
  • /匹配内容:在文件内部搜索匹配的内容,高亮显示匹配到的内容并将光标移动到匹配的地方。若有多个匹配,则可以按 n 来切换到下一个匹配到内容的地方。。
  • u:撤销一次操作。
  • ctrl + r:撤销一次撤销操作。

一些简单的进阶操作:

使用数字键来快速编辑文本:

可以在命令前添加数字键代表执行该命令多少次。

例如:

输入 5yy 代表粘贴 5 行到剪切板。

输入 10dd 代表删除十行内容。等等。

如果你希望学习更多、更详细有关 vim 的知识,我推荐以下网站:简明 VIM 练级攻略

使用GCC

gcc 是编译 C 语言文件的不二之选。

C 语言的编译过程包括四步:预处理、编译、汇编、链接。

预处理自不多说。编译是将代码转换为汇编代码的过程。汇编是将汇编代码转换为机器码的过程。链接是将多个汇编文件以及所需的库文件链接成最终的可执行文件。

gcc 的用法:gcc [options] file...

常用的参数如下所示:

  • -E:只进行预处理,不进行编译、汇编、链接。
  • -S:只编译,而不汇编和链接。这将产生一个可阅读的汇编代码。
  • -c;只编译、汇编,而不链接。
  • -o <name>:指定输出文件的名字。
  • -I<path>:将路径添加到头文件搜索路径中。
  • -Wall:意思是 warn all,产生尽可能多的警告信息。
  • -Werror:将所有警告当做错误处理。这有助于你不得不消除所有警告。

比如说,我们想编译 hello.c 文件和 world.c 文件,将输出文件命名为 hello_world,需要用的指令可能是:gcc -Wall -o hello_world hello.c world.c

MAKEFILE 生存指南

简易生存指南:

Makefile 的格式如下:

1
2
3
4
target: dependencies
command 1
command 2
...

在运行 target 的指令前会先构建依赖(先执行 dependencies 中的 target)。之后依次运行 command1, command2, ...

在命令行中输入 make target 即可运行对应的命令。

当在命令行中输入 make 不附带参数时,会默认构建第一个 target

git 生存指南

git 是神!我将为你介绍我们的道标和救助:git 先生:

git 是我们进行版本控制的利器。

存活的三条最低限度指令:git add .git commit -m "comment"git push

git 中,分为工作区、暂存区和 Git 目录。

基本的 git 工作流程如下:

  1. 在工作区中修改文件。
  2. 将你想要下次提交的更改选择性地暂存,这样只会将更改的部分添加到暂存区。
  3. 提交更新,找到暂存区的文件,将修改永久性存储到 Git 目录。

git add . 的意思是将当前目录的所有修改添加到暂存区。这通常不是个好习惯,不过对于新手而言是很容易上手的。

git commit 的含义是将暂存区内容添加到本地仓库。

git push 的意思是将本地分支推送至远程仓库。

学习更详细的 git 操作:Git Book

赞美 git