shell

man (manual)

1用户命令主要是shell命令和可执行程序的文档
2系统调用主要包含系统调用和系统相关函数的文档(以C语言风格对外暴露的接口函数)
3库调用主要包含与C语言函数库相关的文档,包括ISO-C和POSIX标准的C语言库函数。
4特殊文件描述系统上的特殊文件,通常指的是位于 /dev 目录下的设备文件和接口
5文件格式和规范包含各种文件格式、配置文件、协议等的文档。
6游戏包含游戏等娱乐软件的文档。
7杂项包含不易分类的各种文档,如宏包、约定等。
8系统管理命令包含系统管理员用于管理整个系统的命令和守护进程的文档。这些命令通常需要较高的权限才能执行。
9内核例程和内核开发相关的文档与手册(非标准,有时没有)
卷数卷名称解释

shutdown

sudo (superuser do)

useradd

userdel (user delete)

passwd (password)

su (switch user)

exit

pwd (print working directory)

cd (change directory)

mkdir (make directory)

rmdir (remove directory)

ls (list)

tree

cp (copy)

mv (move)

rm (remove)

alias

chmod (change mode)

echo

touch

vim (vi improved)

which

env (environment)

find

cat (concatenate)

tail

less

who

wc (word count)

grep (globally search for a regular expression)

scp (secure copy)

tar (tape archive)

vim

模式转换

如果希望从普通模式切换到插入模式,按键有:

如果希望从普通模式切换到视图模式,按键有:

当你处在插入模式或视觉模式下时,只需要按退出ESC键,就可以立刻回到普通模式。

利用Vim打开文件

命令含义
:w //write将buffer里面的内容写入文件,即保存文件
:q //quit退出
:q!不保存退出
:wq保存退出

移动光标指令

命令含义备注
h往左移动一个字符相当于小键盘方向键,向左
j往下移动一个字符相当于小键盘方向键,向下
k往上移动一个字符相当于小键盘方向键,向上
l往右移动一个字符相当于小键盘方向键,向右
命令含义备注
[n]-往上移动n行不太常用,了解即可
[n]+往下移动n行不太常用,了解即可
:[n] 或 [n]G移动到第n行:[n]这个建议记一下
命令含义备注
gg移动光标到第一行一局游戏打出“gg”,表示再来一把。所以是移动到文件开头
G移动光标到最后一行这个也比较常用,要记住它。
命令含义备注
^移动光标到当前行的第一个非空白字符处更常用一些
0移动光标到当前行的行首知道即可
$移动到行尾谈钱伤感情,所以谈钱就表示行结束了,行尾
w //word光标移动到下一个单词的词首多练强行记住,很有用
b //back光标移动到上一个单词的词首多练强行记住,很有用
命令含义
t) //to向后查找,将光标移动到)的前一个字符
f) //find向后查找,将光标移动到)
T" //TO的反向向前查找,将光标移动到"的后一个字符
F" //FIND的反向向前查找,将光标移动到"

删除文本指令

命令含义
x //excise删除一个字符
db //delete back从光标的下一个元素删除到上一个单词的词首(上一个单词的词首会被删除)
dw //delete word从光标元素开始删除到下一个单词的词首(下一个单词的词首不会被删除)
diw //delete inside word删除光标所在的整个单词,但不包括单词周围的空格。
di" //delete inside quotes删除光标所在""范围内的所有内容
dd //delete delete删除当前这一行
[n]dd删除当前和下面的(n-1)行,共n行被删除
:[m],[n]d删除文本的[m,n]行
d^删除到行首(不删除光标位置的字符)
d$删除到行尾(删除光标位置的字符)
df)向后删除直到),同时删除)和光标位置字符
dt)向后删除直到)同时删除光标位置字符,但不删除)
dT"向前删除直到“但不删除”和光标位置字符
dF"从光标位置元素(不包含)开始向前直到“(包含)全部删掉

粘贴,撤销和重做指令

命令含义备注
p //paste粘贴到下一行(如果复制的是行的话)如果复制的不是行,那就粘贴到光标后面
P //PASTE的反向粘贴到上一行(如果复制的是行的话)如果复制的不是行,那就粘贴到光标的前面
u撤销(undo)相当于Windows中的Ctrl + Z
Ctrl + r重做(redo)相当于Windows中的Ctrl + Shift + Z

修改文本指令

命令含义
cc 或 S //change删除当前行,并进入编辑模式
[n]cc 或 [n]S删除n行,并进入编辑模式
cw //change word删除一个单词,并进入编辑模式
[n]cw 或 c[n]w删除n个单词,并进入编辑模式
c^删除到行首,并进入编辑模式
c$删除到行尾,并进入编辑模式
ct)删除到),并进入编辑模式
ct"删除到",并进入编辑模式
c[n]G删除到第n行,并进入编辑模式
cG删除到文件末尾,并进入编辑模式
ci"当光标处在""当中时,删除整个""内容并进入编辑模式
ciw删除光标所在的整个单词,但不包括单词周围的空格,并进入编辑模式

