管道符的做用在於將符號前面的結果丟給符號後面的命令。管道符後面並非全部的命令均可以,通常針對文檔操做的命令比較經常使用,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"」,
重啓系統