內容簡介
《Linux命令編輯器Shell編程實例大全》全面、系統地介紹了Linux命令、編輯器及Shell編程的相關內容。既便於讀者深入了解Linux命令強大的功能,又可以幫助Linux用戶在較短的時間內學習和掌握Shell編程,開發出自己需要的實用程式。全書分上、中、下3篇,共20章,內容涵蓋了Linux簡介、RedHatLinux基礎知識、系統管理與設定、用戶和用戶組管理、磁碟管理、檔案和目錄管理、備份與壓縮、網路管理、正則表達式、vim編輯器、emacs、grep命令、awk與sed、常用的文本編輯命令、Shell編程基礎、Shell變數、條件測試表達式、Shell的控制結構、函式以及Shell編輯實例。
《Linux命令編輯器Shell編程實例大全》內容豐富,語言通俗易懂,敘述深入淺出,適合於各層次Linux用戶。既可以作為各類院校相關專業的教材,也可作為Linux培訓的教程及廣大Linux愛好者的專業參考書。
編輯推薦
344個命令,覆蓋Linux系統常用命令,每個命令均配以實例進行詳解。
實例講解Vina、Emacs等編譯器及其相關命令的使用
25個典型Shell程式,完全掌握Shell編程的精髓
圖書目錄
上篇 Linux命令
第1章 Linux簡介2
1.1 Linux起源及特點3
1.1.1 Linux起源3
1.1.2 Linux特點及主要優勢3
1.2Linux版本發展5
1.2.1Linux核心版本5
1.2.2 Linux發行版本6
1.3 Linux與自由軟體8
1.3.1 GNU與FSF8
1.3.2 GPL與Copyright8
第2章 初識Linux10
2.1 RedHatLinux的發展歷史11
2.2 RedHatLinux的安裝11
2.2.1 硬體需求11
2.2.2 安裝方式11
2.2.3 安裝過程12
2.3 登錄Linux20
2.3.1 Linux的啟動過程20
2.3.2 以圖形方式登錄Linux20
2.3.3 設定文本登錄模式21
2.3.4 以文本方式登錄Linux23
2.3.5 login命令:登錄系統23
2.3.6 startx命令:啟動圖形界面23
2.3.7 xset命令:設定X-windows24
2.4 Linux的終端命令視窗25
2.4.1 在桌面系統中使用虛擬終端25
2.4.2 終端視窗的常規操作26
2.5 命令行自動補全28
2.5.1 環境變數名補全28
2.5.2 用戶名補全28
2.5.3 命令、別名或函式的名字補全29
2.5.4 主機名補全29
2.6 退出Linux29
2.6.1 shutdown命令:關機或重新啟動29
2.6.2 halt命令:關閉系統31
2.6.3 reboot命令:重新啟動系統31
2.6.4 exit命令:重新登錄32
2.6.5 logout命令:註銷用戶32
2.7 在線上幫助命令man32
2.7.1 命令格式32
2.7.2 常規操作33
2.7.3 按章節查詢34
2.7.4 man檔案的輸出36
2.8 其他在線上幫助命令36
2.8.1 apropos命令:基於字元串查找whatis資料庫36
2.8.2 help命令:顯示內建命令的幫助信息36
2.8.3 info命令:查看info格式幫助信息38
2.8.4whereis命令:查詢檔案存儲位置40
2.8.5 whatis命令:查找簡潔的幫助信息40
第3章 系統管理與設定41
3.1 常用的信息顯示命令42
3.1.1 arch命令:顯示主機的體系結構42
3.1.2 cal命令:顯示日曆42
3.1.3 cat/proc/MemInfo:查看記憶體使用情況43
3.1.4 cat/proc/modules:查看當前系統模組44
3.1.5 cat/proc/version:查看當前系統版本45
3.1.6 cat/proc/partitions:查看當前系統分區46
3.1.7 cat/etc/issue命令:顯示當前系統的發行版本46
3.1.8 cat/proc/cpuinfo命令:顯示CPU信息46
3.1.9 cat/proc/interrupts命令:顯示中斷信息47
3.1.1 0cat/proc/filesystems命令:顯示檔案系統信息47
3.2.1 1date命令:顯示或設定系統時間47
3.1.1 2dmesg:顯示啟動信息50
3.1.1 3echo命令:顯示文本行51
3.1.1 4free命令:顯示記憶體信息52
3.1.1 5fgconsole命令:顯示活動的虛擬終端數目53
3.1.1 6fuser命令:用檔案或套接口識別進程54
3.1.1 7gdialog命令:從Shell創建對話框55
3.1.1 8history命令:顯示歷史指令62
3.1.1 9hostname命令:顯示或設定當前系統的主機名63
3.1.2 0hash命令:顯示、添加或清除哈希表64
3.1.2 1hwclock命令:顯示和設定硬體時鐘65
3.1.2 2ipcs命令:顯示IPC設備信息66
3.1.2 3isosize命令:顯示iso9660檔案系統大小67
3.1.2 4jobs命令:顯示工作清單67
3.1.2 5lsmod命令:顯示所有已載入的模組68
3.1.2 6locale命令:顯示當前系統的語言設定69
3.1.2 7mesg命令:顯示信息70
3.1.2 8minfo命令:顯示ms-dos檔案系統的各項參數70
3.1.2 9modinfo命令:顯示核心模組信息71
3.1.3 0mev命令:監視滑鼠情況71
3.1.3 1pstree命令:以樹狀圖顯示程式72
3.1.3 2pwd命令:顯示當前目錄73
3.1.3 3proc檔案系統:查看系統核心信息73
3.1.3 4ps命令:報告程式狀況74
3.1.3 5pmap命令:顯示程式的記憶體信息77
3.1.3 6procinfo命令:顯示系統狀態信息77
3.1.3 7pwd命令:顯示當前目錄79
3.1.3 8rulevel命令:顯示系統運行級別80
3.1.3 9sysctl命令:設定系統核心參數80
3.1.4 0stat命令:顯示檔案/檔案系統的詳細信息81
3.1.4 1top命令:顯示進程信息82
3.1.4 2time命令:顯示進程執行時間83
3.1.4 3tload命令:顯示系統負載84
3.1.4 4uptime命令:顯示系統的運行信息84
3.1.4 5uname命令:顯示作業系統信息85
3.1.4 6vmstat命令:顯示虛擬記憶體的統計信息85
3.1.4 7yes命令:連續輸出給定的字元串86
3.2 常用的系統管理命令87
3.2.1 apm命令:高級電源管理87
3.2.2 apmd命令:高級電源管理守護進程88
3.2.3 apmsleep命令:設定掛起、待機及喚醒89
3.2.4 bg命令:將程式放在後台執行89
3.2.5 chsh命令:改變登錄系統時的Shell90
3.2.6 clear命令:清除終端螢幕91
3.2.7 depmod命令:檢查模組依賴關係91
3.2.8 exec命令:執行完命令後,交出控制權92
3.2.9 fc命令:修改並執行命令92
3.2.1 0fg命令:將後台任務放到前台93
3.2.1 1gcov命令:coverage測試工具94
3.2.1 2init命令:所有進程的父進程95
3.2.1 3ipcrm命令:刪除訊息佇列、信號量或共享記憶體的ID96
3.2.1 4kill命令:殺死進程97
3.2.1 5killall命令:殺死同名的所有進程98
3.2.1 6logrotate命令:處理log檔案100
3.2.1 7mtools:軟碟操作命令集101
3.2.1 8nice命令:設定進程優先權102
3.2.1 9nohup命令:退出系統繼續執行命令103
3.2.2 0ntsysv命令:設定系統的各種服務103
3.2.2 1open命令:開啟虛擬終端104
3.2.2 2pgrep命令:查找符合條件的進程105
3.2.2 3pidof命令:顯示當前正在運行程式的進程ID106
3.2.2 4pkill命令:殺死進程107
3.2.2 5pwck命令:檢查密碼檔案108
3.2.2 6rlogin命令:遠端登錄108
3.2.2 7renice命令:對進程優先權進行調整109
3.2.2 8rmmod命令:刪除模組110
3.2.2 9rsh命令:遠端登錄的Shell111
3.2.3 0screen命令:多重視窗管理程式111
3.2.3 1sleep命令:休眠113
3.2.3 2sudo命令:以其他身份來執行命令114
3.2.3 3suspend命令:暫停執行Shell115
3.2.3 4symlinks命令:管理和維護符號連結115
3.2.3 5vlock命令:鎖定終端116
3.2.3 6wait命令:等待程式返回狀態116
3.2.3 7watch命令:重複執行命令並將結果輸出116
3.2.3 8&命令:將任務放到後台執行118
3.3 常用的系統維護命令118
3.3.1 alias命令:設定命令的別名118
3.3.2 aumix命令:設定音效裝置119
3.3.3 authconfig命令:配置系統的認證資源121
3.3.4 bind命令:顯示或設定按鍵組合124
3.3.5chkconfig命令:設定和檢查系統的服務設定124
3.3.6 declare命令:顯示或設定Shell變數126
3.3.7 dircolors命令:設定ls命令顯示的顏色128
3.3.8 enable命令:開動或關閉Shell內置命令131
3.3.9 eval命令:連續執行多個命令134
3.3.1 0export命令:設定或顯示環境變數134
3.3.1 1false命令:返回值為失敗137
3.3.1 2fbset命令:顯示或設定幀快取137
3.3.1 3hostid命令:顯示出當前主機的數字標識139
3.3.1 4insmod命令:載入模組139
3.3.1 5ldconfig命令:配置動態連結綁定141
3.3.1 6ldd命令:顯示共享庫檔案的相互依賴關係143
3.3.1 7lilo命令:安裝啟動裝載程式144
3.3.1 8losetup命令:設定和控制循環設備145
3.3.1 9mkraid命令:初始化或升級raid145
3.3.2 0modprobe命令:自動處理可載入模組146
3.3.2 1mouseconfig命令:設定滑鼠相關參數147
3.3.2 2resize命令:設定終端視窗的大小149
3.3.2 3rpm命令:管理RPM包149
3.3.2 4setserial命令:設定或顯示串口的信息153
3.3.2 5setup命令:設定公用程式154
3.3.2 6swapoff命令:卸載交換區(swaparea)157
3.3.2 7swapon命令:載入交換區(swaparea)158
3.3.2 8set命令:設定Shell執行方式158
3.3.2 9telinit命令:設定系統的運行等級160
3.3.3 0true命令:返回值為成功160
3.3.3 1ulimit命令:控制Shell及進程的資源161
3.3.3 2unalias命令:取消指定的別名162
3.3.3 3unset命令:刪除變數或函式163
3.3.3 4up2date命令:升級RedHatLinux系統163
3.4 自動作業處理166
3.4.1 crontab命令:設定定時執行166
3.4.2 anacron命令:任務調度守護進程169
3.4.3 at命令:系統將執行的任務排隊170
3.4.4 atd命令:執行已經排隊的任務172
3.4.5 atq命令:檢查排隊的任務172
3.4.6 atrm命令:刪除已經排隊的任務172
3.4.7 atrun命令:執行已排隊的任務173
3.4.8 batch命令:批處理173
3.5系統日誌174
3.5.1 syslogd命令:啟動syslog日誌進程174
3.5.2 syslog.conf:系統日誌配置檔案175
3.5.3 logger命令:測試syslog.conf177
3.5.4 使用echo命令清空日誌177
第4章 用戶和用戶組管理178
4.1 普通用戶的管理179
4.1.1 解析/etc/passwd檔案179
4.1.2 解析/etc/shadow檔案181
4.1.3pwconv命令:創建影子檔案183
4.1.4 pwunconv命令:從影子檔案恢復密文184
4.1.5useradd命令:添加新用戶185
4.1.6usermod命令:修改用戶的賬號188
4.1.7userdel命令:刪除用戶189
4.1.8 passwd命令:修改用戶密碼189
4.1.9 newusers命令:批量創建用戶191
4.1.1 0chpasswd命令:批量創建用戶密碼192
4.1.1 1chage命令:查看賬戶密碼的有效期192
4.2 根用戶的管理193
4.2.1 su命令:變更用戶身份193
4.2.2 以單用戶模式解決root密碼丟失問題194
4.2.3 以救援模式解決root密碼丟失問題196
4.2.4 chroot命令:改變根目錄198
4.3 用戶組的管理199
4.3.1 解析/etc/group與/etc/gshadow檔案199
4.3.2 groupadd命令:添加新用戶組202
4.3.3 groupmod命令:修改用戶組屬性204
4.3.4 groupdel命令:刪除用戶組204
4.3.5newgrp命令:切換所屬用戶組205
4.4 用戶和用戶組管理的安全防範措施205
4.4.1 ac命令:統計用戶連線時間205
4.4.2 last命令:查詢最近的使用者登錄時間206
4.4.3lastb命令:顯示最近登錄系統失敗的用戶信息208
4.4.4 who命令:查詢當前系統中登錄的用戶209
4.4.5 w命令:查看登錄用戶及其進行的操作210
4.4.6 使用userdel和groupdel命令刪除不需要的用戶和用戶組212
4.5 其他用戶和用戶組管理的常用命令213
4.5.1 finger命令:查找並顯示用戶信息213
4.5.2 groups命令:顯示指定用戶所屬的用戶組214
4.5.3 id命令:顯示用戶的UID、GID214
4.5.4 logname命令:顯示登錄用戶的用戶名215
4.5.5 newgrp命令:修改用戶的用戶組215
4.5.6rwho命令:查看登錄本地的用戶信息216
4.5.7 users命令:顯示當前登錄的用戶216
4.5.8 write命令:將信息實時傳遞給登錄的用戶或終端216
4.5.9 whoami命令:顯示當前用戶的信息217
4.6 用戶及用戶組管理命令的綜合套用217
4.6.1 解決/etc/nologin檔案引起的普通用戶無法登錄問題217
4.6.2 創建用戶已分享資料夾218
4.6.3 對/etc/shadow檔案的編輯導致用戶密碼丟失219
第5章 磁碟管理220
5.1 Linux磁碟分區工具221
5.1.1linux磁碟分區簡介221
5.1.2 fdisk命令:磁碟分區工具223
5.1.3 fdisk命令互動模式224
5.1.4 使用fdisk劃分磁碟分區實例228
5.1.5 parted命令:磁碟分區工具231
5.1.6 parted命令互動模式231
5.1.7sfdisk命令:Linux分區工具234
5.2 常用的磁碟管理命令235
5.2.1badblocks命令:檢查設備壞塊235
5.2.2 du命令:統計檔案和目錄占用的磁碟空間236
5.2.3 df命令:顯示檔案系統磁碟空間使用情況237
5.2.4fdformat命令:格式化磁碟239
5.2.5hdparm命令:顯示和設定硬碟參數239
5.2.6 mkswap命令:設定交換分區(swaparea)241
5.2.7 mkisofs命令:建立ISO9660/JOLIET/HFS檔案系統242
5.2.8mkinitrd命令:創建ramdisk的鏡像檔案242
5.2.9 mt命令:磁帶驅動操作243
5.2.1 0mzip命令:彈出zip/jaz設備中的磁碟244
5.2.1 1sync命令:將緩衝區內的數據寫入磁碟244
5.2.1 2rsync命令:遠程同步245
5.3 磁碟配額管理246
5.3.1 磁碟配額的系統配置247
5.3.2 edquota命令:對用戶或用戶組設定磁碟配額247
5.3.3 quota命令:顯示磁碟已使用的空間與配額限制249
5.3.4quotacheck命令:檢查磁碟的使用空間與限制249
5.3.5 quotaoff命令:關閉磁碟空間限制251
5.3.6quotaon命令:啟動磁碟空間配額限制252
5.3.7 quotastats命令:顯示磁碟空間的限制252
5.3.8 repquota命令:對檔案系統的磁碟配額情況進行統計253
5.4 邏輯卷管理(LVM)253
5.4.1 pvdisplay命令:查看組成LVM卷的物理卷254
5.4.2 pvcreate命令:創建物理卷254
5.4.3 vgcreate命令:創建卷組254
5.4.4 vgextend命令:在卷組裡添加一個新的物理卷254
5.4.5 lvcreate命令:創建一個邏輯卷254
5.5 磁碟管理命令的綜合套用255
5.5.1 添加新磁碟255
5.5.2 無法使用全部硬碟空間256
第6章 檔案和目錄管理257
6.1 檔案系統的概念258
6.2 檔案系統的組織方式258
6.3 系統的默認安裝目錄258
6.4 檔案系統的類型260
6.5 檔案系統的組成262
6.6 檔案的類型263
6.7 創建Linux檔案系統264
6.7.1mkfs命令:創建檔案系統264
6.7.2 mkbootdisk命令:建立目前系統的啟動盤265
6.8 檔案和目錄的許可權266
6.8.1 許可權的常規表示266
6.8.2 chmod命令:許可權設定與修改268
6.8.3 使用chomd命令設定特殊許可權270
6.8.4 umask命令:設定檔案或目錄的默認許可權271
6.9 修復受損的檔案系統274
6.9.1 fsck命令:檢測檔案系統並嘗試修復錯誤274
6.9.2e2fsck命令:檢查ex2檔案系統275
6.1 0mount與umount命令277
6.1 0.1 mount命令格式277
6.1 0.2 umount命令格式278
6.1 0.3 軟碟的掛載與卸載278
6.1 0.4 CDROM的掛載與卸載278
6.1 0.5 USB存儲設備的掛載與卸載279
6.1 1其他檔案和目錄管理常用命令280
6.1 1.1 檔案和目錄操作中常用的通配符280
6.1 1.2 attr命令:XFS檔案系統對象的擴展屬性281
6.1 1.3 basename命令:顯示檔案或目錄的基本名稱281
6.1 1.4 cd命令:改變目錄282
6.1 1.5 cp命令:複製檔案283
6.1 1.6chattr命令:改變檔案的屬性285
6.1 1.7 cksum命令:檔案的CRC校驗287
6.1 1.8 chown命令:改變所有者287
6.1 1.9chgrp命令:更換用戶組289
6.1 1.1 0dirname命令:顯示檔案的除名字外的路徑290
6.1 1.1 1fold命令:自動換行以適應指定列寬291
6.1 1.1 2find命令:查找目錄或檔案292
6.1 1.1 3file命令:顯示檔案類型293
6.1 1.1 4filterdiff命令:從diff檔案中提取或去除差異294
6.1 1.1 5findfs命令:通過卷標或UUID查找檔案系統295
6.1 1.1 6locate命令:定位檔案或目錄295
6.1 1.1 7ls或dir命令:列目錄296
6.1 1.1 8ln命令:連結檔案或目錄300
6.1 1.1 9lndir命令:建立到目錄的符號連結302
6.1 1.2 0lsattr命令:顯示檔案屬性303
6.1 1.2 1mkfontdir命令:創建x字型檔案目錄303
6.1 1.2 2msgcat命令:合併訊息304
6.1 1.2 3msgcomm命令:匹配訊息305
6.1 1.2 4msgen命令:創建英語訊息目錄306
6.1 1.2 5msginit命令:初始化訊息目錄307
6.1 1.2 6mkdir命令:創建目錄307
6.1 1.2 7mv命令:移動或更名現有的檔案或目錄308
6.1 1.2 8mattrib命令:修改或顯示MS-DOS檔案的屬性310
6.1 1.2 9mc命令:可視化檔案管理程式310
6.1 1.3 0mcopy命令:複製MS-DOS檔案到UNIX或從UNIX複製MS-DOS檔案312
6.1 1.3 1md5sum命令:計算和檢測MD5信息摘要312
6.1 1.3 2mdel命令:MS-DOS檔案刪除313
6.1 1.3 3mdir命令:顯示MS-DOS目錄314
6.1 1.3 4mktemp命令:建立暫存檔案314
6.1 1.3 5mmove命令:移動MS-DOS檔案314
6.1 1.3 6mren命令:更改MS-DOS檔案名稱稱315
6.1 1.3 7mshowfat命令:顯示分配給檔案的FAT簇信息315
6.1 1.3 8mtools命令:顯示mtools支持的命令316
6.1 1.3 9mtoolstest命令:測試並顯示mtools的相關設定316
6.1 1.4 0paste命令:對檔案進行縱向合併316
6.1 1.4 1rcp命令:遠端複製檔案或目錄317
6.1 1.4 2rm命令:刪除檔案或目錄318
6.1 1.4 3rmdir命令:刪除目錄319
6.1 1.4 4slocate命令:安全查找檔案或目錄320
6.1 1.4 5split命令:切割檔案321
6.1 1.4 6stat命令:顯示inode內容323
6.1 1.4 7scp命令:遠程複製檔案324
6.1 1.4 8sum命令:計算檔案的校驗碼327
6.1 1.4 9tmpwatch命令:刪除臨時檔案327
6.1 1.5 0touch命令:更新檔案或目錄時間328
6.1 1.5 1tree命令:以樹狀圖顯示目錄內容329
6.1 1.5 2which命令:查找檔案333
6.1 2檔案和目錄管理命令的綜合套用333
6.1 2.1 無法卸載已掛載的檔案系統334
6.1 2.2 查詢設備上採用的未知檔案系統334
6.1 2.3 恢復已刪除的檔案334
6.1 2.4 無法引導檔案系統335
第7章 備份與壓縮339
7.1Linux備份與壓縮的策略340
7.2 tar命令341
7.2.1 打包和解包的常規操作342
7.2.2 查看tar包中的內容343
7.2.3 打包連結檔案343
7.2.4 向包中添加新檔案344
7.2.5 生成.tar.gz壓縮檔344
7.3 gzip與gunzip命令345
7.3.1 常規壓縮與解壓縮操作346
7.3.2 查看.gz壓縮檔中的內容346
7.3.3 自定義壓縮檔後綴346
7.3.4 zcat命令:顯示壓縮檔案內容347
7.4 zip與unzip命令347
7.4.1 使用zip生成壓縮檔348
7.4.2 使用unzip進行解壓縮352
7.4.3zipinfo命令:顯示壓縮檔案信息353
7.5 bzip2與bunzip2命令356
7.5.1 使用bzip2生成壓縮檔356
7.5.2 使用bunzip2進行解壓縮357
7.5.3bzip2recover命令:恢復損壞的bzip2檔案359
7.6 dump與restore命令359
7.6.1 使用dump製作備份360
7.6.2 使用restore恢復備份361
7.7 compress與uncompress命令363
7.7.1 使用compress生成壓縮檔案363
7.7.2 使用uncompress進行解壓縮364
7.8 其他常用備份與壓縮命令365
7.8.1 ar命令:從歸檔檔案中建立、修改或提取檔案365
7.8.2cpio命令:備份檔案366
7.8.3 dd命令:磁碟複製命令367
7.8.4 使用cp命令製作軟碟鏡像367
7.8.5 使用cp命令製作光碟鏡像368
7.8.6 lha命令:壓縮或解壓縮.lhz檔案368
7.8.7unarj命令:解壓檔案370
第8章 網路管理與相關套用371
8.1 計算機網路的發展372
8.2 網路基本類型373
8.2.1 按地理覆蓋範圍373
8.2.2 按拓撲結構375
8.3網路體系結構377
8.3.1 OSI/RM參考模型377
8.3.2TCP/IP參考模型379
8.4 網路配置基本內容382
8.4.1 主機名382
8.4.2 IP位址382
8.4.3 子網與子網掩碼(subnetmask)385
8.4.4 廣播地址(broadcastaddress)385
8.4.5 網關地址(gateway)385
8.4.6 域名伺服器地址(DNS)385
8.4.7DHCP伺服器386
8.5 網路管理常用命令386
8.5.1 apachectl命令:apacheHTTP伺服器控制接口386
8.5.2 arp命令:控制系統ARP快取387
8.5.3 arpwatch命令:監聽ARP記錄388
8.5.4 arping命令:向鄰居主機傳送ARP請求388
8.5.5 cu命令:調用其他主機系統390
8.5.6 gaim命令:即時信息傳輸客戶端391
8.5.7 hostname命令391
8.5.8 host命令:dns查詢393
8.5.9 httpd命令:apachehttp伺服器程式395
8.5.1 0ifup命令396
8.5.1 1ifdown命令396
8.5.1 2ifconfig命令:顯示或配置網路設備397
8.5.1 3iptables命令:ipv4的包過濾和nat的管理400
8.5.1 4iptables-save命令:保存ip表403
8.5.1 5iwconfig命令:配置無線網路設備405
8.5.1 6mesg命令:控制終端的寫入操作406
8.5.1 7mingetty命令:精簡版的agetty407
8.5.1 8minicom命令:串口通信程式407
8.5.1 9mkfifo命令:創建管道408
8.5.2 0mtr命令:網路診斷工具409
8.5.2 1nc命令:TCP/UDP連線與偵聽409
8.5.2 2netconfig命令:設定各項網路功能412
8.5.2 3netstat命令:顯示網路狀態413
8.5.2 4nslookup命令:查詢DNS417
8.5.2 5route命令:顯示並設定路由418
8.5.2 6ping命令:檢測主機(ipv4)420
8.5.2 7ping6命令:檢測主機(ipv6)422
8.5.2 8pppd命令:點對點連線的守護進程423
8.5.2 9pppstats命令:顯示PPP統計信息424
8.5.3 0rdate命令:通過網路獲取時間424
8.5.3 1smbd命令:Samba服務端425
8.5.3 2ssh命令:遠程登錄程式(ssh客戶端)426
8.5.3 3statserial命令:顯示串口連線狀態427
8.5.3 4slrn命令:新聞閱讀程式428
8.5.3 5talk命令:與其他用戶交談428
8.5.3 6tcpdump命令:顯示網路中的TCP數據包429
8.5.3 7telnet命令:使用telnet進行遠程登錄431
8.5.3 8testparm命令:測試samba配置檔案432
8.5.3 9tracepath命令:追蹤路徑434
8.5.4 0traceroute命令:顯示到達目標網路主機的路由包435
8.5.4 1tty命令:顯示標準輸入設備名稱437
8.5.4 2wall命令:傳送信息437
8.5.4 3wget命令:從網際網路上下載資源437
8.5.4 4ytalk命令:多用戶聊天程式438
8.6 FTP常用命令441
8.6.1 ftp命令:檔案傳輸協定441
8.6.2ncftp命令:傳輸檔案449
8.6.3 ncftpget命令:下載檔案454
8.6.4 ncftpls命令:顯示檔案目錄456
8.6.5 ncftpput命令:上傳檔案457
8.6.6 tftp命令:傳輸檔案458
8.7 UUCP常用命令460
8.7.1uucico命令:UUCP檔案傳輸守護進程460
8.7.2 uucp命令:在UNIX系統間傳送檔案461
8.7.3uupick命令:處理UUCP檔案462
8.7.4 uuto命令:檔案傳送到遠端主機462
8.7.5uulog命令:顯示uucp日誌信息463
8.7.6 uuname命令:顯示uucp遠端主機464
8.7.7Uustat命令:顯示UUCP狀態464
8.7.8uux命令:通過UUCP在遠端主機上執行命令465
8.8電子郵件466
8.8.1 fetchmail命令:收取郵件467
8.8.2 mail命令:收發郵件470
8.8.3 mailq命令:顯示發件箱的郵件474
8.8.4 mutt命令:Mutt用戶郵件代理474
8.8.5 pine命令:收發郵件477
8.9 利用常用命令分析區域網路連通故障480
中篇編輯器
第9章 正則表達式482
9.1 正則表達式介紹483
9.2 元字元483
9.2.1 元字元的定義483
9.2.2 元字元的套用示例484
9.3字元集和類486
9.3.1 字元集和類的定義486
9.3.2 元字集和類的套用示例487
9.4 重複487
9.4.1 重複的定義488
9.4.2 重複的套用示例488
9.5 子表達式489
9.5.1 子表達式的定義489
9.5.2 子表達式的套用示例489
9.6 定位字元串的開始和末尾490
9.6.1 開始和末尾的定義490
9.6.2 開始和末尾的套用示例491
9.7 分支491
9.7.1 分支的定義491
9.7.2 分支的套用示例492
9.8 匹配特殊字元492
第10章 vi(vim)編輯器494
10.1 vi(vim)編輯器的歷史495
10.2 啟動與退出vi(vim)496
10.2.1 啟動vi(vim)496
10.2.2 退出vi(vim)498
10.3 vi(vim)的運行模式498
10.3.1 命令模式499
10.3.2 插入模式500
10.3.3 末行模式500
10.4 vi(vim)中的常用命令500
10.4.1 插入文本命令501
10.4.2 附加文本命令501
10.4.3 添加新行命令501
10.4.4 游標移動命令501
10.4.5 刪除命令502
10.4.6 修改命令503
10.4.7 更改大小寫命令504
10.4.8 替換命令504
10.4.9 合併命令505
10.4.1 0句點命令505
10.4.1 1撤銷命令505
10.4.1 2查找字元命令506
10.4.1 3讀入檔案命令506
10.4.1 4寫入檔案命令506
10.4.1 5定位到指定行命令507
10.4.1 6複製命令507
10.4.1 7貼上命令507
10.4.1 8重複命令507
10.4.1 9顯示狀態信息命令508
10.4.2 0保存和退出命令508
10.5 查找與替換字元串509
10.5.1 普通查找與增量查找509
10.5.2 替換字元串509
10.6 視窗操作510
10.6.1 視窗操作的捷徑510
10.6.2 視窗水平拆分511
10.6.3 視窗垂直拆分512
10.6.4 關閉視窗513
10.7 使用Shell命令513
10.7.1 啟動一個新Shell513
10.7.2 在vi(vim)中執行Shell513
10.8 其他常用操作514
10.8.1 螢幕重繪514
10.8.2 滾動螢幕514
10.8.3 建立和使用標記515
10.9 獲得幫助515
第11章 emacs編輯器517
11.1 emacs概述518
11.1.1 emacs簡介518
11.1.2 啟動和退出519
11.1.3 新建一個檔案521
11.1.4 保存檔案522
11.2 檔案編輯522
11.2.1 按鍵的表示與使用522
11.2.2 游標的移動523
11.2.3 輸入文本524
11.2.4 文本的刪除524
11.2.5 查找和替換525
11.3 緩衝區和視窗525
11.3.1 拆分視窗526
11.3.2 同時使用多個緩衝區進行工作527
11.3.3 在緩衝區中滾動528
11.4 emacs的擴展工具528
11.4.1 顯示日曆529
11.4.2 執行Shell命令529
11.4.3 調用遊戲530
第12章 grep命令532
12.1 grep介紹533
12.1.1 grep的含義533
12.1.2 grep的工作原理533
12.2 grep與正則表達式534
12.2.1 grep的正則表達式元字元534
12.2.2 grep正則實例537
12.3 grep的選項539
12.4 使用管道的grep542
12.5 grep的退出狀態542
12.6egrep與fgrep543
12.6.1 egrep543
12.6.2 fgrep545
第13章 gawk與sed546
13.1 過濾器gawk547
13.1.1 gawk概述547
13.1.2 gawk的語法549
13.1.3 awk的語言基礎550
13.1.4 模式551
13.1.5 動作553
13.1.6 注釋554
13.1.7 變數554
13.1.8 記錄和欄位555
13.1.9 輸出欄位分隔設定556
13.1.1 0重定向輸出556
13.1.1 1函式557
13.1.1 2關聯數組557
13.1.1 3printf命令:格式化輸出559
13.1.1 4關係運算符560
13.1.1 5算術運算符561
13.1.1 6gawk的流程控制563
13.1.1 7getline:控制輸入565
13.1.1 8協進程566
13.1.1 9從網路獲取數據567
13.1.2 0gawk的套用示例568
13.2 流編輯器sed569
13.2.1 sed的基本語法570
13.2.2 sed編輯器基礎571
13.2.3 地址572
13.2.4 指令572
13.2.5 列印:p指令573
13.2.6 刪除:d指令574
13.2.7 追加:a指令574
13.2.8 插入:i指令575
13.2.9 修改:c指令575
13.2.1 0退出:q指令576
13.2.1 1替換:s指令576
13.2.1 2下一條:n指令578
13.2.1 3從檔案讀入:r指令579
13.2.1 4寫入檔案:w指令579
13.2.1 5sed的控制結構580
13.2.1 6Pattern區和Hold區580
13.2.1 7sed的套用示例583
第14章 其他常用的文本編輯命令585
14.1aspell命令:檢查檔案的拼寫錯誤586
14.2 cat命令:顯示文本內容588
14.3 cmp命令:比較檔案差異590
14.4csplit命令:按指定行數分割檔案591
14.5 cut命令:檔案剪下592
14.6 col命令:過濾控制字元594
14.7 colrm命令:刪除指定的列594
14.8 comm命令:對已排序檔案逐行進行比較595
14.9 diff命令:檔案比較596
14.1 0diffstat命令:diff結果的統計信息599
14.1 1ed命令:行文本編輯器600
14.1 2fmt命令:編排文本檔案601
14.1 3gedit命令:gnome的文本編輯器602
14.1 4head命令:從開始顯示指定行604
14.1 5indent命令:調整c原始代碼檔案的格式605
14.1 6jed命令:編輯文本檔案609
14.1 7joe命令:編輯文本檔案611
14.1 8join命令:基於相同欄位連線兩個檔案615
14.1 9less命令:前後翻閱文本內容616
14.2 0more命令:分屏顯示文本內容617
14.2 1od命令:輸出檔案內容618
14.2 2pr命令:編排檔案格式620
14.2 3patch命令:修補檔案622
14.2 4pico命令:編輯文字檔案624
14.2 5sort命令:檔案排序626
14.2 6spell命令:簡單的拼寫檢查程式629
14.2 7tail命令:顯示檔案的末尾部分629
14.2 8tac命令:反序輸出檔案631
14.2 9tee命令:讀取標準輸入到標準輸出或檔案632
14.3 0tr命令:轉換檔案中的字元633
14.3 1uniq命令:檢查檔案中重複出現的行634
14.3 2view命令:查看檔案內容635
14.3 3wc命令:計算檔案的字數、位元組數、行數636
下篇Shell編程
第15章 Shell編程基礎640
15.1 Shell概述641
15.1.1 Shell的功能與定義641
15.1.2 Shell的啟動和退出641
15.1.3Shell腳本介紹641
15.2 Shell分類644
15.2.1 BourneShell644
15.2.2 BourneAgainShell644
15.2.3 CShell645
15.2.4 KornShell645
15.2.5 PerlShell645
15.3 Shell基礎知識645
15.3.1 區分大小寫645
15.3.2 Shell腳本中的注釋646
15.3.3 I/O重定向646
15.3.4 管道(Pipe)649
15.3.5 前台與後台650
15.3.6 命令執行順序651
15.3.7 Shell通配符652
15.3.8 單引號、雙引號及反引號653
15.3.9 指定使用的Shell654
15.3.1 0運行腳本655
第16章 Shell變數及相關操作658
16.1 Shell變數類型659
16.1.1 環境變數659
16.1.2 位置變數660
16.1.3 預定義的特殊變數662
16.1.4 用戶自定義的變數663
16.2 變數的操作663
16.2.1 創建變數663
16.2.2 區分變數名664
16.2.3 刪除變數664
16.3 變數的賦值665
16.3.1 使用read命令賦值665
16.3.2 直接給變數賦值667
16.3.3 使用命令行參數賦值667
16.3.4 利用命令的輸出結果賦值668
16.3.5 從檔案讀入數據實現賦值668
16.4 變數的輸出669
16.4.1 echo命令:直接輸出變數的值669
16.4.2 printf命令:格式化輸出變數669
16.5數組變數671
16.5.1 數組的定義671
16.5.2 數組的複製672
16.5.3 數組元素的個數673
16.5.4 數組元素的長度674
16.6 算術運算675
16.6.1 expr命令675
16.6.2 let命令675
16.6.3 浮點算術運算676
第17章 條件測試677
17.1 Shell的測試命令678
17.2 測試檔案屬性678
17.2.1 測試檔案存在並且是塊設備678
17.2.2 測試檔案存在並且是字元設備679
17.2.3 測試檔案存在並且是目錄679
17.2.4 測試檔案存在680
17.2.5 測試檔案存在並且可執行681
17.3 測試數值681
17.3.1 相等測試682
17.3.2 不相等測試682
17.3.3 大於測試683
17.3.4 大於等於測試684
17.3.5 小於測試684
17.3.6 小於等於測試685
17.4 測試字元串686
17.4.1 相等測試686
17.4.2 不相等測試687
17.4.3 長度為零測試688
17.4.4 長度不為零測試688
17.4.5 非空測試689
17.5 測試邏輯運算符690
17.5.1 邏輯與測試690
17.5.2 邏輯或測試691
17.5.3 邏輯非測試692
第18章 Shell的控制結構693
18.1 if結構694
18.1.1 if結構的語法格式694
18.1.2 if...then...fi示例695
18.1.3 if...then...else...fi示例696
18.1.4 if...then...elif...示例697
18.1.5 if嵌套699
18.2 case結構701
18.2.1 case結構的語法格式701
18.2.2 case結構示例702
18.2.3 case嵌套707
18.3 select結構709
18.3.1 select結構的語法格式709
18.3.2 select結構示例709
18.4 while循環711
18.4.1 while語句的語法格式711
18.4.2 while循環示例712
18.4.3 while的嵌套713
18.4.4 避免死循環714
18.5 for循環716
18.5.1 for循環語法結構716
18.5.2 for循環示例717
18.6 until循環719
18.6.1 until循環的語法結構719
18.6.2 until循環示例720
18.7 break和continue語句721
18.7.1break語句721
18.7.2 continue語句723
第19章 函式728
19.1 函式的定義729
19.2 函式的調用729
19.2.1 執行函式729
19.2.2 函式參數傳遞731
19.2.3 函式的返回值734
19.2.4 載入函式735
19.2.5 刪除函式736
19.3 函式的作用域737
19.3.1 全局作用域737
19.3.2 局部作用域738
19.3.3 套用示例739
19.4 函式的嵌套740
19.5 函式的遞歸741
第20章 Shell編程實例745
20.1 判斷檔案類型746
20.1.1 系統設計746
20.1.2 代碼實現746
20.2 使用if語句編寫選擇選單746
20.2.1 系統設計747
20.2.2 代碼實現747
20.3 使用while循環編寫選擇選單748
20.3.1 系統設計748
20.3.2 代碼實現748
20.4 使用until循環編寫選擇選單750
20.4.1 系統設計750
20.4.2 代碼實現751
20.5 對指定目錄定時備份754
20.5.1 系統設計754
20.5.2 代碼實現754
20.6 連續對多個目錄逐個備份755
20.6.1 系統設計755
20.6.2 代碼實現755
20.7 自動下載指定文檔756
20.7.1 系統設計757
20.7.2 代碼實現757
20.8 自動上傳指定文檔757
20.8.1 系統設計758
20.8.2 代碼實現758
20.9 通過命令連續創建50個用戶賬號760
20.9.1 系統設計760
20.9.2 代碼實現760
20.1 0通過操作檔案創建多個用戶761
20.1 0.1 系統設計761
20.1 0.2 代碼實現762
20.1 1連續創建多個目錄764
20.1 1.1 系統設計764
20.1 1.2 代碼實現764
20.1 2檢查系統資源使用情況765
20.1 2.1 系統設計766
20.1 2.2 代碼實現766
20.1 3賬戶的一致性檢查769
20.1 3.1 系統設計769
20.1 3.2 代碼實現770
20.1 4檔案類型轉換773
20.1 4.1 系統設計774
20.1 4.2 代碼實現774
20.1 5對輸入的3個數字進行排序775
20.1 5.1 系統設計775
20.1 5.2 代碼實現775
20.1 6計算奇數之和778
20.1 6.1 系統設計778
20.1 6.2 代碼實現778
20.1 7使用select命令生成選單779
20.1 7.1 系統設計779
20.1 7.2 代碼實現780
20.1 8列印圖形781
20.1 8.1 系統設計781
20.1 8.2 代碼實現781
20.1 9處理壓縮檔案782
20.1 9.1 系統設計782
20.1 9.2 代碼實現782
20.2 0數值進制轉換784
20.2 0.1 系統設計784
20.2 0.2 代碼實現784
20.2 1使用sed列印指定行785
20.2 1.1 系統設計785
20.2 1.2 代碼實現785
20.2 2使用sed篩選普通檔案786
20.2 2.1 系統設計786
20.2 2.2 代碼實現786
20.2 3使用gawk反序輸出各列786
20.2 3.1 系統設計787
20.2 3.2 代碼實現787
20.2 4對檔案進行大小寫轉換787
20.2 4.1 系統設計788
20.2 4.2 代碼實現788
20.2 5統計檔案中的文本信息789
20.2 5.1 系統設計789
20.2 5.2 代碼實現789