RHCSA筆記_20150314_第1頁
RHCSA筆記_20150314_第2頁
RHCSA筆記_20150314_第3頁
RHCSA筆記_20150314_第4頁
RHCSA筆記_20150314_第5頁
已閱讀5頁,還剩50頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第一單元 Linux理念和歷史 目標本單元你將學習到:操作系統的基本結構 解釋開源軟件的本質探討linux的起源列出Red Hat操作系統的發行版本解釋linux的基本原理 教學環境介紹開源系統開源系統:系統和源代碼提供給所有人使用 自由分發系統和源代碼 可以修改或者創建衍生系統 完善作者源代碼 自由軟件基金會和四大自由 Linux來源1984:GNU工程和自由軟件基金會 創建開源版本的UNIX事業 軟件許可遵循開源原則1991:Linus Torvalds創建開源類似unix內核的代碼,并且發布在GPL下 跟某些GNU事業相關,并且提供在線協助今天Linux內核+GNU應用=完整的linux

2、,開放源代碼 為目標受眾提供分發包Red Hat分發Linux分發是基于linux內核的操作系統 Red Hat Enterprise Linux穩定的,通過全面測試的軟件 有專業的支持服務 針對大型網絡集中的管理工具 Fedora項目 新的操作系統 社區支持(不提供Red Hat官方支持)針對個人的操作系統Red Hat Enterprise Linux的版本 ServerRed Hat Enterprise LinuxRed Hat Enterprise WorkstationClientRed Hat Enterprise Linux Desktop Red Hat Enterprise

3、 Linux 面向企業的操作系統 著重成熟的開源技術 18-24月的發行周期 認證領先的OEM和ISV產品 購買一年的紅帽網絡訂閱和技術支持合同 Fedora 項目 Red Hat贊助的開源項目 Fedora 分發版側重于最近的開源技術 4到6個月的發布周期 允許從internet上自由下載 開放的支持社區為企業級產品新版本中用到的技術提供驗證場地 Red Hat公司不提供正式支持 Red Hat Network 全面軟件交付、系統管理和監控框架 更新模塊:提供軟件更新。包括所有的網絡訂閱 管理模塊:大規模的部署能力 準備模塊:裸機安裝、配置管理、多狀態配置的回滾能力 監控模塊:提供網絡、系統

4、、應用等基礎設施的監控能力 Linux基本原理一切都是文件(包括硬件)專業的中小項目 鏈合多個程序一起執行復雜的任務 跟用戶界面無關 以文本文件形式保存配置數據目標 用戶能夠有效的使用Red Hat Enterprise Linux來定制他的操作環境,并且共同實現命令行任務和桌面系統效率作用 受眾和先決條件 受眾:Linux或者UNIX的新用戶 從其它操作系統轉變而來 先決條件 有任意計算機系統的用戶體驗 使用過鼠標,菜單以及任意圖形界面網絡課堂 網絡(192.168.0.0/24) (192.168.0.254)主要課堂服務器:提供DHCP,DNS,路由和其它服務desktopX(192.1

5、68.0.X)學員系統serverX(192.168.0.X+100)學員工作站上的虛擬服務器 國際化 Red Hat Enterprise支持多種語言,可以選擇缺省語言:在安裝過程中選擇語言 localectl set-local LANG=en_US.UTF8基于每一個命令都可以更改語言:$ LANG=en_US.UTF8 date語言設置保存在/etc/locale.conf文件中第二單元 Linux 基本使用目標本單元你將學習到:登錄Red Hat Enterprise Linux系統從控制臺啟動X從X中進入命令行更改密碼掌握root特性提升你的特權編輯純文本文件登錄Linux系統兩種

6、登錄方式:虛擬控制臺(文本方式)和圖形登錄方式(調用顯示管理器)用登錄名和密碼登錄 每一個用戶都有主目錄用來存放個人文件在虛擬控制臺和圖形環境間切換典型的Linux系統運行5個虛擬控制臺和一個圖形控制臺 服務器系統通常只有一個虛擬控制臺 桌面和工作站通常都有 使用CTRL-ALT-F2-6鍵可切換不同虛擬控制臺 按CTRL-ALT-F1鍵可進入圖形控制臺X Window的組成X Window是Linux的圖形子系統 Xorg是紅帽公司用在 X Window系統中的特定版本 X實現開源 通過桌面環境可以很大程度上控制外觀和行為 Red Hat 提供兩種桌面環境 GNOME:缺省的桌面環境 KDE

