8.6 管道符和作业控制
管道符: |
用法:xxx | yyy 将xxx的输出结果给yyy处理[root@axiang-02 ~]# cat 1.txt xxx Math English C++ Experiment Monkey 100 90 95 Good Cat 80 100 60 Perfect Dog 90 60 70 Great Tiger 95 85 90 Fantastic[root@axiang-02 ~]# cat 1.txt |wc -l ; cat 1.txt |grep 955Monkey 100 90 95 Good Tiger 95 85 90 Fantastic
- 管道符“|”:表示把输出的内容传递给后面的命令
作业控制
- ctrl z 将当前任务暂停并放到后台
- jobs 查看后台的任务
- bg [id]后台执行任务
- fg [id]前台执行任务
- xxx&丢到后台
8.7/8.8 shell变量
常见环境变量
PATH,HOME,PWD,LOGNAME,SSH_TTY
[root@axiang-02 ~]# echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin[root@axiang-02 ~]# cd /tmp[root@axiang-02 tmp]# echo $HOME/root[root@axiang-02 tmp]# pwd/tmp[root@axiang-02 tmp]# echo $PWD/tmp[root@axiang-02 tmp]# which pwd/usr/bin/pwd[root@axiang-02 tmp]# lognameroot[root@axiang-02 tmp]# which logname/usr/bin/logname[root@lixiang01 ~]# echo $SSH_TTY 查看自己是那个终端/dev/pts/3[root@lixiang01 ~]# w 查看有几个终端 10:17:53 up 1:06, 3 users, load average: 0.00, 0.01, 0.05USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATroot pts/0 192.168.83.1 09:59 16:25 0.21s 0.21s -bashroot pts/1 192.168.83.1 10:04 12:59 0.11s 0.11s -bashroot pts/3 192.168.83.1 09:55 1.00s 0.71s 0.07s w
env命令
查看环境变量
[root@axiang-02 tmp]# env | tailLANG=zh_CN.UTF-8HISTCONTROL=ignoredupsSHLVL=1HOME=/rootLOGNAME=rootSSH_CONNECTION=10.1.1.1 55509 10.1.1.8 22LESSOPEN=||/usr/bin/lesspipe.sh %sXDG_RUNTIME_DIR=/run/user/0_=/usr/bin/envOLDPWD=/root
set命令
查看更多变量,包括自定义变量
[root@axiang-02 ~]# aaa=axiang[root@axiang-02 ~]# set |grep aaaaaa=axiang
自定义变量
[root@axiang-02 tmp]# a=xxx[root@axiang-02 tmp]# c=a;echo $c 没$不传递值a[root@axiang-02 tmp]# c=$a;echo $c 有$传递值xxx[root@axiang-02 tmp]# c='$a';echo $c 单引号脱义$$a[root@axiang-02 tmp]# c="$a";echo $c 双引号不脱义$xxx
- 变量名规则:字母、数字下划线,首位不能为数字
export命令
全局声明变量,可以备继承
[root@lixiang01 ~]# export a=axianglinux[root@lixiang01 ~]# bash[root@lixiang01 ~]# bash[root@lixiang01 ~]# pstree 用pstree查看,向下生效。是脚本间变量生效systemd─┬─NetworkManager───2*[{NetworkManager}] ├─agetty ├─anacron ├─auditd───{auditd} ├─chronyd ├─crond ├─dbus-daemon───{dbus-daemon} ├─firewalld───{firewalld} ├─irqbalance ├─master─┬─pickup │ └─qmgr ├─polkitd───5*[{polkitd}] ├─rsyslogd───2*[{rsyslogd}] ├─sshd─┬─sshd─┬─bash───bash───bash───pstree │ │ └─bash │ └─sshd───bash ├─systemd-journal ├─systemd-logind ├─systemd-udevd ├─tuned───4*[{tuned}] └─vmtoolsd───{vmtoolsd}[root@lixiang01 ~]# echo $aaxianglinux[root@lixiang01 ~]# unset a 取消定义[root@lixiang01 ~]# echo $a
- 变量只能继承,不能上传或旁传
8.9 环境变量配置文件
系统级
- /etc/profile 用户环境变量,交互,登录才执行,会调用bashrc。其中主要包含PATH USER LOGNAME MAIL INPUTRC HOSTNAME HISTSIZE umask
- /etc/bashrc 用户不用登陆,执行shell就生效,主要有umask PS1
用户级
用户家目录下有自己的环境配置文件,是隐藏的
- ~/.bashrc,PS1='[\033[01;32m][\u@\h \w][\033[0m]$ ' 这里定义比较合适
- ~/.bash_profile //自定义别名可以写这里
- ~/.bash_history //用于记录命令历史
- ~/.bash_logout //定义退出的命令,可以将一些清理工作放到这个文件钟
- profile主要为登陆用户初始化环境,会调用同级的bashrc
- bashrc定义的环境,不登录也生效,这里定义比较保险
扩展
bashrc和bash_profile的区别