码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2018-04-23 17:10:16      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:shell 环境变量 配置文件

五周第四次课(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



管道符和作业控制

技术分享图片

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


比如

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

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


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

技术分享图片

技术分享图片

作业控制


作业就是当前的操作 

ctrl z 就是暂停一个工作 

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

技术分享图片

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

技术分享图片

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

技术分享图片

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




shell变量

技术分享图片


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

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

技术分享图片

技术分享图片

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

技术分享图片


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

技术分享图片

技术分享图片

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


变量名命名规则


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

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

技术分享图片

技术分享图片

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


全局变量

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

技术分享图片


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

技术分享图片


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

技术分享图片

技术分享图片

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

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

技术分享图片


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

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

export 变量=值

技术分享图片


技术分享图片


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


环境变量的配置文件

技术分享图片

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

系统层面

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

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


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

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

技术分享图片

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

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

技术分享图片

~/.bash_history 

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


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



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

技术分享图片

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

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

第一个是当前用户

第二个是@

第三个是hostname

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


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

技术分享图片

或者去掉方括号

技术分享图片


也可以加颜色



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

技术分享图片

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

标签:shell 环境变量 配置文件

原文地址:http://blog.51cto.com/13691454/2106840

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!