强大实用的Shell、CLI技巧

CLI:Command Line Interface命令行界面

重要的技巧

工具

tmux:功能强大,支持多窗口,具有会话保持功能,==即使连接断开,也不会导致服务器对话终止从而导致正在执行的命令被中断

技巧::对历史命令的快速重用

  1. !n重复第n个命令
  2. !-n重复倒数第n个命令
  3. !!重复上一条命令,等于!-1,等于方向键向上一次
  4. !str重复上面的最近的一条以str为开头的命令
  5. !?str重复上一条命令,该命令内包含字符串str(上一条是该str必须处在开头)
  6. !#:n引用当前输入命令的部分字符:使用例子说明更加容易理解:
cp fileName fileName.bak
# 该命令可以被改写为:
cp fileName !#:1.bak

使用该命令,类似于各大编程语言的字符串格式化函数,通过!#:n来确定调用参数。

技巧:重用已执行命令的参数

==注意:重用的是命令的参数,命令的参数是指命令名称以外的参数:即,cd foo中foo是参数,而cd不是参数。第一个参数是指foo而不是指cd命令本身:注意:若使用C语言的思想来说,命令本身是第0个参数而命令以外才是第一个参数==

  1. !%Alt + .重用上一条命令的最后一个参数:mkdir src && cd !$等同mkdir src && cd src
  2. !^重用上一条命令的第一个参数
  3. !*重用上一条命令的所有参数
  4. !!:n重用上一条命令的第n个参数
  5. !str:x-y重用上一条以str为开头的命令的第x到第y个参数(包括第x和第y个本身)
  6. !?str:x-y包含str的命令
  7. !str:x*使用数字加*可以表示从第x到最后一个参数

技巧:提取已运行命令的参数中的子字符串

==与提取参数的不同:==使用!开头的截取,是针对参数进行的截取,每次截取得到的最小单位是每一个参数,该技巧是对这些参数进行更为精细的截取。

  1. !$:h:截取上一命令中的路径(将上一命令中的路径的最后一个斜杠后面的内容抛弃,只返回路径部分)
  2. !$:t:截取上一路径中的路径结尾(与上一命令相反):wget foo.org/bar/download/abc.tar tar zxf !$:t等同于路径的最后一个部分,即文件名abc.tar
  3. !$:r截取文件名,(丢弃文件后缀)
  4. !$:e截取文件后缀,与上一命令构成完整文件名称

技巧:命令参数替换

  1. ^strold^strreplace^:最近一次包含strold的命令中strold替换为strreplace,并执行命令(只替换一次,使用’/’可以进行全部替换)
  2. !n:^str1^str2^第n条命令替换
  3. !nL/str1/str2/全部替换,使用’^’只进行一次替换

技巧:光标移动

  1. Ctrl + A移动到行首
  2. Ctrl + E移动到行尾
  3. Ctrl +F/B单词间移动

命令工具:多目录维护:pushd和popd

使用–help参数查看使用说明

sudo !!

当上一条命令输入后,发现该命令需要使用su权限的时候,可以使用`sudo !!快速重复上一命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值