管道符作业控制变量定义全局变量环境变量

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]#

注意:可将大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]#

以上是关于管道符作业控制变量定义全局变量环境变量的主要内容,如果未能解决你的问题,请参考以下文章

8.6 管道符和作业控制 8.7/8.8 shell变量 8.9 环境变量配置文件

管道符和作业控制,shell变量,环境变量配置

管道符和作业控制/shell变量/环境变量配置文件

8.6-8.9 管道符和作业控制shell变量,环境变量

管道符和作业控制shell变量环境变量配置文件

管道符和作业控制 shell变量 环境变量配置文件