Linux命令使用之history使用

在Linux的实际使用过程中,我们经常会有运行以前运行过的很多命令的需求,利用上下方向键来翻阅命令历史(向下箭头会向前翻阅)的方法大家用的比较多,而利用history的相关命令可以比上下方向键更快速、有效。


在Linux系统中,你在shell(控制台)中输入并执行命令时,shell会自动把你的命令记录到历史列表中,一般保存在用户目录下的.bash_history文件中。默认保存1000条,你也可以更改这个值。

$HISTSIZE 设置bash会员期间历史包含的命令数量

$HISTFILESIZE 设置历史文件中实际存储的命令数量

1. 使用Ctrl+R来搜索历史命令

使用方法是:键入Ctrl +R然后输入关键字。 在以下示例中,我搜索“hadoop”,则显示以前的命令中含有”hadoop”的命令“”, 当看到你要的命令后按回车键,就可以重新执行这条命令了。

比如输入CTRL+R,出现reverse-i-search后,输入hadoop,出现如下的以前我们键入过的命令:

(reverse-i-search)`hadoop: hadoop jar test.jar com.test.HadoopTest hdfs://rhel1:9000/

然后按回车键即可执行该命令。


2. History命令语法:

[test@linux]# history [n]
[test@linux]# history [-c]
[test@linux]# history [-raw] histfiles
参数:
n   :数字,要列出最近的 n 笔命令列表
-c  :将目前的shell中的所有 history 内容全部消除
-a  :将目前新增的history 指令新增入 histfiles 中,若没有加histfiles ,
则预设写入 ~/.bash_history
-r  :将 histfiles 的内容读到目前这个 shell 的 history记忆中
-w  :将目前的 history 记忆内容写入 histfiles

如果你键入 history,history会向你显示你所使用的前1000个历史命令,并且给它们编了号,你会看到一个用数字编号的列表快速从屏幕上卷过。你可能不需要查看1000个命令中的所有项目,当然你也可以加入数字来列出最近的 n 笔命令列表。

linux中history命令不仅仅让我们可以查询历史命令而已. 我们还可以利用相关的功能来帮我们执行命令。


3. 利用!来运行特定的历史命令

语法说明:
[test@linux]# [!number]  [!command] [!!]
参数说明:
number   :第几个指令的意思;
command  :指令的开头几个字母
! :上一个指令的意思!


4. History命令实战

列出所有的历史记录:
[test@linux] # history

只列出最近10条记录:
root@rhel1-> history 10
 1002  ps -aux|grep java
 1003  ps -aux
 1004  ps -aux|grep java
 1005  ls
 1006  ps -aux|grep java
 1007  HISTSIZE
 1008  echo $HISTSIZE
 1009  hadoop jar URLCat5.jar com.power.ListStatus hdfs://rhel1:9000/
 1010  history
 1011  history 10


使用命令记录号码执行命令,执行历史清单中的第1006条命令
root@rhel1-> !1006
ps -aux|grep java
root      8852  0.0  0.0 105024  3008 pts/0    S+   06:46   0:00 grep java


重复执行上一个命令
root@rhel1-> !!
ps -aux|grep java
root      8854  0.0  0.0 105024  3072 pts/0    S+   06:46   0:00 grep java


执行最后一次以hadoop开头的命令(!? 

?代表的是字符串,这个String可以随便输,Shell会从最后一条历史命令向前搜索,最先匹配的一条命令将会得到执行。)

root@rhel1-> !hadoop
hadoop jar URLCat5.jar com.power.ListStatus hdfs://rhel1:9000/

清空history历史命令的记录
root@rhel1-> history -c


因为上面的history已经清空,可以看到已经查不到记录了
root@rhel1-> history
   16  history

你可能感兴趣的:(PowerLinux,Linux)