近期在工作中发现经常性的使用一些重复性命令,经常性的修改一些长明令,感觉有必要科普一下shell命令行的一些常见快捷键了,以便大家节省时间提高工作效率。
下述所有命令在Linux/unix的shell下有效,这里以bash为主。如有出入,以你自己的服务器为准。本文所指的Linux主要指RHEL/CentOS,unix指的是FreeBSD,这也是服务器中用得最多的版本。
Ctrl + a 切换到命令行开始
这个操作跟Home实现的结果一样的,但Home在某些unix环境下无法使用,便可以使用这个组合;在Linux下的vim,这个也是有效的;另外,在windows的许多文件编辑器里,这个也是有效的。
Ctrl + e 切换到命令行末尾
这个操作跟END实现的结果一样的,但End键在某些unix环境下无法使用,便可以使用这个组合;在Linux下的vim,这个也是有效的;另外,在windows的许多文件编辑器里,这个也是有效的。
Ctrl + l 清除屏幕内容,效果等同于clear
Ctrl + u 清除剪切光标之前的内容,这个命令很有用,在nslookup里也是有效的。我有时看见同事一个字一个字的删除shell命令,十分崩溃!其实完全可以用一个Ctrl + u搞定。
Ctrl + k 剪切清除光标之后的内容
Ctrl + y 粘贴刚才所删除的字符,此命令比较强悍,删除的字符有可能是几个字符串,但极有可能是一行命令。
Ctrl + r 在历史命令中查找 (这个非常好用,输入关键字就调出以前的命令了),这个命令我强烈推荐,有时history比较多时,想找一个比较复杂的,直接在这里,shell会自动查找并调用,方便极了
Ctrl + c 终止命令
Ctrl + d 退出shell,logout
Ctrl + z 转入后台运行
不过,由Ctrl + z转入后台运行的进程在当前用户退出后就会终止,所以用这个不如用nohup命令&,因为nohup命令的作用就是用户退出之后进程仍然继续运行,而现在许多脚本和命令都要求在root退出时仍然有效。
下面再被充下大家不是太熟悉,我用得比较多的操作方式:
!! 重复执行最后一条命令
history 显示你所有执行过的编号+历史命令。这个可以配合!编辑来执行某某命令
↑(Ctrl+p) 显示上一条命令
↓(Ctrl+n) 显示下一条命令
!$ 显示系统最近的一条参数
最后这个比较有用,比如我先用cat /etc/sysconfig/iptables,然后我想用vim编辑。一般的做法是先用↑ 显示最后一条命令,然后用Home移动到命令最前,删除cat,然后再输入vim命令。其实完全可以用vim !$来代替。