管道符、shell變量、環境變量配置文件

8.6 管道符和做業控制

管道符「|」

管道符的做用在於將符號前面的結果丟給符號後面的命令。管道符後面並非全部的命令均可以,通常針對文檔操做的命令比較經常使用,eg:cat、less、head、tail、grep、cut、sort、wc、uniq、tee、tr、split、sed、awk等等。linux

做業控制

  • Ctrl+z 暫停一個正在執行的任務
  • jobs 查看在後臺運行的任務
  • bg[id] =background把任務調到後臺運行
  • fg[id] =foreground把任務調到前臺運行
  • 「&」 命令後面加&至關於直接把任務調到後臺運行

8.7-8.8 shell變量

  • env命令:查看系統內置環境變量
[root@3 tmp]# env
XDG_SESSION_ID=2
HOSTNAME=3
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=192.168.8.1 51650 22
OLDPWD=/tmp/test.iso
SSH_TTY=/dev/pts/0
USER=root
……

還可使用set命令查看shell變量,該命令不只能夠顯示系統內置環境變量,還能夠顯示用戶自定義的環境變量。shell

自定義變量

[root@3 tmp]# set |grep adia
[root@3 tmp]# set |grep adai
HOSTNAME=adai002
a=adai

變量名規則: 字母、數字下劃線,首位不能爲數字;變量值有特殊符號時須要用單引號括起來(單引號有脫意功能)。緩存

  • 變量累加
[root@3 tmp]# a=123
[root@3 tmp]# b=456
[root@3 tmp]# echo $a$b
123456
[root@3 tmp]# d="$c0"  此寫法不合法,因此變量d不會被賦值
[root@3 tmp]# echo $d
(空白)
[root@3 tmp]# c="$a$b"789
[root@3 tmp]# echo $c
123456789

注: 多個變量進行疊加時須要對目標變量(等號右邊)加上雙引號,而且當在對新的變量附加新的值的時候寫法: c="$a$b"789。bash

全局變量

  • export
    當在一個父shell下設定一個變量後,進入子shell該變量並不生效,若是想讓該變量在子shell下生效須要使用export聲明一下才能夠(跨終端不生效)。 語法: export [變量名]
    當export不指定變量時,它會聲明系統全部變量。
[root@3 ~]# a=3linux
[root@3 ~]# echo $a
3linux
[root@3 ~]# export a=3linux
[root@3 ~]# echo $a
3linux
[root@3 ~]# bash
[root@3 ~]# echo $a
3linux

說明: 當在子shell設定變量後即使聲明後也不能在父shell生效。less

  • 當打開多個終端的時候,使用以下命令查看本身當前所在終端:
[root@3 tmp]# w
查看當前正在運行的全部端口
 16:48:33 up  1:28,  3 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      15:21    1:27m  0.05s  0.05s -bash
root     pts/0    192.168.8.1      15:21    1.00s  0.20s  0.01s w
root     pts/1    192.168.8.1      16:46    1:53   0.01s  0.01s -bash
[root@3 tmp]# echo $SSH_TTY
查看當前窗口所在終端
/dev/pts/0
  • bash命令&pstree命令
[root@3 ~]# bash
[root@3 ~]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─auditd───{auditd}
        ├─chronyd
        ├─crond
        ├─dbus-daemon
        ├─firewalld───{firewalld}
        ├─login───bash
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─polkitd───5*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd───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)。ssh

刪除變量 unset

語法: unset [變量名]spa

[root@3 ~]# set
……
3123=3123
b=456
c=3123
d=
[root@3 ~]# unset a
[root@3 ~]# set
……
a=3linux
3123=3123
b=456
c=3123
d=

8.9 環境變量配置文件

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

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

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

用戶配置文件

  • ~/.bashrc
  • ~/.bash_profile
  • ~/.bash_history
  • ~/.bash_logout 在此能夠設定退出登陸時系統執行的操做(如清除緩存、清除歷史記錄等等)

變量「PS1」

該變量用於定義「[root@3002 ~]# 」此部分顯示內容。
eg:
「PS1='\ [\033[01;32m\ ]\u@\h\ [\033[00m\ ]:\ [\033[01;36m\ ]\w\ [\033[00m\ ] \ $ ' 」 帶顏色顯示進程

[root@3 ~]# echo $PS1
[\u@\h \W]\$
[root@3 ~]# PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$ '
root@3:~# !echo
echo $PS1
\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$
相關文章
相關標籤/搜索