8.6 管道符和作业控制
1、cat 1.txt |wc -l ; cat 1.txt |grep 'aaa'
2、ctrl +z 暂停一个任务 (ctrl+c 终止)
3、jobs查看后台的任务
4、bg[id]把任务调到后台(background的简写)使它到后台运行
5、fg[id]把任务调到前台(foreground的简写)命令恢复
6、命令后面加&直接丢到后台继续运行
管道符
1.1 管道符 “|”, 就是把前面的命令运行的结果交给后面的命令
作业控制
1.2 如何我们正在编辑一个文件时,想暂停这个操作并退出可以输入ctrl +z 暂停任务
1.3 jobs查看被暂停或者在后台运行的任务,第一列有ID号
1.4 bg[id]把任务调到后台运行;
1.5 fg[id]把任务调到前台运行
1.6 命令后面加&直接丢到后台 ,sleep 100 指的是暂停100秒,后台继续运行
8.7-8.8 shell变量
环境变量PATH,它是shell预设的一种变量,通常预设的变量都是大写的。 变量就是使用一个较简单的字符串来替代某些具有特殊意义的设定以及数据。 系统预设环境变量:PATH、HOME、LOGNAME
1.1 PATH,HOME,PWD,LOGNAME //系统变量(可使用echo查看,如echo $PATH)
1.2 env命令 //查看系统环境变量信息
1.3 set命令多了很多变量,并且包括用户自定义的变量 //shell脚本
1.4 自定义变量
变量名规则可以是:字母 数字 下划线,首位不能为数字
变量值拥有特殊符号时需要用单引号括起来
1.4.1 自定义变量a=1 ,示例
1.4.2变量名规则:字母、数字下划线,首位不能为数字。示例
1.4.3 变量值有特殊符号时需要用单引号括起来,示例:
1.5 变量的累加,示例:
如果变量内容中本身带有单引号或其他符号如$,这就需要用到双引号
1.6 全局变量export (向下一层子bash生效,向上一层不生效)
当我们在一个终端上自定义了一个变量,它只是限于当前终端下的shell生效 ,如果在这个终端下再开一个子shell,这个变量是不会同步过去的,这个叫非全局变量。如果要所有的子shell都同步这个自定义的变量,就用到全局变量命令 :export (只能从上往下生效,反之不行)
bash是shell的一个子bash,可以通过pstree查看在哪个层级
1.7 如果要取消自定义的变量,使用命令:unset 变量名
8.9 环境变量配置文件
1.系统层次etc下面,用户登录加载使用,一般不要动(不要修改):
/etc/profile 用户环境变量,交互,登录才执行
2、用户层次,在用户家目录下,用户执行shell脚本的时候生效,一般不要动:
/etc/bashrc //用户不用登录,执行shell就生效
~/.bashrc //执行shell脚本时的配置文件
~/.bash_profile //用户登录时自动加载配置文件
~/.bash_history //记录命令历史的文件
~/.bash_logout //用来定义用户退出时需要做的操作
备注:每个用户下都会有两个隐藏文件,这两种文件的区别在于用户登录时自动加载profile,而profile也会自动调用bashrc,bashrc是执行shell脚本的时候,用户不用登录,就会自动执行shell脚本,只要执行shell脚本,就会调用bashrc里面的配置文件。
2 3 4 | [root@aminglinux-01 ~]# vim .bash_profile [root@aminglinux-01 ~]#source .bash_profile //source执行加载这个文件命令 [root@aminglinux-01 ~]#. .bash_profile //.与source命令一样作用 [root@aminglinux-01 ~]# vim .bashrc |
2.1 /etc/bashrc :这个文件主要预设umask以及PS1。这个PS1就是我们在敲命令时,前面那串字符了:
(\u 就是用户, \h 主机名, \W 则是当前目录,$ 就是那个 ‘#’ 了,如果是普通用户则显示为 ‘$’)
2.1.2 改变用户行显示方式的环境变量,带颜色设置:
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$ '