具體描述
編輯推薦
《國外計算機科學經典教材:UNIX/Linux應用、編程與係統管理(第3版)》特色:
·vi/vim章節中的編輯程序宏指令被精簡並移到瞭附錄中,使得vi部分對於初學者來說更容易。第3章著重介紹pico編輯器
·增加瞭單獨的C語言編程一章。這樣是為瞭更好地理解接下來的兩章係統編程的部分
·第15章收入瞭流行的並發版本係統(CVS),所有的Linux係統中都有它
·增加瞭GNU調試器,因為其性能優於dbx
內容簡介
UNIX是計算機發展曆史上成功的操作係統傢族。它誕生於貝爾實驗室,爾後迅速成為世界上操作係統的主流並延續至今。Linux派生於UNIX,並且在小型機和桌麵計算機領域成為和微軟的Windows並駕齊驅的操作係統傢族。
《國外計算機科學經典教材:UNIX/Linux應用、編程與係統管理(第3版)》兼顧用戶和程序員的思路來編寫,是的UNIX/Linux教材。《國外計算機科學經典教材:UNIX/Linux應用、編程與係統管理(第3版)》既有教學工具又有詳盡的參考資料,非常適閤於任何UNIX或Linux相關課程。與類似教材不同的是,《國外計算機科學經典教材:UNIX/Linux應用、編程與係統管理(第3版)》設置瞭一個強大的教學框架,能夠使入門級的學生牢固地掌握基本概念,而高級主題章節能激發更有經驗的讀者跨越基礎知識。書中提供瞭近韆道練習和自測題,用於讓學生測試和鞏固他們對知識的理解。
作者簡介
達斯(Sumitabha Das),獲電子工程學位。他在國防部任職時開始對UNIX感興趣並深入該領域研究。Sumitabha在UNIX實際應用方麵積纍瞭豐富的經驗,對UNIX有著獨到的見解。目前,他緻力於講授UNIX係統和係統開發課程。
內頁插圖
目錄
第1部分 UNIX之用戶篇
第1章 UNIX簡介
1.1 操作係統
1.2 UNIX操作係統
1.3 瞭解你的計算機
1.4 係統管理員
1.5 登錄和注銷
1.5.1 登錄
1.5.2 注銷
1.6 實踐練習
1.6.1 用date和who查看係統信息
1.6.2 用ps查看進程
1.6.3 處理文件
1.6.4 處理目錄
1.7 UNIX的成功之路
1.7.1 伯剋利:第二學派
1.7.2 UNIX的分化
1.7.3 互聯網
1.7.4 Windows的威脅
1.8 POSIX和單一UNIX規範
1.9 Linux和GNU
1.10 UNIX體係結構
1.10.1 分工:Kernel和shell
1.10.2 文件和進程
1.10.3 係統調用
1.11 UNIX的功能
1.11.1 多用戶係統
1.11.2 多任務係統
1.11.3 應用程序庫
1.11.4 構建基塊方法
1.11.5 模式匹配
1.11.6 程序設計實用工具
1.11.7 文檔
1.12 小結
1.13 自測題
1.14 習題
第2章 熟悉UNIX命令
2.1 命令基礎
2.1.1 PATH:定位命令
2.1.2 命令的存放位置
2.2 命令結構
2.3 命令應用的靈活性
2.4 man:聯機幫助
2.4.1 導航與查找
2.4.2 用man-k和man-f獲取更多幫助
2.5 man文檔
2.5.1 瞭解man頁
2.5.2 用man來理解man
2.6 echo:顯示消息
2.7 printf:echo的替代命令
2.8 script:記錄會話
2.9 以mailx命令使用電子郵件
2.9.1 發送郵件
2.9.2 接收郵件
2.9.3 mailx內部命令
2.10 passwd:改變密碼
2.11 uname:顯示計算機名和操作係統
2.12 who:瞭解用戶
2.13 date:顯示係統日期
2.14 stty:在齣錯時
2.15 X Window係統
2.15.1 終端模擬器
2.15.2 文件管理器
2.16 小結
2.17 自測題
2.18 習題
第3章 文件係統
3.1 文件
3.1.1 普通(常規)文件
3.1.2 目錄文件
3.1.3 設備文件
3.2 文件名中有什麼
3.3 文件係統的層次結構
3.4 UNIX文件係統
3.5 隨命令一起使用絕對路徑名
3.6 HOME變量和~:主目錄
3.7 pwd和cd:在文件係統中導航
3.8 相對路徑名(.和..)
3.9 mkdir:創建目錄
3.10 rmdir:刪除目錄
3.11 ls:列齣文件
3.12 cp:復製文件
3.13 mv:重命名文件
3.14 rm:刪除文件
3.15 cat:顯示和串聯文件
3.16 more:UNIX分頁器
3.17 pico:基本文本編輯
3.17.1 導航
3.17.2 文本編輯
3.18 wc:計算行數、字數和字符數
3.19 lp:打印文件
3.20 pd:查看不可打印字符
3.21 dos2unix、unix2dos和Tofrodos:在DOS和UNIX之間轉換
3.22 tar:存檔程序
3.23 gzip:壓縮程序
3.24 zip:壓縮和存檔程序
3.25 使用這些命令的其他方式
3.26 小結
3.27 自測題
3.28 習題
第4章 文件屬性
4.1 重溫ls(-1):列齣文件屬性
4.2 文件權限
4.3 chmod:改變文件權限
4.3.1 相對權限
4.3.2 絕對賦予權限
4.3.3 遞推操作(-R)
4.4 目錄
4.4.1 讀權限
4.4.2 寫權限
4.4.3 執行權限
4.5 umask:默認的文件與目錄權限
4.6 文件係統和inode
4.7 In:創建硬鏈接
4.8 再論In:創建符號鏈接
4.9 文件所有權
4.9.1 chown:改變文件所有權
4.9.2 chgrp:改變用戶組所有者
4.9.3 如何處理入侵者
4.10 修改時間與訪問時間
4.11 find:定位文件
4.11.1 選擇準則
4.11.2 find操作符(!,-o和-a)
4.11.3 操作部分的操作符
4.12 小結
4.13 自測題
……
第2部分 UNIX之程序員篇
第3部分 係統管理
深入探索計算的基石:UNIX/Linux的強大力量與靈活實踐 在信息技術飛速發展的今天,理解和掌握操作係統如同理解摩天大樓的建築原理。而作為現代計算領域最核心、最具影響力的操作係統傢族之一,UNIX和Linux以其開放性、穩定性、高效性和強大的命令行接口,深深地塑造瞭我們今天所處的數字世界。從龐大的服務器集群到嵌入式設備,從科學研究到互聯網基礎設施,UNIX/Linux無處不在,其影響力之廣,技術之深,已成為計算機科學領域不可或缺的基石。 本書並非一本簡單的操作指南,而是一次深入探究UNIX/Linux精髓的旅程。它將帶領讀者超越錶麵的使用技巧,直抵操作係統的核心,理解其設計哲學,掌握其強大的內在機製,並最終學會如何充分利用其靈活性來解決現實世界的復雜問題。無論您是初涉計算機科學的學生,渴望建立紮實的操作係統知識體係;還是經驗豐富的開發者,希望優化程序性能、提升係統管理效率;抑或是對底層技術充滿好奇的技術愛好者,都將在這本書中找到寶貴的啓示和實用的工具。 第一部分:UNIX/Linux的世界:理念、曆史與核心概念 在進入技術細節之前,我們首先需要理解UNIX/Linux之所以如此成功的原因。本部分將追溯UNIX的起源,從貝爾實驗室的傳奇故事到Linux的自由開源運動,讓讀者領略其發展脈絡和核心價值觀。我們將深入探討UNIX哲學,即“一切皆文件”的設計理念,以及其對係統設計的深遠影響。通過理解文件係統、進程管理、內存管理、I/O模型等基本概念,讀者將建立起對操作係統運作方式的宏觀認知。 UNIX的曆史與演進: 從Multics的嘗試到Ken Thompson和Dennis Ritchie的創造,UNIX如何誕生並逐漸壯大,成為操作係統的標杆。 Linux的誕生與開源精神: Linus Torvalds如何受到MINIX的啓發,創建齣Linux內核,以及開源模式如何推動瞭Linux的快速發展和廣泛應用。 核心設計哲學: “小而精”的工具、管道(Pipes)和重定嚮(Redirection)的強大組閤,以及其如何實現模塊化和靈活性。 文件係統: 理解文件係統的層次結構,inode的概念,以及文件權限和屬性的含義。 進程管理: 進程是什麼?如何創建、銷毀和管理進程?理解PID、PPID、信號等概念。 內存管理: 虛擬內存、分頁、分段等機製如何讓程序運行得更高效、更安全。 I/O係統: 標準輸入、標準輸齣、標準錯誤,以及緩衝I/O和非緩衝I/O的區彆。 第二部分:命令行與Shell:UNIX/Linux的靈魂 命令行界麵(CLI)是UNIX/Linux最具代錶性的交互方式,它強大、高效且充滿彈性。本部分將帶領讀者深入掌握Shell的強大功能,從基本的命令使用到復雜的腳本編程。我們將學習如何利用各種核心命令來操作文件、管理進程、搜索信息,並瞭解Shell腳本的魅力,如何通過自動化來極大地提高工作效率。 Shell入門: 理解Shell的角色,掌握Bash等主流Shell的語法和常用命令。 文件與目錄操作: `ls`, `cd`, `pwd`, `cp`, `mv`, `rm`, `mkdir`, `rmdir` 等命令的熟練運用。 文本處理工具: `grep`, `sed`, `awk`, `cut`, `sort`, `uniq` 等強大的文本處理利器,解決日常數據處理的難題。 進程控製: `ps`, `top`, `kill`, `bg`, `fg` 等命令,理解進程的生命周期和管理。 重定嚮與管道: 掌握輸入輸齣重定嚮 (`<`, `>`, `>>`) 和管道 (`|`),構建強大的命令鏈。 Shell腳本編程: 學習變量、條件語句 (`if`, `case`)、循環 (`for`, `while`)、函數等,編寫自動化腳本,提升工作效率。 正則錶達式: 掌握正則錶達式的強大匹配能力,將其應用於文本搜索和處理。 第三部分:係統編程:構建高效穩定的應用程序 掌握瞭命令行和Shell的強大功能後,我們將深入到UNIX/Linux的係統編程層麵。本部分將介紹如何利用C語言和POSIX API來編寫能夠與操作係統底層進行交互的程序。通過學習係統調用、進程間通信(IPC)、綫程、文件I/O、網絡編程等核心概念,讀者將能夠構建齣更復雜、更高效、更具彈性的應用程序。 係統調用: 理解係統調用是用戶程序與內核交互的接口,掌握常用的係統調用,如`open`, `read`, `write`, `close`, `fork`, `exec`, `wait`等。 進程與綫程: 深入理解進程模型,學習如何創建和管理進程,並掌握綫程的概念和多綫程編程技術。 進程間通信(IPC): 管道(Pipes)、消息隊列(Message Queues)、共享內存(Shared Memory)、信號量(Semaphores)等多種IPC機製,實現進程間的數據交換與同步。 文件I/O的底層細節: 深入理解文件描述符,以及`read`, `write`等係統調用的工作原理。 信號處理: 理解信號的概念,以及如何捕獲和處理信號,增強程序的健壯性。 網絡編程基礎: 掌握Socket編程的基本概念,以及如何使用TCP/IP協議進行客戶端和服務器端的通信。 內存管理: 深入理解`malloc`, `free`, `mmap`等內存管理函數,以及其背後的係統機製。 第四部分:係統管理與維護:保障係統的穩定與安全 一個穩定、高效且安全的係統是任何IT基礎設施的基石。本部分將聚焦於UNIX/Linux的係統管理方麵,從用戶和權限管理到服務配置,從性能監控到安全加固,為讀者提供全麵的係統管理知識和實踐技巧。 用戶與權限管理: 理解用戶、組、UID、GID的概念,以及`chmod`, `chown`, `sudo`等命令的使用。 軟件包管理: 掌握`apt`, `yum`, `dnf`等主流包管理工具,高效地安裝、更新和卸載軟件。 服務管理: 學習`systemd`等現代係統管理工具,管理各種係統服務(如SSH, Web服務器等)的啓動、停止和狀態。 日誌管理: 理解係統日誌的作用,掌握查找和分析日誌信息,定位係統故障。 磁盤管理與文件係統維護: 理解文件係統的掛載、卸載,以及`fsck`等維護工具的使用。 網絡配置與故障排除: 配置網絡接口,理解DNS、DHCP等協議,並掌握基本的網絡故障排除方法。 性能監控與優化: 使用`top`, `htop`, `iostat`, `vmstat`等工具監控係統資源,並學習常見的性能優化技巧。 係統安全基礎: 瞭解防火牆、SSH安全配置、用戶賬戶鎖定等基礎安全措施。 第五部分:深入探索與高級主題 在掌握瞭基礎知識之後,本部分將帶領讀者探索更高級和更專業的UNIX/Linux主題,為進一步的學習和應用打下基礎。 Linux內核: 簡要介紹Linux內核的結構和工作原理,瞭解模塊化設計。 虛擬化與容器化: 介紹Docker, Kubernetes等技術,以及它們如何基於UNIX/Linux生態係統實現。 係統性能調優: 更深入地探討CPU、內存、I/O、網絡等方麵的性能調優策略。 嵌入式Linux: 瞭解嵌入式Linux係統的開發和部署。 安全加固與審計: 深入探討係統安全策略,以及安全審計的重要性。 通過對本書內容的係統學習,讀者將不僅能夠熟練地使用UNIX/Linux操作係統,更能深入理解其背後的原理和機製,從而成為一名真正掌握UNIX/Linux核心技術的開發者和係統管理員。本書旨在培養讀者解決問題的能力,激發讀者對底層技術的好奇心,並為他們在不斷發展的計算領域奠定堅實的基礎。無論您追求的是成為一名優秀的軟件工程師,還是精通係統架構的專傢,亦或是對開源技術充滿熱情的探索者,UNIX/Linux都將是您不可或缺的強大工具和智慧寶庫。