Bash Shell的操作环境

时间:2023-03-09 16:57:58
Bash Shell的操作环境

1.路径与命令查找顺序

基本上,命令运行的顺序可以这样看:
1)以相对/绝对路径执行命令,例如“/bin/ls”或“./ls”;
2)由alias找到该命令来执行;
3)由bash内置的(builtin)命令来执行;
4)通过$PATH这个变量的顺序找到的第一个命令来执行。
通过type -a ls也可以查询得到。
2.bash的环境配置文件
1)login与non-login shell
login shell:取的bash时需要完整的登陆流程
non-login shell:取的bash接口的方法不需要重复登陆的举动。
2)login shell读取的配置文件,2个
系统整体设置/etc/profile
用户个人设置~/.bash_profile 或 ~/.bash_login 或 ~/.profile
3)将主文件夹的~/.bashrc的设置读入目前的bash环境中
# source ~/.bashrc  <==下面这两个命令是一样的
# . ~/.bashrc
4)non-login shell 仅会读取~/.bashrc 配置文件
.bashrc文件,用户个人设置,整体的环境设置
5)其他配置文件
/etc/man.config文件,规定了使用man的时候man page的路径到哪里去寻找。
~/.bash_history文件,历史命令就记录在这里
~/.bash_logout文件,注销bash的时候,系统会调用这个文件,帮我们完成一些清理屏幕等工作。
3.终端机的环境设置:stty,set
1)stty
帮主设置终端机的输入按键代表意义,比如Ctrl+C,Ctrl+D等等。
2)set
设置整个命令输出/输入的环境,比如-u(使用未设置变量时,显示错误信息)、-x(命令被执行前,显示命令内容)
4.通配符
符号
意义
*
代表0个到无穷多个任意字符
?
代表一定有一个任意字符
[]
同样代表一定有一个在中括号内的字符(非任意字符)。例如[abcd]代表一定有一个字符,可能是a,b,c,d这四个任何一个
[-]
若有减号在中括号内时,代表在编码顺序内的所有字符。例如[0-9]代表0到9之间的所有数字,因为数字的语系编码是连续的
[^]
若中括号内的第一个字符为指数符号(^),那表示反向选择,例如[^abc]代表一定有一个字符,只要是非a,b,c的其他字符就接受的意思。