3dwoo大學簡體電腦書店
Linux命令行與shell編程實戰(第4版)
( 簡體 字)
作者:[美]馬克·G.索貝爾(Mark G. Sobell),馬修·赫姆基(Matthew Helmke) 著 尹曉奇 鞏曉云 譯類別:1. -> 作業系統 -> Linux
出版社:清華大學出版社Linux命令行與shell編程實戰(第4版) 3dWoo書號: 50169
詢問書籍請說出此書號!
有庫存
NT售價: 640
出版日:10/1/2018
頁數:710
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787302510901 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第1章歡迎進入Linux和macOS世界1
1.1UNIX和GNU-Linux的發展史2
1.1.1Linux的起源:UNIX2
1.1.2回顧1983年2
1.1.3下一場景,1991年3
1.1.4自由代碼3
1.1.5享受樂趣4
1.2Linux的優點4
1.2.1Linux受到硬件公司和開發人員歡迎的
原因5
1.2.2Linux的可移植性6
1.2.3C編程語言6
1.3Linux概述6
1.3.1Linux具有內核編程接口7
1.3.2Linux支持多用戶7
1.3.3Linux支持多任務7
1.3.4Linux支持安全的分層文件系統7
1.3.5shell:命令解釋器和編程語言8
1.3.6大量有用的實用程序9
1.3.7進程間的通信9
1.3.8系統管理9
1.4Linux的其他特性9
1.4.1GUI:圖形用戶界面10
1.4.2(互聯的)網絡實用程序10
1.4.3軟件開發10
1.5本章小結11
練習11
第Ⅰ部分Linux和macOS操作系統
第2章入門15
2.1《Linux命令行與shell編程實戰(第4版)》約定16
2.2從終端或終端模擬器登錄17
2.3在命令行中工作18
2.3.1識別當前運行的是哪種shell18
2.3.2校正錯誤18
2.3.3重復/編輯命令行20
2.4su/sudo:慎用root權限20
2.5如何查找相關文檔21
2.5.1man:顯示系統手冊頁21
2.5.2apropos:搜索關鍵字22
2.5.3info:顯示實用程序的相關信息23
2.5.4--help選項25
2.5.5bashhelp命令25
2.5.6獲取幫助25
2.6有關登錄和密碼的更多方面27
2.6.1如何處理登錄失敗27
2.6.2遠程登錄:終端模擬器、ssh和撥號
連接28
2.6.3使用虛擬控制臺28
2.6.4退出28
2.6.5更改密碼28
2.7本章小結30
練習30
高級練習30
第3章實用程序33
3.1特殊字符34
3.2基本實用程序34
3.2.1ls:顯示文件名35
3.2.2cat:顯示文本文件的內容35
3.2.3rm:刪除文件35
3.2.4少即多:分屏顯示文本文件35
3.2.5hostname:顯示系統名36
3.3文件操作36
3.3.1cp:復制文件36
3.3.2mv:更改文件名37
3.3.3lpr:打印文件37
3.3.4grep:查找字符串38
3.3.5head:顯示文件頭部38
3.3.6tail:顯示文件尾部39
3.3.7sort:按順序顯示文件的內容39
3.3.8uniq:忽略文件中重復的行39
3.3.9diff:比較兩個文件40
3.3.10file:識別文件的內容40
3.4|(管道):實現進程間的通信41
3.54個有用的實用程序41
3.5.1echo:顯示文本41
3.5.2date:顯示日期和時間42
3.5.3script:記錄shell會話信息42
3.5.4unix2dos:將Linux文件轉換為Windows
和MacOS格式42
3.6壓縮和歸檔文件43
3.6.1bzip2:壓縮文件43
3.6.2bzcat和bunzip2:解壓縮文件44
3.6.3gzip:壓縮文件44
3.6.4tar:打包和解包文件44
3.7定位實用程序46
3.7.1which和whereis:定位實用程序46
3.7.2locate:搜索文件47
3.8顯示用戶和系統信息47
3.8.1who:列出系統上的用戶48
3.8.2finger:列出系統上的用戶48
3.8.3uptime:顯示系統負載和持續運行時間
信息49
3.8.4w:列出系統上的用戶49
3.8.5free:顯示內存使用信息50
3.9與其他用戶通信50
3.9.1write:發送消息50
3.9.2mesg:拒絕或接收消息51
3.10電子郵件51
3.11本章小結52
練習53
高級練習54
第4章Linux文件系統55
4.1分層文件系統56
4.2目錄文件和普通文件56
4.2.1文件名57
4.2.2工作目錄58
4.2.3主目錄58
4.3路徑名59
4.3.1絕對路徑名59
4.3.2相對路徑名60
4.4目錄操作61
4.4.1mkdir:創建目錄61
4.4.2cd:更改工作目錄62
4.4.3rmdir:刪除目錄63
4.4.4使用路徑名63
4.4.5mv/cp:移動/復制文件63
4.4.6mv:移動目錄64
4.4.7重要的標準目錄和文件64
4.5訪問權限66
4.5.1ls-l:顯示訪問權限66
4.5.2chmod:改變訪問權限67
4.5.3setuid和setgid權限68
4.5.4目錄訪問權限69
4.6ACL:訪問控制列表70
4.6.1啟用ACL70
4.6.2處理訪問規則71
4.6.3設置目錄的默認規則73
4.7鏈接74
4.7.1硬鏈接74
4.7.2符號鏈接76
4.7.3rm:刪除鏈接78
4.7.4解引用符號鏈接78
4.8本章小結81
練習82
高級練習83
第5章shell85
5.1命令行86
5.1.1簡單命令86
5.1.2語法86
5.1.3處理命令行88
5.1.4執行命令行90
5.1.5編輯命令行90
5.2標準輸入和輸出90
5.2.1作為文件的屏幕91
5.2.2作為標準輸入的鍵盤和作為標準輸出的
屏幕91
5.2.3重定向92
5.2.4管道96
5.2.5鏈98
5.3在后臺運行命令99
5.4生成文件名/擴展路徑名100
5.4.1特殊字符“?”100
5.4.2特殊字符“*”101
5.4.3特殊字符“[]”102
5.5內置命令104
5.6本章小結104
練習105
高級練習106
第Ⅱ部分編輯器
第6章vim編輯器109
6.1歷史110
6.2入門:用vim創建和編輯文件110
6.2.1啟動vim110
6.2.2命令模式和輸入模式112
6.2.3輸入文本112
6.2.4獲取幫助113
6.2.5結束編輯會話115
6.2.6compatible參數115
6.3介紹vim的特性115
6.3.1聯機幫助115
6.3.2術語116
6.3.3操作模式116
6.3.4顯示116
6.3.5在輸入模式下校正文本117
6.3.6工作緩沖區117
6.3.7行長度與文件大小117
6.3.8窗口117
6.3.9鎖定文件117
6.3.10非正常結束編輯會話118
6.3.11崩潰后的文本恢復118
6.4在命令模式下移動光標119
6.4.1按字符移動光標120
6.4.2將光標移到某個特定字符120
6.4.3按字移動光標120
6.4.4按行移動光標121
6.4.5按句子和段落移動光標121
6.4.6在屏幕內移動光標121
6.4.7查看工作緩沖區的不同部分122
6.5輸入模式122
6.5.1插入文本122
6.5.2追加文本122
6.5.3為輸入文本打開行122
6.5.4替換文本123
6.5.5在輸入模式下轉義特殊字符123
6.6在命令模式下刪除和修改文本123
6.6.1撤消修改123
6.6.2刪除字符123
6.6.3刪除文本123
6.6.4修改文本124
6.6.5替換文本125
6.6.6修改大小寫125
6.7查找和替換125
6.7.1查找字符126
6.7.2查找字符串126
6.7.3字符串的替換127
6.8其他命令129
6.8.1連接命令129
6.8.2狀態命令129
6.8.3.(句點)129
6.9復制、移動和刪除文本130
6.9.1通用緩沖區130
6.9.2命名緩沖區130
6.9.3編號緩沖區131
6.10文件的讀寫131
6.10.1讀文件131
6.10.2寫文件131
6.10.3識別當前文件132
6.11參數設置132
6.11.1在vim中設置參數132
6.11.2在啟動文件中設置參數132
6.11.3.vimrc啟動文件133
6.11.4參數133
6.12高級編輯技巧135
6.12.1使用標記135
6.12.2編輯其他文件136
6.12.3宏與快捷鍵136
6.12.4在vim中執行shell命令136
6.13度量單位137
6.13.1字符138
6.13.2字138
6.13.3空白分隔字138
6.13.4行138
6.13.5句子139
6.13.6段落139
6.13.7屏幕(窗口)139
6.13.8重復因子139
6.14本章小結140
練習143
高級練習144
第7章emacs編輯器145
7.1歷史145
7.1.1演化146
7.1.2emacs與vim146
7.2入門:開始使用emacs147
7.2.1啟動emacs147
7.2.2退出emacs148
7.2.3插入文本148
7.2.4刪除字符149
7.2.5移動光標149
7.2.6在光標處編輯151
7.2.7保存和檢索緩沖區中的內容151
7.3基本編輯命令152
7.3.1按鍵的表示與使用152
7.3.2鍵序列和命令152
7.3.3META+x:運行不帶綁定鍵的命令153
7.3.4數值參數153
7.3.5編輯點與光標153
7.3.6在緩沖區中滾動153
7.3.7刪除文本154
7.3.8搜索文本154
7.3.9通過鍵盤使用菜單欄155
7.4聯機幫助156
7.5高級編輯157
7.5.1撤消修改157
7.5.2編輯點、標記和區域158
7.5.3剪切與粘貼:移出已剪切文本159
7.5.4插入特殊字符160
7.5.5全局緩沖區命令161
7.5.6訪問和保存文件162
7.5.7緩沖區164
7.5.8窗口165
7.5.9前臺shell命令166
7.5.10后臺shell命令166
7.6主模式:區分語言的編輯167
7.6.1選擇主模式167
7.6.2自然語言模式167
7.6.3C模式169
7.6.4定制縮進171
7.6.5注釋171
7.6.6專用模式172
7.7定制emacs172
7.7.1.emacs啟動文件173
7.7.2重映射鍵174
7.7.3.emacs文件示例175
7.8更多信息175
7.9本章小結176
練習181
高級練習182
第Ⅲ部分shell
第8章bash187
8.1背景知識188
8.2啟動文件188
8.2.1登錄shell189
8.2.2交互式非登錄shell189
8.2.3非交互式shell189
8.2.4建立啟動文件189
8.2.5“.”(句點)或source:在當前shell中
運行啟動文件191
8.3符號命令191
8.4重定向標準錯誤191
8.5編寫和執行簡單的shell腳本193
8.5.1chmod:使文件可執行193
8.5.2“#!”指定shell194
8.5.3“#”開始一行注釋195
8.5.4執行shell腳本196
8.6控制操作符:命令分隔和命令
分組196
8.6.1使用分號和換行符分隔命令196
8.6.2“|”和“&”分隔命令及其他功能197
8.6.3布爾控制操作符&&和||198
8.6.4()命令分組198
8.6.5“”繼續命令199
8.7作業控制199
8.7.1jobs:列出作業200
8.7.2fg:將作業移到前臺運行200
8.7.3掛起作業201
8.7.4bg:將作業移到后臺運行201
8.8操作目錄棧201
8.8.1dirs:顯示棧202
8.8.2pushd:將目錄壓入棧中202
8.8.3popd:將目錄從棧中彈出202
8.9參數和變量203
8.9.1用戶創建的變量204
8.9.2變量屬性206
8.9.3關鍵字變量207
8.10特殊字符212
8.11locale213
8.12時間215
8.13進程217
8.13.1進程結構218
8.13.2進程標識218
8.13.3執行命令219
8.14歷史機制219
8.14.1控制歷史機制的變量220
8.14.2重新執行和編輯命令221
8.14.3Readline庫226
8.15別名230
8.15.1別名中的單引號和雙引號231
8.15.2別名示例231
8.16函數233
8.17控制bash的功能和選項235
8.17.1bash命令行選項235
8.17.2shell的功能235
8.18處理命令行237
8.18.1歷史擴展237
8.18.2別名替換238
8.18.3解析和掃描命令行238
8.18.4命令行擴展238
8.19本章小結244
練習245
高級練習246
第9章tcsh249
9.1shell腳本250
9.2進入和退出tcsh250
9.3bash與tcsh的共性252
9.3.1命令行擴展(替換)252
9.3.2作業控制255
9.3.3文件名替換255
9.3.4操作目錄棧255
9.3.5命令替換256
9.4重定向標準錯誤256
9.5操作命令行256
9.5.1字補全257
9.5.2編輯命令行258
9.5.3校正拼寫259
9.6變量260
9.6.1變量替換260
9.6.2字符串變量260
9.6.3字符串變量數組261
9.6.4數值變量261
9.6.5花括號263
9.6.6特殊的變量形式263
9.6.7tcsh變量264
9.7控制結構268
9.7.1if268
9.7.2goto270
9.7.3中斷處理270
9.7.4if...then...else270
9.7.5foreach271
9.7.6while272
9.7.7break和continue273
9.7.8switch273
9.8內置命令274
9.9本章小結277
練習277
高級練習278
第Ⅳ部分編程工具
第10章bash程序設計281
10.1控制結構282
10.1.1if…then282
10.1.2if...then...else285
10.1.3if...then...elif286
10.1.4for...in290
10.1.5for292
10.1.6while293
10.1.7until296
10.1.8break與continue297
10.1.9case298
10.1.10select302
10.1.11Here文檔304
10.2文件描述符305
10.2.1打開文件描述符305
10.2.2復制文件描述符306
10.2.3文件描述符示例306
10.2.4確定文件描述符是否與終端關聯308
10.3參數309
10.3.1位置參數309
10.3.2特殊參數313
10.4變量315
10.4.1shell變量315
10.4.2環境、環境變量和繼承316
10.4.3擴展空變量和未賦值的變量319
10.4.4數組變量320
10.4.5函數中的變量321
10.5內置命令322
10.5.1type:顯示命令的相關信息322
10.5.2read:接收用戶輸入322
10.5.3exec:執行命令或重定向文件描
述符325
10.5.4trap:捕獲信號326
10.5.5kill:終止進程328
10.5.6eval:掃描、賦值并執行命令行329
10.5.7getopts:解析選項329
10.5.8部分內置命令列表331
10.6表達式332
10.6.1算術表達式332
10.6.2邏輯表達式(條件表達式)333
10.6.3字符串模式匹配333
10.6.4運算符334
10.7隱式命令行延續337
10.8shell程序337
10.8.1遞歸的shell腳本338
10.8.2shell的quiz腳本340
10.9本章小結345
練習345
高級練習346
第11章Perl腳本語言349
11.1Perl簡介350
11.1.1更多信息350
11.1.2幫助350
11.1.3perldoc350
11.1.4術語352
11.1.5運行Perl程序352
11.1.6語法353
11.2變量355
11.2.1標量變量356
11.2.2數組變量357
11.2.3哈希變量358
11.3控制結構359
11.3.1if/unless359
11.3.2if…else361
11.3.3if…elsif…else361
11.3.4foreach/for362
11.3.5last和next363
11.3.6while/until364
11.4處理文件365
11.5排序367
11.6子例程368
11.7正則表達式370
11.8CPAN模塊373
11.9示例375
11.10本章小結377
練習377
高級練習378
第12章Python編程語言379
12.1簡介379
12.1.1調用Python380
12.1.2更多信息381
12.1.3寫標準輸出與讀標準輸入381
12.1.4函數和方法382
12.2標量變量、列表和字典382
12.2.1標量變量382
12.2.2列表383
12.2.3字典386
12.3控制結構387
12.3.1if387
12.3.2if…else387
12.3.3if…elif…else388
12.3.4while388
12.3.5for389
12.4讀寫文件390
12.4.1文件輸入和輸出390
12.4.2異常處理391
12.4.3pickle模塊392
12.5正則表達式392
12.6定義函數394
12.7使用庫394
12.7.1標準庫394
12.7.2非標準庫394
12.7.3SciPy和NumPy庫395
12.7.4命名空間395
12.7.5導入模塊395
12.7.6導入函數示例396
12.8Lambda函數397
12.9列表推導398
12.10本章小結398
練習399
高級練習399
第13章MariaDB數據庫管理系統401
13.1注意402
13.1.1語法和慣例403
13.1.2更多信息404
13.2安裝MariaDB服務器和客戶端404
13.2.1Fedora/RHEL(RedHatEnterprise
Linux)404
13.2.2Debian/Ubuntu/Mint404
13.2.3OpenSUSE405
13.2.4macOS405
13.3客戶端選項405
13.4配置MariaDB405
13.4.1為MariaDBroot用戶指定密碼406
13.4.2刪除匿名用戶406
13.4.3運行安全安裝腳本406
13.4.4~/.my.cnf:配置MariaDB客戶端406
13.4.5~/.mysql_history:保存MariaDB
歷史406
13.5創建數據庫407
13.6添加用戶407
13.7一些示例408
13.7.1登錄408
13.7.2創建表408
13.7.3添加數據409
13.7.4獲取數據410
13.7.5備份數據庫412
13.7.6修改數據412
13.7.7創建第二個表413
13.7.8連接查詢413
13.8本章小結416
練習417
第14章AWK模式處理語言419
14.1語法420
14.2參數420
14.3選項420
14.4注意421
14.5語言基礎421
14.5.1模式421
14.5.2動作421
14.5.3注釋422
14.5.4變量422
14.5.5函數422
14.5.6算術運算符423
14.5.7關聯數組423
14.5.8printf423
14.5.9控制結構424
14.6示例426
14.7gawk高級編程438
14.7.1getline:控制輸入438
14.7.2協進程:雙向I/O439
14.7.3從網絡獲取輸入440
14.8本章小結441
練習441
高級練習441
第15章sed編輯器443
15.1語法443
15.2參數443
15.3選項444
15.4編輯器基礎444
15.4.1地址444
15.4.2指令445
15.4.3控制結構445
15.4.4暫存空間446
15.5示例446
15.6本章小結453
練習453
第Ⅴ部分安全的網絡實用程序
第16章rsync安全復制實用程序457
16.1語法458
16.2參數458
16.3選項458
16.3.1注意459
16.3.2更多信息459
16.4示例460
16.4.1使用source-file尾部的斜杠(/)460
16.4.2刪除文件460
16.4.3在遠程系統上復制文件461
16.4.4鏡像目錄462
16.4.5生成備份462
16.4.6恢復文件464
16.5本章小結464
練習464
第17章OpenSSH安全通信實用程序465
17.1OpenSSH簡介466
17.1.1文件466
17.1.2更多信息467
17.2運行OpenSSH客戶端ssh、scp
和sftp467
17.2.1指南:使用ssh和scp連接到
OpenSSH服務器467
17.2.2配置OpenSSH客戶端467
17.2.3ssh:登錄或者在遠程系統上執行
命令469
17.2.4scp:與遠程系統互相復制文件471
17.2.5sftp:安全的FTP客戶端472
17.2.6~/.ssh/config和/etc/ssh/ssh_config
配置文件473
17.3設置OpenSSH服務器(sshd)474
17.3.1必要的前提條件474
17.3.2注意474
17.3.3指南II:啟動OpenSSH服務器474
17.3.4認證密鑰:自動登錄474
17.3.5randomart圖475
17.3.6ssh-agent:保存私鑰476
17.3.7命令行選項477
17.3.8/etc/ssh/sshd_config配置文件477
17.4疑難解答478
17.5隧道/端口轉發478
17.5.1轉發X11478
17.5.2端口轉發479
17.6本章小結479
練習480
高級練習480
第Ⅵ部分命令參考
第18章命令參考483
18.1標準倍數后綴487
18.2常見選項487
18.3sample實用程序487
18.4sample(macOS)488
18.5aspell488
18.6at491
18.7busybox494
18.8bzip2496
18.9cal497
18.10cat498
18.11cd499
18.12chgrp501
18.13chmod502
18.14chown505
18.15cmp506
18.16comm508
18.17configure509
18.18cp510
18.19cpio512
18.20crontab516
18.21cut518
18.22date519
18.23dd521
18.24df523
18.25diff524
18.26diskutil(僅用于macOS)528
18.27ditto(僅用于macOS)530
18.28dmesg531
18.29dscl(macOS)532
18.30du534
18.31echo536
18.32expand/unexpand537
18.33expr538
18.34file540
18.35find542
18.36finger545
18.37fmt547
18.38fsck548
18.39ftp551
18.40gawk555
18.41gcc555
18.42GetFileInfo(僅用于macOS)558
18.43grep559
18.44gzip562
18.45head564
18.46join565
18.47kill567
18.48killall568
18.49launchctl(僅用于macOS)569
18.50less571
18.51ln574
18.52lpr575
18.53ls577
18.54make581
18.55man585
18.56mc587
18.57mkdir592
18.58mkfs593
18.59mv594
18.60nice596
18.61nl597
18.62nohup598
18.63od598
18.64open(僅用于macOS)601
18.65otool(macOS)603
18.66paste604
18.67pax606
18.68plutil(僅用于macOS)609
18.69pr610
18.70printf611
18.71ps614
18.72renice616
18.73rm617
18.74rmdir618
18.75rsync619
18.76scp619
18.77screen620
18.78sed623
18.79SetFile(僅用于macOS)623
18.80sleep624
18.81sort625
18.82split632
18.83ssh633
18.84sshfs/curlftpfs633
18.85stat635
18.86strings636
18.87stty637
18.88sysctl639
18.89tail640
18.90tar642
18.91tee645
18.92telnet646
18.93test648
18.94top650
18.95touch652
18.96tr653
18.97tty655
18.98tune2fs656
18.99umask658
18.100uniq659
18.101w660
18.102wc662
18.103which662
18.104who664
18.105xargs665
第Ⅶ部分附錄
附錄A正則表達式669
附錄B獲取幫助677
附錄C更新系統681
附錄DmacOS注意事項691
附錄E術語表699
Linux是當今主要的Internet服務器平臺。系統管理員和Web開發者需要熟諳Linux,深入掌握shell和命令行知識;由著名Linux專家Mark G. Sobell撰寫的卓越經典書籍《Linux命令行與shell編程實戰(第4版)》涵蓋Linux的方方面面,將幫助你達成上述目標,成為Linux專家。《Linux命令行與shell編程實戰(第4版)》將全面深入地介紹系統管理員、開發者以及高級用戶最需要的工具,并涵蓋日常工作中最常用的參考資源。合著者Matthew Helmke為《Linux命令行與shell編程實戰(第4版)》增加了很多更新內容。
《Linux命令行與shell編程實戰(第4版)》適用于所有Linux版本,列舉了數百個緊貼實用的優質示例,從基礎知識講起,極為清晰地介紹了文件系統、shell、編輯器、實用程序、編程工具和正則表達式等最有用的Linux知識。
《Linux命令行與shell編程實戰(第4版)》還向Mac用戶介紹macOS命令行的相關內容,包括僅macOS可用而其他Linux/UNIX未含的工具和實用程序。
Linux 《Linux命令行與shell編程實戰(第4版)》闡述如何通過命令行方式使用Linux操作系統。《Linux命令行與shell編程實戰(第4版)》前幾章介紹Linux基礎知識。后面部分則介紹更后面的主題,詳細闡述相關技術。《Linux命令行與shell編程實戰(第4版)》并不針對特定的Linux版本或者某個發行版,而是適用于所有近期發布的Linux版本。
macOS 《Linux命令行與shell編程實戰(第4版)》還解釋如何使用macOS的UNIX/Linux基本功能。這部分內容“直奔主題”,跳過了大多數人經常與Macintosh聯系在一起的傳統圖形用戶界面(GUI),討論如何使用與macOS直接相連的強大命令行界面(CLI)。在《Linux命令行與shell編程實戰(第4版)》中提到Linux之處,也隱含了macOS,并指出了這兩種操作系統之間的區別。
命令行界面(CLI) 在計算機誕生之初,只有命令行(文本)界面(Command Line Interface,CLI),可通過命令行向Linux輸入命令。那時還沒有鼠標和圖標,也就不能通過拖放方式進行操作。某些程序(如emacs)使用ASCII字符集中非常有限的圖形字符實現了基本的窗口。反白顯示技術可將計算機屏幕分成幾個區域。
Linux就是在這樣的環境中誕生和發展起來的。很自然地,早期的所有Linux實用程序都通過命令行方式調用。Linux的真正功能還體現在這樣的環境中,這也是很多Linux專家非命令行不用的原因。《Linux命令行與shell編程實戰(第4版)》通過清晰的闡述和詳細的示例,向讀者展示了如何通過命令行方式最高效地使用Linux系統。
Linux發行版 Linux發行版包括Linux內核、實用程序以及應用程序。目前已有多個發行版,包括Ubuntu、Fedora、openSUSE、Red Hat、Debian、Mageia、Arch、CentOS、Solus和Mint等。盡管這些發行版之間有各種差異,但它們都依賴于Linux內核、實用程序和應用程序。《Linux命令行與shell編程實戰(第4版)》闡述的內容將基于那些在絕大多數發行版上通用的代碼。因此,無論使用的Linux發行版是什么,讀者都可以使用這些程序。
內容重疊 如果讀者讀過Mark G. Sobell撰寫的其他書籍,如A Practical Guide to Fedora and Red Hat Enterprise Linux或A Practical Guide to Ubuntu Linux,或者讀過Matthew Helmke撰寫的Ubuntu Unleashed 或The Official Ubuntu Book,會發現這些書籍的內容和《Linux命令行與shell編程實戰(第4版)》有所重疊。這些書籍介紹的一些信息是相似的,但針對每《Linux命令行與shell編程實戰(第4版)》的預期讀者,從不同角度、在不同深度呈現技術信息。
面向讀者 《Linux命令行與shell編程實戰(第4版)》面向不同層次的讀者。盡管具備一些使用計算機的經驗將有助于讀者更好地理解《Linux命令行與shell編程實戰(第4版)》的內容,但《Linux命令行與shell編程實戰(第4版)》不要求讀者具備編程經驗。《Linux命令行與shell編程實戰(第4版)》適合于下列讀者:
● 學生 上課時要用到Linux或macOS。
● 高級用戶 希望學習如何通過命令行探究Linux或macOS的功能。
● 專家 日常工作中使用Linux或macOS。
● Macintosh新用戶 希望了解UNIX/Linux是什么,為什么每個人都說它很重要,以及如何使用它。
● 有經驗的Macintosh用戶 希望知道如何利用作為macOS的基礎的UNIX/Linux功能。
● UNIX用戶 希望把他們的UNIX技巧應用于Linux或macOS環境。
● 系統管理員 需要對Linux或macOS和可用的實用程序進行更深入的理解,包括bash、Perl和Python腳本語言。
● Web開發人員 需要透徹理解Linux,包括Perl和Python。
● 計算機系的學生 他們需要學習Linux或macOS操作系統。
● 程序員 需要理解Linux或macOS編程環境。
● 技術主管 需要學習Linux或macOS基礎知識。
優勢 《Linux命令行與shell編程實戰(第4版)》將使讀者對如何通過命令行使用Linux和macOS有深入的認識。無論讀者的背景如何,《Linux命令行與shell編程實戰(第4版)》都將為讀者提供工作中將用到的知識:通過《Linux命令行與shell編程實戰(第4版)》,讀者將學會如何使用Linux/macOS,并且在未來數年中,《Linux命令行與shell編程實戰(第4版)》都將是一本有用的參考書。
Macintosh系統有大量可用的免費軟件。另外,Macintosh共享軟件社區也非常活躍。《Linux命令行與shell編程實戰(第4版)》介紹了macOS的UNIX/Linux方面,為Macintosh用戶使用可用于Linux和其他類UNIX系統的大量免費或低成本軟件鋪平了道路。
《Linux命令行與shell編程實戰(第4版)》中的Linux表示Linux和macOS
提示 UNIX操作系統是Linux和macOS的共同祖先,盡管這兩種操作系統的圖形用戶界面(GUI)顯著不同,但命令行界面(CLI)非常類似,在許多方面都相同。《Linux命令行與shell編程實戰(第4版)》描述了Linux和macOS的CLI。為便于閱讀,《Linux命令行與shell編程實戰(第4版)》使用Linux表示Linux和macOS,并明確標注出這兩種操作系統的不同之處。
《Linux命令行與shell編程實戰(第4版)》特色
《Linux命令行與shell編程實戰(第4版)》經過精心組織,以便讀者在不同的條件下都可以方便地閱讀。例如,讀者可逐頁閱讀《Linux命令行與shell編程實戰(第4版)》,從基本內容開始學習Linux命令行。此外,一旦讀者能熟練使用Linux,《Linux命令行與shell編程實戰(第4版)》就會成為一本參考書:從目錄中查找感興趣的部分,然后開始閱讀。也可以查閱《Linux命令行與shell編程實戰(第4版)》第Ⅵ部分包含的實用程序。讀者還可將《Linux命令行與shell編程實戰(第4版)》作為Linux主題的目錄:翻閱《Linux命令行與shell編程實戰(第4版)》,直至找到想看的主題。《Linux命令行與shell編程實戰(第4版)》還給出很多Web站點的鏈接,供讀者獲取其他信息:可將Internet視為《Linux命令行與shell編程實戰(第4版)》內容的延伸。
《Linux命令行與shell編程實戰(第4版)》具有以下特色:
● 可選章節允許讀者在不同階段閱讀《Linux命令行與shell編程實戰(第4版)》,當讀者可解決更復雜的問題時再回頭閱讀。
● 針對那些容易出錯的地方,《Linux命令行與shell編程實戰(第4版)》將突出顯示警告框,這樣就可在讀者遇到麻煩之前給予指導。
● 《Linux命令行與shell編程實戰(第4版)》中一些突出的提示框將提示讀者用不同的方式更高效地完成某個任務;或者這些內容很有用,或者僅為讀者提供一些有趣的信息。
● 安全提示框指出可使系統更安全的方法。
● 每章以“本章要點”開始,其中列出閱讀完該章之后讀者能完成的重要任務。
● 整《Linux命令行與shell編程實戰(第4版)》都穿插實例來講解各種概念。
● 書中包含許多有用的URL(Internet地址),讀者可從這些網站找到軟件和相關信息。
● 每章都有“本章小結”,用于回顧相應章包含的重要知識點。
● 每章末尾都有練習題,可幫助讀者鞏固所學技能。在www.sobell.com網站上有偶數編號練習題的答案。
● 《Linux命令行與shell編程實戰(第4版)》詳細描述了一些重要的GNU工具,如gcc、GNU配置和構建系統、make、gzip以及其他很多實用程序。
● 《Linux命令行與shell編程實戰(第4版)》還包含一些有用的鏈接,有助于讀者從很多資源(包括本地系統和Internet)獲取聯機文檔。
● 詳細介紹蘋果公司專門為macOS開發的重要命令行實用程序,包括diskutil、ditto、dscl、GetFileInfo、launchctl、otool、plutil和SetFile。
● 描述macOS的一些擴展屬性,包括文件派生、文件屬性、屬性標記和訪問控制列表(Access Control List,ACL)。
● 附錄D列出了macOS和Linux的一些區別。
《Linux命令行與shell編程實戰(第4版)》內容
下面將描述每章包含的內容,并解釋這些信息如何有助于利用Linux的功能。可瀏覽目錄以獲取更詳細的信息。
第1章 歡迎進入Linux和macOS世界
第1章介紹Linux和macOS的背景知識,包括Linux的歷史,描述了macOS的Mach內核,闡述了GNU項目如何幫助啟動Linux,并討論Linux區別于其他操作系統的一些重要特性。
第Ⅰ部分:Linux和macOS操作系統
工作經驗豐富的用戶可能希望跳過第Ⅰ部分
提示 如果讀者以前用過UNIX或Linux系統,可能想直接跳過第Ⅰ部分的部分章節或者全部章節。所有讀者都應該看一下2.1節“《Linux命令行與shell編程實戰(第4版)》約定”(其中解釋了《Linux命令行與shell編程實戰(第4版)》使用的排版約定)以及2.5節(可找到Linux文檔的本地資源和遠程資源)。
第Ⅰ部分介紹Linux并指導讀者開始使用它。
第2章 入門
第2章解釋《Linux命令行與shell編程實戰(第4版)》使用的版式約定。這些版式使得描述更加清晰,更便于讀者閱讀。該章給出了一些基本知識,并解釋如何登錄系統和修改密碼,還講述了在shell中輸入Linux命令以及查找系統文檔的方法。
第3章 實用程序
第3章講解命令行界面(CLI),并簡要介紹超過30個的命令行實用程序。閱讀該章,讀者將對Linux有一個認識,同時該章還介紹日常使用的一些工具和實用程序。第Ⅵ部分進一步討論實用程序。該章介紹的實用程序包括:
● grep 在文件中搜索字符串。
● unix2dos 將Linux文本文件轉換成Windows格式。
● tar 創建包含其他多個文件的存檔文件。
● bzip2和gzip 壓縮文件以節省磁盤空間,并可在網絡上更快地傳輸數據。
● diff 顯示兩個文本文件之間的差異。
第4章 Linux文件系統
第4章討論Linux層次結構的文件系統,包括文件、文件名、路徑名、使用目錄、訪問權限、硬鏈接和符號鏈接。理解文件系統將有助于組織數據,以便快速地查找信息。還可與其他用戶共享某些文件,同時保持其他文件為私有文件。
第5章 shell
第5章闡述如何使用shell的特性,以便更高效、便捷地工作。該章講述的所有功能可用于bash和tcsh。該章將討論:
● 使用命令行選項改變某條命令的工作方式。
● 如何在命令行中進行少量修改就可將一條命令的輸入從鍵盤重定向到文件。
● 如何將命令行的輸出從屏幕重定向到文件。
● 使用管道將一個實用程序的輸出直接發送到另一個實用程序,以便用命令行解決問題。
● 在后臺運行程序,這樣Linux就可在執行一個任務的情況下,同時執行另一個任務。
● 使用shell自動生成文件名,以節省輸入時間,同時在用戶不記得文件的精確文件名時也非常有用。
第Ⅱ部分:編輯器
第Ⅱ部分包括兩個經典的強大Linux命令行文本編輯器。絕大多數Linux發行版均包含vim文本編輯器,它是廣泛使用的vi編輯器和同樣流行的GNU emacs編輯器的“增強版”。使用文本編輯器可創建和修改文本文件,這些文本文件包括程序、shell腳本、備忘錄以及文本格式化程序的輸入數據。因為Linux系統管理涉及編輯基于文本的配置文件,所以富有經驗的Linux管理員應熟練使用文本編輯器。
第6章 vim編輯器
第6章首先介紹vim編輯器的使用手冊,然后闡述如何使用vim的許多高級功能,包括搜索字符串中的特殊字符、通用緩沖區、命名緩沖區、參數、標記以及在vim中執行命令,該章末尾總結了vim的命令。
第7章 emacs編輯器
第7章首先介紹emacs的使用手冊,然后介紹emacs編輯器的很多高級功能,還包括META、ALT和ESCAPE鍵的使用。該章還包括鍵綁定、緩沖區以及字符串和正則表達式的增量搜索和完全搜索。另外,該章詳細講解指針、光標、標記和區域的關系,同時介紹如何利用emacs的大量聯機幫助功能。其他主題包括剪切和粘貼、多窗口和多幀的使用以及emacs模式的使用(特別是C模式,可輔助程序員編寫和調試C代碼)。第7章末尾總結了emacs的命令。
第Ⅲ部分:shell
第Ⅲ部分更詳細地講解bash的用法和TC Shell(tcsh)。
第8章 bash
第8章承接第5章,內容包括shell更高級的用法。例如,該章使用Bourne Again Shell(bash),系統shell腳本幾乎只使用這種shell。第8章的內容包括:
● 使用shell啟動文件、shell選項和shell特性來定制shell。
● 使用作業控制機制停止作業,將作業從前臺移到后臺執行,或將其從后臺移到前臺執行。
● 使用shell歷史列表來修改和重新執行命令。
● 創建別名以定制命令。
● 在shell腳本中使用用戶創建的變量和關鍵字變量。
● 實現本地化,包括對locale實用程序、LC_變量和國際化的討論。
● 創建函數,這些函數類似于shell腳本,但執行速度更快。
● 編寫并執行簡單的shell腳本。
● 重定向錯誤消息,將錯誤消息輸出到文件中而不是輸出到屏幕上。
第9章 tcsh
第9章描述tcsh,并討論bash和tcsh的異同。該章將描述:
● 運行tcsh并將默認shell改為tcsh。
● 重定向錯誤消息,將錯誤消息輸出到文件中而不是輸出到屏幕上。
● 使用控制結構來改變shell腳本中的控制流。
● 使用tcsh的數組和數值變量。
● 使用shell的內置命令。
第Ⅳ部分:編程工具
第Ⅳ部分涵蓋Linux和macOS系統管理中廣泛使用的編程實用程序和一般用途的編程。
第10章 bash程序設計
第10章承接第8章,給出使用bash編寫高級shell腳本的用法,并列舉詳細的示例。該章將討論:
● 控制結構,如if...then...else和case。
● 變量,討論屬性、擴展空的或未賦值的變量、數組變量和函數中的變量。
● 環境,包括環境變量與本地變量、繼承和進程局部性的關系。
● 算法和邏輯(布爾)表達式。
● 一些最有用的shell內置命令,包括exec、trap和getopts。
一旦讀者掌握了Linux基礎知識,就可以運用已有知識,使用shell編程語言來構建更加復雜和專業的程序。
第10章首先提出兩個完整的shell編程問題,然后說明如何一步步地解決這些問題。第一個問題使用遞歸創建一個目錄層次結構。第二個問題開發一個迷宮程序,介紹如何創建shell腳本與用戶進行交互,以及腳本如何處理數據(第Ⅵ部分的例子也揭示了在shell腳本中用到的實用程序的很多功能)。
第11章 Perl腳本語言
介紹流行的、功能豐富的Perl編程語言,內容包括:
● Perl幫助工具,包括perldoc。
● Perl變量和控制結構。
● 文件處理。
● 正則表達式。
● CPAN模塊的安裝和使用。
許多Linux管理腳本都是用Perl編寫的。閱讀第11章后,讀者就可以更好地理解這些腳本,并開始編寫自己的腳本。該章還包含Perl腳本的許多示例。
第12章 Python編程語言
介紹靈活、友好的Python編程語言。該章內容包括:
● Python列表和字典。
● 可用于讀取和寫入文件的Python函數和方法。
● 使用pickle在磁盤上存儲對象。
● 導入和使用庫。
● 定義和使用函數,包括常用函數和Lambda函數。
● 正則表達式。
● 使用列表推導。
大量Linux工具都是用Python編寫的。第12章介紹Python,包括一些面向對象的基本概念,因此用戶可閱讀和理解Python程序,并能自己編寫。該章包含許多Python程序示例。
第13章 MariaDB數據庫管理系統
介紹廣泛使用的MariaDB/MySQL關系型數據庫管理系統(RDBMS)。該章內容包括:
● 關系型數據庫的術語。
● 安裝MariaDB客戶端和服務器。
● 創建數據庫。
● 添加用戶。
● 創建和更改表。
● 向數據庫添加數據。
● 備份和恢復數據庫。
第14章 AWK模式處理語言
第14章描述如何使用強大的AWK語言編寫程序,這些程序可過濾數據、撰寫報告并從Internet上獲取數據。14.7節描述了如何使用coprocess與另一個程序建立雙向通信,以及如何通過網絡而不是從本地文件獲取數據。
第15章 sed編輯器
第15章描述sed,它是一個非交互式流編輯器,很多應用程序在shell腳本中作為過濾器。該章將討論如何使用sed的緩沖區來編寫簡單但功能強大的程序,同時給出很多例子。
第Ⅴ部分:安全的網絡實用程序
第Ⅴ部分描述可用于在遠程系統上工作和通過網絡安全地復制文件的兩個實用程序。
第16章 rsync安全復制實用程序
第16章描述rsync實用程序,這是一個安全復制實用程序,它可在本地系統上復制普通文件或目錄層次結構,也可在本地系統和網絡上的另一個遠程系統之間復制普通文件或目錄層次結構。編寫程序時,可使用這個實用程序把文件或目錄備份到另一個系統上。
第17章 OpenSSH安全通信實用程序
講解使用ssh、scp和sftp實用程序在Internet上安全通信的方法。該章包括認證密鑰的使用——允許用戶不使用密碼就能安全地登錄遠程系統;ssh-agent——用于在工作過程中保存用戶私鑰;以及轉發X11——使用戶可遠程運行圖形界面程序。
第VI部分:命令參考
Linux包含數百個實用程序。第14~17章以及第Ⅵ部分列舉最重要的100多個實用程序的使用范例,使用這些實用程序,用戶在解決問題時就不必使用C語言編程。如果讀者已經熟悉UNIX/Linux,該部分就是一個有價值且易用的參考手冊。如果讀者并不是一位非常有經驗的用戶,那么在掌握《Linux命令行與shell編程實戰(第4版)》前面的章節時,這部分可以作為有用的補充。
盡管第14~17章以及第Ⅵ部分描述的實用程序采用的格式類似于Linux手冊,但這部分內容更易于閱讀和理解。這些實用程序是經過挑選的,因為它們是日常工作中經常使用的(如ls和cp),或者因為它們是shell腳本中特別有用的工具(如sort、paste和test),或者因為它們有助于使用Linux系統(如ps、kill和fsck),或者因為它們可用來與其他系統進行通信(如ssh、scp和ftp)。每個實用程序的描述均包括其最有用選項的完整描述,并指出macOS和Linux所支持選項的區別。“討論”和“注意”部分呈現充分利用相應實用程序的一些提示和技巧。“示例”部分說明如何在實際工作中使用這些實用程序,單獨用一個程序或與其他實用程序一起,完成諸如生成報告、匯總數據以及提取信息等任務。瀏覽find、ftp和sort 這三個實用程序的“示例”部分,就可以看出這些部分的信息非常豐富。一些實用程序,例如Midnight Commander(mc)和screen,包含更詳細的討論和指南信息。
第Ⅶ部分:附錄
第Ⅶ部分為附錄和術語表。
附錄A 正則表達式
講解如何使用正則表達式來充分利用Linux的潛在功能。很多實用程序,包括grep、sed、vim、AWK、Perl和Python,允許用正則表達式來替代簡單的字符串。單個正則表達式可匹配很多簡單的字符串。
附錄B 獲取幫助
詳細描述在使用Linux系統時遇到的問題的典型解決步驟。
附錄C 更新系統
講解如何使用實用程序下載軟件并更新系統。該附錄包括:
● dnf 從Internet下載軟件,更新系統并自動解決軟件依賴性問題。
● apt-get dnf的一個替代品,同樣用于系統更新。
● BitTorrent 適于發布大量數據,如Linux的安裝CD和DVD。
附錄D macOS注意事項
為一直使用Linux或其他類UNIX系統且不熟悉macOS的用戶簡要介紹macOS的功能和特點。
附錄E 術語表
定義了與使用Linux和macOS相關的500多個術語。
補充
作者網站的首頁包含書中一些可下載的較長的程序列表,還有很多有趣和有用的與Linux和OS X相關的萬維網站點的鏈接,包括《Linux命令行與shell編程實戰(第4版)》的勘誤表、偶數編號習題的答案以及意見和建議。另外,也可登錄或掃描《Linux命令行與shell編程實戰(第4版)》封底二維碼,以下載較長的程序列表。

提示 可在informit.com/register上注冊,從而方便地訪問下載資料、更新信息和/或勘誤信息;注意,必須登錄或創建新賬戶。輸入EISBN,即9780134774602,并單擊Submit。此后,可在Registered Products下看到很多附贈內容。
pagetop