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等等。html

做業控制

  • 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變量,該命令不只能夠顯示系統內置環境變量,還能夠顯示用戶自定義的環境變量。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

全局變量

  • 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)。bash

刪除變量 unset

語法: unset [變量名]less

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

[root@cham2 ~]#

 

8.9 環境變量配置文件

環境變量配置文件可劃分爲兩個維度:系統環境變量配置文件和用戶環境變量配置文件。ssh

系統配置文件(嚴禁改動)

  • /etc/profile 用戶環境變量,交互,登陸才執行
  • /etc/bashrc 用戶不用登陸,執行shell就生效

./etc/profile        無論哪一個用戶,登錄時都會讀取該文件。
/etc/bashrc        bash執行時,無論是何種方式,都會讀取此文件
.bashrc                當bash以non login方式執行時,讀取此文件。
.bashrc_profile        當bash以login形式執行時,讀取此文件。一般該配置文件還

會配置成去讀取.bashrc。

 svg

用戶配置文件

  • ~/.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:~#

 

能顯示中文的前提條件是:系統已經安裝了中文語音包。

若是未安裝,只須要聯網後,執行

 

[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"」,

重啓系統

相關文章
相關標籤/搜索