Shell 历史命令

历史命令指的是把操作过的命令保留在系统当中, 当需要的时候可以重新进行调用

history

1
2
3
4
5
6
7
8
9
10
11
12
history [选项] [历史命令保存文件]
选项:
-a: 追加本次会话新执行的命令历史列表至历史文件中
-d offset:删除历史中指定命令
-c:清空历史命令
-w:把缓存中的历史命令强制写入历史命令保存文件 ~/.bash_history
number 显示历史中最近的number条命令
不建议清空
当本次操作出现错误可用过历史命令进行比对排错
当登录后发现历史命令被清空, 则可判断出有人登录过该账户或服务器
即使命令保存数目众多, 文件大小也不大, 不会给服务器造成多大压力

历史命令的配置

历史命令默认保存1000条, 可以在环境变量配置文件/etc/profile中进行修改HISTSIZE=1000
使用history命令查看的, 不止有之前保存下来的, 还有本次登录后新操作的命令, 这些命令只有本次正确退出之后才会写入 ~/.bash_history

历史命令相关环境变量

  1. HISTSIZE:命令历史记录的条数
  2. HISTFILE:命令历史文件,./bash_history
  3. HISTFILESIZE:命令历史文件记录历史的条数
  4. HISTCONTROL:控制历史命令的记录方式
    • ignoredups:忽略连续且相同的命令,
    • ignorespace:忽略所有以空白开关的命令
    • ignoreboth:ignoredups+ignorespace

历史命令的调用

  • 使用上、下箭头调用以前的历史命令
  • 使用 !n 重复执行一次第 n 条历史命令
  • 使用 !! 重复执行一次上一条命令
  • 使用 !字串重复执行最后一条以该字串开头的命令
  • 调用上一条命令的最后一个参数:!$,ESC接.,Alt-.

命令与文本补全

在Bash中, 命令与文件补全是非常方便与常用的功能, 我们只要在输入命令或文件时, 按”Tab”键就会自动进行补全
系统进行命令补全依赖$PATH

hash命令:

shell搜寻到的外部命令的路径结果会缓存至kv(key-value)存储中;
在环境变量PATH中搜索命令name的完整路径并记住它,这样以后再次执行相同的命令时,就不必搜索其完整路径了

1
2
hash -d:清除指定缓存
hash -r:清除所有缓存

https://blog.csdn.net/iEearth/article/details/52599900