让我们面对现实吧,我们人类并不擅长记住事物。 有时健忘会让人非常沮丧,并导致痛苦的后果。
与我们不同,计算机具有近乎完美的记忆力。 一 example 是 Linux 中的历史命令。 该程序跟踪我们在命令行中键入的所有内容。
这听起来很简单,而且确实如此。 不过,您会惊讶于这个工具能派上用场的频率!
让我们通过一些示例来提高我们的命令行技能并提高我们的工作效率。
历史命令的设置存储在 Linux 中的哪里?
为了更好地理解历史命令,我们将看看用户可以配置哪些设置。
记录的命令数的典型默认值为 1000 Ubuntu, 但它可能因系统而异。 历史设置由您设置 bash 配置文件(通常为 ~/.bashrc)。 有几个历史文件设置可从此文件编辑,包括日志文件的位置。
默认情况下,命令历史记录通常记录到 ~/.bash_history。
[email protected]:~$ cat ~/.bash_history
sudo apt-get clean
#sudo e4defrag /
df -h
sudo e4defrag /
sudo fstrim /
sudo -s
poweroff
ls
如何在 Linux 中使用 history 命令?
让我们看一些在 Linux 中使用 history 命令的例子。
1) 使用箭头键滚动浏览命令历史
在我们知道这个技巧之前,我们中的许多人都不会想到命令行是什么样的。 如果您还不知道,使用向上/向下箭头键可以快速滚动浏览命令历史记录。
当您在输入一些冗长的复杂命令时出错时,这非常有用。 只需按向上箭头,并纠正它。 完毕。
2) 默认历史设置
让我们从简单的事情开始。 我们只是要输入命令并查看返回的内容。
history
这将返回您最近输入的命令的编号列表。
[email protected]:~$ history
1 sudo apt-get clean
2 #sudo e4defrag /
3 df -h
4 sudo e4defrag /
5 sudo fstrim /
6 sudo -s
7 poweroff
8 ls
9 history
看起来很熟悉,对吧? 这是我们的 .bash_history 文件中的内容,加上一个新的“历史”条目。
事实上,新条目不会反映在文件中,直到您 close 贝壳。
2) 使用索引从历史记录中运行命令
您是否注意到在运行历史命令时命令已编号? 要快速重新运行特定命令,请键入 !
然后是数字。
[email protected]:~$ !8
ls
Desktop Downloads fontconfig Pictures Templates
Documents examples.desktop Music Public Videos
3) 从历史中删除命令
如果您犯了错误,您可以使用 -d 选项后跟行号删除特定项目。 让我们删除第 9 行。
[email protected]:~$ history -d 9
[email protected]:~$ history
1 sudo apt-get clean
2 #sudo e4defrag /
3 df -h
4 sudo e4defrag /
5 sudo fstrim /
6 sudo -s
7 poweroff
8 ls
4) 删除整个命令历史
也许你想摆脱不止一条线。 我们可以使用 -c 选项擦除整个历史记录。
[email protected]:~$ history -c
[email protected]:~$ history
1 history
5) 在历史记录中搜索命令
显然,我的历史文件现在相当短,因为我刚刚清除了它。 但是,由于可能有多达 1000 个命令,事情很快就会变得一团糟。 幸运的是,您可以使用工具来搜索历史记录,以帮助找到您之前使用的复杂命令。
方法 1. 使用 Grep
这是我们历史的更新列表。
[email protected]:~$ history
1 history
2 ls
3 ll
4 cd
5 cd ..
6 cd
7 ls
8 ll
9 history
现在,我将使用带有 grep 命令的历史命令来查找包含该字符的条目 l
.
[email protected]:~$ history | grep l
2 ls
3 ll
7 ls
8 ll
10 history | grep l
方法二:使用反向搜索
您还可以使用 reverse-i-search 工具搜索您的命令。 如果您按 Ctrl+r,您将看到一个新的提示,您可以使用它来搜索您的命令历史记录。
[email protected]:~$
(reverse-i-search)`':
您可以开始输入,它会在您添加字母时返回结果。 这是 Linux 中必须知道的终端快捷方式之一。
grep 和 reverse-i-search 都可以让你的生活更轻松。
结论
这只是非常基本的历史命令示例。 根据您的喜好和要求对其进行自定义是没有止境的。 也许我们以后会介绍一些高级历史命令。
我希望你觉得这个历史命令介绍很有用。 请在评论部分提供您的反馈。