复制文本指令

命令含义备注
yy //yank yank复制当前行(包括换行符)yyp可实现快速复制当前行到下一行,非常常用!
[n]yy复制从当前行开始的下面n行,包括当前行自身一共复制了n行
:[m],[n]y复制[m,n]行长命令,输入命令后要按回车执行(常用!)
yw //yank word复制直到下一个单词词首包含光标位置字符,不包含下一个单词的词首
yf)复制到)包含光标位置字符,也包含)

查找文本命令

命令含义备注
/pattern从光标所在位置向后查找匹配pattern的内容,pattern为正则表达式/pattern指令输入后要回车表示开始搜索
?pattern从光标所在位置向前查找匹配pattern的内容,pattern为正则表达式?pattern指令输入后要回车表示开始搜索
n //next移动到下一个匹配项上面指令回车后,才可以开始移动
N //NEXT的反向移动到上一个匹配项上面指令回车后,才可以开始移动

其它常用指令

  1. 自动代码对齐:gg = G

  2. 使用 gi 命令快速返回到上次插入文本的地方并进入插入模式。

  3. [[]]:移动到代码的上一个或下一个函数(假设每个函数由大括号定义并且大括号会换行)。

  4. 使用 ~ 可以改变当前光标字符的大小写,或者在可视模式中选择多个字符后按 ~ 来批量改变大小写。

  5. 使用 q: 打开命令行窗口,这样可以浏览历史命令并进行编辑。这对于修改或重用长命令特别有用。然后再q会退出

  6. 使用 % 可以在匹配的括号之间跳转,如 (){},或 []。这在编程时检查代码块的开始和结束非常有用。

Vim常用操作总结

  1. 复制当前行到下一行:"yyp"

  2. 删除当前行:dd

  3. 撤销和重做:u表示撤销,重做Ctrl + r

  4. 移动到文件开头和末尾:gg移动到文件开头、G表示移动到文件的末尾

  5. 移动到当前行首和行尾:0或者表示移到到行首,$移动到末尾(移到行首第一个非空字符,0是真正意义上的行首)

  6. 全文清空:推荐ggdG,也可以用ggcG,这样会直接进入编辑模式。

  7. 光标快速到达某一行开头:推荐执行长指令:n回车,表示到达某行的开头

  8. 光标快速到达某一行末尾:推荐执行长指令:n回车,表示到达某行的开头,然后再按$表示跳到行尾

  9. 清空""内的内容:推荐将光标移到""内部,然后使用ci"

  10. 清空()内的内容:推荐将光标移到()内部,然后使用ci(或者ci)

  11. 从当前光标字符开始,删除到目标字符:

    1. 推荐使用指令df目标字符

    2. 这个指令的好处在于,你可以直接记住:该指令的删除包含光标字符以及目标字符!

  12. 复制整个函数的代码到下面,这个操作实际上就是复制[m, n]内的代码,然后粘贴到下面。具体的操作步骤如下:

    1. 先复制[m, n]内的代码,使用长指令:m,ny回车复制

    2. 然后将光标移动到函数体的}行首,}一般会单独占一行,所以可以直接使用长指令:n回车跳转

    3. 按p将内容复制到下面

    4. 注:如果你希望整个函数复制到上面,那就跳到函数声明行的行首,然后按P

  13. 删除[m, n]行内的代码,推荐使用长指令:m,nd回车删除

  14. 快速单行注释,释放单行注释:快速到达某行的开头或末尾,添加//或删除//,你可以自行测试一下。

  15. 搜索[m,n]行的某个内容,然后全部替换。推荐使用长指令:m,ns/旧字符串/新字符串/g

  16. 全文替换。推荐使用长指令:%s/旧字符串/新字符串/g。这些替换如果希望能够逐个选择,可以添加标记/c

  17. 自动代码对齐:gg = G,跳回上一次编辑的位置,使用 gi 命令。

  18. 使用 ~ 可以改变当前光标字符的大小写,或者在可视模式中选择多个字符后按 ~ 来批量改变大小写。

快速多行注释,方式有很多,但推荐以下方式,更简单易操作:

  1. 先跳到希望多行注释的起始行的行首,这可以使用长指令:n回车来完成。

  2. Ctrl + V: 进入竖选视图模式。

  3. 移动光标选中要注释的范围行。

  4. 输入大写字母"I"(i的大写,一定要大写)。

    1. 视图模式输入大写I将进入插入模式

    2. 此时输入的任何文本将在每行选中的同一列位置插入

    3. 这样就能够实现多行注释了。

  5. 输入注释的格式//

  6. 按退出键位ESC

快速释放多行注释:

  1. 先跳到希望释放的多行注释的起始行的行首,这可以使用长指令:n回车来完成。

  2. Ctrl + v: 进入竖选视图模式。

  3. 移动光标选中要释放注释的范围行,选中所有的//

  4. 直接按d将所有的//全部删除。

练习手册