Fc:被我遗忘很久的命令行技巧
Moevis
以前在命令行敲命令时只会 ctrl+a
和 ctrl+e
移动光标,以及用 ctrl+u
删除所有命令,但是遇到一些需要改一点小参数的命令还是很蛋疼。
后来记得有个叫 fc 的命令,可以用 vim 打开上一条命令并编辑,然后运行,这样就很舒服了。不过在 mac 中用的时候默认会运行刚刚编辑的命令,今天搜了一下,发现可以用 ctrl+x
+ ctrl+e
来用 vim 编辑当前的命令,并且在保存后就直接显示在当前光标的行,并不运行。
我还记得 ctrl+r
可以搜索历史命令,但是我不知道怎么翻页,然后今天查的时候发现,原来翻页还是按 ctrl+r
。
对了,还有 ctrl+y
粘贴刚刚删掉的命令,ctrl+_
是 undo 操作。让光标前移动一个单词是 esc+b
或者是 alt+b
,向后移动一个单词是 esc+f
或者 alt+f
,其中 alt
开头的我还没找到在 mac 上正确的按法,不过用 esc
也不复杂。
最后还有一个 ctrl+l
有意思,和 clear
命令有相似的效果,但是是把你当前的命令行滚动到第一行。
之前基友跟我说,使用 !!
来指代上一个命令,这样子加 sudo 就很方便了。今天也查到还有更多类似的命令,比如 !ps
找到上一条以 ps 开头的命令并运行(或者按 tab 补全出来),!*
是补全上一个命令除第一个单词以外的部分,!$
补全上一个命令最后一个单词,!^
上一个命令的第一个参数,!:n
则是第 n 个参数。这几个命令还可以在中间插入几个首字母,就不仅仅是搜索上一个命令了,比如!ps^
就是上一个以 ps 开头的命令的第一个参数。不过后面这几个用得情况太少了,大概率要忘掉。
09.25 PS: 在服务器上没有装 emacs,用 ctrl+x
加 ctrl+e
默认打开 emacs 没成功,查了一下,这个命令会读取 $EDITOR 环境变量来打开编辑器。然后我设置了环境变量就可以用 vim 打开啦。