目錄
第1章基礎概述1
1.1基礎命令1
1.1.1顯示日期和時間:date命令1
1.1.2找齣已登錄人員:who命令1
1.1.3迴顯字符:echo命令2
1.2使用文件2
1.2.1列舉文件:ls命令3
1.2.2顯示文件內容:cat命令3
1.2.3統計文件中單詞數量:wc命令3
1.2.4命令選項3
1.2.5復製文件:cp命令4
1.2.6文件重命名:mv命令4
1.2.7刪除文件:rm命令5
1.3使用目錄5
1.3.1主目錄和路徑名6
1.3.2顯示工作目錄:pwd命令7
1.3.3更改目錄:cd命令7
1.3.4ls命令的更多用法10
1.3.5創建目錄:mkdir命令12
1.3.6在目錄之間復製文件12
1.3.7在目錄間移動文件13
1.3.8文件鏈接:ln命令14
1.3.9刪除目錄:rmdir命令17
1.4文件名替換18
1.4.1星號18
1.4.2匹配單個字符20
1.5文件名中不易察覺的部分21
1.5.1文件名中的空格21
1.5.2其他怪異的字符22
1.6標準輸入/輸齣和I/O重定嚮22
1.6.1標準輸入和標準輸齣22
1.6.2輸齣重定嚮24
1.6.3輸入重定嚮26
1.7管道27
1.8標準錯誤29
1.9命令後話29
1.9.1在一行中輸入多個命令29
1.9.2嚮後颱發送命令30
1.9.3ps命令30
1.10命令總結31
第2章什麼是Shell33
2.1內核和實用工具33
2.2登錄Shell34
2.3在Shell中輸入命令37
2.4Shell的職責38
2.4.1程序執行39
2.4.2變量及文件名替換40
2.4.3I/O重定嚮41
2.4.4管道42
2.4.5環境控製42
2.4.6解釋型編程語言43
第3章常備工具44
3.1正則錶達式44
3.1.1匹配任意字符:點號(.)44
3.1.2匹配行首:脫字符(;)46
3.1.3匹配行尾:美元符號($)46
3.1.4匹配字符組:(...)47
3.1.5匹配零個或多個字符:星號(*)50
3.1.6匹配固定次數的子模式:{...}52
3.1.7保存已匹配的字符:(...)54
3.2cut57
3.3paste61
3.3.1—d選項62
3.3.2—s選項62
3.4sed63
3.4.1—n選項64
3.4.2刪除行65
3.5tr66
3.5.1—s選項69
3.5.2—d選項69
3.6grep70
3.6.1正則錶達式與grep73
3.6.2—v選項74
3.6.3—l選項74
3.6.4—n選項75
3.7sort76
3.7.1—u選項76
3.7.2—r選項77
3.7.3—o選項77
3.7.4—n選項78
3.7.5跳過某些字段78
3.7.6—t選項79
3.7.7其他選項80
3.8uniq80
3.8.1—d選項81
3.8.2其他選項82
第4章腳本與變量83
4.1命令文件83
4.2變量86
4.2.1顯示變量值87
4.2.2未定義變量的值為空89
4.2.3文件名替換與變量91
4.2.4${variable}結構92
4.3內建的整數算術操作92
第5章引用95
5.1單引號95
5.2雙引號98
5.3反斜綫101
5.3.1使用反斜綫續行102
5.3.2雙引號中的反斜綫102
5.4命令替換103
5.4.1反引號104
5.4.2$(...)結構104
5.5expr命令108
第6章傳遞參數111
6.1變量$#112
6.2變量$*113
6.3在電話簿中查找聯係人113
6.4嚮電話簿中添加聯係人115
6.5從電話簿中刪除聯係人116
6.6shift命令118
第7章條件語句120
7.1退齣狀態120
7.2變量$121
7.3test命令124
7.3.1字符串操作符124
7.3.2test的另一種格式128
7.3.3整數操作符129
7.3.4文件操作符130
7.3.5邏輯否定操作符!131
7.3.6邏輯“與”操作符—a131
7.3.7括號132
7.3.8邏輯“或”操作符—o132
7.4else133
7.5exit命令135
7.6elif137
7.7case命令141
7.7.1特殊的模式匹配字符142
7.7.2調試選項—x144
7.7.3再談case147
7.8空命令:148
7.9&&和||149
第8章循環151
8.1for命令151
8.1.1$@變量154
8.1.2不使用列錶的for命令155
8.2while命令156
8.3until命令158
8.4再談循環162
8.4.1跳齣循環162
8.4.2跳過循環中餘下的命令163
8.4.3在後颱執行循環164
8.4.4循環上的I/O重定嚮165
8.4.5將數據導入及導齣循環166
8.4.6單行循環166
8.5getopts命令167
第9章數據的讀取及打印171
9.1read命令171
9.1.1文件復製程序171
9.1.2特殊的echo轉義字符173
9.1.3mycp的改進版本174
9.1.4mycp的最終版本175
9.1.5菜單驅動的電話簿程序179
9.1.6變量$$與臨時文件183
9.1.7read的退齣狀態184
9.2printf命令187
第10章環境192
10.1局部變量192
10.2導齣變量194
10.3PS1和PS2198
10.4HOME199
10.5PATH199
10.6當前目錄206
10.7再談子Shell208
10.7.1.命令209
10.7.2exec命令212
10.7.3(...)和{...;}212
10.7.4另一種將變量傳給子Shell的方法215
10.8.profile文件216
10.9TERM變量217
10.10TZ變量218
第11章再談參數219
11.1參數替換219
11.1.1${parameter}219
11.1.2${parameter:—value}220
11.1.3${parameter:=value}220
11.1.4${parameter:value}221
11.1.5${parameter:+value}222
11.1.6模式匹配222
11.1.7${#variable}224
11.2$0變量224
11.3set命令225
11.3.1—x選項225
11.3.2無參數的set226
11.3.3使用set為位置參數重新賦值227
11.3.4——選項228
11.3.5set的其他選項230
11.4IFS變量230
11.5readonly命令233
11.6unset命令234
第12章拓展內容235
12.1eval命令235
12.2wait命令237
12.3$!變量237
12.4trap命令238
12.4.1不使用參數的trap239
12.4.2忽略信號240
12.4.3重置信號240
12.5再談I/O241
12.5.1<&—與>&—242
12.5.2行內輸入重定嚮242
12.5.3Shell歸檔文件244
12.6函數247
12.6.1刪除函數250
12.6.2return命令250
12.7type命令250
第13章再談rolo251
13.1數據格式化考量251
13.2rolo252
13.3add254
13.4lu255
13.5display256
13.6rem257
13.7change259
13.8listall260
13.9樣例輸齣261
第14章交互式與非標準Shell特性265
14.1使用正確的Shell265
14.2ENV文件266
14.3命令行編輯267
14.4命令曆史267
14.5vi行編輯模式268
14.6emacs行編輯模式272
14.7訪問曆史記錄的其他方法275
14.7.1history命令275
14.7.2fc命令276
14.7.3r命令277
14.8函數278
14.8.1局部變量278
14.8.2自動載入函數278
14.9整數算術278
14.9.1整數類型279
14.9.2不同基數的數字280
14.10alias命令282
14.11數組284
14.12作業控製289
14.13其他特性292
14.13.1cd命令的其他特性292
14.13.2波浪符替換292
14.13.3搜索次序293
14.14兼容性總結294
附錄AShell總結295
附錄B更多的相關信息329
· · · · · · (
收起)