歡迎您光臨本站 註冊首頁

RHCE學習筆記

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

RHCE033學習筆記

第一章Linux 總覽 1.1 GNU:自由操作系統計劃 FSF:自由軟體基金會 GPL:GNU公共通用許可證 Ctrl Alt F1Ctrl Alt F6六個組合鍵可以在六個虛擬控制台之間切換. Ctrl Alt F7可以切換到默認的X伺服器. 1.2 內核、程序和進程

內核是一個操作系統,為進程提供運行環境; 程序是文件系統內的可執行文件,通常是二進位文件; 進程是程序運行的實例. Linux中的Shell是一個互動式的進程,指定要運行的其他進程,默認為bash. 1.3 查看文件系統 ls 列出目錄內容 cat查看文件內容 可以使用絕對路徑和相對路徑 /”為根目錄(

root directory). 1.4 運行命令 命令格式:命令 選項 參數,選項以“-“或“- -”開頭,選項也可以有參數. 1.5 管理終端 reset 可將終端恢復為正常狀態,tab可補全命令. Linux終端控制組合鍵

組合鍵 符號名稱 約定使用
Ctrl C SIGINT 非常規中斷——終止前台進程
Ctrl D EOT 輸入完成的正常信號
Ctrl G BEL 終端聲效
Ctrl H BS 後退一格——刪除前一個字元
Ctrl J LF 換行——與Enter鍵功能相同
Ctrl L FF 換頁——使bash清屏
Ctrl Q 解鎖終端顯示
Ctrl S 鎖住終端顯示
Ctrl U NAK 刪除當前的行
Ctrl Z SIGSTOP 掛起進程

設備節點/dev/zero是偽設備,讀取時會返回無數個二進位零,/dev/null設備節點也是偽設備,會丟棄任何寫入其中的信息. 終端設備名稱:ttyn(虛擬控制台),ttySn(串口埠設備),pts/n(偽終端), :0X伺服器). 1.6 尋求幫助的方法 -h

--help
- man page 例如:man lsman –k lsman 5 intro info page 目錄/usr/share/doc 紅帽文檔指南、www.redhat.com 第二章文件系統基礎 2.1 文件系統可以看成一棵倒置的樹 pwd顯示當前工作目錄的絕對路徑 特殊目錄名

符號 意義
. 當前工作目錄,相對引用中可使用
.. 父目錄
~ 用戶主目錄
- 上個工作目錄

默認情況下,cd命令等同於cd ~ 默認的bash 提示只顯示cwd的最后一個目錄名 ...都表示相對引用 2.2 標準目錄結構 - /bin 存放引導系統所需的可執行程序和最常用的linux命令 - /boot 存放系統啟動時必要的文件,包括系統內核

- /dev 包括linux支持的硬體設備對應的連接文件 -/etc 保存系統配置文件,可以控制系統的任何方面 -/home 存放除超級用戶外的各個用戶的主目錄 -/lib 存放各種庫文件,包括共享庫和函數庫 -/root 根用戶的主目錄 -/sbin 存放相對不常用的命令,多數用於系統管理 -/proc 虛擬文件系統,用於從內存讀取進程信息 / () -/opt 默認為空

-/media 默認為空 -/mnt 用來作為光碟、軟盤、U盤的掛載點 -/misc 默認為空,供管理員堆放公共雜物 -/bin -/etc -/usr - -/sbin -/lib -/tmp -/var 存放系統工作的一些記錄、假離線目錄和其他變數數據 -/tmp 存放應用程序產生的臨時文件 -/srv 默認為空

-/sys 存放一些系統信息 -/lost found 存放系統崩潰時產生的文件,可用於修復系統 -/selinux 存放與安全相關的文件 -/net 默認為 root 是根用戶,/rootroot的主目錄,/是根目錄. 2.3 文件管理 cp 複製文件

cp [OPTIONS] {SOURCE} {TARGET}
mv 移動或重命名文件 mv [OPTION…] {SOURCE} {TARGET} rm 刪除文件 rm [OPTIONS] {FILE..} 重定向、移動、複製可能“損壞”文件 Shell會在執行其他命令(ls,cat等)前解讀“>”符號,例如,ls > file,假如file不存在,該命令會先創建file

文件,再執行ls命令. 2.4 目錄管理 ls -R 可以遞歸的查看目錄 cd –r 遞歸複製目錄 rm -r 遞歸刪除目錄 mkdir 建立空目錄 rmdir 刪除空目錄 2.5 文件名和文件名匹配 文件名可以是“/”除外的任何字元,但不代表應該這麼做,以“.

