目录
2.1 login shell 与 no login shell
2.2 /etc/profile(login shell读取)
2.3 ~/.bash_profile(login shell)
1 指令的搜寻顺序
1.以相对/绝对路劲执行指令如/bin/ls ./ls
2.由alias找到指令执行
3.由bash内建指令执行
4.通过$PATH变量搜寻到第一个指令执行
2 bash的环境配置文件
2.1 login shell 与 no login shell
两种方式取得的bash shell环境不一致.经过登录过程取得的bash shell就是login shell ,反之就是no login shell 如子程序
2.2 /etc/profile(login shell读取)
这个配置文件是所有登录用户都会读取的.整体环境设定.它主要的变量有:
- PATH:会依据UID决定PATH变量要不要含有sbin的系统指令目录
- MAIL:依据账号设定好使用者的mailbox到/var/spool/mail/账号名
- USER:依据用户的账号设定
- HOSTNAME:依据主机的hostname指令决定此内容
- HISTSIZE:历史命令记录笔数
- umask:包括root默认的022而一般用户002等
此配置文件还会呼叫其他设定数据,默认情况下可呼叫的数据有:
/etc/profile.d/*.sh
使用者需要有读权限
/etc/local.config
此文件是由/etc/profile.d/lang.sh呼叫的,里边有重要的语系变量LANG和LC_ALL
/usr/share/bash-completion/completions/*
2.3 ~/.bash_profile(login shell)
个人环境设定,读取的配置文件依次是:
- ~/.bash_profile
- ~/.bash_login
- ~/.profile
bash的login shell只会读取上边3个文件中的其中一个,读取顺序如上.如果读取到了就不会再找下一个配置文件了.
~/.bash_profile会判断家目录有没有~/.bashrc文件如果有也会读取,流程:
虚线部分是呼叫过程.
2.4 ~/.bashrc
这个配置文件login/no login shell都会读取,所以想要定义一个永久有效的别名,在这里定义就好了.no login shell 仅会读取这一个配置文件.
2.5 source 读入环境配置文件的命令
source 配置文件档名
如果你在配置文件定义了一个变量或者别名,没有办法直接使用,因为需要登录过程去读配置文件,这时用此命令后就读取了.
2.6 终端机的环境设定:stty:set
利用stty(setting tty)查看按键内容
^是[Ctrl]的意思,如intr = ^C 就是[ctrl]+c;几个重要的按键
- intr:送出一个interrupt(中断)信号给正在执行的程序
- quit:送出一个离开的信号给正在执行的程序
- esase:向后删字符
- kill:删除目前在指令列上的所有文字
- eof:End of file结束输入
- start:在某个程序停止后,重新启动它的output
- stop:停止目前屏幕的输出
- susp:送出一个terminal stop的信号给正在执行的程序
如果你想用[ctrl]+h来进行回删字符,下达指令:
stty esase ^h
一个很有趣的例子,当在vim程序里修改完文件后,不小心按了[ctrl]+s,vim程序就不能动了,这时候按[ctrl]+q就可以恢复了
利用set设置终端机环境
set除了可以列出所有变量外,还可以设定整个指令的输出输入环境:
echo $- 查看所有设定
set -选项 是设置,set +选项是取消设置
https://blog.csdn.net/u010003835/article/details/79936072这篇博客讲的很清楚.
bash默认组合键汇整:
2.6 通配符与特殊符号
通配符
特殊符号