《快乐的Linux命令行》笔记(10)
#《快乐的 Linux 命令行》
#恢复 alt 键功能
在MacOS
的Terminal
里,用alt
组合键总是不好使,这次查了一下,问题解决。
Terminal
-> Preferences
(快捷键cmd + ,
) -> Profiles
-> Keyboard
-> Use Option as Meta key
#参考链接
#移动光标
按键 | 效果 |
---|---|
Ctrl-a |
移动光标到行首。 |
Ctrl-e |
移动光标到行尾。 |
Ctrl-f |
光标后移一个字符 |
Ctrl-b |
光标前移一个字符 |
Alt-f |
光标后移一个字。 |
Alt-b |
光标前移一个字。 |
Ctrl-l |
清空屏幕,移动光标到左上角。 |
#修改文本
按键 | 效果 |
---|---|
Ctrl-d |
删除光标位置的字符。 |
Ctrl-t |
光标位置的字符和光标前面的字符互换位置。 |
Alt-t |
光标位置的字和其前面的字互换位置。 |
Alt-l |
把从光标位置到字尾的字符转换成小写字母。 |
Alt-u |
把从光标位置到字尾的字符转换成大写字母。 |
ctrl + t
这个很有用,因为其实经常都是打反两个字母,比如我,经常把conda activate
打成conda acitvate
。但是我在macOS
上测试的时候,确实是光标位置的字符和光标前面的字符互换位置,但是换位完之后,光标往后挪了一个位置(如果后面还有文本的话)。
#剪切粘贴
Readline
的文档使用术语 killing
和 yanking
来指我们平常所说的剪切和粘贴。剪切下来的本文被存储在一个叫做剪切环
(kill-ring)的缓冲区中。
按键 | 效果 |
---|---|
Ctrl-k |
剪切从光标位置到行尾的文本。 |
Ctrl-u |
剪切从光标位置到行首的文本。 |
Alt-d |
剪切从光标位置到词尾的文本。 |
Alt-Backspace |
剪切从光标位置到词头的文本。如果光标在一个单词的开头,剪切前一个单词。 |
Ctrl-y |
把剪切环中的文本粘贴到光标位置。 |
Alt-Backspace
如果光标在一个单词的开头,剪切前一个单词,同时会把两个词之间的空格也一起剪切掉并且存在剪切环里。
#自动补全
按键 | 效果 |
---|---|
Alt-? |
显示可能的自动补全列表。 |
Alt-* |
插入所有可能的自动补全。 |
alt + ?
等效于tab
两次。
这俩命令我试不出来。。好在目前也没什么用= =!
#历史命令
bash
维护着一个已经执行过的命令的历史列表。这个命令列表被保存在你家目录下,一个叫做.bash_history
的文件里。
在默认情况下,bash 会存储你所输入的最后 500
个命令。
每个历史记录都有行号,我们可以使用一种叫做历史命令展开
的方式,来调用行号所代表的这一行命令:
1 | !line-number |
1 | $ history |
bash
也具有增量搜索历史列表的能力。
输入 Ctrl-r
来启动增量搜索,接着输入你要寻找的字。当你找到它以后,你可以敲入 Enter
来执行命令,或者输入 Ctrl-j
,从历史列表中复制这一行到当前命令行。再次输入 Ctrl-r
,来找到下一个匹配项(历史列表中向上移动)。输入 Ctrl-g
或者 Ctrl-c
,退出搜索。
1 | $ |
1 | $ uniq --help |
说实话,好麻烦,我还是喜欢用grep + 管道
。
按键 | 效果 |
---|---|
Ctrl-p |
移动到上一个历史条目。类似于上箭头按键。 |
Ctrl-n |
移动到下一个历史条目。类似于下箭头按键。 |
Alt-< |
移动到历史列表开头。 |
Alt-> |
移动到历史列表结尾,即当前命令行。 |
Ctrl-r |
反向增量搜索。从当前命令行开始,向上增量搜索。 |
Alt-p |
反向搜索,非增量搜索。(输入要查找的字符串,按下 Enter 来执行搜索)。 |
Alt-n |
向前搜索,非增量。 |
Ctrl-o |
执行历史列表中的当前项,并移到下一个。如果你想要执行 历史列表中一系列的命令,这很方便。 |
历史命令展开:
按键 | 效果 |
---|---|
!! |
重复最后一次执行的命令。可能按下上箭头按键和 enter 键 更容易些。 |
!number |
重复历史列表中第 number 行的命令。 |
!string |
重复最近历史列表中,以这个字符串开头的命令。 |
!?string |
重复最近历史列表中,包含这个字符串的命令。 |
应该小心谨慎地使用 !string
和 !?string
格式,除非你完全确信历史列表条目的内容。