CLI:Command Line Interface命令行界面
重要的技巧
工具
tmux:功能强大,支持多窗口,具有会话保持功能,==即使连接断开,也不会导致服务器对话终止从而导致正在执行的命令被中断
技巧::对历史命令的快速重用
!n
重复第n个命令!-n
重复倒数第n个命令!!
重复上一条命令,等于!-1,等于方向键向上一次!str
重复上面的最近的一条以str为开头的命令!?str
重复上一条命令,该命令内包含字符串str(上一条是该str必须处在开头)!#:n
引用当前输入命令的部分字符:使用例子说明更加容易理解:
cp fileName fileName.bak
# 该命令可以被改写为:
cp fileName !#:1.bak
使用该命令,类似于各大编程语言的字符串格式化函数,通过!#:n
来确定调用参数。
技巧:重用已执行命令的参数
==注意:重用的是命令的参数,命令的参数是指命令名称以外的参数:即,cd foo中foo是参数,而cd不是参数。第一个参数是指foo而不是指cd命令本身:注意:若使用C语言的思想来说,命令本身是第0个参数而命令以外才是第一个参数==
!%
或Alt + .
重用上一条命令的最后一个参数:mkdir src && cd !$
等同mkdir src && cd src
!^
重用上一条命令的第一个参数!*
重用上一条命令的所有参数!!:n
重用上一条命令的第n个参数!str:x-y
重用上一条以str为开头的命令的第x到第y个参数(包括第x和第y个本身)!?str:x-y
包含str的命令!str:x*
使用数字加*可以表示从第x到最后一个参数
技巧:提取已运行命令的参数中的子字符串
==与提取参数的不同:==使用!开头的截取,是针对参数进行的截取,每次截取得到的最小单位是每一个参数,该技巧是对这些参数进行更为精细的截取。
!$:h
:截取上一命令中的路径(将上一命令中的路径的最后一个斜杠后面的内容抛弃,只返回路径部分)!$:t
:截取上一路径中的路径结尾(与上一命令相反):wget foo.org/bar/download/abc.tar
tar zxf !$:t
等同于路径的最后一个部分,即文件名abc.tar!$:r
截取文件名,(丢弃文件后缀)!$:e
截取文件后缀,与上一命令构成完整文件名称
技巧:命令参数替换
^strold^strreplace^
:最近一次包含strold的命令中strold替换为strreplace,并执行命令(只替换一次,使用’/’可以进行全部替换)!n:^str1^str2^
第n条命令替换!nL/str1/str2/
全部替换,使用’^’只进行一次替换
技巧:光标移动
- Ctrl + A移动到行首
- Ctrl + E移动到行尾
- Ctrl +F/B单词间移动
命令工具:多目录维护:pushd和popd
使用–help参数查看使用说明
sudo !!
当上一条命令输入后,发现该命令需要使用su权限的时候,可以使用`sudo !!
快速重复上一命令