[TOC]
一、特殊符号之管道符
管道符“|”:将前面命令的输出内容传递给后面的命令处理。
|
|
二、作业控制
1、暂停当前命令并放入后台:Ctrl + z
暂停后,会将命令暂时放入后台
|
|
2、后台命令恢复到前台运行:fg
fg 后台命令id号(不加id为最后一个)
此时,命令会占用当前终端命令行
|
|
3、将后台暂停的命令在后台恢复运行:bg
bg 后台id(不加id为最后一个)
此时,如果命令运行有输出,不会占用终端命令行
|
|
4、将命令放入后台运行:&
&:在需要放入后台执行的命令后面加上&,只在本终端生效
|
|
5、终止前台命令:Ctrl + c
|
|
当我们遇到终端输入什么都不能操作时,使用ctrl + q试试
6、jobs
jobs:查看后台运行命令
只能显示当前终端下后台的命令,选项-l可以显示该命令的进程
|
|
三、shell变量
变量就是使用一个较简单的字符串来替代某些具有特殊意义的设定以及数据。
常见系统变量:PATH、HOME、PWD、LOGNAME等
1、查看shell变量
env:可列出系统预设的全部系统变量
set:除了列出系统预设的系统变量,还可以显示自定义的变量
2、自定义变量
如何自定义变量:a=b,a为变量名,b为变量内容,等号两边没有空格
自定义变量有以下规则:
(1)变量名只能由字母,数字,下划线组成,而且不能以数字开头。尽量不使用大写字母。
|
|
(2)当变量内容带有特殊字符(如空格)时,需要加上单引号。
|
|
(3)变量内容本身带有单引号,需要加上双引号
|
|
(4)变量内容需要累加其他变量的内容,其他变量需要加双引号
|
|
(5)变量内容需要用到其他命令的运行结果则需要加反引号
|
|
3、设置全局变量
自定义变量一般只针对当前终端以及bash生效,如果子bash想用该变量,可以将该自定义变量设置为全局变量。(父bash是不生效的)
- 查询当前登录用户:echo $LOGNAME
- 查询当前登录终端:echo $SSH_TTY
- 查询当前所在bash:pstree
自定义变量时,在前面加上export即可将该变量设置为全局变量
|
|
4、其他用户如何使用自定义变量
一个普通用户自定义了一个变量,如果要使得其他用户都能使用需要进行以下操作:
(1)编辑配置文件/etc/profile,写入export 变量=变量内容
(2)保存后,source重新加载/etc/profile,测试
5、取消变量赋值
unset 变量名
|
|
四、环境变量配置文件
1、/etc/profile
全局环境变量,交互,登录才执行
2、/etc/bashrc
用户不用登录,执行shell就生效
3、~/.bash_profile ~/.bashrc
这些文件的配置只针对相应用户生效
以上文件修改后需要即时生效,可以使用命令source
4、bash_profile和bashrc的区别:
bash_profile只有用户登录才调用,bashrc只要执行shell就调用。
而且,登录时,.bash_profile调用.bashrc,.bashrc调用/etc/bashrc
若要配置环境变量之类,最保险是写在 .bashrc 文件中。因为不管是登陆还是不登陆,该文件总会被调用!
5、 ~/.bash_logout ~./bash_history
~/.bash_logout:定义用户退出时,执行指定命令
6、环境变量PS1
PS1:命令提示符
PS2:换行提示符