7、:可選的桌面環境啟動X服務器在某些系統中,X服務跟隨系統自動啟動 否則,如果系統是以虛擬控制臺進入的,用戶必須手工啟動X服務 系統管理員必須首先配置X 服務 登錄一個虛擬控制臺然后運行startx命令 更改密碼通過密碼可以控制對系統的訪問 常規的準則,最好的安全:在第一次登錄時立即更改密碼 經常定期更改密碼 選擇一個難于猜測的密碼 使用passwd命令可在終端下更改密碼root用戶root用戶:一個特定的管理員帳號,也被稱做超級用戶 root用戶幾乎可以完全控制系統,它同樣也可完全不受限制的損壞系統 除非必須,一般情況下不要使用root用戶登錄系統 正常用戶損壞系統的可能性是非常小的系統用戶和

8、組典型的,web或者打印服務的服務程序以非特權用戶運行,而不是用root用戶 例如:daemon,mail,lp,nobody 這種方式運行的程序限制了任何單個程序能夠對系統作的危害數量。改變身份su 命令將作為root身份創建一個新shellsudo command 命令將會使用root身份運行該命令 需要系統管理員首先設定 id命令顯示當前用戶信息編輯文本文件nano編輯器 易學易用 跟一些高級的編輯器相比功能不完備 其它編輯器 gedit,簡單的圖形編輯器 vim,功能完備的高級編輯器 gvim,vim編輯器的圖形版本第三單元 運行命令和獲取幫助本單元你將學習到:在提示符下執行命令解釋一

9、些命令的目的和使用方法使用Red Hat Enterprise Linux內在的幫助資源 運行命令 命令有著如下的語法n command options arguments 項與項之間以空格分隔開 options修飾一個命令的行為n 單字母選項前一般都帶有-,例如-a,-b,-c或者-abcn 全字選項前通常帶有-,例如:-help 參數是一個文件名或者其它被該命令需要的數據 多個命令用;分隔 一些簡單的命令 date 顯示當前日期和時間 cal 顯示日歷獲取幫助 whatis command -help man和info /usr/share/doc/ Red Hat文檔whatis命令 顯

10、示命令的簡短描述 這些描述存儲在數據庫中,每晚更新 在安裝完后并不能馬上使用 $ whatis cal n cal (1) - displays a callendat -help 選項 顯示使用方法概述和參數列表 大部分命令支持 $ date -helpn Usage:date OPTION. +FORMAT or: date -u|-utc|-universal MMDDhhmmCCYY.ss Display the current time in the given F

11、ORMAT,  or set the system date. .argument list omitted. 解讀使用摘要 通過-help,man和其它命令可顯示 用來描述一個命令的語法n 在中的參數是可選的n 大寫的參數或者在<>中都表示變量n 文本后面跟隨表示一個列表n x|y|z表示”x 或者y或者z”n -abc表示”任意-a,-b或者-c的任意組合”man命令 為命令提供相關幫助文檔 幾乎所有的命令都有man”頁” 頁面分成章節 它們統一組成Linux的手冊 u man <chapter>

12、 <command>瀏覽man頁面 當查看man頁面時:n 使用PgUp,PgDn箭頭來瀏覽n 使用/text來查詢textn n或者N定位到下一個或者上一個匹配的位置n q退出 查找手冊n man k keyword列出所有匹配的頁n 使用whatis數據庫info命令 類似man命令,但是通常比它更詳細 不帶任何參數運行info將顯示所有的幫助頁 info頁的結構象一個web站點 每一頁被劃分成節點 通過*前綴可連接到節點 info command瀏覽info頁 當查看一個info頁面時: 通過箭頭PgUp,PgDn Tab鍵移動到下一個鏈接 Enter符進入到選擇的鏈接 n/

