第1章 UNIX簡介
1.1 UNIX的發(fā)展過程和標準化
1.1.1 UNIX的發(fā)展過程
1.1.2 什么是UNIX
1.1.3 UNIX的標準化
1.2 系統(tǒng)的登錄與退出
1.2.1 UNIX的主機和終端
1.2.2 登錄
1.2.3 退出
1.2.4 關機
1.3 使用系統(tǒng)命令
1.3.1 man:查閱聯機手冊
1.3.2 獲取系統(tǒng)情況
1.3.3 passwd:更換用戶口令
1.3.4 與其他用戶通信
1.3.5 與其他主機通信
1.3.6 幾個實用工具
第2章 基本UNIX實用程序
2.1 more,less,pg:逐屏顯示文件內容
2.2 cat:列出文本文件內容
2.3 od:列出文件每個字節(jié)的內容
2.4 head與tail:打印文件頭或尾
2.5 wc:字計數
2.6 sort:對文件內容排序
2.7 tee:三通
2.8 正則表達式的概念
2.9 grep,egrep與fgrep:在文件中查找字符串
2.10 awk:文本處理語言
2.11 sed:流編輯
2.12 tr:翻譯字符
2.13 cmp和diff:比較兩個文件
第3章 全屏幕編輯程序vi
3.1 vi的啟動方法
3.2 vi的選項
3.3 vi的工作方式
3.4 vi的編輯命令
3.4.1 正文插入命令
3.4.2 光標移動命令
3.4.3 設置書簽
3.4.4 刪除
3.4.5 字符替換
3.4.6 取消和重復
3.4.7 文件命令
3.4.8 段落的刪除、復制和移動
3.4.9 剪貼板
3.4.10 其他命令
3.4.11 模式查找
3.4.12 模式替換
3.4.13 編輯命令小結
第4章 UNIX的文件和目錄
4.1 文件和目錄的層次結構
4.2 文件和目錄的命名
4.3 shell的文件名通配符
4.3.1 規(guī)則
4.3.2 與DOS文件名通配符的區(qū)別
4.3.3 文件名通配符的處理過程
4.3.4 驗證文件名匹配的結果
4.4 文件管理
4.4.1 ls:文件名列表
4.4.2 cp:復制文件
4.4.3 mv:移動文件
4.4.4 rm:刪除文件
4.4.5 find:查找文件
4.5 目錄管理
4.5.1 路徑名
4.5.2 pwd:打印當前工作目錄
4.5.3 cd:改變當前工作目錄
4.5.4 mkdir:創(chuàng)建目錄
4.5.5 rmdir:刪除目錄
4.5.6 cp:復制目錄
4.6 文件的歸檔與壓縮處理
4.6.1 tar:文件歸檔
4.6.2 compress:文件壓縮
4.6.3 應用
4.7 文件系統(tǒng)的存儲結構
4.7.1 基本文件系統(tǒng)與子文件系統(tǒng)
4.7.2 文件系統(tǒng)的結構
4.7.3 目錄結構
4.7.4 命令df與du
4.8 硬連接與符號連接
4.8.1 硬連接
4.8.2 符號連接
4.8.3 硬連接與符號連接的比較和應用
4.9 系統(tǒng)調用
4.10 文件和目錄的訪問
4.10.1 文件存取
4.10.2 目錄訪問
4.10.3 獲取文件系統(tǒng)的信息
4.11 獲取文件的狀態(tài)信息
4.12 設備文件
4.13 文件和目錄的權限
4.13.1 權限控制的方法
4.13.2 查看文件和目錄的權限
4.13.3 chmod:修改權限
4.13.4 umask:改變文件創(chuàng)建狀態(tài)掩碼
4.13.5 SUID權限和SGID權限
第5章 C-shell的交互功能
5.1 UNIX的shell
5.2 csh啟動與終止
5.3 使用csh的歷史機制
5.3.1 歷史表大小
5.3.2 查看歷史表
5.3.3 引用歷史機制
5.4 別名
5.4.1 在別名表中增加一個別名
5.4.2 查看別名表
5.4.3 給別名傳遞參數
5.4.4 取消別名
5.5 csh提示符
5.6 csh的管道和重定向
5.6.1 標準輸入,標準輸出,標準錯誤輸出
5.6.2 標準輸出和標準錯誤輸出重定向
5.6.3 管道
第6章 B-shell及編程
6.1 啟動B-shell
6.1.1 啟動一個交互式B-shell
6.1.2 #!/bin/sh:腳本文件的執(zhí)行
6.2 重定向與管道
6.2.1 輸入重定向
6.2.2 輸出重定向
6.2.3 管道
6.3 變量
6.3.1 變量賦值和引用
6.3.2 read:讀用戶的輸入
6.3.3 環(huán)境變量和局部變量
6.3.4 內置變量
6.3.5 shell的標準變量
6.4 替換
6.4.1 文件名生成
6.4.2 變量替換
6.4.3 命令替換
6.5 元字符
6.5.1 空格、制表符和轉義符
6.5.2 回車和分號
6.5.3 文件名通配符
6.5.4 美元符和反撇號
6.5.5 重定向和管道
6.5.6 啟動程序后臺執(zhí)行
6.5.7 括號
6.5.8 轉義符
6.5.9 雙引號和單引號
6.5.10 轉義符與引號及反撇號
6.6 條件判斷
6.6.1 條件
6.6.2 最簡單的條件判斷
6.6.3 命令true與命令false
6.6.4 命令test與命令[
6.6.5 { }與( )
6.6.6 條件結構if
6.6.7 case結構
6.7 循環(huán)結構
6.7.1 while結構
6.7.2 expr:計算表達式的值
6.7.3 for結構
6.7.4 break與continue
6.8 函數
6.9 shell開關和位置變量
6.9.1 set:設置B-shell內部開關
6.9.2 set:設置shell位置變量
6.9.3 shift:位置變量的移位
第7章 進程控制與進程間通信
7.1 進程控制
7.1.1 進程的基本概念
7.1.2 fork:創(chuàng)建新進程
7.1.3 exec:重新初始化進程
7.1.4 wait:等待子進程運行結束
7.1.5 xsh0.c:最簡單的shell
7.1.6 vfork和_exit
7.1.7 system:在程序中運行一個命令
7.1.8 ps:列出進程的狀態(tài)
7.2 信號
7.2.1 信號的產生及信號類型
7.2.2 kill:發(fā)送信號
7.2.3 信號的捕捉與處理
7.2.4 longjmp:全局跳轉
7.2.5 信號對進程執(zhí)行的影響
7.2.6 sleep, pause與alarm
7.2.7 trap命令:shell對信號的處理
7.3 進程與文件描述符
7.3.1 內核中的文件打開結構
7.3.2 文件描述符的繼承和復制
7.3.3 管道操作
7.4 消息隊列
7.4.1 有關的系統(tǒng)調用
7.4.2 程序舉例
7.4.3 消息隊列的特點
7.4.4 死鎖
7.4.5 命令ipcs和ipcrm
7.4.6 有關的主要系統(tǒng)參數
7.5 信號量
7.5.1 創(chuàng)建或獲取信號量組
7.5.2 信號量組的控制
7.5.3 信號量操作
7.5.4 相關命令和系統(tǒng)參數
7.6 共享內存
7.6.1 創(chuàng)建或獲取共享內存段
7.6.2 獲取指向共享內存段的指針
7.6.3 共享內存段的控制
7.6.4 相關的命令和系統(tǒng)參數
7.7 信號量和共享內存使用舉例
7.8 內存映射文件I/O
7.9 文件和記錄的鎖定
7.9.1 設置文件鎖定的必要性
7.9.2 鎖定操作
7.9.3 使用舉例
7.9.4 咨詢式鎖定和強制性鎖定
7.9.5 死鎖
7.9.6 文件鎖的隱式釋放
7.9.7 獲取記錄的加鎖狀態(tài)
第8章 網絡程序設計
8.1 概述
8.1.1 socket
8.1.2 TCP與UDP
8.1.3 網絡字節(jié)次序
8.2 TCP客戶-服務器程序
8.2.1 TCP客戶端程序
8.2.2 最簡單的TCP服務器端程序
8.2.3 多進程并發(fā)處理的TCP服務器端程序
8.3 與socket有關的系統(tǒng)調用
8.3.1 socket:創(chuàng)建一個socket
8.3.2 bind:指定本地端點名
8.3.3 listen:開始監(jiān)聽到達的連接請求
8.3.4 accept:接受一個連接請求
8.3.5 connect:建立連接
8.3.6 read和write:接收和發(fā)送
8.3.7 send/sendto和recv/recvfrom
8.3.8 fcntl:無阻塞I/O
8.3.9 getpeername:獲取對方的端點名
8.3.10 getsockname:獲取本地的端點名
8.3.11 shutdown:禁止發(fā)送或接收
8.3.12 close:關閉一個連接
8.3.13 getsockopt,setsockopt和ioctl
8.3.14 庫函數
8.4 單進程并發(fā)處理
8.4.1 select:I/O多路轉接
8.4.2 單進程并發(fā)處理的TCP服務器端程序
8.5 UDP通信
8.5.1 UDP客戶端程序
8.5.2 UDP服務器端程序
8.6 與TCP/IP通信相關的命令
8.6.1 查看IP接口狀態(tài)
8.6.2 打印IP路由表
8.6.3 協(xié)議統(tǒng)計信息
8.6.4 查看連接和端點名
附錄A ASCII碼表
參考文獻
索引