命令行历史

命令行历史是一个很有用工具,它可以使我们更快的执行命令


  1. 重复前一个命令,有4种方法:

    1. 重复前一个命令使用上方向键,并回车执行

    2. 按 !! 并回车执行

    3. 输入 !-1 并回车执行

    4. 按 Ctrl+p 并回车执行

  2. !字符串:重复前一个以“字符串”开头的命令 

  3. !num:按照history命令输出中的序号重复对应命令 

  4. !?字符串:重复前一个包含abc的命令 

  5. !-n :重复n个命令之前的那个命令

  6. 使用up(向上)和down(向下)键来上下浏览从前输入 的命令 

  7. 键入ctrl-r来在命令历史中搜索命令 

  8. 要重新调用前一个命令中最后一个参数:

    1.  !$  表示 

    2.  Esc, .(点击Esc键后松开,然后点击 . 键) 

    3.  Alt+ .(按住Alt键的同时点击 . 键)



调用历史参数:


  • #cmd !^  :  利用上一个命令的第一个参数做cmd的参数

  • #cmd !$  :  利用上一个命令的最后一个参数做cmd的参数

  • #cmd !*  :  利用上一个命令的全部参数做cmd的参数 

  • #cmd !:n  :  利用上一个命令的第n个参数做cmd的参数 

  • !n:^  调用第n条命令的第一个参数

  • !n:$  调用第n条命令的最后一个参数

  • !m:n  调用第m条命令的第n个参数 

  • !n:*  调用第n条命令的所有参数

  • !string:^  从命令历史中搜索以 string 开头的命令,并获取 它的第一个参数 

  • !string:$  从命令历史中搜索以 string 开头的命令, 并获取它 的最后一个参数 

  • !string:n  从命令历史中搜索以 string 开头的命令,并获取 它的第n个参数 

  • !string:*  从命令历史中搜索以 string 开头的命令,并获取 它的所有参数


命令history 

history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]

    

Options:

    

-c: 清空命令历史 

-d: 删除历史中指定的命令

#: 显示最近的#条历史 

-a: 追加本次会话新执行的命令历史列表至历史文件 

-n: 读历史文件中未读过的行到历史列表 

-r: 读历史文件附加到历史列表 

-w: 保存历史列表到指定的历史文件 

-p: 展开历史参数成多个行,但不存在历史列表中 

-s: 展开历史参数成一行,附加在历史列表后




命令历史相关环境变量:


HISTSIZE:命令历史记录的条数;

HISTFILE:指定历史文件,默认为~/.bash_history;

HISTFILESIZE:命令历史文件记录历史的条数;

HISTTIMEFORMAT=“%F %T“   显示时间 

HISTIGNORE=“str1:str2:… “ 忽略string1,string2历史 

控制命令历史的记录方式: 环境变量:HISTCONTROL

    ignoredups:忽略重复的命令;连续且相同方为“重复” 

    ignorespace:忽略所有以空白开头的命令 

    ignoreboth:ignoredups, ignorespace 

    erasedups:删除重复命令

export 变量名="值“ 

存放在 /etc/profile 或 ~/.bash_profile