清除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命令获取列出了日期和时间的所有命令的历史记录。