二十四、管道符和作業控制、shell變量、環境變量配置文件
一、管道符和作業控制
管道符:| 表示把前面文件輸出的內容傳遞給後面的命令。
|grep:過濾,指定關鍵詞的命令。|grep ’aaa‘。
作業控制
Ctrl+z:暫停一個任務。等於把當前任務放在了後臺,使用fg命令再調回任務裏。fg:前臺,foreground。bg:後臺,將任務調到後臺去運行。示例:
vim /etc/passwd
[1]+ 已停止 vim /etc/passwd
可以停止多個任務,被暫停的任務會有編號。
想調回哪個就fg 1或者fg 2。fg+編號即可。不加編號就會執行最後一個任務。
jobs命令:把停止的任務列出來。
sleep 1000
^Z
[1]+ 已停止 sleep 1000
sleep 1250
^Z
[2]+ 已停止 sleep 1250
jobs
[1]- 已停止 sleep 1000
[2]+ 已停止 sleep 1250
bg 2
[2]+ sleep 1250 &
jobs
[1]+ 已停止 sleep 1000
[2]- 運行中 sleep 1250 &
sleep 1000 &
[1] 1253
jobs
[1]+ 運行中 sleep 1000 &
在當前終端後臺運行的命令,在另外一個終端是看不到的,但是可以看到進程。
二、shell變量
變量:PATH,HOME,PWD,LOGNAME
env命令:列出系統預設的全部系統變量,系統的變量一般都是大寫的英文字母。示例:
env 列出來的裏面就有這些系統變量。
XDG_SESSION_ID=1
HOSTNAME=yaowei-01
SELINUX_ROLE_REQUESTED=
TERM=xterm
SHELL=/bin/bash
SSH_CLIENT=192.168.93.1 64290 22
SELINUX_USE_CURRENT_RANGE=
SSH_TTY=/dev/pts/0
USER=root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
LANG=zh_CN.UTF-8 EN為英文,CH為中文,UTF-8是字符編碼。
SELINUX_LEVEL_REQUESTED=
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
LOGNAME=root
SSH_CONNECTION=192.168.93.1 64290 192.168.93.130 22
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIMEDIR=/run/user/0
=/usr/bin/env
set命令:輸出環境變量。不僅可以查看系統預設的環境變量,還可以查看到用戶自定義的環境變量。
變量名規則:字母、數字下劃線、首位不能為數字。
變量值有特殊符號時需要用單引號括起來。
例如a=‘a b c‘ 帶空格的字符,就需要用單引號括起來。否則就不會生效。雙引號也可以,但是有些特殊符號就會被系統當做是一個標記,就不會生效,比如$符號。
變量的累加
a=1
b=2
echo $a$b
12
a=‘a$bc‘
echo $a$b
a$bc2
c="a$bc"
echo $c
a 此處$bc就沒有識別出來
c="a$b"c 所以要將a$b分開括起來,此處就不能用單引號,它會認為$是一個符號。
echo $c
a2c 前面設置了b=2
多個變量相互疊加的時候可以用雙引號把每個括起來。# c=a"$b"c
全局變量 export b=2
export 變量名=變量值,該命令就是聲明一下這個變量。
前面設置的變量實際上是屬於本地,僅僅在終端下生效,使用export一次就能變成全局變量。在這個shell下就能一直生效,在別的終端就不生效了。
取消一個變量:unset後跟變量的名字
三、環境變量配置文件
兩個維度:系統層次,用戶層次。
系統層次:就是/etc下的文件。
/etc/profile:用戶環境變量,交互,登錄才執行。
/etc/bashrc:用戶不用登錄,執行shell就生效。
用戶層次:用戶家目錄下的文件。~/.bashrc
~/.bash_logout:用來定義用戶退出時所需要做的操作。
二十四、管道符和作業控制、shell變量、環境變量配置文件