”開頭的文件為隱藏文件.不包括目錄,文件名最長可達255個字元,包括目錄最長可達4096個字元. 文件名匹配通配符

字元
* 匹配0個或多個字元(開頭的“.”除外)
匹配一個字元(開頭的“.”除外)
[…] 匹配在給出的列表或範圍內的任何一個字元
[^…] 匹配在給出的列表或範圍外的任何一個字元

2.6 檢查文件和文本編輯 常用命令:filecatmorelessheadtail. 常用文本編輯器:vinanogedit(圖形文本編輯器) 文本編輯器和文字處理器的區別,文本編輯器主要用來編輯系統配置文件,不會產生任何二進位碼,文字處理器除了處理文本外,還用來編輯字體、格式等

,會設置二進位碼. 第三章、用戶和組 3.1 用戶和/etc/passwd文件 用戶名、uid32位整數)、gid32位整數,主要組)都是唯一的. 在配置文件/etc/passwd中保存有一個資料庫,資料庫里存放著用戶名和uid的對應關係,用戶賬戶把

uid映射到用戶名、密碼、gid、主目錄和登錄shell上. 系統上的大多數用戶有許可權讀取這個文件,但沒有許可權修改. 用戶密碼保存在/etc/shadow(影子文件),一般用戶沒有查看許可權. 忘記密碼,可以讓有根用戶許可權的人給你重新分配密碼. 三種類型的用戶:普通用戶、根用戶、系統用戶.其中系統用戶不代表人,而代表系統的組成部分,例如,處理電子郵件的進程通常以用戶名mail來運行.紅帽企業版Linux用戶ID

用戶ID範圍 用戶類型
0 根用戶
1-499 系統用戶
500 普通用戶

3.2 組和/etc/group文件 每個用戶都屬於一個主要組,次要組可有可無. 配置文件/etc/group把組名與組ID關聯在一起. 文件系統上的每個文件都有一個用戶所有者和一個組所有者.新創建文件的默認組,稱作用戶的主要組,組名和用戶相同. 根用戶可以使用usermod

groupmod命令更改組成員身份. 3.3 檢查用戶信息 檢查用戶信息的命令

命令 功能
id 顯示用戶信息和組信息
whoami 獲取當前用戶名
userswhow 獲取正在會話中的用戶
finger 輸出用戶最后登陸系統時間及其它信息

3.4 改變身份 su 命令讓用戶切換用戶ID su USER 登陸后shell 為非登陸shell. su – USER 登陸后shell為登陸shell,即完全登陸. su 切換到根用戶. newgrpsg讓用戶切換主要組,語法:newgrp 組名 第四章

文件所有者及許可權 4.1常規文件所有者及許可權 文件有一個用戶所有者,一個組所有者和一組許可權. 文件有三種許可權類型:rwx,三種訪問級別:ugo. 修改文件所有者:chmod 普通用戶不能改變文件的用戶所有者,卻可以改變組所有者. 4.2 改變文件許可權

chmod [ugoa] /-/=[rwx] filename 4.3 chgrp命令和chown命令改變文件所有者 chgrp改變文件的組所有者 chown 改變文件的用戶所有者 文件新建立時,它的組所有者是建立人的主要組,在紅帽企業版linux中,這是建立者的私有組. 誰可以修改文件的所有者和許可權

操作 可以執行的用戶
chmod 根用戶和文件的所有者
chgrp 根用戶和文件所有者(必須是新組成員)
chown 只有根用戶

4.4 目錄所有者和許可權 常規文件和目錄的許可權

r() w() x(執行)
常規文件 瀏覽文件 修改文件 將文件作為命令執行
目錄 列出目錄內容 添加或刪除文件 在目錄中搜索已知文件

在紅帽企業版中,用戶主目錄是受“保護”的,默認許可權為drwx------. 4.5 chmod命令:八進位計數法,控制默認許可權:umask. 每種許可權以一個值表示,可讀是4,寫入是2,執行是1,文件和目錄做相同處理,使用chmod –R遞歸命令時容易產生錯誤,可使用find命令進行更合理的遞歸. 在內核級別,linux分別使用默認模式

666rw-rw-rw)、777rwxrwxrwx)建立文件和目錄,每個進程使用一個“umask”參數來遮蓋某些特定的默認許可權. 紅帽企業版中,標準用戶的默認umask值為022. umask命令可查看和修改bash shellumask值. 第五章 Linux文件系統

