在Linux的Bash环境中,可以比较方便的搜索和执行最近输入过的命令,其实,在Unix的Ksh环境中,也可以做到,不过方法有所不同。总结这两种shell环境下相关的历史命令操作如下:

#Bash
history          #显示历史命令
history 10       #显示最近的10条历史命令
!!               #显示并执行上一条历史命令
!27              #显示并执行第27条历史命令
!-2              #显示并执行倒数第2条历史命令
!ps              #显示并执行上一条以ps开头的命令
!ps:p            #显示上一条以ps开头的命令
!?pass           #显示并执行上一条包含pass的命令
^zero^null       #替换上一条命令的zero为null执行

                 #ctrl + R 可以反向搜索包含特定字符串的历史命令,重复输入可以继续向前搜索
                 #ESC + .  可以自动输入上一条命令的最后一个参数,按.可继续往上翻
#Ksh
history              #显示历史命令
history 1000 1050    #显示第1000到1050条的历史命令
history 1000         #显示第1000以后的历史命令
history -50          #显示最近的50条历史命令
r                    #显示并执行上一条历史命令
r 27                 #显示并执行第27条历史命令
r ps                 #显示并执行上一条以ps开头的命令

另外,在Ksh中,按ESC+\同样可以补全文件名。而按ESC+K则可以显示上一条命令,这时候,可以继续按K或J前后翻滚历史命令,甚至可以使用类似vi里的一些命令如x删除、r替换等操作。

本文出自夜惊心的博客,转载请保留出处
blog comments powered by Disqus