本文整理自My 5 Favorite Linux Shell Tricks for SPEEEEEED (and efficiency)。这里列出的小技巧可以让你在使用shell的时候更加高效~
1. !!
设想这样一个场景:你输入了apt-get update
,然后发现需要sudo
权限才能运行。除了通常的按下向上箭头,然后移动到行首添加sudo
再运行,你可以输入
sudo !!
按下回车后,shell会生成sudo apt-get update
,也就是说,!!
被替换为上一条命令的内容。
2. Killing and yanking text
翻译过来可以理解为截断命令,并且重新粘贴截断内容。这个操作类似于emacs中的快捷键。我们可以使用ctrl + K
来截断光标后方的命令内容,然后用ctrl + Y
来重新粘贴截断的内容。
例如:
$ find . -type f | wc -l
^
|- 光标置于此处按下ctrl + K
$ find . -type f # 命令被截断
$ find . -type f | wc -l # 按下ctrl + Y被截断的| wc -l 被粘贴回来
注意ctrl + Y
可以多次粘贴。
而如果想要截断光标之前的内容,可以用ctrl + U
。(事实上很多emacs的快捷键都可以直接在shell环境下使用)
3. Replace 'tail' with 'less'
在开发和调试过程中,我们常常会使用tail -f
命令来追踪日志的输出。这种方式有一个问题,即我们无法回溯更早的日志内容。因此我推荐之后都使用less +F
命令来追踪日志内容。这个命令同样是从文件的尾部开始输出,然后在文件内容更新时输出更新内容。在使用这个命令时,可以按下ctrl + C
组合键,然后用上下箭头就可以遍历整个文件了。之后按下shift + F
来回到尾部追踪的模式。
4. Editing the current command in a text editor
ctrl + x + e
(按住ctrl,然后先按下x,再按下e),就可以弹出一个编辑器来编辑你当前的命令。
5. Paste the argument of the previous command!
设想如下的情形:
$ ping 8.8.8.8
$ telnet 8.8.8.8
$ ssh user@8.8.8.8
我们要对一个host进行多次操作,而每次我们都要重新输入一遍这个host的!这在调试和维护过程中是非常繁琐的。alt + .
就为我们提供了一个非常便捷的功能!按下这个命令可以粘贴上一条命令的参数。
网友评论