History命令用法总结

使用 HISTTIMEFORMAT 显示时间

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

[root@localhost ~]# export HISTTIMEFORMAT='%F %T '
[root@localhost ~]# history | more
1 2012-05-20 17:45:04 history
2 2012-05-20 17:45:16 tail -n 100 /var/log/messages
3 2012-05-20 17:46:18 export HISTCONTROL=ignorespace
4 2012-05-20 17:46:19 ls


快速重复执行上一条命令


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

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

[root@localhost ~]# history | more
1 2012-05-20 17:45:04 history
2 2012-05-20 17:45:16 tail -n 100 /var/log/messages
3 2012-05-20 17:46:18 export HISTCONTROL=ignorespace
4 2012-05-20 17:46:19 ls
5 2012-05-20 17:46:22 history 
[root@localhost ~]# !4
ls
anaconda-ks.cfg Desktop install.log install.log.syslog



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

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

[root@localhost ~]# history
1 2012-05-20 18:51:56 top -d 1
2 2012-05-20 18:52:05 ps aux
3 2012-05-20 18:52:19 ls -l /var/log/messages
4 2012-05-20 18:52:21 history
[root@localhost ~]# !ps
ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 2164 608 ? Ss 17:15 0:02 init [3]
root 2 0.0 0.0 0 0 ? S< 17:15 0:00 [migration/0]
root 3 0.0 0.0 0 0 ? SN 17:15 0:00 [ksoftirqd/0]


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

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

# vi ~/.bash_profile
HISTSIZE=450
HISTFILESIZE=450


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

[root@localhost ~]# export HISTCONTROL=ignoredups
[root@localhost ~]# ps
PID TTY TIME CMD
4086 pts/0 00:00:02 bash
12885 pts/0 00:00:00 ps
[root@localhost ~]# ps
PID TTY TIME CMD
4086 pts/0 00:00:02 bash
12886 pts/0 00:00:00 ps
[root@localhost ~]# ps
PID TTY TIME CMD
4086 pts/0 00:00:02 bash
12888 pts/0 00:00:00 ps
[root@localhost ~]# ps
PID TTY TIME CMD
4086 pts/0 00:00:02 bash
12889 pts/0 00:00:00 ps

35 2012-05-20 18:56:35 export HISTCONTROL=ignoredups
36 2012-05-20 18:56:36 ps
37 2012-05-20 18:56:43 history


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

将 HISTCONTROL 设置为 ignorespace,并在不想被记住的命令前面输入一个空格:
[root@localhost ~]# export HISTCONTROL=ignorespace
[root@localhost ~]# ps
PID TTY TIME CMD
4086 pts/0 00:00:02 bash
12893 pts/0 00:00:00 ps

[root@localhost ~]# ps
PID TTY TIME CMD
4086 pts/0 00:00:02 bash
12894 pts/0 00:00:00 ps

[root@localhost ~]# history
……
42 2012-05-20 18:57:46 export HISTCONTROL=ignorespace
43 2012-05-20 18:57:49 ps
44 2012-05-20 18:57:53 history

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

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

命令替换

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

[root@localhost ~]# ls /var/
account cvs empty gdm local log nis preserve run tmp
cache db games lib lock mail opt racoon spool yp

[root@localhost ~]# ls !$
ls /var/
account cvs empty gdm local log nis preserve run tmp
cache db games lib lock mail opt racoon spool yp


你可能感兴趣的:(快速,history,Export,历史)