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

8.6 管道符和作业控制

管道符的作用在于将符号前面的结果丢给符号后面的命令。管道符后面并不是所有的命令都可以,一般针对文档操作的命令比较常用,eg:cat、less、head、tail、grep、cut、sort、wc、uniq、tee、tr、split、sed、awk等等。

作业控制

  • Ctrl+z 暂停一个正在执行的任务
  • jobs 查看在后台运行的任务
  • bg[id] =background把任务调到后台运行
  • fg[id] =foreground把任务调到前台运行
  • “&” 命令后面加&相当于直接把任务调到后台运行

8.7-8.8 shell变量

  • env命令:查看系统内置环境变量
[root@cham2 ~]# env
XDG_SESSION_ID=3
HOSTNAME=cham2
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=192.168.230.1 59299 22
SSH_TTY=/dev/pts/1
USER=root
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:
MAIL=/var/spool/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
LANG=zh_CN.UTF-8
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
LOGNAME=root
SSH_CONNECTION=192.168.230.1 59299 192.168.230.135 22
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIME_DIR=/run/user/0
_=/usr/bin/env
[root@cham2 ~]# 

还可以使用set命令查看shell变量,该命令不仅可以显示系统内置环境变量,还可以显示用户自定义的环境变量。

 

自定义变量

[root@cham2 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@cham2 ~]# a=111
[root@cham2 ~]# echo $a
111
[root@cham2 ~]# set |grep 111
a=111

变量名规则: 字母、数字下划线,首位不能为数字;变量值有特殊符号时需要用单引号括起来(单引号有脱意功能)。

 

  • 变量累加
[root@cham2 ~]# a=123
[root@cham2 ~]# b=456
[root@cham2 ~]# echo $a$b
123456
[root@cham2 ~]# d="c0"
[root@cham2 ~]# echo $d
c0
[root@cham2 ~]# d="$c0"此写法不合法,所以变量d不会被赋值
[root@cham2 ~]# echo $d

[root@cham2 ~]# c="$a$b"789

[root@cham2 ~]# echo $c
123456789
[root@cham2 ~]# 

注: 多个变量进行叠加时需要对目标变量(等号右边)加上双引号,并且当在对新的变量附加新的值的时候写法: c="$a$b"789。

全局变量

  • export
    当在一个父shell下设定一个变量后,进入子shell该变量并不生效,如果想让该变量在子shell下生效需要使用export声明一下才可以(跨终端不生效)。 语法: export [变量名]
    当export不指定变量时,它会声明系统所有变量。
[root@cham2 ~]# export cham=linux
[root@cham2 ~]# echo $cham
linux
[root@cham2 ~]# bash
[root@cham2 ~]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─agetty
        ├─anacron
        ├─auditd───{auditd}
        ├─chronyd
        ├─crond
        ├─dbus-daemon
        ├─firewalld───{firewalld}
        ├─irqbalance
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─polkitd───5*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd─┬─sshd───bash
        │      └─sshd─┬─bash───bash───pstree
        │             └─bash
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        └─vmtoolsd───{vmtoolsd}

[root@cham2 ~]# echo $cham
linux

说明: 当在子shell设定变量后即便声明后也不能在父shell生效。

  • 当打开多个终端的时候,使用如下命令查看自己当前所在终端:
[root@cham2 ~]# w
 15:10:28 up  1:19,  3 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.230.1    三22   16:09m  0.13s  0.13s -bash
root     pts/1    192.168.230.1    14:25    4.00s  0.15s  0.00s w
root     pts/2    192.168.230.1    15:10    7.00s  0.01s  0.01s -bash
[root@cham2 ~]# echo $SSH_TTY
/dev/pts/1
  • bash命令&pstree命令    安装pstree   "yum install -y psmisc
[root@cham2 ~]# bash 
[root@cham2 ~]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─agetty
        ├─anacron
        ├─auditd───{auditd}
        ├─chronyd
        ├─crond
        ├─dbus-daemon
        ├─firewalld───{firewalld}
        ├─irqbalance
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─polkitd───5*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd─┬─sshd───bash
        │      └─sshd─┬─bash───bash───pstree
        │             └─bash
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        └─vmtoolsd───{vmtoolsd}

在当前shell中国运行bash命令会进入一个新的shell,这个shell是原来shell的子shell,可以使用pstree命令把系统中所有进程以树状图结构打印出来,pstree所在行显示的即为当前所在shell(exit可以退出子shell)。

删除变量 unset

语法: unset [变量名]

[root@cham2 ~]# echo $cham
linux
[root@cham2 ~]# unset cham
[root@cham2 ~]# echo $cham

[root@cham2 ~]# 

 

8.9 环境变量配置文件

环境变量配置文件可划分为两个维度:系统环境变量配置文件和用户环境变量配置文件。

系统配置文件(严禁改动)

  • /etc/profile 用户环境变量,交互,登录才执行
  • /etc/bashrc 用户不用登录,执行shell就生效

./etc/profile        不管哪个用户,登陆时都会读取该文件。
/etc/bashrc        bash执行时,不管是何种方式,都会读取此文件
.bashrc                当bash以non login方式执行时,读取此文件。
.bashrc_profile        当bash以login形式执行时,读取此文件。通常该配置文件还

会配置成去读取.bashrc。

 

用户配置文件

  • ~/.bashrc
  • ~/.bash_profile
  • ~/.bash_history
  • ~/.bash_logout 在此可以设定退出登录时系统执行的操作(如清除缓存、清除历史记录等等)

变量“PS1”

该变量用于定义“[root@cham2 ~]# ”此部分显示内容。

“PS1='\ [\033[01;32m\ ]\u@\h\ [\033[00m\ ]:\ [\033[01;36m\ ]\w\ [\033[00m\ ] \ $ ' ” 带颜色显示

<root@cham2 /tmp> # PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$ '

root@cham2:~# echo $PS1
\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$
root@cham2:~# 

211733_bMz3_3708120.png

211741_TH6I_3708120.png

 

能显示中文的前提条件是:系统已经安装了中文语音包。

如果未安装,只需要联网后,执行

 

[html] view plain copy

  1. sudo yum groupinstall chinese-support  

 

 

命令即可安装,本文重点是如何配置才能显示中文。

 

 

你可以选择编辑“/etc/sysconfig/i18n”文件,但是这个文件是作用于所有用户的,这里我们只修改成自己登录时显示中文。

 

[html] view plain copy

 

  1. /etc/sysconfig/i18n  

 

 

在终端中输入命令【vim ~/.bashrc】来编辑“.bashrc”文件,如下图所示:

 

在最后添加“export LANG="zh_CN.UTF-8"”,

重启系统

转载于:https://my.oschina.net/u/3708120/blog/1800077

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值