1. 程式人生 > >管道符和作業控制,shell變量,環境變量配置文件

管道符和作業控制,shell變量,環境變量配置文件

管道符 作業控制 變量

管道符和作業控制
  • |把前面命令結果交給後面的命令處理。
    [root@aminglinux-02 ~]# cat 1.txt |wc -l  統計行數
    5
    [root@aminglinux-02 ~]# cat 1.txt |grep ‘aaa‘
    aaaa   剪切出aaa的行
  • ctrl z 暫停一個任務,這個任務只能在當前終端操作,其它終端可以查到進程
  • jobs查看後臺的任務
  • bg [id]把任務調到後臺,不加id默認最後一個
  • fg [id]把任務調到前臺,不加id默認最後一個
  • 命令後面加&直接丟到後臺,
    [root@aminglinux-02 ~]# sleep 200    暫停200秒
    ^Z
    [1]+  已停止               sleep 200
    [root@aminglinux-02 ~]# jobs
    [1]+  已停止               sleep 200
    [root@aminglinux-02 ~]# fg 1
    sleep 200
    [root@aminglinux-02 ~]# bg 1
    [1]+ sleep 200 &
    [root@aminglinux-02 ~]# jobs
    [1]+  運行中               sleep 200 &
    [root@aminglinux-02 ~]# 
    [root@aminglinux-02 ~]# sleep 100 &
    [1] 2213
    [root@aminglinux-02 ~]# jobs
    [1]+  運行中               sleep 100 &

shell變量

  • PATH,HOME,PWD,LOGNAME都是變量
  • evn命令顯示系統的環境變量
  • set命令不僅可以查看系統的環境變量,還能查看用戶自定義的變量,內容很多set |less查看更方便
  • 自定義變量:a=111
    [root@aminglinux-02 ~]# a=111
    [root@aminglinux-02 ~]# echo $a
    111
    [root@aminglinux-02 ~]# set |grep 111
    _=111
    a=111
  • 變量名的規則:字母,數字,下劃線,首位不能為數字
    [root@aminglinux-02 ~]# a1=1
    [root@aminglinux-02 ~]# a_1=2
    [root@aminglinux-02 ~]# 1a=3
    -bash: 1a=3: 未找到命令
  • 變量值有特殊符號時需要用單引號括起來,別用雙引號,有些特殊符號不能脫意
    [root@aminglinux-02 ~]# a=‘a b c‘
    [root@aminglinux-02 ~]# a="a$bc"
    [root@aminglinux-02 ~]# echo $a
    a
    [root@aminglinux-02 ~]# a=‘a$bc‘
    [root@aminglinux-02 ~]# echo $a
    a$bc
  • 變量的累加,如果一個變量引用另一個變量時,要加雙引號,不能加單引號。
    [root@aminglinux-02 ~]# a=1
    [root@aminglinux-02 ~]# b=2
    [root@aminglinux-02 ~]# echo $a$b
    12
    [root@aminglinux-02 ~]# c=a"$b"c
    [root@aminglinux-02 ~]# echo $c
    a2c
  • 全局變量export a=12 設置一個全局變量,只向下的子shell往下復制,在它的上一級shell和其它終端不生效,腳本1裏面嵌套腳本2,2可以使用1裏面的變量
    [root@aminglinux-02 ~]# w
    09:41:58 up 57 min,  1 user,  load average: 0.00, 0.01, 0.05
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/0    192.168.16.1     08:48    6.00s  0.62s  0.16s w
    [root@aminglinux-02 ~]# echo $SSH_TTY 查看自己的登錄TTY
    /dev/pts/0
    pstree命令以樹狀圖的方式展現進程之間的派生關系,顯示效果比較直觀
  • unset 變量名---取消變量

環境變量配置文件

  • /etc/profile 用戶環境變量,交互,登錄才執行,這是系統級的全局變量
  • /etc/bashrc 用戶不用登錄,執行shell就生效,平時別編輯
  • ~/.bash_profile 有需要可以編輯用戶自己的環境變量
  • source .bash_profile 使其更改生效
  • ~/.bashrc
  • .bash_profile啟動會調用.bashrc,.bashrc會調用系統的bashrc
  • 若要配置環境變量之類,最保險是寫在 .bashrc 文件中。因為不管是登陸還是不登陸,該文件總會被調用!
  • ~/.bash_history用戶的命令歷史文件
  • ~/.bash_logout讓用戶每次退出時需要刪除命令歷史可以把命令加入這個文件
  • PS1=‘[[\033[01;32m]\u@\h[\033[00m]:[\033[01;36m]\w[\033[00m]]\$‘ 帶顏色顯示 設置命令輸入左側顯示信息,PS2設置進入其它終端顯示如mysql命令輸入效果顯示
    [root@aminglinux-02 ~]# echo $PS1
    [\u@\h \W]\$
    u顯示登錄的用戶,h顯示登錄的機器名,W顯示當前目錄名,$顯示用戶級別普通用戶顯示$root用戶顯示#
    [u@hw]$PS1=‘[\u@\h \w]\$‘
    [root@aminglinux-02 /etc/sysctl.d]#

擴展

  • bash_profile和bashrc區別
  • 簡易審計系統
  • 關於PROMPT_COMMAND環境變量的含義

管道符和作業控制,shell變量,環境變量配置文件