y_0034.gif

history是什么及讲解标题


history  用来保存历史命令,可以用来重复执行命令,可以有效地提升你的效率。在用户登录后新的输入命令历史会存在缓存中,当用户登出或者使用命令参数将可以缓存追加写入历史文件。历史文件存储于用户家目录下(~/.bash.history)。

讲解标题

  • history命令

  • 重复执行上一个命令的多种方法

  • 重复执行某一个命令的方法

  • 调用历史命令的·某一个参数的方法

  • history历史的相关变量


  • history命令

 

~]#pwd
/root           历史文件存放位置
~]# cat .bash_history  查看历史文件
~]# history     可以查看到所有的历史命令
~]# history –a  将缓存的历史命令追加到文件中
~]# history –d  删除缓存历史命令中存放的某一条命令
~]# history –l   清空缓存中的所有命令
~]# history –r   将历史文件中命令附加到历史列表




  • 重复执行上一个命令的多种方法

~]# !!
ll /etc/passwd
-rw-r--r--. 1 root root 1628 Jul 25 22:01/etc/passwd
 ~]# !-1
ll /etc/passwd
-rw-r--r--. 1 root root 1628 Jul 25 22:01/etc/passwd

快捷键:

Ctil+p

使用箭头上翻↑

history命令_第1张图片


  • 重复执行某一个命令的方法

  • 使用!number重复执行第几条历史命令

~]# !46
ll /etc/passwd
-rw-r--r--. 1 root root 1628 Jul 25 22:01/etc/passwd

是用!命令 可以重复执行上一个开头的命令

~]# !ll
ll /etc/shadow
----------. 1 root root 929 Jul 25 22:01/etc/shadow

  • 使用!?pass重复执行上一个以匹配字符的命令

~]# !?pass
ll /etc/passwd
-rw-r--r--. 1 root root 1628 Jul 25 22:01/etc/passwd

!-n重复执行之前的哪个命令

~]# !-8
ll /etc/passwd
-rw-r--r--. 1 root root 1628 Jul 25 22:01/etc/passwd


快捷键

使用↑和↓翻看执行

Ctrl+r  在历史命令中搜索关键字执行命令


  • 调用历史命令的某一个参数的方法

  • 重新调用上一个命令中的最后一个参数

    ~]#ll !$
ll/etc/networks
-rw-r--r--. 1 root root 58 May 12 03:34 /etc/networks

 快捷键实现

ESC+.(按Esc后松开再按)

Alt+.(同时按住) 


  • 重新调用上一个命令中的某一个参数方法

~]#ll !^ 重新调用上一个命令的第一个参数
ll/etc/passwd
-rw-r--r--.1 root root 1628 Jul 25 22:01 /etc/passwd

~]#ll !3重新调用上一个命令的某个参数
ll/etc/networks
-rw-r--r--.1 root root 58 May 12 03:34 /etc/networks

ll !*重新调用上一个命令的所有参数
ll /etc/passwd /etc/shadow /etc/networks
-rw-r--r--. 1 root root   58 May 12 03:34 /etc/networks
-rw-r--r--. 1 root root 1628 Jul 25 22:01/etc/passwd
----------. 1 root root  929 Jul 25 22:01 /etc/shadow

 

  • 重新调用以上一个匹配关键命令开头的某个的参数方法

[root@centos6 ~]# ll !cat:^ 重新调用以上一个匹配关键命令开头的第一的参数
ll /etc/passwd
-rw-r--r--. 1 root root 1628 Jul 25 22:01/etc/passwd
[root@centos6 ~]# ll !cat:$ 重新调用以上一个匹配关键命令开头的最后一个的参数
ll /etc/networks
-rw-r--r--. 1 root root 58 May 12 03:34/etc/networks
[root@centos6 ~]# ll !cat:2重新调用以上一个命令开头的指定一个参数
ll /etc/shadow
----------. 1 root root 929 Jul 25 22:01/etc/shadow
[root@centos6 ~]# ll !cat:* 重新调用以上一个匹配关键命令开头的所有参数
ll /etc/passwd /etc/shadow /etc/networks
-rw-r--r--. 1 root root   58 May 12 03:34 /etc/networks
-rw-r--r--. 1 root root 1628 Jul 25 22:01/etc/passwd
----------. 1 root root  929 Jul 25 22:01 /etc/shadow


  • 重新调用某一命令号的某个参数

[root@centos6 ~]# ll !90:^ 重新调用某一命令号的第一个参数
ll /etc/passwd
-rw-r--r--. 1 root root 1628 Jul 25 22:01/etc/passwd
[root@centos6 ~]# ll !90:$ 重新调用某一命令号的最后一个参数
ll /etc/networks
-rw-r--r--. 1 root root 58 May 12 03:34/etc/networks
[root@centos6 ~]# ll !90:2重新调用某一命令号的指定某个参数
ll /etc/shadow
----------. 1 root root 929 Jul 25 22:01/etc/shadow
[root@centos6 ~]# ll !90:* 重新调用某一命令号的所有参数
ll /etc/passwd /etc/shadow /etc/networks
-rw-r--r--. 1 root root   58 May 12 03:34 /etc/networks
-rw-r--r--. 1 root root 1628 Jul 25 22:01/etc/passwd
----------. 1 root root  929 Jul 25 22:01 /etc/shadow


  • history历史的相关变量

  • HISTSIZE 命令历史记录条数

~]# echo $HISTSIZE
1000


  • HISTFILESIZE 命令历史文件记录条数

~]# echo $HISTFILESIZE
1000

~]# HISTTIMEFORMAT="%F %T" 设置缓存列表显示时间(登出失效)


设置环境变量自动生(可以在用户家目录下.bash_profile设置变量,但是只针对于这个用户生效,也可以在文件/etc/profile下设置变量针对所有用户生效)

HISTCONTROL=””
export 环境变量名=”值”
ignoredups:忽略重复的命令;连续且相同方为“重复”
ignorespace:忽略所有以空白开头的命令
ignoreboth=ignoredups, ignorespace
erasedups:删除重复命令
vim /etc/profile
export HISTCONTROL="ignoreboth"


y_0033.gif