Linux中history命令的操作实例汇总

松原一家亲

松原一家亲

2016-02-19 16:20

下面图老师小编要跟大家分享Linux中history命令的操作实例汇总,简单的过程中其实暗藏玄机,还是要细心学习,喜欢还请记得收藏哦!

Linux中history命令用于查看已使用过的命令,在Linux系统操作中经常会用到,也是初学者必须要掌握的命令,下面图老师小编就给大家介绍下Linux中history命令的实例,以便你有个了解。

 Linux中history命令的操作实例汇总

1.使用 HISTTIMEFORMAT 显示时间戳

当你从命令行执行 history 命令后,通常只会显示已执行命令的序号和命令本身。如果你想要查看命令历史的时间戳,那么可以执行:

代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

# export HISTTIMEFORMAT=‘%F %T ’

# history | more

1 2008-08-05 19:02:39 service network restart

2 2008-08-05 19:02:39 exit

3 2008-08-05 19:02:39 id

4 2008-08-05 19:02:39 cat /etc/redhat-release

注意:这个功能只能用在当 HISTTIMEFORMAT 这个环境变量被设置之后,之后的那些新执行的 bash 命令才会被打上正确的时间戳。在此之前的所有命令,都将会显示成设置HISTTIMEFORMAT 变量的时间。

2.使用 Ctrl+R 搜索历史

Ctrl+R 是我经常使用的一个快捷键。此快捷键让你对命令历史进行搜索,对于想要重复执行某个命令的时候非常有用。当找到命令后,通常再按回车键就可以执行该命令。如果想对找到的命令进行调整后再执行,则可以按一下左或右方向键。

代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

# [Press Ctrl+R from the command prompt, which will display the reverse-i-search prompt]

