linux命令行与shell脚本大全——学习笔记(5-6章)

第五章

shell的类型

bash sh zsh csh,在命令行中,使用echo $0可以查看当前使用的shell

shell的父子关系

输入bash进入子shell,可以无限套娃,退出使用exit; 使用ps --forest可以查看shell嵌套关系

查看进程列表

一系列命令可以通过()括起来,表示是进程列表,会生成一个子shell来执行这些命令;
如:
echo $0; ls -alh; ps -ef;ps --forest;
和:
(echo $0; ls -alh; ps -ef;ps --forest;)
能看到层级是不一样的

探究后台模式

直接&,例如sleep 300&,返回两条数据,第一条信息是方括号中的后台作业号。第二条信息是
后台作业的进程 ID
此时通过ps -ef可以看到这个运行中的sleep命令;
以及:通过jobs可以查看到当前运行在后台模式中,所有属于当前用户的所有进程(作业)
jobs -l还可以查看到后台运行进程的pid;
jobs列出的多个后台进程中,最近启动的进程以+表示,之前启动的进程前会有个-

协程

coproc:命令为coproc command,如coproc sleep 300;此时jobs命令也可以查看协程的状态;
在子shell中执行后台命令格式:coproc COMMAND_NAME {}

理解外部命令和内建命令

使用type能区分出来是外部还是内建命令
history命令衍生,!!可以查看最近几条命令

别名

alias -p查看所有别名

第六章 环境变量

全局环境变量

对于shell及子shell都是可见的,一般全大写

局部环境变量

局部环境变量只对创建它的 shell 可见

设置用户自定义变量

自定义的局部变量用的是小写字母,而系统环境变量用的都是大写字母

设置全局环境变量

创建全局环境变量的方法是先创建局部变量,然后再将其导出到全局环境中。

my_variable="I am Global now"
export my_variable

一般的写法是:export my_variable="I am Global Now"
修改子 shell 中的全局环境变量并不会影响父 shell 中该变量的值,子 shell 甚至无法使用 export 命令改变父 shell 中全局环境变量的值

删除环境变量

unset,注意使用unset时没有$ unset my_variable
对于环境变量的修改,只能维持到退出或重启系统

彻底修改环境变量

一般按一下顺序加载,可以直接修改文件,增加环境变量

$HOME/.bash_profile
$HOME/.bash_login
$HOME/.profile
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值