侧边栏壁纸
博主头像
张种恩博主等级

一个能运维的 JPG 搬运工

  • 累计撰写 709 篇文章
  • 累计创建 62 个标签
  • 累计收到 27 条评论

目 录CONTENT

文章目录

Linux基础(4)之命令的运行与命令历史

张种恩
2019-09-11 / 0 评论 / 0 点赞 / 330 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2020-02-25,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

命令的运行

shell 程序的可执行命令对应的程序文件的路径定义在 PATH 环境变量中。

[root@zze ~]# echo $PATH
/usr/local/java/jdk1.8.0_191/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

所以当我们在命令行键入命令回车后,shell 程序将会在上述路径中查找对应程序并运行。要注意的是,shell 程序的搜寻顺序是从左至右的,而 shell 搜寻到的外部命令的路径结果会缓存至内存中的一个 kv(key-value)结构中,即如果在多个路径中有相同的命令,那么找到第一个命令后就只会将第一个命令对应程序位置缓存到 kv 中,后续的同名命令将会被忽略。
可通过 hash 命令可查看已缓存命令执行的命中次数:

[root@zze ~]# hash
hits	command
   1	/usr/bin/tty
   1	/usr/local/java/jdk1.8.0_191/bin/java
   1	/usr/bin/whereis
   2	/usr/bin/info
  19	/bin/ls

命令历史

登录进 shell 后新执行的命令只会记录在缓存中,退出时会将缓冲区中的命令记录到命令历史文件中。
登录进 shell 时,会读取命令历史文件中记录下的命令,并且可以通过 history 命令查看到这些命令。

[root@zze ~]# history
    1  ls
    2  history

命令历史文件存储在登录用户的家目录,路径为:~/.bash_history

常用选项

-a :手动将本次会话执行的命令历史追加到命令历史文件中。
-d :删除指定位置的历史命令,需指定要删除命令的位置。
-c :清除命令历史。

快捷操作

!n:调用命令历史的第 n 条命令。
!string:调用命令历史中第一个以 string 开头的命令。
!!:调用上一条命令。

0

评论区