5.1 文件詳述 文件包括:常規文件、目錄、符號鏈接、設備節點及其它. 所有文件有如下屬性:用戶所有者、組所有者、許可權和時間信息.這種信息保存在名為inodei-節點)的結構中. 文件名保存在名為dentry(目錄項)的數據結構中. Linux內核中,文件一般通過i-節點編號加以識別. i-節點信息可以通過ls-l命令和

stat
命令查詢. 每個文件都有三層結構:dentryinodedata,dentry含有文件名並關聯inode,inode含有文件元數據並指向數據區data. 傳統UnixLinux)系統不記錄文件創建時間. 文件長度和大小 i-節點用兩種度量記錄文件大小:文件長度(文件數據的實際位元組數)和大小(所佔用的磁碟空間量).由於文件在磁碟的上的底層信息不同,兩種信息度量有所不同.一般來說,文件以位元組塊(通常是

4千位元組)為單位增加.而文件數據以單個位元組為單位增加.ls –l命令在第五列顯示文件長度(以B為單位),ls – s 可以顯示文件的大小(以KB為單位),stat命令把文件的長度叫大小(size). ls – F 命令列出的文件中,目錄以“/”結尾,符號鏈接以“@”結尾,附有可執行許可權的各種常規文件以“*”結尾.

ls – l命令輸出的各列意義 其中第一行的total表示該目錄下所有文件使用的空間總塊數(不包括子目錄) 第一列:文件類型和文件的許可權 第二列:文件的鏈接總數,目錄總是大於等於2 第三列:文件的所有者 第四列:文件組所有者 第五列:以位元組計算的文件長度,目錄長度以塊數為單位增加 第六列:文件的最后一次修改時間 5.2 硬鏈接(hard links)和軟鏈接(soft links ln [option] TARGET [LINK] 對文件TARGET

創建鏈接 LINK 硬鏈接舉例:ln file hard_link 硬鏈接共享i-節點和數據,刪除文件,鏈接仍然可使用. rm命令在底層不直接刪除文件,而是“unlink”(脫鏈)文件. 軟鏈接舉例:ln file soft_link 軟鏈接使用各字的dentryi-節點,但data為目標文件的文件名,它們的i-節點不同,刪除目標文件后,該鏈接變成空鏈接.

軟鏈接和硬鏈接的比較

硬鏈接 軟鏈接
目錄之間不能用硬鏈接 軟鏈接可以關聯的目錄
硬鏈接沒有原始文件和複製文件的概念,硬鏈接一旦創建,它鏈接的兩端文件得到同等待遇 軟鏈接有引用和被引用的概念,刪除被引用的文件就會導致空鏈接的產生
硬鏈接必須關聯同一個文件系統下的文件 軟鏈接也可關聯不同文件系統中的文件
Chroot的目錄間可共享硬鏈接 軟鏈接不能引用chroot目錄外的文件

5.3目錄與設備節點 目錄就是包含一些目錄項,目錄項建立文件名與i-節點的映射.每個目錄都包含至少兩個引用,”.”指向自身和父目錄的目錄項引用.另外的引用由目錄下子目錄”..”構成,因此目錄的鏈接數大於等於2. 字元設備:按位元組流依次讀寫的設備,如:滑鼠、鍵盤、音效卡和印表機. 塊設備:一次讀寫一大塊設備,允許隨機訪問,如:硬碟、軟碟機、光碟機. 字元設備節點(c),塊設備節點(

b
除了終端用戶和控制台用戶外,設備節點的許可權並不允許用戶直接訪問. 控制台就是虛擬終端,也叫虛擬控制台,它充當了“啞終端”. 5.4 磁碟、文件系統與掛載 Linux允許通過/dev目錄下的設備節點對磁碟進行訪問. 通常,磁碟被分區格式化為文件系統,掛載到目錄下使用. 文件系統用mkfs命令創建. 紅帽企業版linux默認文件系統是ext3. mount將磁碟分區掛載到已存在的目錄,該目錄叫做掛載點.

umount將已掛載目錄脫卸. df命令給出磁碟使用信息和已掛載的設備. 1、磁碟設備 Linux磁碟設備節點

設備節點 磁碟
/dev/fd0 軟盤
/dev/hda IDE1通道上的主盤
/dev/hdb IDE1通道上的從盤
/dev/hdc IDE2通道上的主盤
/dev/hdd IDE2通道上的從盤
/dev/sda SCSI的第一個硬碟
/dev/sdb SCSI的第二個硬碟
/dev/cdrom CD/ROM的符號鏈接

註:/dev/hda1IDE1通道上的主盤的第一個分區.其它的依次類推. 2、對磁碟的低級訪問 對磁碟的低級訪問就是直接將數據僅依位元組流的形式存放於磁碟,或從磁碟讀取,人們希望給文件給個文件名,然後將信息保存在文件里;將文件放進目錄里管理,並控制對其訪問的許可權.所有這些機構化的信息管理由文件系統完成. 3、文件系統 在磁碟上存儲數據前,要創建文件系統,在windows中叫做格式化, linuxmkfs命令族用於創建文件系統.它們位於供管理員用的/sbin目錄下.

4、掛載文件系統 在系統啟動的時候,一個文件系統被映射為根分區,它的根目錄就是系統的根(/). 如果一個系統有多塊磁碟,或者一個磁碟有多個分區、那麼為了訪問別的磁碟上的分區,就將那個文件系統的根目錄映射到文件系統中一個已經存在的目錄下;這個過程叫做文件系統的掛載. 對於ls命令來說,文件系統的不同都被隱藏起來了,所有的文件系統都被組織到一個目錄樹結構下. mount命令可用來查看掛載點,一些叫做none的設備是虛擬設備,它是在內核中實現的,並不是任何物理設備. lost found目錄是在創建文件系統時自動創建的,在ext2

ext3
中文件系統的根下一直存在.在文件系統修復時會用到. 將一個磁碟(已存在文件系統)上的數據一位元組一位元組的複製到另一個沒有掛載的設備上的技巧叫做磁碟鏡像,這是對磁碟的低級訪問. 5.5 使用locatefind命令查找文件 locate命令利用資料庫根據文件名迅速定位系統上的文件.速度快,但副作用是不能查找最近一天內新增的文件,或者報告因最近刪除而失效的文件. find命令實時遞歸查找系統上的文件,幾乎所有的文件屬性都可作為find命令的搜索條件,但不能直接根據文件內容搜索,可結合grep命令實現. Locate命支持元字元:

*
、?、[],如 locate *.fish.png. find <起始目錄> <搜索條件> <動作> 5.6 文件壓縮:gzipbzip2 最常用的壓縮命令是gzip.解壓為gunzip. bzip2命令壓縮效果更好,解壓用bunzip2.

5.7 文件歸檔:tar命令 將文件歸檔可以將整個目錄樹保存在一個文件中. tar命令可以用來創建、列出和釋放歸檔文件. 歸檔文件通常也會一併壓縮.如:tar cvf net.tar /etc/sysconfig/networking file-roller應用程序提供圖形化的操作界面. 第六章 Bash Shell 6.1 Bash引言 紅帽企業版linux默認的shellbash shell

. bash shell的兩個不同功能:互動式shellshell腳本. bash啟動時執行 ~/.bashrc文件中的命令,允許用戶自定義其shell. bash shell保存歷史命令,可以方便的調用. 互動式shell不斷地重放偵聽命令行的循環、解析被請求的命令、執行任何被請求的操作,並且顯示結果. bash歷史記錄替換

語法 替換
!! 前一個命令
!n 命令號n
!-n 倒數第n個命令
!cmd 最后用來啟動cmd的命令

history 命令的技巧: Esc .(先按Esc后按點)和Alt . 恢復之前被鍵入命令行的最后一個標記. Ctrl R 匹配的命令行可以隨著文本的鍵入而立刻被看到. fc 命令 該命令允許用戶通過打開用的vi把之前鍵入的命令作為文本進行“整理”.退出后立即執行. 6.2 命令列表和腳本 多個命令間可以用;隔開 退出命令時,每個命令向父命令返回一個整數,稱作返回值. Shell變數$?

表示先前執行命令的返回值,echo $? 顯示最新執行程序的返回值. &&把兩個命令連接在一起,只有當第一個命令成功時(即返回值為0)才運行第二個命令,用戶||把兩個命令連接在一起,只有當第一個命令“失敗” 時(返回值非零),才執行第二個命令. Linux在執行命令時,通常從一組固定的目錄中尋找這個命令,這些目錄被看做是你的PATH. 6.3 bash變數 Shell變數用name=value語法來賦值.

$來解析變數,如 echo $ A. 在內存層,有一個由子進程繼承的環境變數集合. export命令將shell變數轉化為環境變數. setenv命令分別用於列出shell變數和環境變數. uset A 複位變數,即刪除變數. 變數有字母數字字元和下劃線組成,不能以數字開頭,區分大小寫.通常用大寫. 如果你想把變數設置給含有空格的值,必須把這個值括在引號里. 解析變數時,如果需要的話,可以用大括弧{}

標出變數名. bash預賦值的變數

變數 含義
BASH_VERSION 但前bash 的版本
HOSTNAME 當前機器的DNS主機名
OLDPWD 上次工作目錄
PWD 當前工作目錄
RADOM 介於032767之間的任意整數
SECONDS shell啟動以來的秒數

以上變數被bash shell初始化,但是不能被重新賦值. bash的只讀變數

變數 含義
最新執行的命令的退出狀態,即查看返回值
- 當前啟用中的shell選項標記
$ 當前shell的進程ID
_ 前一個命令的最后標記
! 最新後台命令的進程ID
PPID Shell父進程的ID
SHELLOPTS 被冒號隔開的當前啟用中的shell選項列表,和set – o結果一樣
UID 當前用戶的UID

常用的環境變數

變數 功能
TERM 指定了用戶終端的底層配置,該變數在使用串列線控制台時更由用
PATH 指定了可執行文件的搜索目錄
DISPLAY 指定了圖像環境中客戶程序應該使用的X伺服器
LANG 指定了國家化程序的首選語言
EDITOR 指定了默認的編輯器
PRINTER 指定了默認的印表機

PATH 環境變數附加目錄:PATH=$PATH:/usr/sbin 6.4 命令行替換 bash shell在解釋命令前替換某些命令行元字元. bash中的命令行替換

替換 語法 含義
歷史(history 前一個命令行
大括弧 {} 指定的文本
代字型大小 ~~username 用戶的主目錄
變數 $${…} 變數Shell和環境變數
算術 $((…)) 整數算術運算( -*/
命令 `…`$(…) 運行在子shell中命令的輸出
路徑名 *、?、[…][^…] 文件系統中匹配的文件

引用和轉義字元 bash shell的引用和轉義

語法 作用
\ 避免一個字元被shell解釋
避免雙引號內除了$、!和`…`(反引號)字元以外的其他字元被shell解釋
避免引號內的字元被shell解釋

如果要把一個特殊字元加到命令中,你應該用引號(或反斜杠轉義)來保護這個字元,shell替換在命令運行之前發生. 6.5 自定義shell bash shell 本身即實現某些與shell行為密切相關的命令,被稱為內置命令. Shell別名可創建擴展為任意文本的命令. alias建立和檢查別名.unalias刪除別名 PS1變數自定義bash shell提示符. Shell 標記可以用

set – f命令設定,用set f 命令刪除. Shell選項可用shopt命令檢查和複位. 常見的shell內置命令:cdpwdecho. alias使用下列語法:alias NAME=VALUE,等號兩邊沒有空格. 別名替換:如果別名替換為一個與別名有著相同名稱的命令,則shell僅僅執行替換,然後繼續前進.否則,展開別名,例見P237

,ll命令. Bash提示符中常用的轉義序列

序列 替換
\a 終端響鈴
\d 以“星期月份日期”格式顯示日期
\h 直到第一個“.”的主機名
\T 12小時格式HH:MM:SS顯示當前時間
\u 當前用戶的用戶名
\W 當前工作目錄的basename(即最后一個目錄)
\! 命令的歷史記錄號碼
\$ 如果用戶的ID0,則提示符為#,否則提示符為$
\n 原樣輸出後面的字元
\nnn 與八進位數字nnn對應的字元

set 內置命令常用的shell標記

標記 作用
-f 使路徑名替換無效
-n 讀取命令、但不執行(用來對腳本進行語法檢查)
-o optionname 設置指定的選項,一些常用選項如下: emacs 使用emacs風格的命令行快捷鍵 ignoreeof EOFctrl D)被讀取時,不退出shell vi 使用vi風格的命令行快捷鍵
-v 在命令被讀取時,列印命令(調試腳本時有用)
-x 在替換被應用之後列印命令(調試腳本和檢查shell替換時有用)
-C 不允許shell在重定向中損壞文件

Bash shell 選項

選項 作用
cdspell 使用cd內置命令時,試圖改正目錄名的拼寫錯誤
expand_alias 啟動shell別名
extglob 啟動替換的模式匹配語法
nocaseglob 應用文件名替換時不區分大小寫

6.6 獲得shell腳本和shell初始化 Shell腳本用source . 命令獲得 Shell腳本應在執行獲得腳本的同一個shell中執行 Shell有登錄shell、非登錄shell、互動式shell、非互動式shell之分 bash shell

允許用戶把多個命令集中到一個文件中,然後執行這些命令,彷彿它們在提示符下直接鍵入的一樣,這被稱為獲得文件. 當獲得shell腳本時,腳本的內容在當前shell中執行. 不同類型的bash shell

上下文 登錄shell 互動式shell
從虛擬控制台登錄shell
通過網路shell到一台遠程機器上時登錄shell
X初始化shell
X終端shell
手動運行bash啟動的子shell
用在命令替換中的子shell
被圓括弧分組的命令使用的子shell
執行腳本時使用的子shell

Bash的啟動配置文件 Bash shell的啟動配置文件功能

文件 Shell類型 預期功能
/etc/profile 登錄shell 通用的有效環境變數
/etc/profile.d/*.sh 登錄shell 軟體包特有的環境變數
~/bash_profile 登錄shell 用戶特有的環境變數
~/.bashrc 所有互動式shell 用戶特有的別名、shell功能和shell選項
/etc/bashrc 所有互動式shell 通用別名、shell功能和shell選項

第七章標準輸入/輸出和管道 7.1 標準輸入和輸出 基於終端的程序往往從一個源讀取信息,向一個目的地寫入信息. 三種類型的程序: 圖形程序(Firfox網路瀏覽器等)、屏幕程序(vinano文本編輯器等)、終端程序(即命令,如:lscd等). Linux進程通過給每個當前被它們打開的文件賦整數值來追蹤這些文件,這個整數值被稱作文件描述符. 用命令 ls –l /proc/PID/fd,

查看文件描述符.P252 標準輸入、標準輸出和標準錯誤的文件描述符

描述符 縮寫
標準輸入 0 stdin
標準輸出 1 stdout
標準錯誤 2 stderr

7.2 標準錯誤 可以用2>把標準錯誤流重定向到文件中.可以用2>>追加標準錯誤. 可以用2>&1>&(新派做法)把標準錯誤流與標準輸出流結合在一起. 7.3 管道 UNIX所謂的管道可以吧一個進程的標準輸出流和另一個進程的標準輸入流連接起來. Unix中的許多命令被設計為過濾器,從標準輸入中讀取輸入,將輸出傳送到標準輸出. 用“|”在兩個命令之間創建管道.連接在管道中的所有進程被稱作進程組. 作為過濾器的命令:

grepheadtailsortsedawk. UNIX哲學:聯合使用簡單的工具更有效. 第八章、字元處理工具 8.1 文本編碼及字數統計 當保存文本文件時,計算機會將字元轉換成數字形式表示.這個過程就是文本的編碼. 為了適應不同的語言要求,開發了不同的編碼技術,這些技術以不同的字符集來代表. wc命令統計出文件中字元、文字和行的數量. ASC II編碼是目前最古老的但最常使用的編碼技術之一.

UTF-8 標準幾乎是一種可接受的標準,因此在最新的紅帽企業版linux中成為默認的編碼形式. cat命令可以顯示非列印字元. 8.2 搜索文本:grep grep 命令可以用來列印那些符合指定字元串或模式的行. grep 代表general regular expression parser(通用正則表達式分析程序) fgrep grep [-i] [-n] [-v] [-r] [-w] pattern [filename….] egrep 其中 fgrep 可快速搜索簡單模式,常用於搜索常用單詞. grep 使用常用正則表達式搜索.

egrep 使用更強的的擴展正則表達式搜索模板. 8.3 正則表達式介紹 正則表達式是一個指定文本模式的標準UNIX語法. 許多命令都可以接受正則表達式,包括grepsedvi和許多腳本語言. 正則表達式應放在單引號內,避免在用bash解釋特殊字元時造成和grep之間的混淆. 字元類採用語言中具體的規則來區分字母的大小寫. 正則表達式字元類

表達式 字元類 ASCII中的對應域
[:alnum:] 字母數字混排 A-Za-z0-9
[:alpha:] 字母字元 A-Za-z
[:blank:] 空格符或者製表符
[:digit:] 數字 0-9
[:lower:] 小寫字母 a-z
[:punct:] 可列印字元,不包括空格和字母數字混排字元
[:space:] 空白字元
[:upper:] 大寫字母 A-Z

Linux正則表達式語法總結

字元 功能 正則表達式語法 解釋
. 通配符 基本 代表一個或者任意字元
[abc],[a-z] 包含域 基本 代表域內任意一個字元
[^abc],[^a-z] 排除範圍 基本 代表不包含在域內的任意一個字元
修飾符 擴展 代表01個前面的項
* 修飾符 基本 代表0或多個前面的項
修飾符 擴展 代表1個或者多個前面的項
{m,n} 修飾符 擴展 代表前面的項出現了mn次之間
{n} 修飾符 擴展 代表前面的項具體的出現次數為n
^ 基本 標出一行的開始
$ 基本 標出一行的結束
\< 基本 標出一個單詞的開始
\> 基本 標出一個單詞的開始
(…) 分組 基本 允許修飾符修飾一組字元
(…|…) 分組 擴展 允許指定可選的模式
\ 轉義 擴展(基本) 取消(或啟動)後續字元的特殊含義

正則表達式與文件名匹配對比表

正則表達式 文件名匹配
在執行搜索或者搜索及替換功能時,比如grepvised以及許多腳本語言,如perlpython bash shell執行,是為了匹配文件名,並減少在一些應用程序或者腳本語言中搜索的範圍
使用表達式“.*”代表任意項 使用表達式“*”代表任意項
使用表達式“.”來表達單個字元 使用表達式“?”來表達任何單個字元

8.4 排序命令:sort命令和uinq命令 sort 命令按字母表順序排列數據 sort –n 按數字順序排列數據 sort –u 排序並刪除重複數據 sort –k –t按指定欄位對數據進行排序 uniq 命令是用來識別、統計或者刪除排序過數據中的重複記錄.一般和sort聯合使用,且在sort命令後面. 8.5 提取和組合文本:cut

命令和paste命令(P330) cut命令可根據位元組、字元或者指定的列從文本文件中提取文本. paste 命令將兩個文本文件進行逐行合併. 8.6 追蹤差異:diff命令(P340) diff 命令可以比較兩個文件之間的差異. diff命令的輸出格式: 標準 diff 上下文 diff –c 一體diff –u 並排diff –y

diff 命令通常跟著兩個參數,一個是from-file,另一個是to-file(換句話說就是一個舊文件和一個新文件). 8.7 文本轉換tr命令(P352) tr命令的功能是將標準輸入讀取的數據進行轉換. tr 命令的最基本的形式是以位元組換位元組的方式執行. 8.8 拼寫檢查:aspell (P362) aspell –c 命令可以對文件進行互動式拼寫檢查. aspell --list 命令可對標準輸入進行非互動式拼寫檢查.

aspell dump
命令可用來瀏覽系統詞典或者用戶的個人詞典. 8.9 格式化文本(fmt)和文件分割(split(P366) fmt命令可用不同的寬度重新格式化文件 使用-p命令行選項,fmt命令將僅對以指定前綴開始的行重新格式化,並保留其前綴. split 命令可以行數或者位元組數位單位,將一個文件分割成多個文件. 第九章進程管理 9.1 進程 進程是正在運行的可執行程序的實例,通過進程

ID(pid)
識別. Linux使用虛擬內存,每個進程都擁有自己特定的內存地址空間. 進程有一個uid和一組gid. 進程有其文件系統環境,包括cwdumask、根目錄和一組打開的文件. 進程有調度環境,包括優先順序值. 進程有一組環境變數. ps命令可用來查看所有正在運行的進程. top命令可用來監控所有正在運行的進程. 9.2 進程狀態P390 進程總是處於

5種狀態之一:可運行(R)、自願睡眠(S)、強制睡眠(D)、掛起(T)、殭屍(Z). linux系統中,第一個進程/sbin/init由內核在啟動時運行.其他所有進程都是父進程自我複製和派生的結果. 一個進程由另一個進程執行的過程叫做execexecuting的簡稱). 通常,新命令由進程(通常是

shell)運行,派生,繼而執行.這種機制被稱為派生和執行機制. 當進程退出、釋放大多數資源和它的父進程收集它的返回值、釋放剩餘資源這兩段時間之間,子進程處於一個特殊狀態,被稱作殭屍進程.每個進程都會經歷一個短暫的殭屍狀態,但卻不佔用內存空間、CPU時間. 9.3 進程調度:優先順序(nice)和更改優先順序(renice Linux內核的基本任務是調度進程. 每個進程都有一影響其調度的優先順序(niceness)值. nicerenice命令可以改變進程調度的優先順序.

9.4 發送信號 信號是進程間通信的底層形式,由多種來源產生,包括內核、終端和其他進程. 信號由信號值(或信號號碼)區分,信號值具有約定的符號名稱和用途.信號值的名稱可以用kill -l命令列出. kill 命令向其他進程發送信號. 接收到信號時,進程可以忽視它或用內核指定的默認方式作出反應,也可以調用一個自定義信號處理程序. 根據約定,信號值15SIGTERM)用來請求終止進程. 信號值9

SIGKILL
)可以終止進程,該信號不能被忽略. 9.5 作業控制 bash shell允許命令作為“作業”在後台運行. bash shell 允許前台運行一個作業,後台運行多個作業. jobs命令會列出所有的後台作業. Ctrl Z組合鍵會掛起當前的前台作業,並將其置於後台. bg命令可以恢復置於後台作業的運行. fg命令可以將後台作業置於前台. 通過給命令行附加一個“&”字元,任何指定的命令也可以在後台運行. 9.6 調度延遲的名:

at
at命令可以使命令稍後執行. batch 命令可以讓命令在機器負載較低的情況下運行. 可以直接輸入命令,或者以腳本形式提交命令. 作業中的標準輸出用郵件發送給用戶. atp命令和atrm命令用來查看和刪除當前的計劃任務. 作為守護進程運行的程序通常以字母d結尾. 守護進程的一個定義特徵是,它結束與啟動它的終端之間的聯繫. 9.7 調度周期任務:cron cron 工具用來調度經常重複的任務.

crontab 命令是編輯crontab文件的一個前端程序. contab 文件使用5個欄位來規定計時信息. cron 作業中的標準輸出會作為郵件寄給用戶. 第十章 網路應用程序 10.1 TCP/IP互聯網簡介 大多數linux聯網伺服器都是按照客戶端-伺服器模型來設計的. 網路服務應用程序通常都會設計成“一直運行”,只有根用戶才能管理服務進程. 網路應用程序客戶端通常在使用時才會運行,任何用戶都可以運行.

大多數的linux網路伺服器和客戶端之間使用TCP/IP協議進行通信. 網路伺服器通常使用指定的,眾所周知的埠,可以在文件/etc/service中列出.這些埠號小於1024,屬於特權埠. hostname顯示當前機器的ip地址,netstat – tuna命令檢查所有開發埠. 10.2 linux列印 紅帽企業版linux使用CUPS

列印系統來管理印表機. CUPS列印系統圍繞著印表機這一概念設計,將假離線目錄、過濾器和列印設備結合在一起. system-config-printergnome-dfault-printerlpstat命令能用來瀏覽可用的列印隊列. lprlpqlprm分別用來提交列印任務、詢問尚未完成的列印任務和取消等待中的列印任務,它們將檢查PRINTER環境變數,以獲得默認的列印隊列. lpcancel命令類似於lpr

lprm命令. 許多應用程序的列印靠管道傳遞給lpr命令完成. 10.3 管理列印文件 Linux系統的主要列印格式是PostScript. gsevince命令能預覽PostScript文件. enscript命令將文本文件轉換成修飾過的PostScript. ps2pdfpdf2ps命令將文件轉換成

PDF文件,或者進行相反得操作. mpage命令能重排PostScript文件里的每個頁面. 10.4 電子郵件概述 電子郵件管理涉及MUA(郵件用戶代理程序)和MTA(郵件傳輸代理程序). POPIMAP來接收電子郵件,用SMTP來發送電子郵件. 經由本地發送但尚未閱讀的電子郵件暫存在/var/spool/mail/$USER

文件中.最簡單的MUA之一是mail命令. Evolution圖形化電子郵件客戶端程序. 10.5 網路診斷程序 /sbin/ifconfig能顯示本地IP配置. /sbin/traceroute命令能診斷出路由問題. ping命令可確定主機間的底層網路連接性. host命令能做出直接的DNS查詢. 10.6 基於終端的網路和FTP客戶端程序

Elinks終端HTTP客戶端程序可在非圖形環境中瀏覽網頁,調用命令是links. curl應用程序是一個非交互的多協議客戶端程序(包括HTTPHTTPSFTP),能以批模式來傳送文件. Wget應用程序是一個非交互的多協議客戶端程序(包括HTTPHTTPSFTP),能遞歸傳送網頁,並能在所有網頁引用的頁面中進行遞歸搜索. 10.7 遠程

shell
命令 遠程shell應用程序允許用戶在遠程機器上執行任意命令,能讓標準輸出返回本地.當然,它也可以啟動互動式shell. 安全shell應用程序提供了一個遠程shell,這樣所有的信息都加密了,用戶能用傳統的密碼驗證或使用公鑰驗證系統. 為了使用公鑰驗證系統,必須用ssh-keygen命令生成一個公有-私有密鑰對. 安全shell伺服器有自己的公有

-私鑰對,所有伺服器和客戶端能相互進行驗證.


[火星人 ] RHCE學習筆記已經有820次圍觀

http://coctec.com/docs/linux/show-post-50302.html