博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux基础之-Bash命令优先级
阅读量:5116 次
发布时间:2019-06-13

本文共 1243 字,大约阅读时间需要 4 分钟。

一. Bash简介

命令解释器,也就是 Bourne Again Shell,起源于shell。shell俗称壳,它是指UNIX系统下的一个命令解析器;主要用于用户和系统的交互。UNIX系统上有很多种Shell。首个shell,即Bourne Shell,于1978年在V7(AT&T的第7版)UNIX上推出。后来,又演变出C shell、bash等不同版本的shell。

Bash由于易用和免费,在日常工作中被广泛使用。同时,Bash也是大多数Linux系统默认的Shell。在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同样也可以改为#!/bin/bash#!告诉系统其后路径所指定的程序即是解释此脚本文件的Shell程序。

二. 命令的优先级

1. 获取一个命令执行的优先级别,至上往下

  alias

    compound commands

      function

        build_in

          hash

            $PATH

              error:command not found

2. 命令的分类

  alias(别名):是为了简化输出给一个长参数命令的整合,别名的定义方法 alias la='ls -al' 取消别名 unalias la;

  built_in(内部命令):bash自带的命令 功能简单,内部命令的帮助在builtin(1)里;

  外部命令:就是一个小程序存在于/bin/ /sbin/ /usr/bin 等地方。

3. 命令的优先级验证

 a 验证别名优先于内部命令和外部命令

 

  结论,命令的执行搜索顺序:别名 (alias可以查看)——bash内部命令——$PATH 中按冒号分割的每个路径中去搜索

  b 验证别名优先于复合命令(compound command)

  c 验证复合命令优先于函数(function)

  d 验证函数优先于内置命令

  结论,命令的执行搜索顺序:别名 (alias可以查看)——复合命令——函数——bash内部命令——$PATH 中按冒号分割的每个路径中去搜索

  e 验证hash优先于$PATH

  最终验证结论为:命令的执行搜索顺序:别名 (alias可以查看)——复合命令——函数——内置命令——bash内部命令——$PATH 中按冒号分割的每个路径中去搜索

 

 

 

参考资料

1. http://www.cnblogs.com/linhaifeng/p/6592572.html#_labelTop

2. http://www.cnblogs.com/skywang12345/archive/2013/05/30/3106570.html#a12

 

转载于:https://www.cnblogs.com/OldJack/p/6601420.html

你可能感兴趣的文章
第一个Java Web程序
查看>>
树状数组_一维
查看>>
如果没有按照正常的先装iis后装.net的顺序,可以使用此命令重新注册一下:
查看>>
linux install ftp server
查看>>
嵌入式软件设计第8次实验报告
查看>>
算法和数据结构(三)
查看>>
Ubuntu下的eclipse安装subclipse遇到没有javahl的问题...(2天解决了)
查看>>
alter database databasename set single_user with rollback IMMEDIATE 不成功问题
查看>>
WCF揭秘——使用AJAX+WCF服务进行页面开发
查看>>
【题解】青蛙的约会
查看>>
IO流
查看>>
mybatis调用存储过程,获取返回的游标
查看>>
设计模式之装饰模式(结构型)
查看>>
面向对象的设计原则
查看>>
Swift3.0服务端开发(三) Mustache页面模板与日志记录
查看>>
【转】 FPGA设计的四种常用思想与技巧
查看>>
EntityFrameWork 实现实体类和DBContext分离在不同类库
查看>>
新手算法学习之路----二叉树(在一个二叉查找树中插入一个节点)
查看>>
autopep8
查看>>
GIT在Linux上的安装和使用简介
查看>>