13、p,/u/l 定位到下一個/前一個,上一個/最近一個節點 s text搜索文本(缺省為上一次搜索的) q命令退出info擴展的說明文檔 在/usr/share/doc目錄中 子目錄保存大部分已經安裝的包 以下這些文檔的位置不適合放在它處 示例配置文件 HTML/PDF/PS文檔 License詳細信息 Red Hat文檔操作 訪問Red Hat站點: 安裝指南 部署指南 虛擬指南第四單元 瀏覽文件系統目標本單元你將學習到:描述文件系統重要的組成部分拷貝,移動和刪除文件創建和查看文件用nautilus管理文件Linux文件層次概念文件和目錄組織成單根的倒置樹結構文件系統從root目錄開始,表示為

14、一個單獨的/(斜線)字符命名大小寫敏感路徑以/分隔文件和目錄名名字不能多于255個字符所有字符都要求是有效的,除斜線(/)之外不要使用某些特殊的字符在文件或者目錄名中某些字符應用引號保護起來當引用它們時命名和大小寫敏感例如:MAIL,Mail,mail和mAiLAgain,possible,but等字符不建議采用 一些重要的目錄主目錄:/root,/home/username用戶可執行的目錄:/bin,/usr/bin,/usr/local/bin系統可執行目錄:/sbin,/usr/sbin,/usr/local/sbin 其它加載點:/media, /mnt 配置目錄:/etc 臨時文件目

15、錄:/tmp內核和引導啟動目錄:/boot服務目錄:/var,/srv系統信息目錄:/proc,/sys共享庫目錄:/lib,/lib64,/usr/lib,/usr/local/lib絕對和相對路徑絕對路徑以斜線開頭文件位置的全路徑采用絕對路徑可以到處使用相對路徑不以斜線開頭當前工作目錄的相對位置可以通過相對路徑方式來指定一個文件名 當前工作目錄任何shell和系統進程都有當前工作目錄(cwd)pwd命令 顯示shell的cwd的絕對路徑改變目錄cd命令改變目錄改變到一個絕對或者相對路徑cd /home/joshua/workcd project/docs改變到上層目錄cd .改變到當前用戶

16、的主目錄cd 改變目錄到上一個工作目錄cd -顯示目錄內容顯示當前目錄或者指定目錄下的內容使用:ls options files_or_dirs示例: ls -a (包括隱藏文件) ls -l (顯示擴展信息) ls -R(遞歸所有的目錄) ls -ld (顯示目錄和符號鏈接信息)拷貝文件和目錄cp 拷貝文件和目錄使用:cp options file destination如果destination是一個目錄,可以一次拷貝多個文件到這個目錄中:cp options file1 file2 destination拷貝文件和目錄:Destination 如果目標是一個目錄,該拷貝把文件放到該目錄下

17、如果目標是一個文件,該拷貝覆蓋目標文件如果目標不存在,該拷貝被重命名移動、重命名文件和目錄mv 移動或者重命名一個文件和目錄使用:mv options file destination如果目標是一個目錄可以同時移動多個文件:mv options files file2 destination目標的操作類似cp 創建和刪除文件touch 創建一個空文件或者更新一個文件的時間戳rm 刪除文件使用:rm options <file>示例: rm -i file(交互式) rm -r directory(遞歸) rm -f file(強制)創建和刪除目錄mkdir 創建目錄rmdir 刪除

18、空目錄rm r 遞歸刪除目錄樹確定文件內容文件可以包含許多類型的數據在文件打開之前先檢查文件類型與文件,然后再確定使用適當的命令或者應用程序file options <filename>第五單元 用戶,組和權限用戶:linux可以創建232個用戶。普通用戶UID以1000開始,RHEL7之前以500開始。兩個用戶的UID可以一模一樣,其中的一個是另外一個的影子,如果另外一個登陸,是不可以執行userdel操作的用戶名和UID信息通常在/etc/passwd文件中,可以理解為數據庫或者普通文件。UID=0: root用戶UID=1499: server用戶,如apche等UID=50

