8.6 管道符和作业控制:
1、cat 1.txt |wc -l ; cat 1.txt |grep ‘aaa‘
2、ctrl z 暂停一个任务
3、jobs查看后台的任务
4、bg[id]把任务调到后台
5、fg[id]把任务调到前台
6、命令后面加&直接丢到后台
管道符的作用:把前面命令输出的结果交给后面的命令。
示例:
[[email protected] ~]# ls 111 1_heard.txt.bak 1.txt 234 3.txt aming2 anaconda-ks.cfg bb.txt 123 1_sorft.txt.bak 1.txt.bak 2.txt 456 aminglinux a.txt [[email protected] ~]# ls |wc -l 16 [[email protected] ~]# find ./ -type f ./.bash_logout ./.bash_profile ./.bashrc ./.cshrc ./.tcshrc ./.bash_history ./.ssh/authorized_keys ./anaconda-ks.cfg ./2.txt ./3.txt ./1_heard.txt.bak ./1_sorft.txt.bak ./1.txt.bak ./安诺云智平台介绍(PPT模板).pptx ./.viminfo ./1.txt ./a.txt ./bb.txt [[email protected] ~]# find ./ -type f |wc -l //加管道符计算前面有多少行命令。 18
8.7/8.8 shell变量:
1、PATH,HOME,PWD,LOGNAME //系统变量(可使用echo查看,如echo $PATH)
2、env命令 //查看系统环境变量信息
3、 set命令多了很多变量,并且包括用户自定义的变量 //shell脚本
4、 自定义变量a=1 ,示例:
[[email protected] ~]# a=111 [[email protected] ~]# echo $a 111
5、变量名规则:字母、数字下划线,首位不能为数字。示例:
[[email protected] ~]# a1=2 [[email protected] ~]# echo $a1 2 [[email protected] ~]# a_1=3 [[email protected] ~]# echo $a_1 3 [[email protected] ~]# _a1=4 [[email protected] ~]# echo $_a1 4 [[email protected] ~]# 1aa=2 -bash: 1aa=2: 未找到命令 [[email protected] ~]# 2aa=3 -bash: 2aa=3: 未找到命令
6、 变量值有特殊符号时需要用单引号括起来,示例:
[[email protected] ~]# a=‘a b c‘ [[email protected] ~]# echo $a a b c [[email protected] ~]# a="a$bc" [[email protected] ~]# echo $a a [[email protected] ~]# a=‘a$bc‘ [[email protected] ~]# echo $a a$bc
7、 变量的累加,示例:
[[email protected] ~]# a=1 [[email protected] ~]# b=2 [[email protected] ~]# echo $a$b 12 [[email protected] ~]# a=‘a$bc‘ [[email protected] ~]# echo $a$b a$bc2 [[email protected] ~]# c="a$b"c //当多个变量叠加的时候,用双影号把变量影起来。 [[email protected] ~]# echo $c a2c
8、 全局变量export b=2
[[email protected] ~]# aming=linux //在本地定义一个变量,仅在本终端上生效 [[email protected] ~]# echo $aming linux [[email protected] ~]# export aming=linux //创建一个全局变量 [[email protected] ~]# bash //打开一个子shell ,shell就是一个进程。 [[email protected] ~]# echo $aming linux [[email protected] ~]# pstree //以树状图的方式展现进程之间的派生关系,显示效果比较直观
9、 unset变量,关闭一个变量,示例如下:
[[email protected] ~]# echo $aming linux [[email protected] ~]# unset aming [[email protected] ~]# echo $aming
扩展:
1、查看当前用户在哪个TTY下,示例:
[[email protected] ~]# w 19:13:35 up 1 day, 1:14, 2 users, load average: 0.00, 0.01, 0.05 USER TTY FROM [email protected] IDLE JCPU PCPU WHAT root pts/0 192.168.4.84 18:27 7.00s 0.21s 0.03s w root pts/1 192.168.4.84 19:13 6.00s 0.05s 0.05s -bash [[email protected] ~]# echo $SSH_TTY /dev/pts/0
8.9 环境变量配置文件:
1、系统层次etc下面,用户登录加载使用,一般不要动:
/etc/profile 用户环境变量,交互,登录才执行
2、用户层次,在用户家目录下,用户执行shell脚本的时候生效,一般不要动:
/etc/bashrc //用户不用登录,执行shell就生效
~/.bashrc //执行shell脚本时的配置文件
~/.bash_profile //用户登录时自动加载配置文件
~/.bash_history //记录命令历史的文件
~/.bash_logout //用来定义用户退出时需要做的操作
备注:每个用户下都会有两个隐藏文件,这两种文件的区别在于用户登录时自动加载profile,而profile也会自动调用bashrc,bashrc是执行shell脚本的时候,用户不用登录,就会自动执行shell脚本,只要执行shell脚本,就会调用bashrc里面的配置文件。
[[email protected] ~]# vim .bash_profile [[email protected] ~]#source .bash_profile //source执行加载这个文件命令 [[email protected] ~]#. .bash_profile //.与source命令一样作用 [[email protected] ~]# vim .bashrc
3、PS1=‘[\[email protected]\h \W]\$‘ //改变用户行显示方式的环境变量
4、PS1=‘\[\033[01;32m\]\[email protected]\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$ ‘ //改变用户行的字体颜色