8.6 管道符和作业控制
8.7/8.8 shell变量
8.9 环境变量配置文件

ctrl+z 暂停当前操作,暂时性退出做其他操作(放到后台)
fg 重新调到前台(当有多个命令存在时,在后面加上相应的数字,如果不输入数字,则默认为最后一条命令), jobs查看当前运行情况,bg放到后台并运行(同理fg)
如果是动态命令如vimstat 1 (动态显示系统状态文件,即使被调到后台还是会滚动输出信息,不同于前台的是:可以正常输出 执行命令)
bg 对应的放到后台,fg 放到前台 ctrl + C 再输入jobs,归零
sleep 100& 通过&符号直接把命令放到后台运行
ps aux | grep sleep 可查看进程,但无法在另一个终端中看到之前终端的任务
Shell变量
env查看系统环境变量,set查看系统和自定义环境变量等
自定义变量可以set查看 set | grep xxx; set | less
在自定义变量中,如果想要输出某特殊符号时,需要加单引号'',如果加的是双引号“”, 系统可能会识别成标记符导致输出变量和输入不一致,如下图所示,$就是标记符
变量的累加:当有某特殊符号存在时,单独加上双引号“”可单独识别里面的内容,如c=a "$b"c; echo $c输出结果为a2c
全局变量 export b=2
执行w命令查看登录情况, echo $ SSH_TTY 查看在哪个TTY登录
在某个终端上定义一个变量,在另一个终端上并不会显示
bash命令,用pstree查看进入子shell
exit前, echo $liut 依然为空,exit 回到原来的shell,再echo发现自定义变量重新生效
输入export liut=linux (具体的自定义变量表达式),成为全局变量
进入子子shell也生效的全局环境变量
但是在另一个终端下并不会生效
如下图所示:所谓全局变量有两个特点:
①在并列,无交互关系的shell中全局变量不能生效
②在同一个shell环境中,全局变量只能顺向往下生效,不可逆向生效
unset + 变量名取消自定义变量