19、0-999:系統用戶,可以通過useradd創建UID=1000-:普通用戶當用戶登陸時會分配一個用戶主目錄并運行一個shell程序。沒有權限許可時,用戶不能讀寫執行其他用戶的文件,但root用戶除外。Root用戶是無法通過權限加以限定的。組:是為了簡化權限的管理Private group和primary groups用戶指派給組每個組用一個唯一的GID。GID信息保存在/etc/group文件中。每一個用戶都有自己的私有組,組名和用戶名一樣。用戶可以添加到其他組。同一個族中的所有用戶能共享屬于組的文件。Windows支持組嵌套,Linux不可以。用戶,組的ID:用戶名和組名分別映射到UID和

20、GID數字上??梢酝ㄟ^ls n顯示。Linux文件安全實現每一個文件屬于一個uid和一個GID所有任何進程運行時都帶有一個uid或者一個或多個gid標示符,通常決定那個用戶執行這個進程。三種訪問控制進程和文件具有相同的UID進程和文件具有相同的GID其他(other)權限優先順序:如果UID匹配,用戶權限適用,否則,如果gid匹配,組權限適用如果都不match,其他權限適用。權限類型:R: 讀取文件或者顯示一個目錄下所有內容W:容許寫入文件或者在一個目錄中創建和刪除文件。X: 容許執行一個應用程序或者進入一個目錄。-: 沒有權限當目錄中缺少x權限時,r和w權限都不起作用,用戶無法顯示,創建和刪

21、除。檢查權限可以通過ls l查看-rwxr-xr-x. 1rootroot33604Mar.8.2014/bin/login-rwxr-xr-x.:開頭的-是文件類型符號,第一個rwx是用戶權限,r-x是組權限,第二個r-x是other權限,r-x后面的.是ACL控制符號,+代表有ACL設置,.表示沒有ACL設置, 1是連接數,第一個root是用戶,第二個root是root組,33604是文件大小,Mar.8.2014是最后一次訪問時間,可以通過touch更改文件的時間戳。/bin/login是文件名。改變文件的所有權只有root用戶可以改變文件的user。只有root用戶或者文件所有者能改變

22、文件的所屬組。普通用戶只能將文件改到自己隸屬的組。通過chown改變文件所有者通過chgrp改變文件的組所有權。Chown/chgrp -R usrname/groupname file/dir R表示遞歸改變。Root用戶可以同時修改user和group。 Chown username:groupname file/dir改變權限符號方法 chmod命令u/g/o/a +/-/= r/w/x 如: u=rw, go+r,改變權限數字方法 chmod命令第一個數字: user權限第二個數字: group權限第三個數字: other權限r=4, w=2, x=1默認許可:對于目錄,777是默認的

23、最小掩碼對于文件,默認許可同目錄的默認許可,但沒有執行權限掩碼通過umask設置非特權用戶的掩碼是002,文件將有許可664,目錄問775Root用戶的掩碼是022目錄的default許可是777減掩碼,文件則不然,先將666轉化成-rw-rw-rw,然后減去掩碼,大于或等于0取得數,小于0取0.如果掩碼為002,文件默認許可時664,掩碼為003,文件默認許可也是664.用戶管理工具:可以通過圖形管理工具: system-config-users命令打開。命令行工具為: useradd, usermod,userdelUseradd 添加用戶Useradd options username-

24、d: 指定用戶主目錄-g: 指定私有組-G: 指定primary-s: 指定登陸的shell-u: 指定UIDUsermod修改用戶-d: 修改用戶主目錄, 必須與-m選項連用-g: 改變私有組-G: 改變primary-a: 和-G選項組合使用,添加用戶到primary組-l: user登陸名稱-L: 鎖定用戶-U: 解鎖用戶-s: 改變登陸的shell-u: 改變UID退組只能重新輸入-G。Userdel: 通常加上-r選項,同時移除用戶主目錄和郵箱信息。幾個重要文件:/etc/passwd/etc/shadow/etc/group/etc/login.defs組管理命令:groupadd

25、 g 指定gidgroupmod -n 改變組名稱-g 改變gidGroupdel:刪除組但不能刪除用戶私有組。監控登陸:正在連接的用戶: w或者who、查看登陸過的信息: last, lastb(失敗的登陸), lastlog當前系統中所有人的登陸信息高級權限: suid sgid sticky bitSuid, 使用chmod u+s filename 添加suid,使命令運行時具有命令所有者的權限,臨時提升用戶權限,從而對某些文件有讀寫權限。例如/usr/bin/passwd命令,在運行時具有root用戶的權限從而可以修改/etc/passwd文件。Sgid: 命令運行時具有命令所在組權

