管道符的做用在于将符号前面的结果丢给符号后面的命令。管道符后面并非全部的命令均可以,通常针对文档操做的命令比较经常使用,eg:cat、less、head、tail、grep、cut、sort、wc、uniq、tee、tr、split、sed、awk等等。html
[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变量,该命令不只能够显示系统内置环境变量,还能够显示用户自定义的环境变量。linux
自定义变量web
[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
变量名规则: 字母、数字下划线,首位不能为数字;变量值有特殊符号时须要用单引号括起来(单引号有脱意功能)。shell
[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。vim
[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
[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)。bash
语法: unset [变量名]less
[root@cham2 ~]# echo $cham linux [root@cham2 ~]# unset cham [root@cham2 ~]# echo $cham [root@cham2 ~]#
环境变量配置文件可划分为两个维度:系统环境变量配置文件和用户环境变量配置文件。ssh
./etc/profile 无论哪一个用户,登录时都会读取该文件。
/etc/bashrc bash执行时,无论是何种方式,都会读取此文件
.bashrc 当bash以non login方式执行时,读取此文件。
.bashrc_profile 当bash以login形式执行时,读取此文件。一般该配置文件还
会配置成去读取.bashrc。
svg
该变量用于定义“[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:~#
能显示中文的前提条件是:系统已经安装了中文语音包。
若是未安装,只须要联网后,执行
[html] view plain copy
命令便可安装,本文重点是如何配置才能显示中文。
你能够选择编辑“/etc/sysconfig/i18n”文件,可是这个文件是做用于全部用户的,这里咱们只修改为本身登陆时显示中文。
[html] view plain copy
在终端中输入命令【vim ~/.bashrc】来编辑“.bashrc”文件,以下图所示:
在最后添加“export LANG="zh_CN.UTF-8"”,
重启系统