您的位置:首页 > 运维架构 > Shell

shell历史机制

2007-04-25 12:57 190 查看
!! 前一个命令
!n 前面第n个命令
!str 最后一个以str开始的命令
!?str 最后一个包含str的命令
^str1^str2 用str2替换前一个命令的str1

!:n 引用前一个命令的第n个单词, 比如前一个命令是cat a.txt, 则!:0是cat, !:1是a.txt
!:x-y 引用前一个命令的第x到第y个单词, 比如前一个命令是cat a.txt b.txt, 则!:0-1就是cat a.txt
!^ 引用前一个命令的第1个参数, 比如前一个命令是cat a.txt b.txt, 则!^是a.txt
!$ 引用前一个命令的最后一个参数, 比如前一个命令是cat a.txt b.txt, 则!$是b.txt

!!:p 打印前一个命令但不执行(同样可用于!str, !?str等)
!!:s/old/new/ 替换前一个命令中的第一个old为new并执行(同样可用于!str, !?str等)

历史机制格式为

事件标志符[:单词标志符][:修改符]

一个完整的使用例子是, 你前一个命令是ls abc.txt, 现在想删除abc.txt, 但删除之前想先看看这个命令而不真执行,就可以用
rm !!:$:p

其中!!是事件标志符, $是单词标志符, p是修改符, 它们之间用冒号分隔.上面这个历史机制可简写为rm !$:p
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: