標籤:linux shell bash
一:Shell 概念
shell 這個詞都不陌生,意思是 “殼” 是介於OS 核心與使用者之間的一層互動,在linux系統中,使用者可以通過命令終端,使用shell 命令向下傳達自己的意願,
驅使kernel 調動硬體實現自己的目的!
鳥哥私房菜中的圖片:
通俗的理解就是一個文本命令集合,可以更加直觀有效操控Kernel來實現我們的目的,其中shell script更是許多項目實踐中常用的指令碼語言!
二:Shell 管理
shell的種類有很多,對linux系統而言會有一個管理,那些種類的shell才是合法,能夠被識別執行,定義在/etc/shells中:
[email protected]:~$ cat /etc/shells # /etc/shells: valid login shells/bin/sh/bin/dash/bin/bash/bin/rbash
可以看到我的ubuntu 13.04有效shell類型就這四種。其中sh代表 Bourne SHell,現在的增強版本為Bourne Again SHell 也就是bash,
目前linux預設的shell 類型!
對於目前使用者使用的到底是哪一種類型的shell,可在/etc/passwd中查看到:
jscese:x:1000:1000:jscese,,,:/home/jscese:/bin/bash
三:Bash 功能
1.history——儲存上次登出系統前的命令,儲存在~/.bash_history檔案中
2.Tab 補全,提示
3.alias,unalias——命令的封裝和移除,alias ll =‘ls -al’ 代表用ll 來代替 ls -al ,用簡單的字元來代表複雜的指令,方便使用! unalias ll 移除 ll 這個命令。
4.echo——輸出變數 echo $PATH , ADDPATH=$PATH:ADD unset ADDPATH , $ -PID, ?-回傳值
5.對變數的刪除取代通過 ${PATH 運算式 } 規則如下(鳥哥的歸總): ${PATH ##/*/} 刪除掉變數PATH 中從頭開始的 在兩個斜杠之間最長的內容
6.設定變數,規則如下:
7./dev/null——垃圾桶黑洞裝置
8.邏輯指令,多個邏輯一起時,回傳值向右有傳遞性:
9.管線命令 (pipe)
cut 切某一部分,grep 擷取符合要求的一行 ,sort 進行排序 ,uniq 重複的只顯示一個 , wc 顯示檔案多少行.字 ,tee 雙向重導 既輸出又可以儲存
字元轉換命令: tr, col, join, paste, expand