五周第四次课(4月23日)笔记

本文深入讲解了Shell脚本中的管道符、作业控制、变量管理等内容,包括如何使用管道符连接命令、作业控制命令如ctrl+z、fg、jobs、bg等的操作方法,以及shell变量和环境变量的设置与应用。

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 + 变量名取消自定义变量


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值