26、限的合并,常見的如/usr/bin/write命令。 給目錄賦權限:Sticky bit位, 通過chmod o+t 添加,一旦給目錄設置后,目錄中的文件只能所有者或root用戶可以刪除,但同組用戶可以修改。第六單元 vi編輯器Vi可以同時打開多個文件,vi file1 file2 所有文件全部放入緩沖,當vi退出時,vim將緩沖寫入磁盤。如果直接鍵入vi,vi會打開一塊空白的緩沖。Vim的三種模式:模式決定按鍵行為。三種模式:一般模式:移動復制改變插入模式:Ex模式: save和quitESC鍵退出當前模式任何時候連按兩次ESC就可以回到一般模式。修改文件:i 在光標處插入A 在行尾插入I

27、在行頭插入s 替換插入S 替換最后字符o 在光標下方插入新行O 在光標上方插入新行保存和退出 ex模式進入Ex模式:w 保存不退出:q 退出:wq 保存退出, 在命令模式下,shift+兩次z也能保存退出:q! 強制退出:wq! 強制退出并保存文本:w /tmp/name 另存為:e /tmp/file 在不退出vi的情況下,編輯其他文本,但必須保存當前文檔:r /tmp/file 將文件讀入到當前光標后命令模式:以數字開頭重復操作命令,如5+yy表示復制五行, 5+-> 向右移動五次命令模式下 移動逐字移動 四個方向鍵 和 hjkl逐單詞移動 w下一個單詞頭 e下一個單詞尾逐句移動 (

28、 向上一句 ) 向下一句逐段移動 向上一段 向下 跳到N行: nG或者:n跳到文件尾: G跳到文件頭 gg命令模式下 查找 和替換使用/, n, N 進行搜索, 向上和向下使用sed進行搜索替換默認只影響當前行使用x和y界定范圍或使用%針對所有行冒號模式下:s/pass/PASS/ 1,30 s/pass/PASS/, % s/pass/PASS/, 但每行只替換第一個,如果要替換所有的要加上g。% s/pass/PASS/g命令模式下 - 復制 剪切 黏貼dd 剪切yy 復制p 黏貼在下一行P 黏貼在上一行命令模式下 - 撤銷u 撤銷最近的改變U 對所在文本行更改進行撤銷可視模式 v或V進入

29、可視模式可視模式下可以選擇文本塊v 開始字符高亮選擇V 開始行高亮選擇使用多個窗口split 分割窗口vsplit 垂直分割窗口ctrl+ww 在活動和非活動窗口間切換close關閉窗口ex模式命令只影響當前窗口qa關閉所有窗口vi o file1 file2 vi O file1 file2vi僅支持水平分割配置vi和vim動態設置可以使用: :set永久配置 修改用戶主目錄下的.vimrc文件 username/.vimrc常用配置set numberset autoindentset textwidth=65set ignorecase多文本操作 vi file1 file2:wqa 保

30、存退出所有文本:next 下一個文本 :prev 上一個文本vim 內建幫助文檔:help第七單元 使用Bash Shell目標 本單元你將學習到: 使用命令行快捷 使用命令行擴展 使用歷史和編輯技巧 編寫簡單的shell腳本 重定向I/O通道到文件 使用管道連接命令 使用for循環來迭代所有的值集命令行快捷-文件通配符擴展 (注意和sed中的元字符不同) 通配符擴展 * 匹配0或者多個字符 ? 匹配任意單個字符 0-9 匹配0-9范圍內的數字 abc 匹配該列表內的任意字符 abc 匹配除列表內字符外的所有字符命令行快捷-TAB鍵 Tab鍵可用來幫助完成命令行的輸入: 為命令名,它將完成命令

