管道符作业控制变量定义全局变量环境变量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了管道符作业控制变量定义全局变量环境变量相关的知识,希望对你有一定的参考价值。
管道符符号|:管道符,将前面的命令交给后面的命令;
实验1:统计1.txt的段落长度;
cat 1.txt |wc -l
[[email protected] abc]# cat 1.txt |wc -l
2
[[email protected] abc]#
实验2:查看2.txt文件,将文件中包含r的字符串打印出来;
cat 2.txt |grep ‘r‘
[[email protected] abc]# cat 2.txt|grep ‘r‘
r111111
r
r
r
[[email protected] abc]#
作业控制
当运行进程时,可以使它后台暂停(ctrl+z),然后使用bg命令后台活动,使用fg命令恢复它;相当于Windows tab+Alt键;
例如:vim 2.txt 使用ctrl+z暂停
[[email protected] abc]# vi 2.txt
[1]+ 已停止 vi 2.txt
[[email protected] abc]#
fg命令:
恢复或切换到前台,多个后台可以使用fg [序列号] 来实现调回;
[[email protected] abc]# fg
vi 2.txt
[[email protected] abc]#
jobs命令:
查询中断作业,后台运行;
[[email protected] abc]# jobs
[1]- 已停止 vim 2.txt
[2]+ 已停止 vim 3.txt
bg命令:
后台活动作业,必须在暂停后才能bg切换到后台活动;
[email protected] abc]# jobs
[1] 已停止 vim 2.txt
[2]- 已停止 vim 3.txt
[3]+ 已停止 vim a.txt
[[email protected] abc]# bg
[3]+ vim a.txt &
[[email protected] abc]# fg 3
vim a.txt
[[email protected] abc]#
变量
常见的变量:
- PATH:决定shell在哪些目录下寻找命令和程序;
- HOME:家目录;
- PWD:当前目录;
- LOGNAME:当前用户名称;
env命令:
查看常见变量;
set命令:
查看全部系统以及自己定义变量;
变量名规则:字母、数字、下划线,首位不能数字;
变量值有特殊符号需要用单引号‘@@@’ 字符串
变量的累加使用双引号
实验1:特殊符号变量,必须加单引号;
[[email protected] abc]# a=‘a$bc‘
[[email protected] abc]# echo $a
a$bc
[[email protected] abc]#
实验2:变量的累加,使用双引号才能将$b的变量值显示出来;
[[email protected] abc]# echo $a
a$bc
[[email protected] abc]# echo $b
2
[[email protected] abc]# c="a$b"
[[email protected] abc]# echo $c
a2
[[email protected] abc]#
定义全局变量:
格式:
export [变量名]=[变量值]
[[email protected] abc]# export aaa=123
[[email protected] abc]# echo $aaa
123
[[email protected] abc]#
取消全局变量:
格式:
unset [变量名]
[[email protected] abc]# echo $aaa
123
[[email protected] abc]# unset aaa
[[email protected] abc]# echo $aaa
[[email protected] abc]#
pstree
pstree命令需要安装psmisc包;
yum install psmisc
查看当前所在bash
[[email protected] abc]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
├─VGAuthService
├─agetty
├─auditd───{auditd}
├─chronyd
├─crond
├─dbus-daemon───{dbus-daemon}
├─firewalld───{firewalld}
├─lvmetad
├─master─┬─pickup
│ └─qmgr
├─polkitd───5*[{polkitd}]
├─rsyslogd───2*[{rsyslogd}]
├─sshd───sshd───bash───pstree
├─systemd-journal
├─systemd-logind
├─systemd-udevd
├─tuned───4*[{tuned}]
└─vmtoolsd───{vmtoolsd}
[[email protected] abc]#
进入新bash
bash
[[email protected] abc]# bash
[[email protected] abc]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
├─VGAuthService
├─agetty
├─auditd───{auditd}
├─chronyd
├─crond
├─dbus-daemon───{dbus-daemon}
├─firewalld───{firewalld}
├─lvmetad
├─master─┬─pickup
│ └─qmgr
├─polkitd───5*[{polkitd}]
├─rsyslogd───2*[{rsyslogd}]
├─sshd───sshd───bash───bash───pstree
├─systemd-journal
├─systemd-logind
├─systemd-udevd
├─tuned───4*[{tuned}]
└─vmtoolsd───{vmtoolsd}
[[email protected] abc]#
退出
exit
环境变量
全局的变量(针对所有用户):
- /etc/profile :用户换机变量、交互、登录才执行;
- /etc/bashrc : 用户不用登录、执行shell就生效;
用户home变量文件(只针对当前用户):
- ~/.bashrc:登录或每次打开新的shell时,执行该文件。一般自定义变量写这里;
- ~/.bash_profile:定义用户个人话路径与房价变量文件每次,当用户登录时,改文件仅仅执行一次;
- ~/.bash_history :记录历史命令;
- ~/.bash_logout:退出shell时,执行该文件。可以进行一些清理的工作;
~ 代表家目录
PS1变量
当我们登录系统后,命令的最左边会显示:
[[email protected] abc]#
[[email protected] abc]#
怎样控制这个显示,那么就要说到PS1变量;
PS1变量定义在 /etc/bashrc 文件下面;
[[email protected] abc]# echo $PS1
[\[email protected]\h \W]\$
[[email protected] abc]#
- [email protected]:代表用户名
- h:代表hostname
- W:代表最后一个路径
注意:可将大W改小w 显示绝对完全路径
实验1:修改显示为绝对路径;
[[email protected] abc]# echo $PS1
[\[email protected]\h \W]\$
[[email protected] abc]# PS1=‘[\[email protected]\h \w]\$ ‘
[[email protected] ~/abc]# cd /etc/sysconfig/
[[email protected] /etc/sysconfig]#
以上是关于管道符作业控制变量定义全局变量环境变量的主要内容,如果未能解决你的问题,请参考以下文章