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


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

    作者:Grey

    原文地址:

    博客园:Linux 中的内部命令和外部命令

    CSDN:Linux 中的内部命令和外部命令

    什么是 bash shell ?

    bash shell,就是一个程序,就是 Linux 系统安装的一个软件,用户通过 SSH 输入用户名密码登录操作系统后,直接进入 bash shell 这个软件

    shell 命令分为外部命令和内置命令:

    比较内置命令外部命名
    定义Bash Shell 自带的命令Linux 系统中的应用程序
    执行效率
    执行过程调用当前 Shell 进程的一个函数触发磁盘 I/O,fork 出一个单独的进程,执行完成后退出

    内部命令( Shell 自带的命令)

    例如:cd命令,使用

    type cd
    
    • 1

    显示:

    cd is a shell builtin
    
    • 1

    说明cd命令是 shell 自带的命令

    通过

    help -d
    
    • 1

    可以查看所有内部命令

    image

    外部命令(不是Shell自带的命令,由用户安装的)

    比如 ifconfig 命令

    type ifconfig
    
    • 1

    显示:ifconfig is /usr/sbin/ifconfig

    可以使用 file 命令查看命令是一个什么类型的文件

    file /usr/sbin/ifconfig
    
    • 1

    显示:

    /usr/sbin/ifconfig: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=22d5b3be8d3ce3c71cad5b982581ede262397b56, stripped
    
    • 1

    使用 whereis 查看某个命令在哪个位置

    whereis ifconfig
    
    • 1

    显示

    ifconfig: /usr/sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
    
    • 1

    此外:

    内部命令的帮助用 help 指令,外部命令的帮助用 man 指令。

    更多

    bash shell 在执行命令的时候,做了两步优化:

    第一个优化,通过 PATH 来(echo $PATH) 搜索命令 。

    第二个优化,通过 hash 来搜索命令,hash查看,hash -r(清空hash)

    编写脚本时候, 如需要执行权限,要赋予该文件执行权限 chmod u+rx filename

    如果 bash 执行,则不需要赋予执行权限。

    # 不需要执行权限
    bash ./filename.sh
    # 要赋予执行权限
    ./filename.sh
    
    • 1
    • 2
    • 3
    • 4

    注:以上两种执行方式都是新开一个进程,使用如下方式执行

    source ./filename.sh
    .filename.sh
    
    • 1
    • 2

    不会产生新的子进程。

  • 相关阅读:
    ansible-第二天
    第二十一天多米诺和托米诺平铺
    HashMap 源码逐行分析,j + oldCap 桶位置重分配公式手写验证
    2023_“数维杯”问题B:棉秸秆热解的催化反应-详细解析含代码
    Java策略模式之总有你想不到的知识
    Git简单使用介绍
    剑指offer-数组总结
    矩阵类运算(运算符重载)
    Sql server 使用DBCC Shrinkfile 收缩日志文件
    ETCD下载安装
  • 原文地址:https://blog.csdn.net/hotonyhui/article/details/127969757