Linux学习-命令的运行

一条命令的运行,经历了什么样的过程呢?它又需要什么样的环境配置来支持呢?

命令运行的顺序

  1. 以相对/绝对路径运行命令
  2. 由alias找到该命令来运行
  3. 由bash内建命令来运行
  4. 透过$PATH这个变量的顺序搜寻到的第一个命令来运行

bash的环境配置文件

为什么一进入bash就有一些变量可用了?有配置文件的存在喽
命令别名以及自定义变量在注销bash后就失效啦怎么破?写入配置文件喽
login shell会读取两个配置文件:

  1. /etc/profile : 这是系统整体的配置;
  2. ~/.bash_profile或~/.bash_login或~/.profile : 属于使用者个人的配置(这里的三个文件只会读取一个,按顺序来先找到哪个便读取哪个);
    查看/etc/profile和~/.bash_profile文件的内容可知:最终它们读取的配置文件是~/.bashrc这个文件,所以我们一般可以将自己的偏好设置写入该文件。但我们新写入的配置是不会立即生效的,只能注销后再次登录才可生效,因为/etc/profile和~/.bash_profile是只在用户登录时读取一次~/.bashrc文件。不需要重新登录而直接把配置文件的配置读入shell环境的两种方法:
    1
    2
    source ~/.bashrc
    . ~/bashrc

去看一下/etc/profile和~/.bash_profile文件的内容也可以看到里面也是按这种方式来读取配置文件的。
no-login shell只会读取一个配置文件:~/.bashrc

bash通配符

bash通配符与正则表达式并不完全相同,这里只列下新发现的感觉比较有用的几个吧:

符号 内容
>,>> 数据流重导向:输出向导,分别是”取代”与”累加”
<,<< 数据流重导向:输入向导