學習筆記第二十三節課
阿新 • • 發佈:2018-04-24
作業管道符和作業控制
- 管道符表示把一個文件的輸出的內容, 傳遞給後面的命令。
- 比如wc-l 的用法 可以統計ls 下有多少個目錄 文件。
- 還有之前用的find命令。可以列出當前目錄下所有文件, 也可以用管道符。
- 以後會經常用管道符。
- ctrl+z 可以暫停一個任務。, 可以用fg 恢復任務。(fg+暫停任務的id號 可以恢復指定的暫停任務。)
- jobs 命令 可以把已經停止的任務給列出來。
- bg可以把任務放在後臺。
- vim的命令 可能顯示的不夠明顯, 可以用 vmstat來做實驗。
- 可以用bg把它放在後臺, 雖然他還在顯示。 因為用jobs 它還在運行。
- 在後臺可以用命令 只是會很影響操作, fg 可以把它調到前臺,區別就是 沒辦法敲命令 了。
- 也可以直接把任務放在後臺 +&
- 比如
- 在另一個終端是發現不了 別的終端的任務的。
- 但是可以查看別的終端任務的進程。
shell變量
- 系統的變量一般都是大寫的英文字母。
- 變量的值可以是一些數字 ,也可以是一串字符串。
- 系統有很多配置文件, env 可以查看系統常用的環境變量。
- 還有set 也可以查看變量 還可以看到自己設定的變量。
- 我們可以定義一個自定義的變量(這個和系統的環境變量不一樣)
- 自己定義的變量可以在set裏查看到 (set |grep 123)
- 也可以用 less (set |less)
- 系統的環境變量是內置的,沒有權限去幹涉它,但是可以自己定義一些變量, 寫shell腳本經常要用變量。
- 變量名的規則 變量名可以是字母 數字 下劃線,但是首位 不能是數字。
- 變量的值如果有特殊符號 要用單引號括起來。
- 也可以用雙引號 但是建議用單引號,因為可以脫譯。
- 比如 用雙引號 變量的值如果有 特殊符號,用雙引號,系統會識別的不是你想要的效果。
- 變量的累加。連起來顯示就是變量的累加。
- 想要特殊符號 在變量值中起作用 可以把特殊符號單獨雙引號引起來。
- 查看自己在那個終端。
- w查看有兩個用戶登錄了系統。
- echo $SSH_TTY 查看自己在那個終端。
- 在pts/0 定義一個變量 yingxin=linux 但是在pts/1 上是沒有這個變量的。
- 而且還可以進入一個子shell shell其實就是一個進程。等於進入了一個新的終端,雖然也在pds/0下。 可以用pstree看一下,我們遠程登錄sshd 獲得了一個bash 然後又在終端上運行了一個bash 。
- 現在去運行 echo $yingxin 也沒有出現剛才的定義。
- 退出這個終端, 然後去pstree 可以看到 我們是在pds/0 下了。
- 這個叫做非全局,或者叫本地的變量 僅僅在終端下生效。
- 可以變成全局的 就是 export 進入了新的終端 依然可以顯示這個變量。 這就是全局環境變量。
- 但是在另一個 pds/1 是沒有生效的。因為這兩個終端沒有任何的交互,所以不會在另一臺終端生效。
- 我們再定義個全局變量 ,然後退出 新的終端,回到上一層終端,會發現 全局變量也沒生效,因為全局變量是一層一層向下的,無法向上生效。
- 這裏的export 是以後寫腳本的時候 會出現 腳本1裏面有腳本2 腳本2會用到腳本1的變量的。
- 變量可以賦值 也可以取消 就是unset +變量名。
環境變量配置文件。
- 環境變量配置文件分兩個緯度 一個是系統層次,一個是用戶層次。
- etc下屬於系統層次(這兩個文件不要動它,除非以後知道這是怎麽回事了。)
- .bash 屬於用戶層次
- 可以把profile 歸為一個類型 是用戶或者系統在登錄的時候會加載到。
- bashrc歸為一個類型。是用戶或者系統在執行一個腳本的時候會加載到。
- 當遇到一些需求 需要去編輯的時候 可以在用戶的家目錄下去編輯它。比如之前的編輯命令顯示的行數改為5000 就可以在這裏添加編輯,要是想全局都變量 需要到etc下去配置。圖中的. 和source是同一個作用。 就是加載配置文件裏的一些配置。
- .bash_profile會z自動調用bashrc bashrc會自動調用etc/bashrc
- .bash_logout 用來定義用戶退出的時候的一些操作。比如每次退出終端 想把命令歷史刪除,就可以把刪除命令歷史的命令放在這個文件裏面。
這裏再說一個變量是 PS1=[033[01;32m]\u@\h[033[00m\033[01;36m\w\033[00m\$‘
這個是在etc bashrc裏面定義的。
- 我們最開始登錄系統的時候 的命令行 最左側是root 用戶名 然後@ 後面跟的主機名。然後是所在的目錄。
- ps1 就是這個命令行的變量配置文件。
- echo $ PS1 u 就是用戶名, h 就是主機名。 w就是所在目錄。$在用戶下是$ 在root下是#
- 這裏是一個大寫的w 也可以改為小寫。
- 修改後就是一個全局路徑。
- 用戶名,主機名都是可以修改的, 方括號也可以取消掉。
- 我們也可以讓他帶顏色。
- PS2 是用在另外一個環境裏面的。
學習筆記第二十三節課