1.學習shell的主要原因:1.文字介面的shell在各大distribution都一樣,2.遠端管理時文字介面速度較快3.linux內很多控制都是shell寫的
2.系統合法的shell都寫在/etc/shells中
3.使用者預設登入取得的shell記錄於/etc/passwd的最後乙個字段
4.bash的主要功能:1.命令的編修能力2.命令與檔案的補全功能3.命名別名的設定4.工作控制,前景背景控制5.程式化指令碼6.萬用字元
5.type可以用來找到執行命令為何種型別,也用於與which相同的功能
type [tpa] name
type 不加任何引數時會顯示出name是內部命令還是外部命令
-t:將name以file(表示外部命令),alias(該命令為命令別名所設定的名稱),builtin(bash內建的命令功能)顯示意義
-p:name為外部命令時才會顯示完整檔名
-a:由path變數定義的路徑中將所有含name的命令都列出來,包含alias
6.echo:變數的顯示
unset:取消變數的方法
locate:列出所有的相關檔名
7.用env檢視環境變數與常見環境變數的說明 env
用set檢視所有變數(含環境變數與自定義變數)set
用export將自定義變數轉成環境變數 export 變數名
8.$?也是變數,是前乙個指令執行完之後的回傳值,0表示成功
9.locale:影響顯示結果的語系變數
10.read:讓使用者由鍵盤輸入變數的值
read [-pt] variable
-p:可以接提示符
-t:接等待的秒數,不會一直等待使用者
11.declare:宣告變數的型別
declare [-aixr] variable
-a:定義為陣列型別
-i:定義為整數型別
-x:與export一樣,將變數變為環境變數
-r:將變數設為唯讀型別,不可更改不可重置
12.ulimit:限制使用者使用資源的情況
ulimit [shacdfltu] [配額]
-h:嚴格限制
-s:警告的設定
-a:列出所有的限制額度
-f:可以建立的最大檔案容量
13.bash的配置檔案主要分為login shell和 non-login shell
login shell 主要讀取/etc/profile與~/.bash_profile
non-login shell 僅讀取~/.bashrc
14.萬用字元:*,?,
*:代表0到無窮多個任意字元
?:代表一定有乙個任意字元
:一定有乙個在中括號內的字元
15.資料流重導向:
標準輸入:**為0,使用《或<<
標準輸出:**為1,使用》或》
標準錯誤輸出:**為2,使用2>或2>>
16.連續命令的下達
cmd1;cmd2:不考慮命令相關性的連續命令執行
cmd1&&cmd2:若cmd1執行完且正確,則開始執行cmd2
若cmd1執行完卻錯誤,則不執行cmd2
cmd1||cmd2:若cmd1執行完且正確執行,則不執行cmd2
若cmd1執行完且為錯誤,則開始執行cmd2
17.管道命令:|
管道命令僅會處理standard output,對於standard error output會予以忽略
管道命令必須要能夠接受來自前乙個指令的資料成為standard input繼續處理才行
18.管道主要命令:
(1)cut:將一段資訊的某一段切割出來
cut -d 『分隔符』 -f fields
cut -c 字元範圍
(2)grep:分析一行資訊,將想要的資訊拿出來
grep [-acinv] [–color=auto] 『查詢字串』 filename
-a:將binary檔案以text檔案的方式查詢資料
-c:計算找到字串的次數
-i:忽略大小寫的不同
-n:順便輸出行號
-v:反向選擇
(3)排序命令sort:
sort [-fbmnrtuk] [file or stdin]
-f :忽略大小寫地 差異
-b:忽略最前面空格符的部分
-m:以月份的名字來排名
-n:以純數字進行排名
-r:反向排名
-u:相同資料中僅出現一行代表
-t:分隔符,預設用【tab】
-k:以那個區間進行排序
(4)uniq:排序完成後將重複的資料僅列出乙個顯示
uniq -i:忽略大小寫字元的不同
uniq -c:進行計數
(5)wc:計算輸出的資訊的整體資料
wc -l:僅列出行
wc -w:僅列出多少字
wc -m:多少字元
tee:雙向重定向,將資料流送與檔案與螢幕
tee [-a] file:以累加的方式將資料加入到file當中
(6)tr:用來刪除一段資訊中的文字,或者進行文字資訊的替換
tr [-ds] set1…
-d:刪除資訊當中set1這個字串
-s:替換掉重複的字元
(7)col [-xb]
-x:將【tab】鍵轉換成對等的空格鍵
-b:在文字內有反斜槓(/)時,僅保留反斜槓最後接的那個字元
(8)join 將兩個檔案當中有相同資料的那一行加在一起
join [-ti12] file1 file2
-t:預設以空格分割資料並且對比第乙個欄位的資料
-i:忽略大小寫
-1:代表第乙個檔案要用哪個欄位來分析
-2:代表第二個檔案要用哪個欄位來分析
(9)paste:直接將兩行貼在一起,且用【tab】鍵隔開
paste [-d] file1 file2
-d:後接分隔符,預設以tab分隔
-:若file部分寫成-,表示來自standard input的資料的意思
(10)expand:將tab按鍵轉成空格鍵
expand [-t] file
-t:後接數字,一般來說乙個tab鍵可以用8個空格鍵來替換
(11)split:將乙個大檔案依據檔案大小或行數切割成小檔案
split [-bl] file prefix
-b:後接欲切割的檔案大小可加b,k,m單位
-l:以行數來進行切割
prefix:代表前導符,代表切割檔案的前導文字
(12)xargs:可以讀入stdin的資料,並以空格符或斷行字元進行分辨,將stdin資料分割成arguments
xargs [-0epn] command
-0:若輸入的stdin含有特殊字元可以將其還原成一般字元
-e:eof,xargs分析到這個字串時將會停止工作
-p:執行每個命令的引數時會詢問使用者的意思
-n:後接次數,每次command執行時,要使用幾個引數的意思
Linux學習之路8(3) 認識和學習bash
乙個命令有了別名的時候,比如 alias echo echo n 那麼執行echo的時候是執行echo還是echo n呢?type aecho 檢視命令的執行順序。進入linux的控制台後,會有提示資訊 這些資訊放在 etc issue這個檔案中。用vim編輯器編輯後儲存,就可以修改這些資訊。在控制...
Linux學習之路8(4) 學習和認識bash
在linux中有乙個容器,它會記入剛剛執行過得命令是否正確,這個容器的大小為1個字元。檢視方式 echo 如果正確,那麼是乙個0,如果不正確,那麼是乙個整數。命令的連線方式 作為連線符的時候,當其中乙個為假是,那麼這個命令不會執行,如果第乙個就錯了,那麼第二個命令直接不會執行。作為連線符的時候,如果...
Linux學習篇 認識與學習bash
一 硬體 核心與shell 1 什麼是shell 通過shell 就是命令列模式 來操作應用程式,讓這些應用程式呼叫核心來執行所需要的工作 只要能操作應用程式的介面都能成為shell 2 什麼叫bash linux使用的shell版本成為 bourne again shell 簡稱bash,是基於g...