8.6 管道符和作业控制
8.7/8.8 shell变量
8.9 环境变量配置文件
8.6 管道符
|:把前一个命令的内容输入给后面的命令
1 | [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 | grep 'IPADDR' ##在ifcfg-ens33中找出带IPADDR的行 |
1 | [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 | wc -l ##统计ifcfg-ens33的行数 |
作业控制
Ctrl + z :把运行的任务暂停并放进后台
1 | [root@localhost ~]# sleep 1000 ##sleep 1000 进入睡眠状态1000秒 |
jobs:显示后台的任务列表情况
1 | [root@localhost ~]# jobs 这里显示有一个任务停止 序号为1 |
-l:显示进程号
1 | [root@localhost ~]# jobs -l |
fg 序号:把任务放到前台运行
1 | [root@localhost ~]# fg 1 |
bg 序号 或者 命令 &: 把任务放到前台运行
1 | [root@localhost ~]# bg 1 |
1 | [root@localhost ~]# sleep 200 & ##命令后面加&说明把任务放后台运行 |
8.7/8.8 变量
env:查看系统自带的变量
set:查看系统所有的变量,包括用户自定义变量和系统变量
变量名命名规则:数字,字母,下划线,首位不能是数字
1
2
3[root@localhost ~]# a1=1
[root@localhost ~]# echo $a1
1
1 | [root@localhost ~]# a_1=2 |
1 | [root@localhost ~]# _1=3 |
1 | [root@localhost ~]# 1_a=4 ##首位不能是数字 |
变量值用单引号 双引号 反引号的区别
1.由单引号括起来的字符都作为普通字符出现。特殊字符用单引号括起来以后,也会失去原有意义,而只作为普通字符解释。
1
2
3[root@localhost ~]# a='$d%^# sd[]' ##所有的特殊符号都作为普通字符打出来
[root@localhost ~]# echo $a
$d%^# sd[]2.由双引号括起来的字符,除$(美元符号)、\(反斜杠)、’(单引号)、和”(双引号)这几个字符仍是特殊字符并保留其特殊功能外,其余字符仍作为普通字符对待。
1
2
3[root@localhost ~]# b="$a\$" ##$a指定a的值 \$使$失去原意
[root@localhost ~]# echo $b
$d%^# sd[]$3.反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分。
1
2
3[root@localhost ~]# c=`whoami | wc -l`3 ##先执行反引号里面的命令
[root@localhost ~]# echo $c
13$()
也是可以表示反引号1
2
3[root@localhost ~]# c=$(whoami | wc -l)3
[root@localhost ~]# echo $c
13
全局变量
export:设置全局变量 子bash中可以生效
用法:export 变量名=值
1
2
3
4
5
6 [root@localhost ~]# export kun='234$$$@' ##父bash中定义变量
[root@localhost ~]# echo $kun
234$$$@
[root@localhost ~]# bash ##子bash中也生效
[root@localhost ~]# echo $kun
234$$$@
取消变量
unset:取消变量
用法:unset 变量名
1
2[root@localhost ~]# unset kun
[root@localhost ~]# echo $kun
8.9 环境变量的配置文件
环境变量的配置为解决分为系统级别 /etc/profile
/etc/bashrc
和 用户级别 ~/.bashrc
~/.bash_profile
其中/etc/profile
~/.bash_profile
都是用户登录系统时候自动加载的
而/etc/bashrc
~/.bashrc
是不用用户登录 执行shell就生效的
~/.bash_logout
定义用户退出时候做的动作