管道符和作业控制

管道“| ”就是将前面命令输出作为管道后面命令的输入

[root@localhost a]# touch 1.txt[root@localhost a]# ls1.txt[root@localhost a]# cat 1.txt | wc -l0[root@localhost a]# echo "123" > 1.txt[root@localhost a]# echo "123" >> 1.txt[root@localhost a]# cat 1.txt | wc -l2

ctrl + z 暂停一个任务

[root@localhost a]# vim 1.txt[1]+  已停止               vim 1.tx

jobs查看后台的任务

[root@localhost a]# jobs[1]+  已停止               vim 1.txt

bg [id]把任务调到后台

[root@localhost a]# jobs[1]   已停止               vim 1.txt[2]-  已停止               sleep 100[3]+  已停止               sleep 100[root@localhost a]# bg 2[2]- sleep 100 &[root@localhost a]# jobs[1]-  已停止               vim 1.txt[2]   运行中               sleep 100 &[3]+  已停止               sleep 100

fg [id]把任务调到前台

root@localhost a]# jobs[1]-  已停止               vim 1.txt[2]+  已停止               sleep 100[root@localhost a]# fg 2

命令后面加&直接丢到后台

[root@localhost a]# sleep 300 &[5] 8680[root@localhost a]# jobs[4]+  已停止               sleep 100[5]-  运行中               sleep 300 &

shell变量

  • 系统环境变量:PATH , HOME , PWD , LOGNAME 等

  • 获取到系统变量命令:env

  • 比env命令多了很多变量,并且包括用户自定义的变量命令:set

  • 自定义变量

#变量名规则:字母、数字下划线,首位不能为数字[root@localhost a]# a=1        自定义变量[root@localhost a]# echo $a1#变量值有特殊符号时需要用单引号括起来[root@localhost a]# a="a$bc"[root@localhost a]# echo aa[root@localhost a]# a='a$bc'[root@localhost a]# echo $aa$bc#变量的累加[root@localhost a]# a=1 b=2[root@localhost a]# echo $a,$b1,2[root@localhost a]# echo $a$b   累加12#全局变量export b=2[root@localhost a]# w        查看终端 22:39:08 up  2:50,  2 users,  load average: 0.05, 0.06, 0.06USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHATroot     tty1                      19:49    2:49m  0.03s  0.03s -bashroot     pts/0    192.168.0.2      19:54    4.00s  0.42s  0.00s w[root@localhost a]# echo $SSH_TTY/dev/pts/0[root@localhost a]# bash   [root@localhost a]# pstree        ├─sshd───sshd───bash─┬─bash───pstree     #以树状图显示进程间关系        │                    └─sleep        ├─systemd-journal        ├─systemd-logind        ├─systemd-udevd        ├─tuned───4*[{tuned}]        └─vmtoolsd───{vmtoolsd}[root@localhost a]# echo $a                                    #无法调用变量a[root@localhost a]# export b=2       全局变量b[root@localhost a]# echo $b2[root@localhost a]# bash[root@localhost a]# echo $b         子bash 可以调用变量b2[root@localhost a]# unset b        取消全局变量[root@localhost a]# echo $b

环境变量配置文件

环境变量配置文件分为两个层次:系统层次和用户层次。

系统层次[系统全局环境变量设定]:

  • /etc/profile 用户环境变量,交互,登录才执行

  • /etc/bashrc 用户不用登录,执行shell就生效

注意:系统层次不要修改,防止出问题

如果有需求,可以编辑用户目录下的.bash_profile配置文件

用户层次:

  • ~/.bashrc

这个文件主要保存个人的一些个性化设置,如命令别名、路径等。也即在同一个服务器上,只对某个用户的个性化设置相关。

  • ~/.bash_profile

  • ~/.bash_history

  • ~/.bash_logout

PS1--设置默认提示符

[root@localhost a]# PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$ '

扩展阅读资料

1.

2.

3.