31、名的輸入 為參數,它將完成文件名的輸入 示例 $ xte<Tab> $ xterm $ ls myf<Tab> $ ls myfile.txt命令行快捷-歷史 bash保存已經輸入過的命令, 這些歷史命令可以用來重復使用 使用history命令可以看到歷史命令列表 $ history history c 清空歷史命令列表 14 cd /tmp15 ls l 16 cd 17 cp /etc/passwd18 vi passwd.輸出截斷.其它的歷史命令技巧 使用up和down鍵來翻閱以前的命令 按下Ctrl-r鍵從歷史命令行中搜索命令(反向i搜索) 從先前的命令中重調上

32、一個參數 Esc-. (Esc鍵后跟一點) Alt-. (當輸入點的時候按住alt鍵) !$ (僅上一個命令才有效)命令行擴展-波形符 波形符() 可指向你的主目錄 $ cat /.bash_profile 也可指向其它用戶的主目錄 $ ls julie/public_html命令行擴展-命令和大括號集 命令擴展:$()和 輸出一個命令做為另外一個命令的參數 $ echo “This systems name is $(hostname)” $ This systems name is 大括號擴展 重復打印字符串 $ echo file1,3,5$ file1 file3 file5$ rm

33、f file1,3,5命令編輯技巧 Ctrl-a:移動到行的開始位置 Ctrl-e:移動到行的最后位置 Ctrl-u:刪除到行的開始位置 Ctrl-k:刪除到行的最后位置 Ctrl-方向鍵:逐個字符移動到左邊或者右邊Bash變量 四種變量:用戶自定義, 環境, 位置和固定變量 變量是命名的值 用來存儲數據或者命令輸出 設置方式為:變量=值 引用方式為:$變量 $ HI=“Hello,and welcome to $(hostname).”$ echo $HI Hello,and welcome to stationX腳本基礎 Shell腳本由許多命令或者待執行的語句組成的文本文件 Shell腳

34、本的用途包括: 常用命令的自動化 執行系統管理和診斷工作 創建簡單的應用程序 操作文本或者文件創建Shell腳本 步驟1:創建一個包含命令的文本文件 第一行包含magic shebang序列:#! #!/bin/bash 注釋你的腳本 注釋用#開始 步驟2:讓腳本可執行: $ chmod u+x myscript.sh 執行腳本 把腳本文件放置在一個可執行的路徑的目錄中或者在命令行指定這個腳本文件的絕對路徑或者相對路徑簡單的Shell腳本 #!/bin/bash #該腳本顯示你系統環境的某些信息 echo “Greetings. The date and time are $(date)” e

35、cho “Your workding directory is:$(pwd)”標準的輸入和輸出 Linux給應用程序提供三種I/O通道 標準輸入(STDIN) 缺省為鍵盤 0 標準輸出(STDOUT) 缺省為終端窗口 1 標準錯誤(STDERR) 缺省為終端窗口 2重定向輸出到文件 標準輸出和標準錯誤能被重定向到文件 command operator filename 支持操作包括: > 重定向標準輸出到文件 2> 重定向錯誤到文件 &> 重定向所有輸出到文件 在重定向時, 缺省是覆蓋文件內容.>>符號追加重定向輸出到文件-示例 以下命令當不做為root用

36、戶運行時,產生輸出和錯誤: $ find /etc name passwd 可以執行以下操作保存輸出和錯誤信息 $ find /etc name passwd > find.out$ find / etc name passwd 2> /dev/null$find /etc name passwd > find.out 2>find.err結合輸出和錯誤 一些操作對STDOUT和STDERR都有影響 &>:重定向所有的輸出 $ find /etc name passwd &> find.all 2>&1:重定向STDERR到ST

37、DOUT 通過一個管道來發送所有的輸出是有用的 $ find /etc name passwd 2>&1|less ():結合多個應用程序的STDOUT $ (cal 2007 ;cal 2008)|less $ cal 2007 ;cal 2008|less 注意上兩個命令的區別重定向標準輸出給一個應用程序(管道) 一根管道符占用4k空間,管道符其實是個文件 管道符兩邊的命令同時解釋但不同時執行 盡量別超過10根管道符 管道(|字符)能連接命令: command1|command2 傳送command1的標準輸出給command2的標準輸入,而不輸出到屏幕 結合多個工具的功能

