shell環境變數
正規表示式
輸入/輸出重定向與管道
shell指令碼
shell判斷命令為內建命令,則將命令直接解釋為系統功能呼叫並轉交給核心執行。
shell判斷命令為外部命令或實用程式,則會先在硬碟中查詢該命令並將其調入記憶體,再將命令解釋為系統功能呼叫並轉交給核心執行。
使用者給出命令路徑,shell沿著路徑查詢。
使用者未給出命令路徑,shell在環境變數path所制定的路徑中依次查詢。
變數替換:$ name=string(等號兩側不要有空格)
在定義變數時,若string中包含空格、製表符和換行符,則string必須用』string』或者"string"的形式。雙引號內允許變數替換,而單引號內則不可以。
可以使用export內建命令將區域性變數設定為全域性變數
顯示當前shell的pid:
$ echo $$
不同型別的shell的環境變數有不同的設定方法,以下為bash
設定環境變數:
$ set 環境變數=變數的值
不加任何引數直接使用set命令可以顯示出使用者當前所有環境變數的設定。
環境變數前加$,表示引用環境變數的值。
切換到主目錄:
將乙個路徑/tmp加到path變數前:$ cd
$home
$ path=/tmp:$path
shell在執行命令前,會先查詢這個目錄。
將語言環境重新設定為預設的英文狀態:
$ unset lang
系統中的使用者工作環境設定檔案:
使用者設定的環境設定檔案:
系統中的使用者工作環境設定檔案對所有使用者均生效,而使用者設定的環境設定檔案
對使用者自身生效。
使用者可以將自定義的環境變數存放在$home/.bash_profile中
使用者可以將自定義的別名存放在 $home/.bashrc中,以便在每次登陸和呼叫子shell時生效。
shell的特殊字元和正規表示式很相似,要了解兩者之間的區別。
注意:由於正規表示式使用了一些特殊字元,所以所有正規表示式都必須用單引號括起來。
字元表示式:. [list] [range] [^]
量詞:*
控制字元:^ $
非特殊字元代表它們自己,如果要表示特殊字元需要在前面加上反斜槓。
shell檢查是否有重定向符來決定是否重定向。^[0~9]\
[^0~9] 匹配以3個數字開頭跟著是乙個非數字字元的行
輸出重定向:< 輸入重定向
>或》 輸出重定向
2>或2>> 實現錯誤重定向
&> 同時實現輸出重定向和錯誤重定向
執行命令前,>會覆蓋原檔案中的資料,而》是在原來資料後面追加。
輸入重定向:
#wc < 檔名
#命令《檔案把檔案作為命令的輸入
#命令《識別符號
#識別符號把識別符號之間內容作為命令的輸入
錯誤重定向:
將命令的錯誤資訊儲存在當前目錄的檔案中
#命令 2> 檔案
輸出和錯誤重定向同時實現:
#命令 &> 檔案
當命令沒有產生錯誤資訊時,原檔案內容會被清空。\
防止檔案被覆蓋:
set -o noclobber
僅對當前命令解釋程式起作用,其它程式仍可能覆蓋已存在的檔案。
解除:set +o noclobber
空裝置/dev/null的用法:
將錯誤重定向到空裝置,在螢幕上只得到有用的輸出。
$ grep delegate /etc/* 2> /dev/null
linux的過濾性:一條名令執行後產生的結果資料又通過標準輸出埠送給後一條命令。
shell提供命令"|"連線,形成乙個管道線。
管道就是組合命令,從左到右順序執行。
多級管道將一些簡單的命令連線起來,形成更複雜的、功能更強的命令。
shell是一種指令碼型語言,包含的成分主要有注釋、命名、shell變數和流程控制語句。
1。當執行指令碼檔案沒有可執行許可權時,只能使用$ bash 檔名
2。否則先修改為可執行許可權,以便將檔案作為可執行檔案呼叫。
3。./檔名$ chmod +x 檔名
$ path =
$path
:$pwd
$ 檔名
「.」命令就是在當前shell中執行指令碼檔案中的命令
tcp視窗機制(寫的最簡單精煉的文章)
收錄下,感謝原作者。我們可以大概看一下上圖的模型 首先是ab之間三次握手建立tcp連線。在報文的互動過程中,a將自己的緩衝區大小 視窗大小 3傳送給b,b同理,這樣雙方就知道了對端的視窗大小。a開始傳送資料,a連續傳送3個單位的資料,因為他知道b的緩衝區大小。在這一波資料傳送完後,a就不能再發了,需...
Danmo的學習之路(Git精煉版)
檔案模式為 100644,表明這是乙個普通檔案 100755,表示乙個可執行檔案 120000,表示乙個符號鏈結。切換分支的坑 第一次提交之前 在切換分支之前,要先確保狀態 乾淨 全部commit 否則會汙染其它分支。git branch v 可以檢視每乙個分支的最後一次提交 git branch ...
Git學習筆記超級無敵精煉版 一 基本操作
參考文獻 本地目錄,寫 修改的地方 在.git目錄下的index檔案中,作為乙個暫時儲存修改的區域 工作區的.git隱藏目錄中,不算工作區,而是git的版本庫,版本庫是個倉庫,裡面所有檔案都可以被git管理,可以追蹤每乙個檔案的修改,刪除,並記錄追蹤歷史,可以隨時還原 git config glob...