Linux基础之-Bash命令优先级
一. 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
Linux基础之-Bash命令优先级的更多相关文章
- linux基础之bash特性
linux基础之bash特性 1.命令历史 命令历史包含的环境变量 $HISTSIZE:命令历史记录的条数 $HISTFILE:命令历史文件~/.bash_history $HISTFILESIZE: ...
- Linux基础知识与命令1(su passwd)
一.Linux的基本原则 1.linux由一个个目的单一的小程序组成,我们一般需要组合小程序来完成复杂的任务 2.Linux的一切都是文件(文件类似于一棵树,包括外设,接口) 3.Linux尽量避免捕 ...
- 《Linux基础知识及命令》系列分享专栏
<Linux基础知识及命令>系列分享专栏 本专题详细为大家讲解了Linux入门基础知识,思路清晰,简单易懂.本专题非常适合刚刚学习Linux的小白来学习,通过学习该专题会让你由入门达到中级 ...
- Linux基础之bash shell介绍及基本特性
今天继续讲Linux基础知识,内容是关于bash shell的.分享以下bash shell的相关知识,例如基本特性等. 1.8)bash shell的介绍 1.8.1)什么是bash shell ...
- linux 基础知识及命令总结
1.mkdir 创建目录 -p 创建多级目录 mkdir -p /data/test -m, --mode=模式 设置权限模式(类似chmod),而不是rwxrwxrwx 减umask -p, ...
- 【Linux基础】tr命令替换和删除字符
1.tr命令 tr可以对来自标准输入的字符进行替换.压缩和删除,可以将一组字符变成另外一组字符.通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能.您可以将 tr 看作为 sed 的(极其 ...
- Linux之整理bash命令类型
作业四:整理bash命令类型,验证寻找一个命令的优先级 类型 ==> alias ==> Compound Commands ==> function ==> build_in ...
- Linux基础知识和命令
1,用户登录: root(管理员),权限最大.安全生产必要时再使用. 普通用户:权限有限.2, 终端终端设备终端:输入和输出设备,如:键盘鼠标显示器; 图形终端:虚拟机进入窗 ...
- 后端程序员必备的 Linux 基础知识+常见命令(近万字总结)
大家好!我是 Guide 哥,Java 后端开发.一个会一点前端,喜欢烹饪的自由少年. 今天这篇文章中简单介绍一下一个 Java 程序员必知的 Linux 的一些概念以及常见命令. 如果文章有任何需要 ...
随机推荐
- 查看已安装tensorflow版本以及安装路径
查看版本: import tensorflow as tf tf.__version__ 查看安装路径: tf.__path__
- Smarty带来的神秘的数字1
问题的引发:在htmly页面通过smarty模板引擎开启session_start()后,突发发现页面无故多了一个 神秘的数字 1 问题界面: 代码: 测试:在session_start()行末加2 ...
- 日语N5学习
副词与连接词 ~から: 从-(表示时间.场所起点) ~まで: 到-(表示时间.场所终点) と: 和(并列时用) えーと: 嗯 いっしょに: 一起 ちょっと: 一点儿 いつも: 经常.总是 ときどき: ...
- list排序问题
用Collections.sort方法对list排序有两种方法第一种是list中的对象实现Comparable接口,如下: /*** 根据order对User排序*/public class User ...
- C. Ayoub and Lost Array Round #533 (Div. 2) 【DP】
一.题面 链接 二.分析 关于这题,两个点. 第一个点,是需要能够分析出$[L,R]$区间的3的余数的个数. 首先,可以得到,$[L,R]$区间内共有$(R-L+1)$个数. 设定余数为0,1,2的为 ...
- Mastache.js学习笔记(转自小花喵)
简单的记录我使用Mastache的使用. 为什么使用JS模板引擎? 当数据结构复杂,Js的拼接凌乱,难以维护,但是又需要通过ajax加载数据的时候: 而Mastache的上手难度不高,并符合大部分业务 ...
- final学习
类加载过程 1.装载:查找和导入Class文件 2.链接:其中解析步骤是可以选择的 (a)检查:检查载入的class文件数据的正确性 (b)准备:给类的静态变量分配存储空间 (c)解析:将符号引用转成 ...
- Oracle知识转储
https://blog.csdn.net/u011479200/article/details/53086411 https://www.cnblogs.com/LiYi-Dao/p/9406189 ...
- cmake 简学
https://www.cnblogs.com/cv-pr/p/6206921.html
- Java_break与continue区别
使用场合不同 break:可以在switch case中使用,也可以在循环中使用 continue:只能在循环中使用,除了switch case 作用不同 break:表示中断,当在switch ...