一条命令的运行,经历了什么样的过程呢?它又需要什么样的环境配置来支持呢?
命令运行的顺序
- 以相对/绝对路径运行命令
- 由alias找到该命令来运行
- 由bash内建命令来运行
- 透过$PATH这个变量的顺序搜寻到的第一个命令来运行
bash的环境配置文件
为什么一进入bash就有一些变量可用了?有配置文件的存在喽
命令别名以及自定义变量在注销bash后就失效啦怎么破?写入配置文件喽
login shell会读取两个配置文件:
- /etc/profile : 这是系统整体的配置;
- ~/.bash_profile或~/.bash_login或~/.profile : 属于使用者个人的配置(这里的三个文件只会读取一个,按顺序来先找到哪个便读取哪个);
查看/etc/profile和~/.bash_profile文件的内容可知:最终它们读取的配置文件是~/.bashrc这个文件,所以我们一般可以将自己的偏好设置写入该文件。但我们新写入的配置是不会立即生效的,只能注销后再次登录才可生效,因为/etc/profile和~/.bash_profile是只在用户登录时读取一次~/.bashrc文件。不需要重新登录而直接把配置文件的配置读入shell环境的两种方法:12source ~/.bashrc. ~/bashrc
去看一下/etc/profile和~/.bash_profile文件的内容也可以看到里面也是按这种方式来读取配置文件的。
no-login shell只会读取一个配置文件:~/.bashrc
bash通配符
bash通配符与正则表达式并不完全相同,这里只列下新发现的感觉比较有用的几个吧:
符号 | 内容 |
---|---|
>,>> | 数据流重导向:输出向导,分别是”取代”与”累加” |
<,<< | 数据流重导向:输入向导 |