Linux变量值的传递&进程管理&Quoting&正则批量&后台运行

2021-10-25
1. 写一个脚本,验证一下在子进程中将一个变量的值改变,并将这个变量的值的改变带回到父进程的内存空间里 (export ,source)
1.1 一个进程有 local 区和 env 区两个变量空间。定义新变量时,将由 local 数据区分配内存,此区域中的变量对当前进程是私有的,通常称为局部变量。后续的任何子进程都不能访问这些局部变量。但是,移动到 env区的变量子流程可以访问。
因此需要将变量通过export命令拉到env区
1.2 source
不用source:
在这里插入图片描述
可见,在子进程修改变量的值,子进程死后,值并不能回传。
使用source:

$ source 文件名 或者 . 文件名

source运行文件使得父进程和子进程的内存空间共享,故在子进程 1.sh 中修改color的值后,父进程中color的值也会随之改变。
在这里插入图片描述
2.怎样看一个字符终端的进程情况 (ps , ps f)
ps:看本字符终端的进程。列出当前系统运行中的进程的状态信息,可用查看后台运行的大型程序是否已经运行结束。
若要终止进程
①终止前台(foreground)进程用 Ctrl+C
②中指后台进程用 kill PID(由 ps 命令可查询 PID)
在这里插入图片描述
ps f:用 ASCII 字符显示树状结构,表达程序间的相互关系。运行的程序数目较多之时可用。
在这里插入图片描述
怎样看一个用户本机上的所有进程状态 (ps xf)
ps xf:查看本 id 在本机的所有进程。用 ASCII 字符显示树状结构,表达所有程序间的相互关系,不以终端机来区分
在这里插入图片描述
怎样看本机得到所有进程状态 (top , htop)
top:看本机器上所有的进程,用于实时监测系统资源使用状况,包含进程、CPU、内存等。在这里插入图片描述
htop:同样可以监控整个机器的进程,功能更强大。htop 命令不像 top 命令是默认安装过的,需要手动安装。
在这里插入图片描述
3.(正则批量)写脚本
将登陆目录里的所有以a开头,以数字结尾的cpp文件拷贝到zhangsan的根目录里($ cp ~/a*[0-9].cpp ~zhangsan/)
正则表达式,进行一定意义上的批处理。
在这里插入图片描述
4.(quoting)定义一个变量var,使得这个变量含有当前登陆用户名,当前目录和当前目录里的所有文件名和目录名

$ var=$LOGNAME  and $(PWD)  and  `ls -F`  “
$ echo $var

在这里插入图片描述
在变量的定义过程中,双引号比单引号更有灵活性?
① \ :去除单个字符的特殊意义,保留了跟随在之后的那个字符的字面值。(类似C++的转义字符)
② 单引号:去除所包含的所有字符的特殊含义。
③ 双引号:去除所包含的字符的特殊含义,除了\、变量替换、命令替换等。

单引号直接输出内部字符串,不解析特殊字符;双引号内则会解析特殊字符,包括’, ", $, \。
换句话说,单引号包含住的全都是常量,双引号能保证变量还是变量,故“在变量定义的过程中,双引号比单引号更有灵活性。”
一个例子:
在这里插入图片描述

5(nohup) 写成运行训练样本 train.sh 的标准式
($ nohup train.sh >debug.txt 2>error.txt &)
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值