📜  linux 历史选择命令 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:32:41.742000             🧑  作者: Mango

Linux历史选择命令 - Shell-Bash

在Linux命令行中,有许多命令都支持历史选择功能,这些命令能够让你在历史命令中查找、编辑、执行你之前输入过的命令。历史选择功能可以提高linux命令行的使用效率和方便性。

1. 基本的历史选择命令

在Linux命令行中,使用上下箭头可以很方便地查看之前输入过的命令。但是,如果你只需要编辑上一个命令的某一个部分,怎么办呢?这时候就可以使用以下的命令:

!! 命令

!!命令的作用是将上一个命令再次执行一遍,它等同于!-1

$ whoami
alice
$ sudo !!
[sudo] password for alice:
root

在上面的例子中,我们先使用whoami命令查看当前用户,然后使用sudo !!命令将上一个命令再次执行,并且在前面加上sudo。这里的!!等同于whoami

!n 命令

!n命令的作用是将第n个命令再次执行一遍,其中n是一个数字。例如,!10表示将第10个命令再次执行。

$ ls
file1.txt file2.txt file3.txt
$ vi !3

在上面的例子中,我们先使用ls命令查看当前目录下的文件列表,然后使用vi !3命令将第3个命令再次执行,并且在前面加上vi。这里的!3表示第3个命令是ls命令。

!string 命令

!string命令的作用是在历史命令中查找包含指定字符串的命令,并且将查找到的第一个命令执行一遍。这里的string可以是一个命令的部分字符串。

$ history | grep ls
  168  ls
  170  ls -al
$ !ls
file1.txt file2.txt file3.txt
$ !ls -al
total 0
drwxr-xr-x 1 alice alice 0 Apr 11 17:07 .
drwxr-xr-x 1 alice alice 0 Apr 11 17:07 ..
-rw-r--r-- 1 alice alice 0 Apr 11 17:07 file1.txt
-rw-r--r-- 1 alice alice 0 Apr 11 17:07 file2.txt
-rw-r--r-- 1 alice alice 0 Apr 11 17:07 file3.txt

在上面的例子中,我们先使用history命令查看历史命令列表,然后使用grep命令查找包含ls字符串的命令,最后使用!ls!ls -al命令将查找到的第一个和第二个命令分别执行一遍。

2. 高级的历史选择命令

除了上面的基本命令,还有一些高级命令可以帮助你更加灵活地使用历史选择功能。

Ctrl+R 命令

Ctrl+R命令的作用是在历史命令中搜索包含指定字符串的命令,并且将查找到的最近一个命令作为当前命令。输入Ctrl+R之后,会出现一个提示符reverse-i-search:,你可以在此输入要查找的字符串,然后按下Enter键即可。

(reverse-i-search)`ls': ls -al

在上面的例子中,我们输入了Ctrl+R命令,并且输入了要查找的字符串ls,然后按下了Enter键。注意,这里的提示符reverse-i-search:是由系统自动添加的,并不需要手工输入。

Ctrl+PCtrl+N 命令

Ctrl+P命令和Ctrl+N命令的作用分别是向上和向下遍历历史命令。这两个命令相当于上下箭头键的快捷方式。

Alt+. (Alt+.) 命令

Alt+.命令的作用是将上一个命令的最后一个单词复制到当前命令中。如果你输入了一长串的命令,然后发现某一个单词需要重复使用,那么这个命令就可以帮助你复制该单词,而不必手工重新输入它。

$ ls /usr/local/bin
$ echo "this is the result of the previous command: `Alt+.`"
this is the result of the previous command: /usr/local/bin

在上面的例子中,我们先使用ls命令查看/usr/local/bin目录下的文件列表,然后使用echo命令输出一个字符串,其中使用了Alt+.命令复制了上一个命令的最后一个单词/usr/local/bin

3. 总结

历史选择命令是Linux命令行中非常实用的功能之一。熟练掌握这些命令,可以极大地提高你在Linux命令行中的操作效率和方便性。在实际使用中,你可以根据具体情况选择适合自己的命令。