s3l*_*lph 141
这是自动完成的。Bash 将您的命令存储在~/.bash_history
. 如果您想查看历史记录,请使用以下任一方法打印此文件的输出
cat ~/.bash_history
less ~/.bash_history
...any other pager or output command...
Run Code Online (Sandbox Code Playgroud)
或者您可以使用 bash 的内置命令:
history
Run Code Online (Sandbox Code Playgroud)
要清除历史记录,请删除文件并清除临时历史记录:
rm ~/.bash_history && history -c
Run Code Online (Sandbox Code Playgroud)
历史记录大小默认为 500 个命令。但是,您可以通过在~/.bashrc
文件中添加一行来设置HISTSIZE
变量来增加它:
HISTSIZE=<number of entries, -1 for unlimited>
Run Code Online (Sandbox Code Playgroud)
这不会立即生效,只会对新开始的会话生效。要应用它,请重新获取.bashrc
文件:
. ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
或HISTSIZE=...
在当前会话中运行。
0x2*_*fa0 45
您可以history
在终端上键入以查看所有先前执行的命令。
您可以将输出截断为某些行(其中 5 是行数):
history 5
Run Code Online (Sandbox Code Playgroud)
如果您只想查看包含字符串的命令(即mv
),您可以这样做:
history | grep mv
Run Code Online (Sandbox Code Playgroud)
您可以通过键入!
后跟条目号来调用命令。
假设我有这样的历史:
1 ls -la
2 mkdir foo
3 mv bar.txt foo
Run Code Online (Sandbox Code Playgroud)
mkdir foo
,您可以键入!2
.!-1
或!!
!-2
如果您运行的命令由于需要 root 权限(即touch /etc/foo
)而失败,您可以使用sudo !!
以 root 身份运行最后一个命令。
!man
您将执行以开头的最后一个命令man
!?man?
,它将执行包含的最后一个命令man
(不一定在行开始处)如果您在命令中有拼写错误,您可以通过这种方式修复它。假设我输入cat .bash_hi
,替换.bash_hi
为.bash_history
我只需要输入^hi^history^
。
资料来源: https : //www.digitalocean.com/community/tutorials/how-to-use-bash-history-commands-and-expansions-on-a-linux-vps
Bil*_*lal 14
只需输入:
history > print.txt
Run Code Online (Sandbox Code Playgroud)
将在您当前的工作目录中创建一个名为 print.txt 的新文件。
小智 5
您可能想尝试https://github.com/dvorka/hstr,它允许简单的浏览、导航和“建议框样式”过滤您的 Bash 历史记录:
它可以很容易地绑定到Ctrl-r和/或Ctrl-s