38、command1 | command2 | command3等重定向標準輸出到一個程序-示例 less:一次查看一個頁面的輸入 $ ls l /etc|less 使用 / 能查詢輸入 mail:發送輸入通過email $ echo “test email” | mail s “test user lpr:發送輸入到打印機 $ echo “test print” | lpr $ echo “test print” | lpr P printer_name重定向到多個目標(tee) $ command1 | tee filename | command2 存儲command1的stdout在fil

39、ename里,然后通過管道傳給command2 使用: 故障診斷復雜的管道 同時查看和記載輸出從文件重定向STDIN 使用<重定向標準輸入,但必須是文本 某些命令能接收數據的重定向從文件到標準輸入: $ tr A-Z a-z <.bash_profile 以上命令將把.bash_profile里的大寫字符全部轉換成小寫字符 等效于:$ cat .bash_profile | tr A-Z a-z發送多行到STDIN 使用 <<WORD 從鍵盤重定向多行到STDIN 接收所有的標準輸入直到輸入WORD字符 有時稱做heretext $ mail s “Please Cal

40、l” jane <<END > HI Jane, > >Please give me a call when you get in.We may need > to do some maintenance on server1. > > Details when youre on-site, > Boris >END腳本:for循環 對一個值集合中的每一個成員執行動作 示例:for NAME in joe jane juliedo ADDRESS=$NAME MESSAGE=Projects are due today! echo $

41、MESSAGE |mail s Reminder $ADDRESSdone 也可使用命令輸出和文件列表:for num in $(seq 1 10 ) 給$num 賦值1-10 seq X Y 打印從X 到 Yfor file in *.txt把.txt文件名賦值給$file第八單元 文本處理工具目標 本單元你將學習到: 使用工具提取、分析和操作文本數據 使用grep 使用find提取文本工具 文件內容:less和cat 文件摘選:head和tail 提取列或者字段:cut 按關鍵字提取:grep查看文件內容 - less和cat cat:輸出一個或者多個文件內容到標準輸出 多個文件聯合在一起

42、 less:在查看文件或者標準輸入的時候,每次只看一頁 在查看時常用的命令如下: /text:搜索text n/N:跳轉到next/previous匹配的地方 v:用文本編輯器打開該文件 man命令中是采用less來分頁的查看文件摘選 - head和tail head:顯示文件的起始10行 使用-n選項改變行顯示 tail:顯示文件最后10行 使用-n選項改變行顯示 使用-f選項來繼續從輸入文件復制額外的單元 對于監控日志文件非常有用!通過關鍵字來提取文本 grep 打印匹配的文件行或者標準輸入 $ grep john /etc/passwd $ date help|grep year 使用-

43、i選項:忽略大小寫敏感搜索 使用-n選項:打印匹配的行號 使用-v選項:打印哪些不匹配的行 使用-AX選項:在匹配數據后包含顯示X行 使用-BX選項:在匹配數據前包含顯示X行 使用-r選項:遞歸搜索目錄 使用-c 統計有多少行匹配 使用-color=auto選項:用color顏色高亮顯示匹配的數據 默認只處理單個關鍵字,可以用-E選項來執行查找多個關鍵字,也可用egrep命令 grep E student|visitor /etc/passwd 在passwd文件中查找包含student或visitor的行。提取列或字段 cut 顯示文件指定的列或者標準輸入數據 $ cut -d: -f1 /

44、etc/passwd 提取用戶名 grep root /etc/passwd |cut -d:-f7 使用-d選項來指定列分隔符(默認是TAB) 使用-f選項來指定要打印的列 使用-c選項來指定按字符來提取 $ cut c2-5 /usr/share/dict/words 截取第二至第五個字符文本分析工具 文本統計:wc 文本排序:sort 文件比較:diff和patch收集文本統計 - wc(單詞統計) 計算單詞數,行數,字節數和字符數 可以針對一個文件或者標準輸入 $ wcstory.txt7 1901 story.txt 使用-l選項:僅僅統計行數 使用-w選項:僅僅統計單詞數 使用-c

