管道符和作业控制、shell变量、环境变量配置文件

86 管道符和作业控制

管道符和作业控制、shell变量、环境变量配置文件_第1张图片
管道符、作业控制

| 管道符 把前一个命令的结果传递给后一个命令

[root@localhost ~]# ls
a1.txt  anaconda-ks.cfg  a.txt  d6z  d6z.tar.gz
[root@localhost ~]# ls |wc -l(wc -l 统计个数)
5
[root@localhost ~]# ls |grep 'a'
a1.txt
anaconda-ks.cfg
a.txt
d6z.tar.gz
[root@localhost ~]# vim a.txt (暂停vim)

[1]+  已停止               vim a.txt
[root@localhost ~]# fg(返回到vim a.txt)
vim a.txt
[root@localhost ~]# vim a.txt 

[1]+  已停止               vim a.txt
[root@localhost ~]# vim anaconda-ks.cfg 

[2]+  已停止               vim anaconda-ks.cfg
[root@localhost ~]# jobs
[1]-  已停止               vim a.txt
[2]+  已停止               vim anaconda-ks.cfg
[root@localhost ~]# vim a.txt &(后台执行)
[1] 1546
[root@localhost ~]# jobs(只能查看当前终端下的)
[1]+  已停止               vim a.txt

87 shell变量

管道符和作业控制、shell变量、环境变量配置文件_第2张图片
变量
[root@localhost ~]# env(查看系统的环境变量(不包含用户自定义变量))
[root@localhost ~]# set(set 查看所有环境变量(包含用户自定义变量))
[root@localhost ~]# lll=321
[root@localhost ~]# echo $lll
321
[root@localhost ~]# lll=123
[root@localhost ~]# echo $lll
123
[root@localhost ~]# a='a$lll'
[root@localhost ~]# echo $a
a$lll
[root@localhost ~]# a="a$lll"
[root@localhost ~]# echo $a
a123

变量名规则:由字母数字下划线组成 不能以数字开头
当变量值有特殊符号时需要使用单引号脱义

88 shell变量(下)

[root@localhost ~]# w(查看所有登录用户)
 09:45:58 up  2:09,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      09:36    9:42   0.04s  0.04s -bash
root     pts/0    172.16.79.1      09:36    6.00s  0.12s  0.00s w
[root@localhost ~]# echo $SSH_TTY(查看登录所在TTY)
/dev/pts/0
[root@localhost ~]# pstree(查看所在bash)
systemd─┬─VGAuthService
        ├─auditd───{auditd}
        ├─chronyd
        ├─crond
        ├─dbus-daemon───{dbus-daemon}
        ├─firewalld───{firewalld}
        ├─irqbalance
        ├─login───bash
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─polkitd───5*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd───bash
        ├─sshd───bash───pstree(最后一个bash就是当前所在bash)
        ├─sshd
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        └─vmtoolsd───{vmtoolsd}
[root@localhost ~]# export a=123
[root@localhost ~]# echo $a
123
[root@localhost ~]# bash
[root@localhost ~]# echo $a
123
[root@localhost ~]# exit
exit
[root@localhost ~]# bash
[root@localhost ~]# export b=321
[root@localhost ~]# echo $b
321
[root@localhost ~]# exit
exit
[root@localhost ~]# echo $b

[root@localhost ~]# bash
[root@localhost ~]# echo $b

[root@localhost ~]# exit
exit
[root@localhost ~]# echo $a
123
[root@localhost ~]# unset $a
-bash: unset: `123': 不是有效的标识符
[root@localhost ~]# unset a

当前bash全局变量向下生效
子bash不能向前生效
export 变量名=变量值
bash进入子bash,exit退出当前bash
unset 变量名 取消变量

89 环境变量配置文件

管道符和作业控制、shell变量、环境变量配置文件_第3张图片
环境变量配置文件

相当于一些shell脚本

[root@localhost network-scripts]# echo $PS1
[\u@\h \W]\$
[root@localhost network-scripts]# PS1='[\u@\h \w]\$'(更改为小写w,所在路径改为绝对路径)
[root@localhost /etc/sysconfig/network-scripts]# 

扩展
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

你可能感兴趣的:(管道符和作业控制、shell变量、环境变量配置文件)