Bash:在Linux,OS X和Unix上重新发出并重复长命令而无需重新执行命令
时间:2020-01-09 10:46:05 来源:igfitidea点击:
在Linux,Apple OS X或者类似Unix的系统中,如何在不重新输入命令的情况下重新发出或者重复长命令?
您需要使用history命令在Linux或者类似Unix的系统上显示或者操作历史记录列表。该命令显示以前用行号执行的命令列表,并在每个修改的条目前加上一个" *"前缀。 bash shell支持历史扩展功能,该功能类似于csh中的历史扩展。
显示先前执行的命令的列表
只需执行以下命令:
history history 10 history | less history | grep 'command-name-here'
如何重新发出长命令而不重新输入命令?
要在bash/csh/tcsh/zsh shell中重新发出命令,请执行"!"感叹号,后跟要运行或者重复的命令编号。
例如,如果您想从上述输出(即命令80)重新发出ssh [email protected]命令,请执行:
!80
滚动浏览命令行历史记录
您也可以简单地通过使用[up]
和[down]
箭头键来浏览命令行历史记录。
搜索命令行历史
在shell提示下按[CTRL-r]
在历史记录缓冲区或者文件中向后搜索命令。
在按[CTRL-r]
之后,只需执行前几个命令字母,例如ssh:
(reverse-i-search)`ssh ': ssh -X Hyman@nas01
要搜索所有与ssh相关的命令,请再次按[CTRL-r]
要重复上一条命令,只需执行!在shell提示下
假设您执行一个长命令:
ssh -X -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -i /Users/veryv/.ssh/google_compute_engine -A -p 22 [email protected] -
要再次重复相同的最后一条命令,只需执行!!:
!!
或者,您也可以使用以下命令引用上一条命令:
!-1
要重复以ssh开头的最新命令,请执行:
!ssh