目录
vi / vim
vi编辑器是所有Unix及Linux系统下标准的编辑器,这里只是简单地介绍一下它的用法和一小部分指令,对于Unix及Linux系统的任何版本,vi编辑器是完全相同的
vi的三种模式
- 命令行模式command mode):控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。
- 插入模式(Insert mode):只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
- 底行模式(last line mode):将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式command mode)
vi的基本操作
- 进入vi
$ vi myfile
注:进入vi之后处于「命令行模式(command mode)」,要切换到「插入模式(Insert mode)」
- 切换至插入模式(Insert mode)编辑文件
在「命令行模式(command mode)」下按一下字母「i」就可以进入「插入模式(Insert mode)」,这时候你就可以开始输入文字了。
- Insert 的切换
处于「插入模式(Insert mode)」,您就只能一直输入文字,如果您发现输错了字!想用光标键往回移动,将该字删除,就要先按一下「ESC」键转到「命令行模式(command mode)」再删除文字。
- 退出vi及保存文件
在「命令行模式(command mode)」下,按一下「:」冒号键进入「Last line mode」,例如:
: w filename (输入 「w filename」将文章以指定的文件名filename保存)
: wq (输入「wq」,存盘并退出vi)
: q! (输入q!, 不存盘强制退出vi)
vi命令行模式
- 插入模式
按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;
按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。
- 从插入模式切换为命令行模式
- 按「ESC」键。
- 移动光标
小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。
按「ctrl」+「b」:屏幕往“后”移动一页。
按「ctrl」+「f」:屏幕往“前”移动一页。
按「ctrl」+「u」:屏幕往“后”移动半页。
按「ctrl」+「d」:屏幕往“前”移动半页。
按数字「0」:移到文章的开头。
按「G」:移动到文章的最后。
按「$」:移动到光标所在行的“行尾”。
按「^」:移动到光标所在行的“行首”
按「w」:光标跳到下个字的开头
按「e」:光标跳到下个字的字尾
按「b」:光标回到上个字的开头
按「#l」:光标移到该行的第#个位置,如:5l,56l
- 删除文字
「x」:每按一次,删除光标所在位置的“后面”一个字符。
「#x」:例如,「6x」表示删除光标所在位置的“后面”6个字符。
「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符。
「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符。
「dd」:删除光标所在行。
「#dd」:从光标所在行开始删除#行
- 复制
「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
「#yw」:复制#个字到缓冲区
「yy」:复制光标所在行到缓冲区。
「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
- 替换
「r」:替换光标所在处的字符。
「R」:替换光标所到之处的字符,直到按下「ESC」键为止
- 恢复/撤消/还原上一次操作
「u」:如果误执行一个命令,可以马上按下「u」,撤消上一个操作。按多次“u”可以执行多次撤消
- 更改
「cw」:更改光标所在处的字到字尾处
「c#w」:例如,「c3w」表示更改3个字
- 跳至指定的行
「ctrl」+「g」列出光标所在行的行号。
「#G」:例如,「15G」,表示移动光标至文章的第15行行首
vi底行模式
在使用「last line mode」之前,请记住先按「ESC」键确定您已经处于「command mode」下后,再按「:」冒号即可进入「last line mode」。
- 列出行号
「set nu」:输入「set nu」后,会在文件中的每一行前面列出行号
- 跳到文件中的某一行
「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行
- 查找字符
「/」:先按「/」键,再输入想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到要的关键字为止
「?」:先按「?」键,再输入想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到要的关键字为止
- 保存文件
「w」:在冒号输入字母「w」就可以将文件保存起来
- 离开vi
「q」:按「q」就是退出,如果无法离开vi,可以在「q」后跟一个「!」强制离开vi
「qw」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件
vi命令列表
h: 左移光标一个字符
l: 右移光标一个字符
k: 光标上移一行
j: 光标下移一行
^: 光标移动至行首
0: 数字“0”,光标移至文章的开头
G: 光标移至文章的最后
$: 光标移动至行尾
Ctrl+f: 向前翻屏
Ctrl+b: 向后翻屏
Ctrl+d: 向前翻半屏
Ctrl+u: 向后翻半屏
i: 在光标位置前插入字符
a: 在光标所在位置的后一个字符开始增加
o: 插入新的一行,从行首开始输入
ESC: 从输入状态退至命令状态
x: 删除光标后面的字符
#x: 删除光标后的#个字符
X: (大写X),删除光标前面的字符
#X: 删除光标前面的#个字符
dd: 删除光标所在的行
#dd: 删除从光标所在行数的#行
yw: 复制光标所在位置的一个字
#yw: 复制光标所在位置的#个字
yy: 复制光标所在位置的一行
#yy: 复制从光标所在行数的#行
p: 粘贴
u: 取消操作
cw: 更改光标所在位置的一个字
#cw: 更改光标所在位置的#个字
yyx: 下表列出行命令模式下的一些指令
w filename: 储存正在编辑的文件为filename
wq filename: 储存正在编辑的文件为filename,并退出vi
q!: 放弃所有修改,退出vi
set nu: 显示行号
/或?: 查找,在/后输入要查找的内容
n: 与/或?一起使用,如果查找的内容不是想要找的关键字,按n或向后(与/联用)或向前(与?联用)继续查找,直到找到为止
终端
终端命令
- ls:列出文件 list
-l:列出⽂件的详细信息
-a:all,列出所有⽂件,包括隐藏⽂件
注:参数可以叠加使⽤,如-la表⽰列出所有⽂件及其详细信息
- cd:切换目录 change directory
- cp:复制 copy
-i: interactive mode 若有同名文件,询问是否覆盖
-r: recursive copy 连同子文件夹一起复制
- mv:移动 move
- -i: interactive mode 若有同名文件,询问是否覆盖
- rm: 删除 remove
- -i
- -r
- mkdir:创建文件夹 make directory
- rmdir:移除文件夹 remove directory
- chown:更改所有者 change owner
- -R: 同-r
- chmod:更改文件的权限模式 change mode
- 三类对象:当前⽤户user(⽂件的所有者),组group,其他⽤户other
- 文件权限:读Read,写Write,执⾏Execute
u: user,权限对象为当前⽤户(这⾥是所有者)
g:group,权限对象为所有者和组
o:other,权限对象为其他⽤户
r:read = 4,读权限
w:write = 2,写权限
e:execute = 1,执⾏权限
+:u/g/o与r/w/e组合使⽤,加⼊
-:删除
=:设置
4:仅读
5:仅读+执⾏
6:仅读+写
chmod g+w file //为组添加写权限
- find:查找
- -name:根据文件名查找
- -mtime n:n为数字,表⽰找出在n天前的当天被更改过的⽂件(0表⽰今天)
- -mtime +n:查找在n天前(不包括n天当天)被改过的⽂件
- -mtime -n:查找在n天之内(包括n天当天)被改过的⽂件
- -size +/-:查找⽐XXsize⼤/⼩的⽂件
find /home -name file//查找名为file的文件
find /home -mtime 0//查找今天被改过的文件
find /home -size +100M//查找大于100M的文件
- |: 管道
将前一个命令的输出结果像管道一样传递给后一个命令
ls | find -name myfile
- grep: 按行查找并匹配
- -r:查找子文件夹
- -n:number 显示行号
- -w:word 完整匹配整个单词
- -i:insensitive search 忽略大小写
- -l:显示文件名称,而非显示匹配到的行内容
- -v:反向选择,显示出没匹配到的行的内容
grep -i mystring file.txt//忽略大小写,在file.txt中查找并打印带有“mystring”的内容
ls -I | grep -i mrstring//在ls输出中打印带有“mystring”的内容
- tar:打包 压缩 解压
- -jcv:压缩
- -jxv:解压
- cat:打印文件内容
- ps:查看进程 process select
- -A:查看所有进程
- -a:不与终端有关的所有进程
- -u:有效用户的相关进程
- -x:一般与-a一起使用,列出完整的进程信息
- -l:long 详细列出PID信息
ps Aux//查看系统所有进程数据
- kill:杀死进程
- -SIGHUP:启动被终止的进程
- -SIGINT:相当于ctrl + c 中断进程
- -SIGKILL:强制终端进程
- -SIGTERM:以正常结束方式终止进程
- -SIGSTOP:相当于ctrl + z 暂停进程
kill -SIGKILL 8086
- passwd:修改密码 password
- pwd:显示当前工作目录 print work directory
- tee:显示并保存
python3.6 test.py | tee result.log
- reboot:重启
- gcc
- -o :output之意,用于指定生成一个可执行文件的文件名
- -c :用于把源文件生成目标文件(.o),并阻止编译器创建一个完整的程序
- -I :增加编译时搜索头文件的路径
- -L :增加编译时搜索静态连接库的路径
- -S :把源文件生成汇编代码文件
- -lm:表示标准库的目录中名为libm.a的函数库
- -lpthread :连接NPTL实现的线程库
- -std= :用于指定把使用的C语言的版本
# 把源文件test.c按照c99标准编译成可执行程序test
gcc -o test test.c -lm -std=c99
#把源文件test.c转换为相应的汇编程序源文件test.s
gcc -S test.c
终端快捷键
- Tab 自动补全
- Ctrl+a 光标移动到开始位置
- Ctrl+e 光标移动到最末尾
- Ctrl+k 删除此处至末尾的所有内容
- Ctrl+u 删除此处至开始的所有内容
- Ctrl+d 删除当前字符
- Ctrl+h 删除当前字符前一个字符
- Ctrl+w 删除此处到左边的单词
- Ctrl+y 粘贴由Ctrl+u, Ctrl+d, Ctrl+w删除的单词
- Ctrl+l 相当于clear,即清屏
- Ctrl+r 查找历史命令
- Ctrl+b 向回移动光标
- Ctrl+f 向前移动光标
- Ctrl+t 将光标位置的字符和前一个字符进行位置交换
- Ctrl+& 恢复 ctrl+h 或者 ctrl+d 或者 ctrl+w 删除的内容
- Ctrl+S 暂停屏幕输出
- Ctrl+Q 继续屏幕输出
- Ctrl+Left-Arrow 光标移动到上一个单词的词首
- Ctrl+Right-Arrow 光标移动到下一个单词的词尾
- Ctrl+p 向上显示缓存命令
- Ctrl+n 向下显示缓存命令
- Ctrl+d 关闭终端
- Ctrl+xx 在EOL和当前光标位置移动
- Ctrl+x@ 显示可能hostname补全
- Ctrl+c 终止进程/命令
- Shift+上或下 终端上下滚动
- Shift+PgUp/PgDn 终端上下翻页滚动
- Ctrl+Shift+n 新终端
- alt+F2 输入gnome-terminal打开终端
- Shift+Ctrl+T 打开新的标签页
- Shift+Ctrl+W 关闭标签页
- Shift+Ctrl+C 复制
- Shift+Ctrl+V 粘贴
- Alt+数字 切换至对应的标签页
- Shift+Ctrl+N 打开新的终端窗口
- Shift+Ctrl+Q 管壁终端窗口
- Shift+Ctrl+PgUp/PgDn 左移右移标签页
- Ctrl+PgUp/PgDn 切换标签页
- F1 打开帮助指南
- F10 激活菜单栏
- F11 全屏切换
- Alt+F 打开 “文件” 菜单(file)
- Alt+E 打开 “编辑” 菜单(edit)
- Alt+V 打开 “查看” 菜单(view)
- Alt+S 打开 “搜索” 菜单(search)
- Alt+T 打开 “终端” 菜单(terminal)
- Alt+H 打开 “帮助” 菜单(help)
桌面快捷键
- SUPER + A: 查找程序
- ALT + F1: 聚焦到桌面左侧任务导航栏,可按上下键导航。
- ALT + F2: 运行命令
- ALT + F4: 关闭窗口
- ALT + TAB: 切换程序窗口
- ALT + 空格: 打开窗口菜单
- PRINT: 桌面截图
- SUPER: 打开Dash面板,可搜索或浏览项目,默认有个搜索框,按“下”方向键进入浏览区域(SUPER键指Win键或苹果电脑的Command键)
- 在Dash面板中按CTRL + TAB: 切换到下一个子面板(可搜索不同类型项目,如程序、文件、音乐)
- SUPER + A: 搜索或浏览程序(Application)
- SUPER + F: 搜索或浏览文件(File)
- SUPER + M: 搜索或浏览音乐文件(Music)