删除linux终端的历史命令,查看终端中运行的命令的历史记录

问题描述

有没有办法保存所有类型的终端命令,并在日志中查看历史记录?

最佳解决思路

这是自动完成的。 Bash将您的命令存储在~/.bash_history中。如果要查看历史记录,请使用以下方法之一打印此文件的输出

cat ~/.bash_history

less ~/.bash_history

...any other pager or output command...

或者你可以使用bash的内置命令:

history

要清除历史记录,请删除该文件并清除临时历史记录:

rm ~/.bash_history && history -c

历史记录大小默认为500个命令。但是,您可以通过将以下行添加到~./bashrc来增加此值:

HISTSIZE=

这不会立即生效,只会对新启动的会话生效。要应用此功能,请为.bashrc文件提供资源:

. ~/.bashrc

或在当前会话中运行HISTSIZE=...。

次佳解决思路

您可以在终端上键入history以查看以前执行的所有命令。

您可以将输出截断为某些行(其中5是行数):

history 5

如果您只想查看包含字符串的命令(即mv),您可以这样做:

history | grep mv

您可以通过键入!,然后输入条目号来调用命令。

比方说我有这样的历史:

1 ls -la

2 mkdir foo

3 mv bar.txt foo

要运行mkdir foo,可以键入!2。

要运行最后一个命令,可以使用!-1或!!

要运行倒数第二个,您可以使用!-2

如果由于需要root权限而运行失败的命令(即touch /etc/foo),则可以使用sudo !!以root身份运行最后一个命令。

如果键入!man,您将执行以man开头的最后一个命令

如果键入!?man?,它将执行包含man的最后一个命令(不一定在行开始时)

如果命令中有拼写错误,您可以通过这种方式修复它。假设我输入cat .bash_hi,用.bash_history代替.bash_hi我只需要键入^hi^history^。

第三种解决思路

只需输入:

history > print.txt

将在您当前工作的目录中创建一个名为print.txt的新文件。

第四种思路

我经常只想要那些最近的命令。要发布到我的开发说明,或者像这些堆栈交换站点…这已被证明非常有用,删除不相关的行号:

history | cut -c 8- | tail

或者,如果您喜欢它作为别名,删除行号,并立即缩进(正如代码引号降价所需)

alias lastones="history | tail | sed -e 's/^ [0-9]\{1,5\} / /gi'"

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值