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

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

8.6 管道符和作业控制
8.7/8.8 shell变量
8.9 环境变量配置文件
扩展
bashrc和bash_profile的区别 http://ask.apelearn.com/question/7719
简易审计系统: http://www.68idc.cn/help/server/linux/2014042190951.html
关于PROMPT_COMMAND环境变量的含义 http://www.linuxnote.org/prompt_command-environment-variables.html



管道符和作业控制

image.png

管道府就是将前面输出传递给后面的命令


比如

cat 1.txt | wc -l
cat 1.txt |grep 'aaa'

这个就是将前面的内容传给后面的wc命令去查看多少line


用法比较灵活,比如ls |wc -l 可以查看当前目录下有多少文件

image.png

image.png

作业控制


作业就是当前的操作 

ctrl z 就是暂停一个工作 

比如 sleep 100 忽然就停了 这个时候可以ctrl z 停止

image.png

然后有一个命令交做 bg 后台操作 fg 前台显示操作

image.png

可以看到 首先是被停止了 然后bg 到后台运行了 查看目前的工作 jobs可以看到还在运行

image.png

bg fg如果不加id号的话,就是默认最后一个




shell变量

image.png


env 查看系统变量,通常都是大写字母

set不仅仅是系统变量还有自定义变量,如果自己自定义了变量,在这里就可以查看到。echo命令可以查看变量的值

image.png

image.png

注意单引号和双引号的区别,单引号不会解析变量的内容

image.png


set | less 把set的结果传到less命令中

image.png

image.png

也找到了a=111 这个自定义的变量


变量名命名规则


- 字母,数字,下划线可以,首位不能是数字

- 变量值有特殊符号的时候,如果想显示特殊符号就用单引号引起来。

image.png

image.png

单引号会将原样输出而双引号会将变量值输出


全局变量

w可以看到当前登陆的用户和tty终端

image.png


echo $SSH_TTY可以查看当前本机使用的tty

image.png


如果不同的tty下创建的变量,是不能互相访问的

image.png

image.png

所以可以从上面看出 TTY0创建$A变量的值 TTY2是无法访问到的

如果是一个TTY下创建的新的bash下的bash也是无法访问上一级bash的变量的,这种变量叫做本地变量 local

image.png


想把变量变成全局变量,需要使用export 变量=值 才行

export A 这个时候所有下层的bash就可以访问到父级和爷级的变量了,但是反之如果子辈或孙辈创建的变量,父辈或者爷爷辈是不能访问的,也就是全局变量是自上而下,而非自下而上

export 变量=值

image.png


image.png


取消变量 unset 变量名 记得变量名不包括$


环境变量的配置文件

image.png

配置文件要从两个层面理解,一个是系统层面,就是一旦改动了全部的用户都受影响。另一个是用户层面,就是只是对当前用户生效。

系统层面

etc/profile 用户环境变量,交互,登陆才执行 

etc/bashrc 用户不用登陆,执行shell生效


用户层面 用户家目录下 所谓的/. 这个点的作用就是source命令的作用,就是让这个文件生效。但是不能执行这个文件。(调用顺序 .bash_profile---->.bashrc----->/etc/bashrc)

~/.bashrc  系统/用户执行shell脚本的时候启用。不一定需要用户登陆。 这个文件里又会调用/etc/bashrc这个文件

image.png

~/.bash_profile 用户登陆时候加载 有一些相关的设定都可以在用户的这个文件里定义 当然这样定义的话只是针对当前用户

这里面会自动加载调用 .bashrc

image.png

~/.bash_history 

~/.bash_logout 定义用户退出的时候的操作。比如每次用户退出的时候删除所有的操作历史,就可以把这个命令放到这个文件里。


profile 和 bashrc的文件区别是 profile是用户登陆的时候自动加载profile文件, 然后调用bashrc。bashrc是执行shell脚本的时候调用bashrc里的配置。



$PS1变量,指的就是用户登录后命令行左侧显示的信息。

image.png

u 用户 h hostname W 最后一层 当然也可以改

当我们登陆的时候,shell界面的左边会显示出一串东西。

第一个是当前用户

第二个是@

第三个是hostname

第四个所在目录的最后一个层级目录


如果把PS1变量的值改了换可以看看 比如W换成w

image.png

或者去掉方括号

image.png


也可以加颜色



PS2是用在另一个shell终端里面的。mysql命令行使用的就是PS2

image.png

猜你喜欢

转载自blog.51cto.com/13691454/2106840