侧边栏壁纸
博主头像
张种恩的技术小栈博主等级

行动起来,活在当下

  • 累计撰写 747 篇文章
  • 累计创建 65 个标签
  • 累计收到 39 条评论

目 录CONTENT

文章目录

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

zze
zze
2019-09-11 / 0 评论 / 0 点赞 / 522 阅读 / 1247 字

不定期更新相关视频,抖音点击左上角加号后扫一扫右方侧边栏二维码关注我~正在更新《Shell其实很简单》系列

命令的运行

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

评论区