管道符、作業控制、變量、定義全局變量、環境變量
阿新 • • 發佈:2018-01-12
ice env 歷史命令 nal txt install 定義變量 too shu 管道符
符號|:管道符,將前面的命令交給後面的命令;
實驗1:統計1.txt的段落長度;
cat 1.txt |wc -l
[root@shu-test abc]# cat 1.txt |wc -l
2
[root@shu-test abc]#
實驗2:查看2.txt文件,將文件中包含r的字符串打印出來;
cat 2.txt |grep ‘r‘
[root@shu-test abc]# cat 2.txt|grep ‘r‘
r111111
r
r
r
[root@shu-test abc]#
作業控制
當運行進程時,可以使它後臺暫停(ctrl+z),然後使用bg命令後臺活動,使用fg命令恢復它;相當於Windows tab+Alt鍵;
例如:vim 2.txt 使用ctrl+z暫停
[root@shu-test abc]# vi 2.txt
[1]+ 已停止 vi 2.txt
[root@shu-test abc]#
fg命令:
恢復或切換到前臺,多個後臺可以使用fg [序列號] 來實現調回;
[root@shu-test abc]# fg
vi 2.txt
[root@shu-test abc]#
jobs命令:
查詢中斷作業,後臺運行;
[root@shu-test abc]# jobs [1]- 已停止 vim 2.txt [2]+ 已停止 vim 3.txt
bg命令:
後臺活動作業,必須在暫停後才能bg切換到後臺活動;
root@shu-test abc]# jobs
[1] 已停止 vim 2.txt
[2]- 已停止 vim 3.txt
[3]+ 已停止 vim a.txt
[root@shu-test abc]# bg
[3]+ vim a.txt &
[root@shu-test abc]# fg 3
vim a.txt
[root@shu-test abc]#
變量
常見的變量:
- PATH:決定shell在哪些目錄下尋找命令和程序;
- HOME:家目錄;
- PWD:當前目錄;
- LOGNAME:當前用戶名稱;
env命令:
查看常見變量;
set命令:
查看全部系統以及自己定義變量;
變量名規則:字母、數字、下劃線,首位不能數字;
變量值有特殊符號需要用單引號‘@@@’ 字符串
變量的累加使用雙引號
實驗1:特殊符號變量,必須加單引號;
[root@shu-test abc]# a=‘a$bc‘
[root@shu-test abc]# echo $a
a$bc
[root@shu-test abc]#
實驗2:變量的累加,使用雙引號才能將$b的變量值顯示出來;
[root@shu-test abc]# echo $a
a$bc
[root@shu-test abc]# echo $b
2
[root@shu-test abc]# c="a$b"
[root@shu-test abc]# echo $c
a2
[root@shu-test abc]#
定義全局變量:
格式:
export [變量名]=[變量值]
[root@shu-test abc]# export aaa=123
[root@shu-test abc]# echo $aaa
123
[root@shu-test abc]#
取消全局變量:
格式:
unset [變量名]
[root@shu-test abc]# echo $aaa
123
[root@shu-test abc]# unset aaa
[root@shu-test abc]# echo $aaa
[root@shu-test abc]#
pstree
pstree命令需要安裝psmisc包;
yum install psmisc
查看當前所在bash
[root@shu-test abc]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
├─VGAuthService
├─agetty
├─auditd───{auditd}
├─chronyd
├─crond
├─dbus-daemon───{dbus-daemon}
├─firewalld───{firewalld}
├─lvmetad
├─master─┬─pickup
│ └─qmgr
├─polkitd───5*[{polkitd}]
├─rsyslogd───2*[{rsyslogd}]
├─sshd───sshd───bash───pstree
├─systemd-journal
├─systemd-logind
├─systemd-udevd
├─tuned───4*[{tuned}]
└─vmtoolsd───{vmtoolsd}
[root@shu-test abc]#
進入新bash
bash
[root@shu-test abc]# bash
[root@shu-test abc]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
├─VGAuthService
├─agetty
├─auditd───{auditd}
├─chronyd
├─crond
├─dbus-daemon───{dbus-daemon}
├─firewalld───{firewalld}
├─lvmetad
├─master─┬─pickup
│ └─qmgr
├─polkitd───5*[{polkitd}]
├─rsyslogd───2*[{rsyslogd}]
├─sshd───sshd───bash───bash───pstree
├─systemd-journal
├─systemd-logind
├─systemd-udevd
├─tuned───4*[{tuned}]
└─vmtoolsd───{vmtoolsd}
[root@shu-test abc]#
退出
exit
環境變量
全局的變量(針對所有用戶):
- /etc/profile :用戶換機變量、交互、登錄才執行;
- /etc/bashrc : 用戶不用登錄、執行shell就生效;
用戶home變量文件(只針對當前用戶):
- ~/.bashrc:登錄或每次打開新的shell時,執行該文件。一般自定義變量寫這裏;
- ~/.bash_profile:定義用戶個人話路徑與房價變量文件每次,當用戶登錄時,改文件僅僅執行一次;
- ~/.bash_history :記錄歷史命令;
- ~/.bash_logout:退出shell時,執行該文件。可以進行一些清理的工作;
~ 代表家目錄
PS1變量
當我們登錄系統後,命令的最左邊會顯示:
[root@shu-test abc]#
[root@shu-test abc]#
怎樣控制這個顯示,那麽就要說到PS1變量;
PS1變量定義在 /etc/bashrc 文件下面;
[root@shu-test abc]# echo $PS1
[\u@\h \W]\$
[root@shu-test abc]#
- u@:代表用戶名
- h:代表hostname
- W:代表最後一個路徑
註意:可將大W改小w 顯示絕對完全路徑
實驗1:修改顯示為絕對路徑;
[root@shu-test abc]# echo $PS1
[\u@\h \W]\$
[root@shu-test abc]# PS1=‘[\u@\h \w]\$ ‘
[root@shu-test ~/abc]# cd /etc/sysconfig/
[root@shu-test /etc/sysconfig]#
管道符、作業控制、變量、定義全局變量、環境變量