• Linux的内部命令和外部命令


    为了提高系统运行效率,将经常使用的轻量的命令在系统启动时一并加载这些命令到内存中供shell随时调用,这部分命令即为内部命令。反之,只有当被调用时才会被硬盘加载的这部分命令即为外部命令。
    内部命令实际上是shell程序的一部分,其中包含的是一些比较轻量的linux系统命令。
    外部命令在系统启动时并不随系统一起被加载到内存中,而是在需要时才将其调用内存。存放位置被定义在$PATH中。如/usr/bin /usr/sbin,在初次被调用之后 外部命令会被缓存到内存中 以便下次系统更快的调用。
    当前有哪些外部命令被缓存 可以使用hash命令来查看。要注意的是 缓存的外部命令只针对当前用户的本次登录。
    不同类型的命令执行顺序也不同,别名优先级最高,比较好理解,因为我们通常使用的ls ll cp等命令实际上都是别名。
    执行顺序:别名>内部命令>被缓存的外部命令>外部命令

    [root@Server00 ~]# type man 使用type命令可以判断命令是内部命令还是外部命令
    man is /usr/bin/man
    [root@Server00 ~]# type help
    help is a shell builtin
    [root@Server00 ~]# hash 使用hash命令,可以查看该外部命令是否被缓存
    hits    command
       2    /usr/bin/ssh
    [root@Server00 ~]# man ls
    [root@Server00 ~]# hash 可以发现当外部命令被使用过之后 会被缓存
    hits    command
       2    /usr/bin/ssh
       1    /usr/bin/man
    [root@Server00 ~]# alias 查看当前设置了哪些别名
    alias cp='cp -i'
    alias l.='ls -d .* --color=auto'
    alias ll='ls -l --color=auto'
    alias ls='ls --color=auto'
    alias mv='mv -i'
    alias rm='rm -i'
    
  • 相关阅读:
    hdu1247 字典树或者hash
    hdu1247 字典树或者hash
    hdu1251 hash或者字典树
    hdu1251 hash或者字典树
    hdu4421 2-sat(枚举二进制每一位)
    hdu4421 2-sat(枚举二进制每一位)
    poj3648 2-sat
    poj3648 2-sat
    hdu 1814 字典序最小的2sat(暴力深搜)
    hdu 1814 字典序最小的2sat(暴力深搜)
  • 原文地址:https://www.cnblogs.com/atwo/p/13930493.html
Copyright © 2020-2023  润新知