




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、Linux & UNIX;UNIX標準化;UNIX哲學GPL通用性公開許可證(General Public License,簡稱GPL), 是一個廣泛被使用的自由軟件許可證條. GPL授予 HYPERLINK /wiki/%E7%A8%8B%E5%BA%8F o 程序 程序接受人以下權利,或稱“自由”:以任何目的運行此程序的自由;再發(fā)行復制件的自由;改進此程序,并公開發(fā)布改進的自由(前提是能得到源代碼)。BSDBSD (Berkeley Software Distribution,伯克利軟件套件)是Unix的衍生系統(tǒng),在1977至1995年間由加州大學伯克利分校開發(fā)和發(fā)布的。POSIXPOSI
2、X是Portable Operating System Interface of Unix的縮寫。由IEEE(Institute of Electrical and Electronic Engineering)開發(fā),由ANSI和ISO標準化。VFsVFS就是Virtual File System虛擬文件系統(tǒng), VFS的作用就是采用標準的Unix系統(tǒng)調(diào)用讀寫位于不同物理介質(zhì)上的不同文件系統(tǒng)。VFS是一個可以讓open()、read()、write()等系統(tǒng)調(diào)用不用關心底層的存儲介質(zhì)和文件系統(tǒng)類型就可以工作的粘合層。在Linux下,通過VFS,一個抽象的通用訪問接口屏蔽了底層文件系統(tǒng)和物理介質(zhì)的
3、差異性。RPMRPM軟件包管理器英文原義:Redhat Package Manager中文釋義:RPM軟件包管理器注解:一種用于互聯(lián)網(wǎng)下載包的打包及安裝工具,它包含在某些Linux分發(fā)版中。它生成具有.RPM擴展名的文件。與Dpkg類似。CVSCVS(Concurrent Versions System)版本控制系統(tǒng)是一種GNU軟件包,主要用于在多人開發(fā)環(huán)境下的源碼的維護。CVS是一個C/S系統(tǒng),多個開發(fā)人員通過一個中心版本控制系統(tǒng)來記錄文件版本,從而達到保證文件同步的目的。CVS版本控制系統(tǒng)是一種GNU軟件包,主要用于在多人開發(fā)環(huán)境下的源碼的維護。CVS工作思路在一臺服務器上建立一個源代碼庫
4、,庫里可以存放許多不同項目的源程序。由源代碼庫管理員統(tǒng)一管理這些源程序。每個用戶在使用源代碼庫之前,首先要把源代碼庫里的項目文件下載到本地,然后用戶可以在本地任意修改,最后用CVS命令進行提交,由CVS源代碼庫統(tǒng)一管理修改。這樣,就好像只有一個人在修改文件一樣,既避免了沖突,又可以做到跟蹤文件變化等。RPCRPC(Remote Procedure Call Protocol)遠程過程調(diào)用協(xié)議,它是一種通過網(wǎng)絡從遠程計算機程序上請求服務,而不需要了解底層網(wǎng)絡技術的協(xié)議。LinuxP2GNUGNU 是一個由 自由軟件 構成的類 Unix 操作系統(tǒng). GNU 工程 創(chuàng)始于一九八四年,旨在開發(fā)一個完整
5、 GNU 系統(tǒng)。GNU這個名字是 “GNUs Not Unix!” 的遞歸首字母縮寫詞UNIX的系統(tǒng)結構;Two interfaces文件管理子系統(tǒng)和進程管理子系統(tǒng)。Linux的目錄樹FHS重要目錄 : /home: /bin: /sbin: /usr: /dev: /etc: /proc:P79/home :存放系統(tǒng)用戶自身的數(shù)據(jù)/bin:存放系統(tǒng)程序(二進制可執(zhí)行文件) 包含root和普通用戶都有用的幾個命令,通常包含shell/sbin: 超級用戶指令 系統(tǒng)管理命令,這里存放的是系統(tǒng)管理員使用的管理程序/usr:存放用戶安裝的軟件/dev:代表物理設備并為這些設備提供接口的文件/etc:
6、存放配置文件/proc: /proc 文件系統(tǒng)是一種內(nèi)核和內(nèi)核模塊用來向進程 (process) 發(fā)送信息的機制 (所以叫做 /proc)。這個偽文件系統(tǒng)讓你可以和內(nèi)核內(nèi)部數(shù)據(jù)結構進行交互,獲取 有關進程的有用信息,在運行中 (on the fly) 改變設置 (通過改變內(nèi)核參數(shù))。 與其他文件系統(tǒng)不同,/proc 存在于內(nèi)存之中而不是硬盤上。環(huán)境變量:PATH, HOME etc. (export命令)P120Shell 命令Touch 要更新文件的訪問和修改時間,請輸入: touchprogram.c這會將 program.c 文件的上次訪問和修改時間設置為當前日期和時間。如果 progr
7、am.c 文件不存在,touch 命令就創(chuàng)建一個同名的空文件。 要避免創(chuàng)建新文件,請輸入: touch HYPERLINK /IT/AIX/aixcmds5/touch.htm l a133z914cd t _blank -cprogram.c 要僅更新修改時間,請輸入: touch HYPERLINK /IT/AIX/aixcmds5/touch.htm l a133z914ce t _blank -m *.o這會更新當前目錄下的以 .o 擴展名結尾的文件的上次修改時間(不更新訪問時間)。touch 命令經(jīng)常以此方式使用,來改變 make 命令的結果。 要明確設置訪問和修改時間,請輸入: t
8、ouch HYPERLINK /IT/AIX/aixcmds5/touch.htm l a133z914cd t _blank -c HYPERLINK /IT/AIX/aixcmds5/touch.htm l wqp11c0bob t _blank -t02171425program.c這會將訪問和修改時間設置為當前年份的 2 月 17 日的 14:25(2:25 p.m.)。 要使用另一文件的時間戳記而不用當前時間,請輸入: touch HYPERLINK /IT/AIX/aixcmds5/touch.htm l vop12e0bob t _blank -rfile1program.c這會
9、將 program.c 文件的時間戳記設置成與 file1 文件一樣。 要使用指定時間而不是當前時間處理文件,請輸入: touch HYPERLINK /IT/AIX/aixcmds5/touch.htm l wqp11c0bob t _blank -t198503030303.55program.c這會將 program.c 文件的時間戳記設置為 1985 年 3 月 3 日上午 3:03:55。Mkdir實例2:遞歸創(chuàng)建多個目錄 命令:mkdir -p test2/test22輸出:rootlocalhosttest#mkdir-ptest2/test22rootlocalhosttest
10、#ll總計8drwxr-xr-x2rootroot409610-2517:42test1drwxr-xr-x3rootroot409610-2517:44test2rootlocalhosttest#cdtest2/rootlocalhosttest2#ll總計4drwxr-xr-x2rootroot409610-2517:44test22rootlocalhosttest2#實例3:創(chuàng)建權限為777的目錄 命令:mkdir -m 777 test3輸出:rootlocalhosttest#mkdir-m777test3rootlocalhosttest#ll總計12drwxr-xr-x2ro
11、otroot409610-2517:42test1drwxr-xr-x3rootroot409610-2517:44test2drwxrwxrwx2rootroot409610-2517:46test3rootlocalhosttest#說明:test3 的權限為rwxrwxrwxlsls不帶參數(shù)的ls列舉當前目錄下有哪些文件和目錄,ls Folder列舉Folder目錄中的文件和子目錄,ls File顯示File文件的信息(默認為文件名)。123456789dutordutor-desktop:$ cd Wdir/home/dutor/Wdirdutordutor-desktop:/Wdir
12、$ lsAPUE ASM Cpp LaTeX PHP Python QT Shelldutordutor-desktop:/Wdir$ ls Cpp/ACM main main.cpp Makefile Pthread symtab tags test.sCurses main.c main.s Playaround STL SystemProgram test.c TutManualdutordutor-desktop:/Wdir$ ls Cpp/MakefileCpp/Makefilels -a-a選項同ls,但會列舉當前目錄或者指定目錄下的所有文件,包括dot文件(.開頭的文件)和.目錄
13、和.目錄。12dutordutor-desktop:/Wdir$ ls -a. . APUE ASM Cpp .I2C.c.swp LaTeX PHP Python QT Shellls -A-A選項同ls,但會列舉當前目錄或者指定目錄下的所有文件,包括dot文件(.開頭的文件),但不包括.目錄和.目錄。12dutordutor-desktop:/Wdir$ ls -AAPUE ASM Cpp .I2C.c.swp LaTeX PHP Python QT Shellls -l-l選項的ls命令將列舉當前目錄或指定目錄中文件或者子目錄的詳析信息。12345678910dutordutor-des
14、ktop:/Wdir/Cpp/STL$ ls -ltotal 32drwxr-xr-x 2 dutor dutor 4096 2010-04-19 19:25 bind2nd-rw-r-r- 1 dutor dutor 1296 2010-03-27 18:39 Heap.cpp-rw-r-r- 1 dutor dutor 980 2010-03-27 18:03 Kth-Max.cpp-rw-r-r- 1 dutor dutor 1168 2010-04-29 20:24 main.cpp-rw-r-r- 1 dutor dutor 709 2010-04-20 17:58 operator
15、.cpp-rw-r-r- 1 dutor dutor 654 2010-03-27 17:40 priority_queue.cpp-rw-r-r- 1 dutor dutor 461 2010-04-10 22:41 sort_list.cpp-rw-r-r- 1 dutor dutor 655 2010-04-29 21:18 test.cppls -l列舉的信息包含7個以Tab的域:第一個域:第一個字符指明了文件類型 -: 普通文件;d: 目錄文件;l: 符號鏈接;s: socket文件;b: 塊設備;c: 字符設備;p: 管道文件。后面的9個字符指明了文件的訪問權限:每三位指明一類用戶
16、的權限,分別是文件屬主、同組用戶、其它用戶,權限分為讀(r)、寫(w)、執(zhí)行(x)。第二個域:鏈接數(shù)。普通文件至少為1,目錄至少為2(.和.);第三域:文件屬主;第四域:用戶組;第五域:文件大小,其中目錄大小通常為塊大小的整數(shù)倍;第六域:文件的最近修改日期和時間,修改文件意味著對其內(nèi)文件或子目錄的增添和修改;第七域:文件名ls -t按文件的修改時間列舉文件,最近修改的在前。1234dutordutor-desktop:/Wdir$ lsAPUE ASM Cpp LaTeX PHP Python QT Shelldutordutor-desktop:/Wdir$ ls -tCpp QT Shel
17、l PHP ASM LaTeX APUE Pythonls -r以相反順序列舉文件。123456dutordutor-desktop:/Wdir$ lsAPUE ASM Cpp LaTeX PHP Python QT Shelldutordutor-desktop:/Wdir$ ls -tCpp QT Shell PHP ASM LaTeX APUE Pythondutordutor-desktop:/Wdir$ ls -trPython APUE LaTeX ASM PHP Shell QT Cppls -1單獨行列舉文件。ls -F可視化顯示文件類型。12$ ls -FDesktop/ D
18、ocuments/ Ubuntu-App firstfile Music/ Public/ Templates/ : 目錄nothing : 普通文件. :符號鏈接文件* :可執(zhí)行文件ls -latr即是說,各個選項可以結合使用,除了互相排斥的選項,例如-a和-A。就是說如果不加任何排序的參數(shù),文件名第一個字母是數(shù)字的,將優(yōu)先顯示;其次才是AZ,然后才是a-z;下面是幾個排序的參數(shù),大家練習一下就知道了;在文件的大小排序上,我們要用到-S參數(shù);如果是逆序排序時,我們要用到-r參數(shù);按最后訪問的時候排序,要用到-t參數(shù);根據(jù)擴展名進行排序,要用到參數(shù) -X ;More使用權限:所有使用者使用方式
19、:more -dlfpcsu -num +/pattern +linenum fileNames.說明:類似 cat ,不過會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示,而且還有搜尋字串的功能(與 vi 相似),使用中的說明文件,請按 h 。參數(shù):-num 一次顯示的行數(shù)-d 提示使用者,在畫面下方顯示 Press space to continue, q to quit. ,如果使用者按錯鍵,則會顯示 Press h for instructions. 而不是 嗶 聲-l 取消遇見特殊字元 L(送紙字元)
20、時會暫停的功能-f 計算行數(shù)時,以實際上的行數(shù),而非自動換行過后的行數(shù)(有些單行字數(shù)太長的會被擴展為兩行或兩行以上)-p 不以卷動的方式顯示每一頁,而是先清除螢幕后再顯示內(nèi)容-c 跟 -p 相似,不同的是先顯示內(nèi)容再清除其他舊資料-s 當遇到有連續(xù)兩行以上的空白行,就代換為一行的空白行-u 不顯示下引號 (根據(jù)環(huán)境變數(shù) TERM 指定的 terminal 而有所不同)+/ 在每個檔案顯示前搜尋該字串(pattern),然后從該字串之后開始顯示+num 從第 num 行開始顯示fileNames 欲顯示內(nèi)容的檔案,可為復數(shù)個數(shù)范例:more -s testfile 逐頁顯示 testfile 之
21、檔案內(nèi)容,如有連續(xù)兩行以上空白行則以一行空白行顯示。more +20 testfile 從第 20 行開始顯示 testfile 之檔案內(nèi)容。Lessless 在查看之前不會加載整個文件。可以嘗試使用 less 和 vi 打開一個很大的文件,你就會看到它們之間在速度上的區(qū)別。在 less 中導航命令類似于 vi。本文中將介紹一些導航命令以及使用 less 的其它一些技巧。1 搜索當使用命令 less file-name 打開一個文件后,可以使用下面的方式在文件中搜索。搜索時整個文本中匹配的部分會被高亮顯示。向前搜索/ - 使用一個模式進行搜索,并定位到下一個匹配的文本n - 向前查找下一個匹配
22、的文本N - 向后查找前一個匹配的文本向后搜索? - 使用模式進行搜索,并定位到前一個匹配的文本n - 向后查找下一個匹配的文本N - 向前查找前一個匹配的文本2 全屏導航ctrl + F - 向前移動一屏ctrl + B - 向后移動一屏ctrl + D - 向前移動半屏ctrl + U - 向后移動半屏3 單行導航j - 向前移動一行k - 向后移動一行4 其它導航G - 移動到最后一行g - 移動到第一行q / ZZ - 退出 less 命令5 其它有用的命令v - 使用配置的編輯器編輯當前文件h - 顯示 less 的幫助文檔&pattern - 僅顯示匹配模式的行,而不是整個文件6
23、標記導航當使用 less 查看大文件時,可以在任何一個位置作標記,可以通過命令導航到標有特定標記的文本位置。ma - 使用 a 標記文本的當前位置a - 導航到標記 a 處7 瀏覽多個文件方式一,傳遞多個參數(shù)給 less,就能瀏覽多個文件。less file1 file2方式二,正在瀏覽一個文件時,使用 :e 打開另一個文件。less file1:e file2當打開多個文件時,使用如下命令在多個文件之間切換:n - 瀏覽下一個文件:p - 瀏覽前一個文件所不同的是less命令除了可以按空格鍵向下顯示文件外,還可以利用上下鍵來卷動文件。當要結束瀏覽時,只要在less命令的提示符“:”下按Q鍵即
24、可。Mv1.作用mv命令來為文件或目錄改名或?qū)⑽募梢粋€目錄移入另一個目錄中。該命令等同于DOS系統(tǒng)下的ren和move命令的組合。它的使用權限是所有用戶。2.格式mv options 源文件或目錄 目標文件或目錄3.options主要參數(shù)i:交互方式操作。如果mv操作將導致對已存在的目標文件的覆蓋,此時系統(tǒng)詢問是否重寫,要求用戶回答”y”或”n”,這樣可以避免誤覆蓋文件。f:禁止交互操作。mv操作要覆蓋某個已有的目標文件時不給任何指示,指定此參數(shù)后i參數(shù)將不再起作用。4.第二個參數(shù)當?shù)诙€參數(shù)類型是文件時,mv命令完成文件重命名,它將所給的源文件或目錄重命名為給定的目標文件名。當?shù)诙€參數(shù)是
25、已存在的目錄名稱時,源文件或目錄參數(shù)可以有多個,mv命令將各參數(shù)指定的源文件均移至目標目錄中。在跨文件系統(tǒng)移動文件時,mv先拷貝,再將原有文件刪除,而鏈至該文件的鏈接也將丟失。5.應用實例(1)將/usr/udt中的所有文件移到當前目錄(用”.”表示)中:$ mv /usr/udt/* .(2)將文件test.txt重命名為wbk.txt:$ mv test.txt wbk.txt(3)把當前目錄的一個子目錄里的文件移動到另一個子目錄里 mv 文件名/* 另一個目錄(4)移動當前文件夾下的所有文件到上一級目錄 mv * ./chmodchmod 命令用的很多,但是對這個命令卻不是很了解。 在網(wǎng)
26、上搜了一下。 整理如下。 命令格式:chmod-cfvR-help-versionmodefile. rootqs-wg-db2 # chmod -helpUsage: chmod OPTION. MODE,MODE. FILE. or: chmod OPTION. OCTAL-MODE FILE. or: chmod OPTION. -reference=RFILE FILE.Change the mode of each FILE to MODE. -c, -changes like verbose but report only when a change is made -no-pre
27、serve-root do not treat / specially (the default) -preserve-root fail to operate recursively on / -f, -silent, -quiet suppress most error messages -v, -verbose output a diagnostic for every file processed -reference=RFILE use RFILEs mode instead of MODE values -R, -recursive change files and directo
28、ries recursively -help display this help and exit -version output version information and exitEach MODE is of the form ugoa*(-+=(rwxXst*|ugo)+.Report bugs to .rootqs-wg-db2 #參數(shù)說明:1. -cfvR 部分-c:若該檔案權限確實已經(jīng)更改,才顯示其更改動作 -f:若該檔案權限無法被更改也不要顯示錯誤訊息 -v:顯示權限變更的詳細資料 -R:對目前目錄下的所有檔案與子目錄進行相同的權限變更(即以遞回的方式逐個變更), 這個-R
29、 用的還是很多的。2. Mode 部分這部分可以分成如下3塊: who operator permission ugoa*(-+=(rwxXst*|ugo)+.who的含義是: u 文件屬主權限 g 同組用戶權限 o 其它用戶權限 a 所有用戶(包括以上三種) operator的含義: + 增加權限 - 取消權限 = 唯一設定權限permission的含義: r 讀權限 w 寫權限 x 執(zhí)行權限 X表示只有當該檔案是個子目錄或者該檔案已經(jīng)被設定過為可執(zhí)行。s 文件屬主和組id l 給文件加鎖,使其它用戶無法訪問 如: chmod a+x 3. 示例:(1)將檔案file1.txt設為所有人皆可
30、讀取: chmodugo+rfile1.txt (2)將檔案file1.txt設為所有人皆可讀取: chmoda+rfile1.txt (3)將檔案file1.txt與file2.txt設為該檔案擁有者,與其所屬同一個群體者可寫入,但其他以外的人則不可寫入: chmodug+w,o-wfile1.txtfile2.txt (4)將ex1.py設定為只有該檔案擁有者可以執(zhí)行: chmodu+xex1.py (5)將目前目錄下的所有檔案與子目錄皆設為任何人可讀取: chmod-Ra+r* (6)收回所有用戶的對file1的執(zhí)行權限chmod a-x file14. 使用數(shù)字來賦權4.1 先看一下文
31、件的權限格式rootqs-wg-db2 scripts# lltotal 20-rw-r-r- 1 oracle oinstall 0 Feb 24 00:00 alertlogbyday.log-rwxr-xr-x 1 oracle oinstall 430 Feb 20 01:10 alertlogbyday.sh-rwxr-xr-x 1 oracle oinstall 7 Feb 24 05:00 del_st_arch.log-rwxr-xr-x 1 oracle oinstall 648 Feb 19 00:51 del_st_archive.sh-rwxr-xr-x 1 oracl
32、e oinstall 9 Feb 24 05:00 max_sn.logdrwxr-xr-x 3 root root 4096 Feb 23 23:40 pymonitorll的結果返回七列,分別表示如下含義:第一欄文件屬性第二欄文件數(shù)第三欄擁有者第四欄所有者群組第五欄大小第六欄建檔日期第七欄檔名我們設置文件的權限就是這是第一欄里的文件屬性。文件屬性這塊共有十個字段,如:drwxr-xr-x我們把這10個列分成4塊:d rwx r-x r-x第一塊:也就是第一列,用來表示這個文件的類型,有如下值:(1) d 則是目錄,我這里的是d,表示的是一個目錄(2) - 則是文件;(3) l 則表示為連結
33、檔(link file);(4) b 則表示為裝置文件里面的可供儲存的接口設備;(5) c 則表示為裝置文件里面的串行端口設備,例如鍵盤、鼠標。第二塊:第 2到4 列,表示文件擁有者的權限。第三塊:第5到7 列,表示擁有者同組人的權限。第四塊:第8到10列,表示是非擁有者組人的權限。這些權限均有rwx 三個參數(shù)表示,而且分別對應不同的位置。每塊由3個列組成,每列對應一個值。 r 代表可讀、 w 代表可寫、 x 代表可執(zhí)行。 舉例: 如果擁有者只有只讀的權限,那么第2到4列就是r-,有讀寫的權限就是rw-,有讀寫和執(zhí)行的權利就是rwx.4.2 使用數(shù)字賦權在4.1 中了解準備知識之后,就可以使用
34、數(shù)字賦權了。 每塊用戶有3個權限r(nóng)wx. 他們對應數(shù)字:r -4w-2x-1使用數(shù)字賦權的命令格式如下:chmod abc filename其中的abc 分別代表3個數(shù)字,并且分別對應問個不同的屬組。 即:數(shù)字a 對應 第2到4位,表示擁有者的權限。數(shù)字b 對應 第5到7位,表示同組用戶的權限。數(shù)字c 對應第8到10位,表示其他組的權限。rwx 對應4,2,1. 那么只讀的權限用4表示r-,讀寫用6(4+2)表示rw-,寫加執(zhí)行用7(4+2+1)表示rwx。 只讀加執(zhí)行用5(4+1)表示r-x。示例:chmod 755 file1chmod 777 file1 chmoda=rwxfilech
35、mod771file chmodug=rwx,o=xfile chown指令名稱 : chown 使用權限 : root 使用方式 : chown -cfhvR -help -version user:group file. 說明 : Linux/Unix 是多人多工作業(yè)系統(tǒng),所有的檔案皆有擁有者。利用 chown 可以將檔案的擁有者加以改變。一般來說,這個指令只有是由系統(tǒng)管理者(root)所使用,一般使用者沒有權限可以改變別人的檔案擁有者,也沒有權限可以自己的檔案擁有者改設為別人。只有系統(tǒng)管理者(root)才有這樣的權限。 user : 新的檔案擁有者的使用者 IDgroup : 新的檔案擁
36、有者的使用者群體(group)-c : 若該檔案擁有者確實已經(jīng)更改,才顯示其更改動作-f : 若該檔案擁有者無法被更改也不要顯示錯誤訊息-h : 只對于連結(link)進行變更,而非該 link 真正指向的檔案-v : 顯示擁有者變更的詳細資料-R : 對目前目錄下的所有檔案與子目錄進行相同的擁有者變更(即以遞回的方式逐個變更)-help : 顯示輔助說明-version : 顯示版本 范例 : 將檔案 file1.txt 的擁有者設為 users 群體的使用者 jessie : chown jessie:users file1.txt 將目前目錄下的所有檔案與子目錄的擁有者皆設為 users
37、 群體的使用者 lamport : chown -R lamport:users * tarx # tar -cxtzjvfpPN 文件與目錄 參數(shù):-c :建立一個壓縮文件的參數(shù)指令(create 的意思);-x :解開一個壓縮文件的參數(shù)指令!-t :查看 tarfile 里面的文件!特別注意,在參數(shù)的下達中, c/x/t 僅能存在一個!不可同時存在!因為不可能同時壓縮與解壓縮。-z :是否同時具有 gzip 的屬性?亦即是否需要用 gzip 壓縮?-j :是否同時具有 bzip2 的屬性?亦即是否需要用 bzip2 壓縮?-v :壓縮的過程中顯示文件!這個常用,但不建議用在背景執(zhí)行過程!-
38、f :使用檔名,請留意,在 f 之后要立即接檔名喔!不要再加參數(shù)!例如使用 tar -zcvfP tfile sfile就是錯誤的寫法,要寫成 tar -zcvPf tfile sfile才對喔!-p :使用原文件的原來屬性(屬性不會依據(jù)使用者而變)-P :可以使用絕對路徑來壓縮!-N :比后面接的日期(yyyy/mm/dd)還要新的才會被打包進新建的文件中!-exclude FILE:在壓縮的過程中,不要將 FILE 打包!范例:范例一:將整個 /etc 目錄下的文件全部打包成為 /tmp/etc.tarrootlinux # tar -cvf /tmp/etc.tar /etc =僅打包,
39、不壓縮!rootlinux # tar -zcvf /tmp/etc.tar.gz /etc =打包后,以 gzip 壓縮rootlinux # tar -jcvf /tmp/etc.tar.bz2 /etc =打包后,以 bzip2 壓縮# 特別注意,在參數(shù) f 之后的文件檔名是自己取的,我們習慣上都用 .tar 來作為辨識。# 如果加 z 參數(shù),則以 .tar.gz 或 .tgz 來代表 gzip 壓縮過的 tar file # 如果加 j 參數(shù),則以 .tar.bz2 來作為附檔名啊# 上述指令在執(zhí)行的時候,會顯示一個警告訊息:# tar: Removing leading / from
40、 member names那是關於絕對路徑的特殊設定。 范例二:查閱上述 /tmp/etc.tar.gz 文件內(nèi)有哪些文件?rootlinux # tar -ztvf /tmp/etc.tar.gz# 由於我們使用 gzip 壓縮,所以要查閱該 tar file 內(nèi)的文件時,# 就得要加上 z 這個參數(shù)了!這很重要的!范例三:將 /tmp/etc.tar.gz 文件解壓縮在 /usr/local/src 底下rootlinux # cd /usr/local/srcrootlinux src# tar -zxvf /tmp/etc.tar.gz# 在預設的情況下,我們可以將壓縮檔在任何地方解開
41、的!這個范例來說,# 我先將工作目錄變換到 /usr/local/src 底下,并且解開 /tmp/etc.tar.gz ,# 則解開的目錄會在 /usr/local/src/etc 呢!另外,如果您進入 /usr/local/src/etc# 則會發(fā)現(xiàn),該目錄下的文件屬性與 /etc/ 可能會有所不同喔!范例四:在 /tmp 底下,我只想要將 /tmp/etc.tar.gz 內(nèi)的 etc/passwd 解開而已rootlinux # cd /tmprootlinux tmp# tar -zxvf /tmp/etc.tar.gz etc/passwd# 我可以透過 tar -ztvf 來查閱
42、tarfile 內(nèi)的文件名稱,如果單只要一個文件,# 就可以透過這個方式來下達!注意到! etc.tar.gz 內(nèi)的根目錄 / 是被拿掉了!范例五:將 /etc/ 內(nèi)的所有文件備份下來,并且保存其權限!rootlinux # tar -zxvpf /tmp/etc.tar.gz /etc# 這個 -p 的屬性是很重要的,尤其是當您要保留原本文件的屬性時!范例六:在 /home 當中,比 2005/06/01 新的文件才備份rootlinux # tar -N 2005/06/01 -zcvf home.tar.gz /home范例七:我要備份 /home, /etc ,但不要 /home/dm
43、tsairootlinux # tar -exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc范例八:將 /etc/ 打包后直接解開在 /tmp 底下,而不產(chǎn)生文件!rootlinux # cd /tmprootlinux tmp# tar -cvf - /etc | tar -xvf -# 這個動作有點像是 cp -r /etc /tmp 啦依舊是有其有用途的!# 要注意的地方在於輸出檔變成 - 而輸入檔也變成 - ,又有一個 | 存在# 這分別代表 standard output, standard input 與管線命令啦!# 這部分
44、我們會在 Bash shell 時,再次提到這個指令跟大家再解釋啰!Find搞linux好久了,這幾個命令總是用的不那么順,每次都翻著看,為加強記憶,特此寫到blogfind命令用法:find使用說明:將檔案系統(tǒng)內(nèi)符合 expression 的檔案列出來。你可以指要檔案的名稱,類別,時間,大小,權限等不同資訊的組合,只有完全相符的才會被列出來。find 根據(jù)下列規(guī)則判斷 path 和 expression,在命令列上第一個 - ( ) , ! 之前的部份為 path,之后的是 expression。如果 path 是空字串則使用目前路徑,如果 expression 是空字串則使用 -print
45、 為預設 expressionexpression 中可使用的選項有二三十個之多,在此只介紹最常用的部份。-mount, -xdev:只檢查和指定目錄在同一個檔案系統(tǒng)下的檔案,避免列出其它檔案系統(tǒng)中的檔案-amin n:在過去 n 分鐘內(nèi)被讀取過-anewer file:比檔案 file 更晚被讀取過的檔案-atime n:在過去 n 天過讀取過的檔案-cmin n:在過去 n 分鐘內(nèi)被修改過-cnewer file :比檔案 file 更新的檔案-ctime n:在過去 n 天過修改過的檔案-empty:空的檔案-gid n or -group name:gid 是 n 或是 group 名
46、稱是 name-ipath p, -path p:路徑名稱符合 p 的檔案,ipath 會忽略大小寫-name name, -iname name:檔案名稱符合 name 的檔案。iname 會忽略大小寫-size n:檔案大小 是 n 單位,b 代表 512 位元組的區(qū)塊,c 表示字元數(shù),k 表示 kilo bytes,w 是二個位元組。-type c:檔案類型是 c 的檔案。d: 目錄c: 字型裝置檔案b: 區(qū)塊裝置檔案p: 具名貯列f: 一般檔案l: 符號連結s: socket-pid n:process id 是 n 的檔案你可以使用 ( ) 將運算式分隔,并使用下列運算。exp1 -
47、and exp2! expr-not exprexp1 -or exp2exp1, exp2范例:將目前目錄及其子目錄下所有延伸檔名是 c 的檔案列出來。# find . -name *.c將目前目錄其其下子目錄中所有一般檔案列出# find . -ftype f將目前目錄及其子目錄下所有最近 20 分鐘內(nèi)更新過的檔案列出# find . -ctime -20 find /var -size +10000將目錄下大于1M的顯示出來再例如find -size +100k -size -1024K此命令返回文件尺寸大于100K,小于1M的文件的文件名。find命令的使用Usage find pat
48、h_name. expressionpath_name 用于指定要搜索的目錄,可以是空格分割的多個目錄路徑的列表,如果省略此參數(shù),默認使用當前目錄expression用于指定搜索的方式,注意:find在執(zhí)行時,一般會將第一個“-”字符之后的命令行參數(shù)都看作expression,把之前的參數(shù)都看作為要搜索的路徑rootcentos5 # find /var -name maillog/var/log/maillog例如查mailllog常用的action1 -print 以完成的路徑名的形式將find的搜索結果顯示到標準輸出,以NEWLINE分隔各個文件名2 -ls 以ls -l 命令的格式將f
49、ind的搜索結果顯示到標準輸出 foxexample find /var/ -name maillog -ls3 -exec CMD : 把find的搜索結果作為shell程序CMD的文件名參數(shù),并執(zhí)行CMD程序 find /logs -mtime +5 -exec rm -rf; /刪除/logs目錄中更改時間在五日以前的文件4 -ok CMD; 同上,是一種更安全的模式 ,在執(zhí)行每個命令千,會提示用戶來確認是否執(zhí)行例如:find /root -name test -exec rm -fr ;要注意-exec后面有空格fr后面有空格 前有空格最后是分號另外,要注意的是,在使用時,經(jīng)常遇到 f
50、ind: missing argument to -exec這個意思并不是說沒有exec參數(shù),而是exec后面的參數(shù)不對。這時,應該檢查;之前有沒有空格之類。Grep1.作用Linux系統(tǒng)中grep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹 配的行打印出來。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用權限是所有用戶。2.格式grep options3.主要參數(shù)options主要參數(shù):c:只輸出匹配行的計數(shù)。I:不區(qū)分大 小寫(只適用于單字符)。h:查詢多文件時不顯示文件名。l:查詢多文件時只輸出包含匹配字符
51、的文件名。n:顯示匹配行及 行號。s:不顯示不存在或無匹配文本的錯誤信息。v:顯示不包含匹配文本的所有行。pattern正則表達式主要參數(shù): 忽略正則表達式中特殊字符的原有含義。:匹配正則表達式的開始行。$: 匹配正則表達式的結束行。:到匹配正則表達式的行結束。 :單個字符,如A即A符合要求 。 - :范圍,如A-Z,即A、B、C一直到Z都符合要求 。:所有的單個字符。* :有字符,長度可以為0。4.grep命令使用簡單實例$ grep test d*顯示所有以d開頭的文件中包含 test的行。$ grep test aa bb cc顯示在aa,bb,cc文件中匹配test的行。$ grep
52、a-z5 aa顯示所有包含每個字符串至少有5個連續(xù)小寫字符的字符串的行。$ grep w(es)t.*1 aa如果west被匹配,則es就被存儲到內(nèi)存中,并標記為1,然后搜索任意個字符(.*),這些字符后面緊跟著 另外一個es(1),找到就顯示該行。如果用egrep或grep -E,就不用”號進行轉(zhuǎn)義,直接寫成w(es)t.*1就可以了。5.grep命令使用復雜實例假設您正在/usr/src/Linux/Doc目錄下搜索帶字符 串magic的文件:$ grep magic /usr/src/Linux/Doc/*sysrq.txt:* How do I enable the magic Sys
53、RQ key?sysrq.txt:* How do I use the magic SysRQ key?其中文件sysrp.txt包含該字符串,討論的是 SysRQ 的功能。默認情況下,grep只搜索當前目錄。如果 此目錄下有許多子目錄,grep會以如下形式列出:grep: sound: Is a directory這可能會使grep 的輸出難于閱讀。這里有兩種解決的辦法:明確要求搜索子目錄:grep -r或忽略子目錄:grep -d skip如果有很多 輸出時,您可以通過管道將其轉(zhuǎn)到less上閱讀:$ grep magic /usr/src/Linux/Documentation/* | l
54、ess這樣,您就可以更方便地閱讀。有一點要注意,您必需提供一個文件過濾方式(搜索全部文件的話用 *)。如果您忘了,grep會一直等著,直到該程序被中斷。如果您遇到了這樣的情況,按 ,然后再試。下面還有一些有意思的命令行參數(shù):grep -i pattern files :不區(qū)分大小寫地搜索。默認情況區(qū)分大小寫,grep -l pattern files :只列出匹配的文件名,grep -L pattern files :列出不匹配的文件名,grep -w pattern files :只匹配整個單詞,而不是字符串的一部分(如匹配magic,而不是magical),grep -C number p
55、attern files :匹配的上下文分別顯示number行,grep pattern1 | pattern2 files :顯示匹配 pattern1 或 pattern2 的行,grep pattern1 files | grep pattern2 :顯示既匹配 pattern1 又匹配 pattern2 的行。grep -n pattern files 即可顯示行號信息grep -c pattern files 即可查找總行數(shù)這里還有些用于搜索的特殊符號: 分別標注單詞的開始與結尾。例如:grep man * 會匹配 Batman、manic、man等,grep man * 匹配man
56、ic和man,但不是Batman,grep 只匹配man,而不是Batman或manic等其他的字符串。:指匹配的字符串在行首,$:指匹配的字符串在行 尾,1、 參數(shù): -I :忽略大小寫 -c :打印匹配的行數(shù) -l :從多個文件中查找包含匹配項 -v :查找不包含匹配項的行 -n:打印包含匹配項的行和行標 2、RE(正則表達式) 忽略正則表達式中特殊字符的原有含義 匹配正則表達式的開始行 $ 匹配正則表達式的結束行 到匹配正則表達式的行結束 單個字符;如A 即A符合要求 - 范圍 ;如A-Z即A,B,C一直到Z都符合要求 . 所有的單個字符 * 所有字符,長度可以為0 3、舉例 # ps
57、-ef | grep in.telnetd root 19955 181 0 13:43:53 ? 0:00 in.telnetd # more size.txt size文件的內(nèi)容 b124230 b034325 a081016 m7187998 m7282064 a022021 a061048 m9324822 b103303 a013386 b044525 m8987131 B081016 M45678 B103303 BADc2345 # more size.txt | grep a-b 范圍 ;如A-Z即A,B,C一直到Z都符合要求 b124230 b034325 a081016 a
58、022021 a061048 b103303 a013386 b044525 # more size.txt | grep a-b* b124230 b034325 a081016 m7187998 m7282064 a022021 a061048 m9324822 b103303 a013386 b044525 m8987131 B081016 M45678 B103303 BADc2345 # more size.txt | grep b 單個字符;如A 即A符合要求 b124230 b034325 b103303 b044525 # more size.txt | grep bB b12
59、4230 b034325 b103303 b044525 B081016 B103303 BADc2345 # grep root /etc/group root:0:root bin:2:root,bin,daemon sys:3:root,bin,sys,adm adm:4:root,adm,daemon uucp:5:root,uucp mail:6:root tty:7:root,tty,adm lp:8:root,lp,adm nuucp:9:root,nuucp daemon:12:root,daemon # grep root /etc/group 匹配正則表達式的開始行 roo
60、t:0:root # grep uucp /etc/group uucp:5:root,uucp nuucp:9:root,nuucp # grep /tmp/sharetab.$ x$fstype != xnfs & echo $patht$rest$fstypet$optst$desc /tmp/sharetab.$ /usr/bin/touch -r /etc/dfs/sharetab /tmp/sharetab.$ /usr/bin/mv -f /tmp/sharetab.$ /etc/dfs/sharetab if -f /etc/dfs/dfstab & /usr/bin/egre
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 化工園區(qū)工業(yè)固廢填埋場項目實施方案(模板)
- 供水管網(wǎng)升級改造工程可行性研究報告(僅供參考)
- 初中生交通安全教育
- 唯美美術教育課件
- 行為規(guī)范教育主題班會
- 電子科技大學中山學院《新聞傳播學類專業(yè)導論》2023-2024學年第二學期期末試卷
- 天津天獅學院《獸醫(yī)病理解剖學》2023-2024學年第二學期期末試卷
- 南華大學船山學院《互換性與測量基礎》2023-2024學年第二學期期末試卷
- 清遠職業(yè)技術學院《主任級管理的藝術》2023-2024學年第二學期期末試卷
- 重慶城市科技學院《園林工程(園林水景工程)》2023-2024學年第二學期期末試卷
- 水循環(huán)課件完整版本
- 2024年小學生航空航天知識競賽題庫附答案 (共150題)
- 大學物理波動光學復習課件講義
- 教育系統(tǒng)后備干部考試題庫及答案
- DB36T 1899-2023 水運工程大臨建設指南
- 護理文獻分享匯報
- 機械制造行業(yè)質(zhì)量控制制度
- 國際交流項目意識形態(tài)工作方案
- 《冠心病》課件(完整版)
- 醫(yī)療風險免責協(xié)議書
- 1.6醫(yī)學影像科-重點專科-實施方案
評論
0/150
提交評論