您的位置:首页 > 运维架构 > Shell

五周第四次课 2017.11.16 管道符和作业控制、shell变量、环境变量配置文件

2017-11-16 20:30 831 查看
8.6 管道符和作业控制

管道符

管道符意思是把前面文件输出的内容传递给后面的命令。如下图就是显示当前目录的文件个数:



作业控制

ctrl z暂停当前任务(可以暂停多个),使用fg可以恢复,jobs可以查看你暂停的所有任务,如果暂停了多个任务,想要恢复其中的一个的话可以使用fg加id号,下图两个任务的id号分别是1、2。



bg可以把当前运行的任务放到后台去,但是还是在运行的,不过你这个时候就可以敲其他命令了,fg可以恢复。

sleep加数字 就是暂停窗口多少秒。

一条命令后面加&可以直接放到后台运行。其他终端窗口用jobs是看不到这个终端窗口后台的。

8.7/8.8 shell变量

PATH、HOME、PWD、LOGNAME等都是变量。

查看变量

env可以查看系统常用的环境变量。

set可以查看系统的变量,还可以查看用户自定义的变量。

自定义变量

格式:变量名=变量值

变量名规则:可以是字母、数字、下划线、但是首位不可以是数字。

变量值规则:有特殊符号的时候需要用单引号括起来。(特殊符号包括空格)





变量值叠加,如下图c=a、变量b的值、c



全局变量

w可以查看目前登录系统的所有终端。



使用如下命令可以查看你的终端名



我们使用“变量名=变量值”这种格式自定义一个变量,如果你换了一个终端这个变量不会在另一个终端里也有。

或者使用bash打开一个子shell,相当于另一个终端,(可以使用pstree查看你现在所在的具体终端)也是查不到你自定义的这个变量的。

所以这种变量叫非全局变量,或者说本地的变量。

如果我们可以使用“export 变量名=变量值”这种格式自定义变量,那么就是全局变量,使用bash打开一个子shell这个变量也是存在的,不过你新建一个终端还是不存在这个变量的,因为全局变量只是向下延伸的,也就是说只是在当前shell的子shell或者子shell的子shell向后一直延伸的shell才生效。

unset可以取消自定义的变量。

8.9 环境变量配置文件

环境变量配置文件分为两种,一种是系统层面,还有一种是用户层面。

/etc/profile和/etc/bashrc是系统层面。

~/.bashrc和~/.bash_profile和~/.bash_history和~/.bash_logout是用户层面,在用户家目录。

profile是用户登录的时候会加载到。

bashrc是用户执行或者系统执行一些shell脚本的时候会加载到。

系统层面最好不要去改动,需要改动我们可以改用户层面的,不过这只是针对当前用户的,如果想要全集生效的话就要去改系统层面的配置文件。

~/.bash_logout用来定义用户退出时候需要做的操作,如果想要用户每次退出时清除命令历史,就可以把删除命令历史的命令放到这个文件里去。

下面我们来介绍一下PS1变量,

我们登录系统之后左边都会有一串以用户名开头的字符串,这串字符串可以分为几段,分别是用户名、@、主机名、当前所在的目录最后一层。

PS1变量就是用来定义这个字符串的,



我们把目录位置改成小写的w,意思就是改成显示绝对路径。



同时我们也可以让它带颜色显示,



PS2变量是在另一种模式会用到。它的字符串默认只是一个>。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