45、選項:僅僅統計字節數 使用-m選項:統計字符數(不顯示) 注意字節數和字符數的區別sort 對標準輸出排序 - 原始文件不改變,根據每一行的開頭字符 $ sort options file(s) 常用選項 -r:執行反向(降)排序 -n:執行數字排序 -f:忽略字符串中的大小寫 -u:在輸出中刪除重復的行(唯一) -t c:使用c作為字段間的分隔符 -k X:使用c分隔符排序X字段 可多次使用 sort u t: -k7 /etc/passwd 以:為分隔符,按照第七列進行排序,相同行被合并。消除重復行 - sort和uniq sort -u:從輸入刪除重復行 uniq:從相鄰的行中刪除重復行

46、 使用-c選項統計發生重復的次數 跟sort一起使用效果最好:$ sort userlist.txt|uniq -c文件比較 diff 比較兩個文件的不同 $ diff foo.conf-broken foo.conf-works 5c5< use_widgets = no- >use_widgets = yes第行 使用圖形化的diff工具gvimdiff,在vim-X11包里復制文件更改 patch diff命令輸出差異并保存在patchfile文件中 使用-u選項統一diff,對生成patchfile是有好處的 patch 命令復制改變在其它的文件中(小心使用!) 使用-b選

47、項自動備份變更的文件 diff -u foo.conf-broken foo.conf-works >foo.patch patch -b foo.conf-broken foo.patch文本操作工具 - tr和sed 更改(轉變)字符:tr 轉換一種字符集合為另外一種字符集合 只能從STDIN讀取數據 $ tr a-z A-Z<lowercase.txt 更改字符串:sed 流編輯器 執行查找/替換 操作在文本流上 通常不改變原文件 使用 i.bak備份和修改原文件sed示例 提供查詢和替換指令 sed技巧 sed s/dog/cat/g pets sed 1,50s/dog/

48、cat/g pets sed /digby/,/duncan/s/dog/cat/g pets 多路sed指令 sed e s/dog/cat/ e s/hi/lo/ pets sed f myedits pets復雜的查詢-正則表達式 表示行的開始 * 一個單字符后緊跟*,匹配0個或多個此單字符 只匹配 內字符 只用來屏蔽一個元字符的特殊含義。 . 只匹配任意單字符 pattern n 只用來匹配前面pattern出現次數。n為次數 pattern n, 含義同上,但次數最少為n pattern n,m 含義同上,但pattern出現次數在n與m之間 <word和word>單詞邊

49、界 $表示行的結束locate 向預建數據庫詢問系統上文件的路徑 數據庫必須是管理員更新的 完整的路徑將被查找,而不止是文件名 對于被搜索目錄,用戶要擁有可讀和可執行的權限locate例子 locate passwd,查找名字或路徑中包含passwd的文件 有用的選項 -i 進行大小寫不敏感的查找 -n X 只列出X匹配的 -e 檢查被查找的文件是否真實存在find find dir1 dir2 criteria 實時搜索目錄樹 比locate慢但更精確 如果不給定開始目錄,就用PWD 如果不給定criteria,所有文件都匹配 在找到的文件上可以執行命令 對于被搜索目錄,用戶要擁有可讀和可執

50、行的權限基礎的find例子 find name snow.png 在當前目錄下查找名為snow.png的文件 find iname snow.png 在當前目錄下查找文件名字為snow.png,SNOW.PNG,等等,大小寫不敏感 find / -name “*.txt” 在整個系統中查找以.txt結尾的文件 find /etc name “*pass*” 在/etc目錄下查找名字包含pass的文件 find /home user joe group joe 在/home目錄下查找所有者是joe并且組也是joe的文件find與邏輯操作 默認匹配是與 可以用-o或者是-not表示”或”或者是”否

51、定” 括號可以用來檢測邏輯操作的順序,但必須用斜線轉義 find user joe not group joe find user joe o user jane find not ( -user joe o user jane )find與權限 能用名字或id匹配所屬關系 find / -user joe o uid 500 能匹配八進制或符號權限 find perm 755 會匹配755的模式 find perm +222會匹配只要任何用戶能寫的模式 find perm -222會匹配所有用戶都可以寫的模式 find perm -002會匹配其他人可以寫的模式find 與數字標準 許多查找標準采用數字值 find size 10M 大小等于10M的文件 find size +10M 大小超過10M的文件 Find size -10M 大小少于10M的文件 其他修飾符也有效,如:k代表KB,G代表GB等等find與訪問時間 f

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論