乱七八糟想到什么记什么6

执行命令

  • runlevel
    用来显示run在那层
    用 init 0 3 5 6来切换 0关机 6 重启
  • reboot
    重启计算机
  • lscpu
    查看cpu详情
  • exit推出 logout注销
    -echo
    显示PS1 显示SHELL类型

程序执行的逻辑:

输入字符串->提交给shell->shell首先判断是不是bash中自带的程序
ls /bin/bash
系统启动的时候已经加载到内存中了

  • 内部命令:bash中集成了很多内部命令,随着shell放在内存里了。-
  • 外部命令:不属于shell的独立的程序文件,并不集成在bash中,属于外部命令
    bin下一大堆外部命令
    用type判断是内部命令还是外部命令
[07:53:49 2u@u20[ /]$type echo
echo is a shell builtin  ##内部命令builtin
[07:57:18 2u@u20[ /]$type ls
ls is aliased to `ls --color=auto'  ##别名
[07:57:27 2u@u20[ /]$type init
init is /usr/sbin/init  ##显示路径的是外部命令

外部命令存放规则

外部命令的存放是有规范的,并不是任何一个磁盘文件都可以成为外部命令。

[07:57:50 2u@u20[ /]$echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

存放外部命令文件夹搜索次序,如果找到了,就将其加载到内存中运行。命令为二进制可执行文件。
如果找不到,就提示错误。

内部命令优先执行,效率更高

哈希

为了加速访问,Linux中有个逻辑,第一次执行之后,就会将执行路径记录到内存里边,成为哈希。

hash
曾经执行过的外部命令的路径

[08:01:39 2u@u20[ /]$hash
hits	command
   1	/usr/bin/lscpu
   1	/usr/bin/hostname
   1	/usr/sbin/runlevel
   5	/usr/bin/who
   1	/usr/bin/whoami
   1	/usr/bin/tty
   1	/usr/bin/sudo
   2	/usr/bin/file
   1	/usr/bin/free
   3	/usr/bin/ls
   6	/usr/bin/cat

Hash缓存表
系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将这条命令的
路径记录到hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在将执行之,如果不
存在,将会去PATH路径下寻找,利用hash缓存表可大大提高命令的调用速率
hash 命令常见用法

  • hash 显示hash缓存
  • hash -l 显示hash缓存,可作为输入使用
  • hash -p path name 将命令全路径path起别名为name
  • hash -t name 打印缓存中name的路径
  • hash -d name 清除name缓存
  • hash -r 清除缓存

help

用来显示内部命令的帮助,同时也显示了所有的内部命令

enable

列出所有可用的内部命令
enable COMMD
enable -n 禁用内部命令

. source

让我们写的配置文件生效

env.sh
env是英文单词环境的简写

[14:18:52 root@C8[ ~]#cat /etc/profile.d/env.sh 
PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\
[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"

改文件不会立即生效,重启或重新登录,才会重新读取配置文件。
. /etc/profile.d/env.sh 系统重新读取新内容让他生效

如果外部命令和内部命令重名,优先执行内部命令
在内部命令失效的情况下,可以执行外部命令。

which

显示出外部命令的路径
which -a |--skip-alias 跳过别名

whereis

显示的内容更多,不但显示出外部命令的路径还能显示出外部命令帮助文档的路径

猜你喜欢

转载自www.cnblogs.com/bpzblog/p/12813957.html
今日推荐