Linux命令行與shell編程實戰(第4版)( 簡體 字) | |
作者:[美]馬克·G.索貝爾(Mark G. Sobell),馬修·赫姆基(Matthew Helmke) 著 尹曉奇 鞏曉云 譯 | 類別:1. -> 作業系統 -> Linux |
出版社:清華大學出版社 | 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下看到很多附贈內容。 |