清除Linux/UNIX BASH Shell命令行缓存/历史记录
时间:2020-01-09 10:40:15 来源:igfitidea点击:
Linux什么命令可以清除我的命令历史记录或从Shell提示符中缓存吗?
许多程序一次从用户行读取输入。
GNU历史记录库可以跟踪这些行,与每行任意关联数据,并利用前几行的信息来组成新行。
Bash和其他Shell可能会使用此历史记录库。
默认文件是~/.history或~/.bash_history,用于存储bash命令历史记录。
历史是bash/ksh和POSIX shell的重要功能之一。
要显示带有行号的历史记录列表,请输入
$ history
输出:
.... .. 4 cd /tmp/ 5 wget http://downloads.wordpress.org/plugin/cleaner-dashboard.1.1.zip 6 unzip cleaner-dashboard.1.1.zip 7 su - 8 vi /etc/httpd/testing.lan.theitroad.local.conf 9 service httpd restart ..... .. 997 vnstat -m -i eth1 998 date 999 yum update 1000 w 1001 ~/scripts/clean.cache rss squid web 1002 history
要查看历史记录中的最后10条命令,请运行:
$ history 10
输出示例:
1998 df -H 1999 dmesg 2000 cbz_wp_admin on 2001 cbz_wp_admin off 2002 file_replication --check --status 2003 ~/bin/purge.cache --key=XXXXXX 2004 echo $HISTFILE 2005 echo $HISTFILE 2006 cbz_wp_admin --uploads on 2007 history 10
您可以通过执行以下grep命令来搜索历史记录中具有cf.purge.sh的行:
$ history | grep "commmand-to-search" $ history | grep "cf.purge.sh'
另一个选择是执行CTRL + r
进行历史搜索。
如何从我的bash历史记录运行命令
现在您知道了如何显示历史记录列表以及行号。
要执行命令2002(file_replication --check --status
),运行:
$ !2002
我只是想起以前的历史命令,其编号前面带有感叹号。
要调用上一个命令,请执行:
$ !!
例如,由于我忘记添加sudo,以下操作将失败:
$ systemctl restart httpd
只要输入sudo !!
,命令将在其前面的sudo处重新执行:
$ sudo !!
如何滚动查看Bash历史记录
只需按" UP"或" DOWN"箭头键分别在历史记录中向后和向前滚动。
如何清除历史记录,执行:
$ history -c
要从历史文件中删除偏移量即命令号100的历史记录条目:
$ history -d 100
-c选项通过删除所有条目来清除历史记录列表。
有关更多信息,请执行:
$ help history
输出示例:
-c clear the history list by deleting all of the entries -d offset delete the history entry at offset OFFSET. -a append history lines from this session to the history file -n read all history lines not already read from the history file -r read the history file and append the contents to the history list -w write the current history to the history file and append them to the history list -p perform history expansion on each ARG and display the result without storing it in the history list -s append the ARGs to the history list as a single entry
说明如何使用history bash命令获取列出了日期和时间的所有命令的历史记录。