(reverse-i-search)`red‘: cat /etc/redhat-release

[Note: Press enter when you see your command, which will execute the command from the history]

# cat /etc/redhat-release

Fedora release 9 (Sulphur)

3.快速重复执行上一条命令

有 4 种方法可以重复执行上一条命令:

使用上方向键,并回车执行。

按 !! 并回车执行。

输入 !-1 并回车执行。

按 Ctrl+P 并回车执行。

4.从命令历史中执行一个指定的命令

在下面的例子中,如果你想重复执行第 4 条命令,那么可以执行 !4:

代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

# history | more

1 service network restart

2 exit

3 id

4 cat /etc/redhat-release

# !4

cat /etc/redhat-release

Fedora release 9 (Sulphur)

5.通过指定关键字来执行以前的命令

在下面的例子,输入 !ps 并回车,将执行以 ps 打头的命令:

代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

# !ps

ps aux | grep yp

root 16947 0.0 0.1 36516 1264 ? Sl 13:10 0:00 ypbind

root 17503 0.0 0.0 4124 740 pts/0 S+ 19:19 0:00 grep yp

6.使用 HISTSIZE 控制历史命令记录的总行数

将下面两行内容追加到 .bash_profile 文件并重新登录 bash shell,命令历史的记录数将变成 450 条:

代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

# vi ~/.bash_profile

HISTSIZE=450

HISTFILESIZE=450

7.使用 HISTFILE 更改历史文件名称

默认情况下,命令历史存储在 ~/.bash_history 文件中。添加下列内容到 .bash_profile 文件并重新登录 bash shell,将使用 .commandline_warrior 来存储命令历史:

代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

# vi ~/.bash_profile

HISTFILE=/root/.commandline_warrior

8.使用 HISTCONTROL 从命令历史中剔除连续重复的条目

在下面的例子中,pwd 命令被连续执行了三次。执行 history 后你会看到三条重复的条目。要剔除这些重复的条目,你可以将 HISTCONTROL 设置为 ignoredups:

代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

# pwd

# pwd

# pwd

# history | tail -4

44 pwd

45 pwd

46 pwd [Note that there are three pwd commands in history, after executing pwd 3 times as shown above]

47 history | tail -4

# export HISTCONTROL=ignoredups

# pwd

# pwd

# pwd

# history | tail -3

56 export HISTCONTROL=ignoredups

57 pwd [Note that there is only one pwd command in the history, even after executing pwd 3 times as shown above]

58 history | tail -4

9.使用 HISTCONTROL 清除整个命令历史中的重复条目

上例中的 ignoredups 只能剔除连续的重复条目。要清除整个命令历史中的重复条目,可以将 HISTCONTROL 设置成 erasedups:

代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

# export HISTCONTROL=erasedups

# pwd

# service httpd stop

# history | tail -3

38 pwd

39 service httpd stop

40 history | tail -3

# ls -ltr

# service httpd stop

# history | tail -6

35 export HISTCONTROL=erasedups

36 pwd

37 history | tail -3

38 ls -ltr

39 service httpd stop

[Note that the previous service httpd stop after pwd got erased]

40 history | tail -6

10.使用 HISTCONTROL 强制 history 不记住特定的命令

将 HISTCONTROL 设置为 ignorespace,并在不想被记住的命令前面输入一个空格:

代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

# export HISTCONTROL=ignorespace

# ls -ltr

# pwd

# service httpd stop [Note that there is a space at the beginning of service, to ignore this command from history]

# history | tail -3

67 ls -ltr

68 pwd

69 history | tail -3

11.使用 -c 选项清除所有的命令历史

如果你想清除所有的命令历史,可以执行:

代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

# history -c

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

12.命令替换

在下面的例子里,!!:$ 将为当前的命令获得上一条命令的参数:

代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

# ls anaconda-ks.cfg

anaconda-ks.cfg

# vi !!:$

vi anaconda-ks.cfg

补充:使用 !$ 可以达到同样的效果,而且更简单。

下例中,!^ 从上一条命令获得第一项参数:

代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

# cp anaconda-ks.cfg anaconda-ks.cfg.bak

anaconda-ks.cfg

# vi -5 !^

vi anaconda-ks.cfg

13.为特定的命令替换指定的参数

在下面的例子,!cp:2 从命令历史中搜索以 cp 开头的命令,并获取它的第二项参数:

代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

# cp ~/longname.txt /really/a/very/long/path/long-filename.txt

# ls -l !cp:2

ls -l /really/a/very/long/path/long-filename.txt

下例里,!cp:$ 获取 cp 命令的最后一项参数:

代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

# ls -l !cp:$

ls -l /really/a/very/long/path/long-filename.txt

14.使用 HISTSIZE 禁用 history

如果你想禁用 history,可以将 HISTSIZE 设置为 0:

代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

# export HISTSIZE=0

# history

# [Note that history did not display anything]

15.使用 HISTIGNORE 忽略历史中的特定命令

下面的例子,将忽略 pwd、ls、ls -ltr 等命令:

代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

# export HISTIGNORE=pwd:ls:ls -ltr:

# pwd

# ls

# ls -ltr

# service httpd stop

# history | tail -3

79 export HISTIGNORE=pwd:ls:ls -ltr:

80 service httpd stop

81 history

[Note that history did not record pwd, ls and ls -ltr]

上面就是Linux下history命令的例子详解了,从这15个例子中你能更深入的了解history命令的实际应用,如果你经常使用命令,相信history命令是你的好帮手。

展开更多 50%)
分享

猜你喜欢

Linux中history命令的操作实例汇总

电脑入门
Linux中history命令的操作实例汇总

Linux curl命令操作实例汇总

电脑入门
Linux curl命令操作实例汇总

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Linux ls命令操作实例汇总

电脑入门
Linux ls命令操作实例汇总

Linux下route命令操作实例汇总

电脑入门
Linux下route命令操作实例汇总

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Linux中如何使用history命令

电脑入门
Linux中如何使用history命令

Linux系统中tar命令的实例汇总

电脑入门
Linux系统中tar命令的实例汇总

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

ASP入门基础教程-驱动器操作

ASP入门基础教程-驱动器操作

如何使Windows系统自动释放资源

如何使Windows系统自动释放资源
下拉加载更多内容 ↓