8.6 管道符和作业控制

| 表示把一个文件输出的内容传递给后面命令
ctrl+z 暂停一个命令的运行
fg 使暂停的命令恢复
jobs 可以查看目前在暂停的命令
fg n n为数字,可以针对查看到的暂停命令选择打开(如果不加ID 就会默认运行最后一次执行的命令)
bg n n为数字,可以针对查看到的暂停命令选择丢到后台运行,在后台运行,也会在前台显示,但不影响前台的输出命令(如果不加ID 就会默认运行最后一次执行的命令)

运行命令的时候 加上 & 符号,可以直接把命令丢到后台运行

sleep 100 &

jobs 命令例的任务,只能在当前终端看到,新打开的终端是看不到

8.7/8.8 shell变量

环境变量 PATH 是系统内置的变量
可以通过env 用于查看系统的常用变量
set 也可以查看环境变量,不止会查看系统的环境变量,也会查看用户自定义的变量
变量的名字通常都是全大写的英文字母\

  • 定义变量

[root@aminglinux-01 ~]# a=111[root@aminglinux-01 ~]# echo $a111
  • 变量名的规则 字母、数字下划线,首位不能为数字
    变量值有特殊符号时需要用 ‘ 单引号括起来,比如空格,之类的特殊符号; 因为单引号,带有脱义;

  • 变量的累加

[root@aminglinux-01 ~]# a='a$bc'[root@aminglinux-01 ~]# b=' $bc'[root@aminglinux-01 ~]# echo $a$ba$bc $bc
  • 全局变量

使用w 可以查看当前系统登录情况

[root@aminglinux-01 ~]# w
 02:13:18 up  3:06,  3 users,  load average: 0.00, 0.01, 0.04USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.133.1    23:07   30.00s  0.06s  0.06s -bash
root     pts/1    192.168.133.1    02:13    4.00s  0.04s  0.01s w
root     pts/2    192.168.133.1    02:13    3.00s  0.01s  0.01s -bash

因为登录的用户多,如果你想查看当前使用的变量,可以使用SSH_TTY 这个变量查看

[root@aminglinux-01 ~]# echo $SSH_TTY/dev/pts/1

可以用pstree查看shell树状图,可以从中查看到bash之间的父子级关键\

yum install psmisc 安装pstree命令

[root@aminglinux-01 ~]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─agetty
        ├─auditd───{auditd}
        ├─chronyd
        ├─crond
        ├─dbus-daemon
        ├─firewalld───{firewalld}
        ├─master─┬─pickup
        │        └─qmgr
        ├─polkitd───5*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd─┬─sshd───bash───bash───pstree
        │      ├─sshd───bash───bash───bash───bash
        │      └─sshd───bash───bash───bash
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        └─vmtoolsd───{vmtoolsd}

在pts/1下 自定义一个变量,在pst/2下是看不到的

export a=111

这个变量,只会在他当前的 shell 及子 shell 下生效 直接运行bash 就可以打开子shell

全局变量仅仅是在他的子shell下生效

unset a 可以取消变量

8.9 环境变量配置文件

/etc/profile                用户环境变量,交互,登录才执行
/etc/bashrc                 用户不用登录,执行shell就生效
~/.bashrc~/.bash_profile~/.bash_history~/.bash_logout

PS1='[\u@\h \W]$' 这个文件是在/etc/bashrc里面定义的, PS1 变量就是 命令行提示符

[root@aminglinux-01 ~]# echo $PS1[\u@\h \W]\$
[root@aminglinux-01 network-scripts]# PS1='[\u@\h \w]\$ '[root@aminglinux-01 /etc/sysconfig/network-scripts]#

PS1 里面的 W表示相对路径,w表示绝对路径 [\u@\h \W]$ 字母对应的 u = 用户 h = 主机名 W = 当前所在的绝对路径

第一个维度 系统层次

/etc/profile/etc/bashrc

第二个维度 用户层次

~/.bashrc~/.bash_profile~/.bash_history~/.bash_logout    用户退出时的一些操作

每个用户的家目录下,都会有.bashrc和.bash_profile

. 点在shell里面等同于source , 加载配置文件下的一些配置
source .bash_profile = . .bash_profile
bash_profile会自动调用bashrc
bashrc又会自动调用/etc/bashrc