2.1.1 shell指令碼的引數
常用引數
(1) * 以乙個字串顯示所向指令碼傳遞的引數,與位置變數不同,此引數可超過9個
(2) @ 從引數1開始,顯示所有向指令碼傳遞的引數,和上邊的*相似,下面會介紹區別
(3) # 引數數量,不包含引數0
(4) $ 指令碼執行的當前id號
(5) ! 後台執行的最後乙個id號
(6) ? 顯示最後命令的退出狀態,0表示沒有錯誤,其他任何值表明有錯誤
(7) - 顯示shell使用的當前選項,與set命令功能相同
注:① * 和 @ 的區別在於,當加上雙引號時,* 輸出的是將所有引數當成乙個字串輸出也就是"$1 $2 $3"
而@則是將所有引數乙個乙個輸出,也就是"$1" "$2" "$3"
② - 減號的作用,主要用於標準輸入與輸出中,在管道中應用,可以省去我們建立臨時檔案的過程
2.1.2 mv 移動或重新命名檔案或目錄
常用引數
(1) -f //如果檔案的空間保留或者固定範圍大小無法儲存,就發出警告
(2) -i //在覆蓋現有檔案之前不提示
2.1.3 mkidr 建立乙個或者多個新的目錄
常用引數
(1) -m 指定資料夾許可權大小
2.2.1 i/o重定向
2.2.2 cat 連線或顯示檔案
常用引數
(1) -n //顯示行號
(2) -b //顯示非空行號
(3) -s //有連續兩行以上空行,則只顯示一行空行,其他省略
注:①tac 從結束到開頭顯示檔案
②不要使用重定向符號》將輸出重定向到輸入檔案之中。因為shell在cat命令可讀取該檔案之前先將它截斷了
2.2.3 | 管道
管道的資料共享是在核心中通過記憶體複製實現的,因此,在設計管道時,盡量把能夠江蘇資料量操作的置於管道前端。
2.2.4 head 顯示乙個檔案或多個檔案的前幾行或前幾個位元組
主要引數
(1) -n //指定顯示的行數,預設為10
(2) 後邊也可以接多個檔案
2.2.5 檔案描述符
此部分有點難啊,,,,
待以後學習了後在補充吧
2.2.6 特殊檔案
(1) /dev/null 就像乙個「黑洞」,垃圾**站,寫進去的檔案不可讀,可以將不需要的垃圾檔案軟連線到這個檔案上。
(2) /dev/zero 這要用途是用來建立乙個指定長度,並且初始化為空的檔案,這種檔案一般都用作臨時交換檔案。
(3) /dev/tty 寫入這個檔案的內容可以在螢幕上顯示,很常用
printf"enter new passwd:" //提示輸入
stty-echo //關閉自動列印輸入字元的功能
read pass < /dev/tty //讀取密碼
printf"enter again" //在讀一次,確認密碼
read pass2< /dev/tty //記得重新開啟自動列印輸入字元功能
stty echo
2.2.7 read 從標準輸入中讀取一行。
主要引數:
(1) -a 後跟乙個變數,該變數會被認為是個陣列,然後給其賦值,預設是以空格為分割符。
(2) -d 後面跟乙個標誌符,其實只有其後的第乙個字元有用,作為結束的標誌,會舉例說 明。
(3) -p 後面跟提示資訊,即在輸入前列印提示資訊。
(4) -e 在輸入的時候可以使用命令補全功能。
(5) -n 後跟乙個數字,定義輸入文字的長度,很實用。
(6) -r 遮蔽,如果沒有該選項,則作為乙個轉義字元,有的話 就是個正常的字元了。
(7) -s 安靜模式,在輸入字元時不再螢幕上顯示,例如login時輸入密碼。
(8) -t 後面跟秒數,定義輸入字元的等待時間。
(9) -u 後面跟fd,從檔案描述符中讀入,該檔案描述符可以是exec新開啟的。
2.3 一切皆檔案
共有其中檔案型別
(1) - 普通檔案
(2) d 目錄檔案
(3) c 字元裝置檔案
(4) b 塊裝置檔案
(5) s 套介面檔案
(6) l 符號鏈結檔案
(7) 管道檔案
第二章程式設計基礎
2 1 程式設計設計方法和風格 如何形成良好的程式設計風格 1 源程式文件化 2 資料說明的方法 3 語句的結構 4 輸入和輸出。注釋分序言性注釋和功能性注釋 語句結構清晰第 一 效率第二。2 2 結構化程式設計 結構化程式設計方法的四條原則是 1.自頂向下 2.逐步求精 3.模組化 4.限制使用 ...
linux程式設計 shell程式設計(第二章)
第二章 shell程式設計 本章介紹以下內容 什麼是shell 基本思路 微妙的語法 變數,條件判斷和程式控制 命令列表 函式命令和命令的執行 here文件 除錯grep命令和正規表示式 find命令 shell執行shell程式,這些程式通常稱為指令碼,它們是在執行時解釋執行的。這使得除錯工作比較...
第二章 shell變數
檢視所有全域性和區域性變數 delare和set 檢視所有全域性變數 env 定義環境變數 使用者變數在家目錄下的 bash profile和 bashrc中設定 全域性變數在 etc profile和 etc bashrc及 etc profile.d 下的指令碼檔案 登入shell待用流程 et...