1. 程式人生 > >管道符、作業控制、變量、定義全局變量、環境變量

管道符、作業控制、變量、定義全局變量、環境變量

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]#

管道符、作業控制、變量、定義全局變量、環境變量