如何理解Linux下是如何执行命令的?

  • A+
所属分类:Linux基础
执行命令
    输入命令后回车
        提请shell程序找到键入命令所对应的可执行程序或代码,并由其分析后提交给
        内核分配资源将其运行起来
    在shell中可执行的命令有两类
        内部命令:由shell自带的,而且通过某命令形式提供
            help 内部命令列表
            enable cmd启用内部命令
            enable –n cmd禁用内部命令
            enable –n 查看所有禁用的内部命令
        外部命令:在文件系统路径下有对应的可执行程序文件
            查看路径:which -a |--skip-alias; whereis
    查看某命令是内部还是外部命令
        type COMMAND

执行外部命令
    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 清除缓存

命令别名
    显示当前shell进程所有可用的命令别名
        alias
    定义别名NAME,其相当于执行命令VALUE
        alias NAME='VALUE'
    在命令行中定义的别名,仅对当前shell进程有效
    如果想永久有效,要定义在配置文件中
        仅对当前用户:~/.bashrc
        对所有用户有效:/etc/bashrc

    编辑配置给出的新配置不会立即生效
    bash进程重新读取配置文件
        source /path/to/config_file
        . /path/to/config_file
    撤消别名:unalias
        unalias[-a] name [name ...]
        -a 取消所有别名
    如果别名同原命令同名,如果要执行原命令,可使用
        “\COMMAND”
        ’COMMAND’
        /PATH/COMMAND:外部命令

    COMMAND [OPTIONS...] [ARGUMENTS...]
        选项:用于启用或关闭命令的某个或某些功能
            短选项:-c 例如:-l, -h
            长选项:--word 例如:--all, --human-readable
        参数:命令的作用对象,比如文件名,用户名等
    注意:
        多个选项以及多参数和命令之间使用空白字符分隔
        取消和结束命令执行:Ctrl+c,Ctrl+d
        多个命令可以用;符号分开
        一个命令可以用\分成多行
avatar

发表评论

您必须登录才能发表评论!