我发现我开始建立一个经常使用的 Linux 命令的长列表,并想知道是否有一个应用程序可以让我存储它们所有,然后在我需要时从列表中选择并运行一个?
答案1
使用时BASH
,您可以按Ctrl+r执行反向搜索查看命令历史记录。例如,您可以按Ctrl+ r,然后键入“vim”以查看包含“vim”的最后一个命令。您可以再次按Ctrl+r查找倒数第二个命令,然后继续按Ctrl+r直到找到所需的命令。找到后,您可以按Enter执行该命令。
如果您希望在运行命令之前对其进行编辑,则可以使用方向键(Left或Right),这将使您退出反向搜索并允许编辑。
为了增强此功能,请确保允许在文件中存储许多命令。您可以通过在文件中~/.bash_history
导出值来定义限制:HISTSIZE
~/.bashrc
export HISTSIZE=10000
您可以确保每个唯一命令仅存储一次,出于多种原因,建议这样做,包括防止您不得不按Ctrl+r次数超过必要次数。再次将以下内容添加到~/.bashrc
:
export HISTCONTROL=ignoreboth
您可能还想调整 BASH 在同时打开多个终端时存储历史记录的方式,以确保来自多个终端的命令都存储起来,方法是看看这个答案。
这是我在 Linux/BASH 上学到的最有用的知识之一,我希望您也觉得它有用。
答案2
有history
命令。它用于列出您使用过的命令。您可以使用 grep 进行过滤:
$ history | grep home
给出了我使用过的所有包含单词“home”的命令,例如:
1188 cd ../home
1519 more resources/home.php
1890 cd git/home
1983 cd git/home
2001 cd git/home/squeeze/
2008 history | grep home
这让我选择一个并重新执行它:
$ !2001
cd git/home/squeeze
在这种情况下相当于。
答案3
有多种方法可以做到这一点。首先,shell 中已经有一个内置的历史记录功能。使用up
和down
键可以查看它,也Ctrl r
可以搜索它。
另一个选择是使其成为别名在~/.bashrc
。
第三,您可以将每个命令保存到其文件中,然后手动运行bash my_command
。