Linux應用基礎教程(基于CentOS 7)課件 第02章 Linux操作基礎_第1頁
Linux應用基礎教程(基于CentOS 7)課件 第02章 Linux操作基礎_第2頁
Linux應用基礎教程(基于CentOS 7)課件 第02章 Linux操作基礎_第3頁
Linux應用基礎教程(基于CentOS 7)課件 第02章 Linux操作基礎_第4頁
Linux應用基礎教程(基于CentOS 7)課件 第02章 Linux操作基礎_第5頁
已閱讀5頁,還剩166頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章

Linux操作基礎本章內容要點Shell及其功能命令操作基礎Linux的文件和目錄使用Linux的相關幫助文件和目錄操作命令信息顯示命令正則表達式和文本文件操作命令Vim文本編輯器命令補全、命令別名、命令歷史 重定向、管道、命令替換、命令聚合Shell變量和Shell環(huán)境 2024年5月29日2CreativeCommonsLicense(BY-NC-SA)本章學習目標理解Shell功能和地位掌握命令格式、文件和通配符學會使用命令幫助掌握各種常用命令的使用學會使用正則表達式學會使用VIM文本編輯器學會使用命令補全、命令別名、命令歷史掌握重定向、管道、命令替換、命令組合掌握Shell變量的定義、作用域和使用學會配置用戶工作環(huán)境2024年5月29日3CreativeCommonsLicense(BY-NC-SA)Shell及其功能2024年5月29日4CreativeCommonsLicense(BY-NC-SA)ShellShell是系統(tǒng)的用戶界面,提供了用戶與內核進行交互操作的一種接口(命令解釋器)。它接收用戶輸入的命令并把它送入內核去執(zhí)行。起著協(xié)調用戶與系統(tǒng)的一致性和在用戶與系統(tǒng)之間進行交互的作用。

Shell在Linux系統(tǒng)上具有極其重要的地位2024年5月29日5CreativeCommonsLicense(BY-NC-SA)Shell的重要功能命令行解釋命令的多種執(zhí)行順序通配符(wild-cardcharacters)命令補全、別名機制、命令歷史I/O重定向(Input/outputredirection)管道(pipes)

命令替換(``或$())Shell編程語言(ShellScript

)2024年5月29日6CreativeCommonsLicense(BY-NC-SA)命令解釋過程Shell可以執(zhí)行內部命令應用程序shell腳本2024年5月29日7CreativeCommonsLicense(BY-NC-SA)Shell的主要版本Bash(BourneAgainShell)bash是大多數(shù)Linux系統(tǒng)的默認Shell。bash與bsh完全向后兼容,并且在bsh的基礎上增加和增強了很多特性。bash也包含了很多CShell和KornShell中的優(yōu)點。bash有很靈活和強大的編程接口,同時又有很友好的用戶界面Ksh(KornShell)KornShell(ksh)由DaveKorn所寫。它是UNIX系統(tǒng)上的標準Shell。在Linux環(huán)境下有一個專門為Linux系統(tǒng)編寫的KornShell的擴展版本,即PublicDomainKornShell(pdksh)。tcsh

(csh

的擴展)tcsh是CShell的擴展。tcsh與csh完全向后兼容,但它包含了更多的使用戶感覺方便的新特性,其最大的提高是在命令行編輯和歷史瀏覽方面2024年5月29日8CreativeCommonsLicense(BY-NC-SA)Linux的元字符在Shell中有一些具有特殊的意義字符,稱為Shell元字符(shellmetacharacters)。若不以特殊方式(使用轉義字符)指明,Shell并不會把它們當做普通文字符使用。2024年5月29日9字符含義字符含義‘強引用*、?、!通配符“弱引用<、>、>>重定向\轉義字符-選項標志$變量引用#注釋符;命令分離符空格、換行符命令分隔符CreativeCommonsLicense(BY-NC-SA)Linux命令格式2024年5月29日10CreativeCommonsLicense(BY-NC-SA)命令基本格式一般格式:cmd[options][arguments]說明:最簡單的Shell命令只有命令名,復雜的Shell命令可以有多個選項和參數(shù)。選項和參數(shù)都作為Shell命令執(zhí)行時的輸入,它們之間用空格分隔開。2024年5月29日11注:Linux區(qū)分大小寫!CreativeCommonsLicense(BY-NC-SA)Linux系統(tǒng)中

可執(zhí)行文件的分類內置命令:出于效率的考慮,將一些常用命令的解釋程序構造在Shell內部外置命令:存放在/bin、/sbin目錄下的命令實用程序:存放在/usr/bin、/usr/sbin、/usr/share、/usr/local/bin等目錄下的實用程序用戶程序:用戶程序經過編譯生成可執(zhí)行文件后,可作為Shell命令運行Shell腳本:由Shell語言編寫的批處理文件,可作為Shell命令運行2024年5月29日12CreativeCommonsLicense(BY-NC-SA)命令基本格式(續(xù))說明:單字符參數(shù)前使用一個減號(-)單詞參數(shù)前使用兩個減號(--)。多個單字符參數(shù)前可以只使用一個減號。操作對象(arguments)可以是文件也可以是目錄,有些命令必須使用多個操作對象,如cp命令必須指定源操作對象和目標操作對象。并非所有命令的格式都遵從以上規(guī)則,例如dd、find等2024年5月29日13命令在正常執(zhí)行結果后返回一個0值,如果命令出錯,則返回一個非零值(在shell中可用變量$?查看)。CreativeCommonsLicense(BY-NC-SA)命令基本格式舉例$ls$ls-lRa/home$catabcxyz$ls--help$su-$passwd$date$cal20112024年5月29日14CreativeCommonsLicense(BY-NC-SA)Linux常用命令2024年5月29日15cat查看文件內容more/less查看文件內容cd切換工作目錄touch改變文件的時間屬性chown改變文件屬權mv改名或移動文件chmod改變文件權限pwd顯示當前所在的目錄clear清除屏幕rm刪除文件或目錄cp拷貝文件find查找文件ln創(chuàng)建文件鏈接which尋找命令ls顯示目錄內容tar文件打包mkdir

rmdir創(chuàng)建/刪除目錄[g]zip/unzip7za文件壓縮和解壓CreativeCommonsLicense(BY-NC-SA)目錄和文件名的命名規(guī)則在Linux下可以使用長文件或目錄名可以長達255個字符可以給目錄和文件取任何名字,但必須遵循下列的規(guī)則:除了/之外,所有的字符都合法有些字符最好不用,如空格符、制表符、退格符和字符:?,@#$&()\|;‘’“”<>等。避免使用+、-或.來作為普通文件名的第一個字符大小寫敏感以“.”開頭的文件或目錄是隱含的

2024年5月29日16CreativeCommonsLicense(BY-NC-SA)通配符*:匹配任何字符和任何數(shù)目的字符?:匹配單一數(shù)目的任何字符[]:匹配[]之內的任意一個字符[!]:匹配除了[!]之外的任意一個字符,!表示非的意思2024年5月29日17“*”能匹配文件或目錄名中的“.”?!?”不能匹配首字符是“.”的文件或目錄名。CreativeCommonsLicense(BY-NC-SA)通配符使用舉例ls*.c列出當前目錄下的所有C語言源文件。ls/home/*/*.c列出/home目錄下所有子目錄中的所有C語言源文件。lsn*.conf列出當前目錄下的所有以字母n開始的conf文件。lstest?.dat列出當前目錄下的以test開始的,隨后一個字符是任意的.dat文件。ls[abc]*列出當前目錄下的首字符是a或b或c的所有文件。ls[!abc]*列出當前目錄下的首字符不是a或b或c的所有文件。ls[a-zA-Z]*列出當前目錄下的首字符是字母的所有文件2024年5月29日18CreativeCommonsLicense(BY-NC-SA)Linux下的文件與目錄2024年5月29日19CreativeCommonsLicense(BY-NC-SA)文件的類型普通文件(-)目錄(d)符號鏈接(l)字符設備文件(c)塊設備文件(b)套接字(s)命名管道(p)2024年5月29日20CreativeCommonsLicense(BY-NC-SA)普通文件普通文件僅僅就是字節(jié)序列,Linux并沒有對其內容規(guī)定任何的結構。普通文件可以是程序源代碼(c、c++、python、perl等)、可執(zhí)行文件(文件編輯器、數(shù)據(jù)庫系統(tǒng)、出版工具、繪圖工具等)、圖片、聲音、圖像等。Linux不會區(qū)別對待這些普通文件,只有處理這些文件的應用程序才會根據(jù)文件的內容賦予相應的含義。在Linux環(huán)境下,只要是可執(zhí)行的文件并具有可執(zhí)行屬性它就能執(zhí)行,不管其文件名后綴是什么。但是對一些數(shù)據(jù)文件一般也遵循一些文件名后綴規(guī)則。2024年5月29日21CreativeCommonsLicense(BY-NC-SA)目錄目錄文件是由一組目錄項組成,目錄項可以是對其他文件的指向也可以是其下的子目錄指向。一個文件的名稱是存儲在他的父目錄中的,而并非同文件內容本身存儲在一起。硬連接文件實際上就是在某目錄中創(chuàng)建目錄項,從而使不止一個目錄可以引用到同一個文件。這種鏈接關系由ln命令行來建立。硬鏈接并不是一種特殊類型的文件,只是因為在文件系統(tǒng)中允許不止一個目錄項指向同一個文件。2024年5月29日22CreativeCommonsLicense(BY-NC-SA)用戶主目錄用戶登錄后,將會進入一個系統(tǒng)指定的專屬目錄,即用戶的主目錄,該目錄名通常為用戶的登錄賬號。如用戶osmond的主目錄為:/home/osmond在創(chuàng)建用戶時,系統(tǒng)管理員會給每個用戶建立一個主目錄,通常在/home/目錄下。用戶對自己主目錄的文件擁有所有權,可以在自己的主目錄下進行相關操作。每個用戶名對應一個用戶ID號(一個數(shù)字);每個用戶都被分配到一個指定的組(group)中。默認情況下RHEL/CentOS在創(chuàng)建用戶的同時會創(chuàng)建一個和用戶同名的私有組。2024年5月29日23CreativeCommonsLicense(BY-NC-SA)符號鏈接符號鏈接又稱軟鏈接,是指將一個文件指向另外一個文件的文件名。這種符號鏈接的關系由ln-s命令行來建立。2024年5月29日24CreativeCommonsLicense(BY-NC-SA)硬鏈接和軟鏈接的比較硬鏈接鏈接文件和被鏈接文件必須位于同一個文件系統(tǒng)內不能建立指向目錄的硬鏈接軟鏈接鏈接文件和被鏈接文件可以位于不同文件系統(tǒng)可以建立指向目錄的軟鏈接2024年5月29日25CreativeCommonsLicense(BY-NC-SA)設備文件設備是指計算機中的外圍硬件裝置,即除了CPU和內存以外的所有設備。通常,設備中含有數(shù)據(jù)寄存器或數(shù)據(jù)緩存器、設備控制器,它們用于完成設備同CPU或內存的數(shù)據(jù)交換。在Linux下,為了屏蔽用戶對設備訪問的復雜性,采用了設備文件,即可以通過象訪問普通文件一樣的方式來對設備進行訪問讀寫。設備文件用來訪問硬件設備,包括硬盤、光驅、打印機等。每個硬件設備至少與一個設備文件相關聯(lián)。設備文件分為:字符設備(如:鍵盤)和塊設備(如:磁盤)。2024年5月29日26CreativeCommonsLicense(BY-NC-SA)Linux下設備的使用設備的使用方法用戶可以用設備名來使用設備用戶可以用訪問文件的方法來使用設備設備名以文件系統(tǒng)中的設備文件的形式存在所有的設備文件存放在/dev目錄下幾個特殊的設備/dev/null -空設備/dev/zero -零設備2024年5月29日27CreativeCommonsLicense(BY-NC-SA)套接字和命名管道套接字和命名管道是Linux環(huán)境下實現(xiàn)進程間通信(IPC)的機制。命名管道(FIFO)文件允許運行在同一臺計算機上的兩個進程之間進行通信。套接字(socket)允許運行在不同計算機上的進程之間相互通信。套接字和命名管道通常是在進程運行時創(chuàng)建或刪除的,一般無需系統(tǒng)管理員干預。2024年5月29日28CreativeCommonsLicense(BY-NC-SA)Linux的目錄結構Linux文件系統(tǒng)是一個目錄樹的結構,文件系統(tǒng)結構從一個根目錄開始,根目錄下可以有任意多個文件和子目錄,子目錄中又可以有任意多個文件和子目錄。Linux的這種文件系統(tǒng)結構使得一個目錄和它包含的文件/子目錄之間形成一種層次關系。2024年5月29日29/(根目錄)/bin/sbin/usr/etc/root/home/lib.................CreativeCommonsLicense(BY-NC-SA)Linux的目錄結構文件系統(tǒng)結構的起始位置,稱為根存放基本命令程序(任何用戶都可以調用)存放系統(tǒng)啟動時所讀取的文件,包括系統(tǒng)核心文件存放與系統(tǒng)設置和管理相關的文件,如用戶帳號、密碼等存放設備文件接口,如打印機、硬盤等外圍設備存放一些共享的函數(shù)庫一個空目錄,供管理員存放公共雜物存放用戶專屬目錄(用戶主目錄)存放系統(tǒng)核心和執(zhí)行程序之間的信息存放經常變動的文件,如日志文件、臨時文件、電子郵件等系統(tǒng)管理員(超級用戶)專用目錄此目錄包含許多子目錄,用來存放系統(tǒng)命令和程序等信息與/bin類似,存放用于系統(tǒng)引導和管理命令,通常供root使用。臨時目錄,供任何用戶存放臨時文件。文件和目錄操作命令2024年5月29日31CreativeCommonsLicense(BY-NC-SA)常用的目錄操作命令2024年5月29日CreativeCommonsLicense(BY-NC-SA)32命令功能ls顯示文件和目錄列表cd切換目錄pwd顯示當前工作目錄mkdir創(chuàng)建目錄rmdir刪除空目錄tree顯示目錄樹當前工作目錄用戶目前所處的目錄用戶登錄后進入的目錄通常是自己的主目錄可用pwd命令查看用戶的當前目錄可用cd命令來切換目錄一些特殊字符的特殊含義:“.”表示當前目錄“..”表示當前目錄的上一級目錄(父目錄)“-”表示用cd命令切換目錄前所在的目錄“~”表示用戶主目錄的絕對路徑名2024年5月29日CreativeCommonsLicense(BY-NC-SA)33路徑(path)路徑是指文件或目錄在文件系統(tǒng)中所處的位置絕對路徑以斜線(/)開頭描述到文件位置的完整說明任何時候你想指定文件名的時候都可以使用相對路徑不以斜線(/)開頭指定相對于你的當前工作目錄而言的位置可以被用作指定文件名的簡捷方式2024年5月29日CreativeCommonsLicense(BY-NC-SA)34ls命令功能:顯示文件或目錄信息格式:ls

[選項][目錄或是文件]

說明:對于目錄,該命令將列出其中的所有子目錄與文件。對于文件,ls將輸出其文件名以及所要求的其他信息。默認情況下,輸出條目按字母順序排序。當未給出目錄名或文件名時,就顯示當前目錄的信息。2024年5月29日CreativeCommonsLicense(BY-NC-SA)35ls命令選項選項說明-a列出目錄下的所有文件,包括以.開頭的隱含文件。-l列出文件的詳細信息,通常稱為“長格式”。-d輸入?yún)?shù)是目錄時,只顯示該目錄本身。-A顯示除“.”和“..”外的所有文件。-R遞歸地列出所有子目錄下的文件。-h以人類易讀的單位顯示文件大小。-S以文件大小排序輸出。-t以時間排序輸出。2024年5月29日CreativeCommonsLicense(BY-NC-SA)36ls命令舉例2024年5月29日CreativeCommonsLicense(BY-NC-SA)37ls 列表顯示當前目錄下的文件和目錄ls-a 列表顯示當前目錄下的文件和目錄(包括隱含文件和目錄)ls-l 以長格式列表顯示結果ls-R 遞歸地顯示當前目錄及其子目錄下的文件和目錄ls-dl/usr/share/僅顯示/usr/share/目錄本身,而非/usr/share/目錄中的內容ls-lt按最后修改時間順序,以長格式列出當前目錄下的文件mkdir和tree命令舉例mkdirmkdir/home/lrj/mybin #創(chuàng)建一個空目錄mkdir-pmydoc/FAQ #創(chuàng)建一個空目錄樹mkdir-p/srv/www/{abc,bcd}/htdocs #創(chuàng)建/srv/www/abc/htdocs和/srv/www/bcd/htdocs目錄treetree

/srv/www#顯示/srv/www目錄樹tree-L3/srv#顯示/srv/的3級目錄樹2024年5月29日CreativeCommonsLicense(BY-NC-SA)38pwd和cd命令舉例$pwd$cd$cd/some/dir/$cd~$cd..$cd../..$cd-2024年5月29日CreativeCommonsLicense(BY-NC-SA)39常用的文件操作命令命令功能touch生成一個空文件或更改文件的時間cp復制文件或目錄mv移動文件或目錄、文件或目錄改名rm刪除文件或目錄ln建立鏈接文件find查找文件file/stat查看文件類型或文件屬性信息2024年5月29日CreativeCommonsLicense(BY-NC-SA)40touch命令功能:生成新的空文件或更改現(xiàn)有文件的時間若文件不存在,系統(tǒng)會建立一個文件默認情況下將文件的時間記錄改為當前時間格式:touch[參數(shù)]<文件>…參數(shù)-a:只更改訪問時間。-m:只更改修改時間。-t<STAMP>:使用[[CC]YY]MMDDhhmm[.ss]格式的時間而非當前時間。-r<參考文件或目錄>:使用指定文件的時間屬性而非當前時間。2024年5月29日CreativeCommonsLicense(BY-NC-SA)41touch命令舉例$touchnewfile$touchfile$touch-afile$touch-mfile$touch-t200701311200file$touch-roldfilenewfile2024年5月29日CreativeCommonsLicense(BY-NC-SA)42文件的時間戳GNU/Linux文件的3種類型的時間戳:mtime:最后修改時間(ls-lt)ctime:狀態(tài)改變時間(ls-lc)atime:最后訪問時間(ls-lu)說明ctime并非文件創(chuàng)建時間。覆蓋一個文件會改變mtime、ctime和atime三類時間。改變文件的訪問權限或擁有者會改變文件的ctime和atime。讀文件會改變文件的atime。2024年5月29日CreativeCommonsLicense(BY-NC-SA)43判斷文件類型文件可以包含許多類型的數(shù)據(jù)在打開前檢查文件的類型來決定要使用的恰當命令或程序命令file[選項]<文件名>…stat[選項]<文件名>…舉例file/etc/passwd/bin/bash/dev/consolestat/etc/passwd2024年5月29日CreativeCommonsLicense(BY-NC-SA)44cp命令功能:復制文件或目錄。格式:cp[參數(shù)]<源><目標>說明若復制的目標文件已存在,則被覆蓋??梢詫⒍鄠€源文件復制到目標目錄中??梢詫⒃茨夸洀椭茷橹付ǖ哪繕四夸洠繕四夸洸淮嬖冢???梢詫⒃茨夸洀椭频街付ǖ哪繕四夸浿小?024年5月29日CreativeCommonsLicense(BY-NC-SA)45cp命令的常用選項參數(shù)說明-a等價于–dpR-R,-r遞歸地復制目錄及目錄內的所有項目-p在復制文件過程中保留文件屬性,包括屬主、組、權限與時間戳-d當復制符號鏈接的源文件時,目標文件也將創(chuàng)建符號鏈接且指向源文件所鏈接的原始文件-f強制復制,不管目標是否存在-i交互式復制,覆蓋文件前需要確認-u只有當源文件的狀態(tài)改變時間(ctime)比目標文件更新時或目標尚不存在時才進行復制2024年5月29日CreativeCommonsLicense(BY-NC-SA)46cp命令舉例cpfile1file2將當前目錄下的file1復制為file2cpsome/dir/file1someother/dir/將某目錄下的文件復制到另一個目錄cp/bin/cpio~/bin復制文件/bin/cpio到~/bin目錄cpabcbcdmydoc將兩個指定的文件復制到mydoc目錄下cpsome/dir/f*someother/dir/將某目錄下的以f開頭的文件復制到另一個目錄cp/bin/?sh.使用“?”通配符復制多個文件到當前目錄下cpfile{1,2,3}someother/dir/將當前目錄下的file1、file2、file3復制到另外一個目錄cp/etc/httpd/conf/httpd.conf{,.orig}將/etc/httpd/conf/目錄下的httpd.conf拷貝成httpd.conf.origcp-rsome/dir/someother/dir/將某目錄下的所有文件(包括子目錄)復制到另一個目錄2024年5月29日CreativeCommonsLicense(BY-NC-SA)47ln命令功能:創(chuàng)建鏈接文件。格式:ln[參數(shù)]<被鏈接的文件><鏈接文件名>參數(shù):-s:創(chuàng)建符號鏈接,而非硬鏈接。-f:強行創(chuàng)建鏈接,不論其是否存在。-i:覆蓋原有文件之前先詢問用戶。舉例:

$lnsomefilehardlinkfile$ln-ssomefilesoftlinkfile$ln-ssomedirsoftlinkfile2024年5月29日CreativeCommonsLicense(BY-NC-SA)48mv和rm命令舉例mvmvfilefile.bakmvfile1mydata/mv-ifile1mydata/file2mvdatadir1/home/zhang/datarmrmashrm.*rm-ffile{1,3,5}rm-rmyusr/rm-rfmyusr/2024年5月29日CreativeCommonsLicense(BY-NC-SA)49find命令功能:在文件系統(tǒng)中查找匹配的文件格式find[<起始目錄>...][<選項表達式>][<條件匹配表達式>][<動作表達式>]說明<起始目錄>:對每個指定的<起始目錄>遞歸搜索目錄樹省略<起始目錄>時表示當前目錄<選項表達式>:控制find命令的行為<條件匹配表達式>:根據(jù)匹配條件查找文件<動作表達式>:指定對查找結果的操作,默認為顯示在標準輸出(-print)不帶任何參數(shù)的find命令將在屏幕上遞歸顯示當前目錄下的文件列表。2024年5月29日CreativeCommonsLicense(BY-NC-SA)50find命令——選項表達式選項說明-L如果遇到符號鏈接文件,就跟蹤鏈接所指的文件-regextypeTYPE指定-regex和-iregex使用的正則表達式類型,默認為emacs-depth/-d查找目錄自身之前先處理目錄中的文件(即深度優(yōu)先)-mount/-xdev查找文件時不跨越文件系統(tǒng)-maxdepthLEVELS設置最大的查找深度--help顯示find命令幫助信息--version顯示find的版本2024年5月29日CreativeCommonsLicense(BY-NC-SA)51find命令舉例(1)遞歸顯示當前目錄的文件列表$find遞歸顯示/目錄的文件列表$find/遞歸顯示/目錄的文件列表(僅限于3層目錄)$find/-maxdepth3遞歸顯示/目錄的文件列表(僅限于/文件系統(tǒng))$find/-xdev遞歸顯示/home、/www、/srv目錄的文件列表$find/home/www/srv2024年5月29日CreativeCommonsLicense(BY-NC-SA)52find命令

——條件表達式(1)文件名條件說明-namePATTERN匹配文件名-inamePATTERN匹配文件名(忽略大小寫)-lnamePATTERN匹配符號鏈接文件名-ilnamePATTERN匹配符號鏈接文件名(忽略大小寫)-wholenamePATTERN匹配文件的完整路徑(不把‘/’和‘.’作為特殊字符)-iwholenamePATTERN匹配文件的完整路徑(忽略大小寫)2024年5月29日CreativeCommonsLicense(BY-NC-SA)53PATTERN使用Shell的匹配模式可以使用Shell的通配符(*、?[])要用“”或‘’括起來find命令舉例(2)$find-namemyfile$find-maxdepth2-namesymfony$find-name'd*'$find-name'???'$find-name'ch[0-2][0-9].txt*'$find-iname'[a-z]*'$find~-name"*.txt"$find.-name"[A-Z]*"$find/etc-name"host*"2024年5月29日CreativeCommonsLicense(BY-NC-SA)54find命令

——條件表達式(2)文件名續(xù)2024年5月29日CreativeCommonsLicense(BY-NC-SA)55條件說明-regexREPATTERN以正則表達式匹配文件名-iregexREPATTERN以正則表達式匹配文件名(忽略大小寫)REPATTERN使用正則表達式匹配模式使用-regextypeTYPE指定的正則表達式類型默認為emacs類型find命令舉例(3)$find~-regex'.*'$find~/book-regex'.*ch0.*'$find~/book-regex'.*ch[0-9]+'$find~/book-iregex'.*ch[0-9]+\.txt'2024年5月29日CreativeCommonsLicense(BY-NC-SA)56find命令

——條件表達式(3)時間屬性條件說明-aminN查找N分鐘以前被訪問過的所有文件-atimeN查找N天以前被訪問過的所有文件-cminN查找N分鐘以前文件狀態(tài)被修改過的所有文件(比如權限修改)-ctimeN查找N天以前文件狀態(tài)被修改過的所有文件(比如權限修改)-mminN查找N分鐘以前文件內容被修改過的所有文件-mtimeN查找N天以前文件內容被修改過的所有文件-usedN查找被改動過之后,在N天內被存取過的所有文件2024年5月29日CreativeCommonsLicense(BY-NC-SA)57注:以上選項中的N可以有三種輸入方式:N,+N,-N

20表示等于20

+20表示大于20(21,22,23等)

-20表示小于20(19,18,17等)find命令舉例(4)在/home下查找最近2天之內改動過的文件$find/home-mtime-2在/home下查找最近2天之內被訪問過的文件$find/home-atime-2在/home下查找60分鐘之前改動過的文件$find/home-mmin+60在/home下查找最近5分鐘之內修改過的文件$find/home-mmin-5在/home下查找30分鐘之前被訪問過的文件$find/home-amin+30在/home下查找最近在2日內被改動之后被訪問過的文件$find/home-used-22024年5月29日CreativeCommonsLicense(BY-NC-SA)58find命令

——條件表達式(4)時間屬性續(xù)2024年5月29日CreativeCommonsLicense(BY-NC-SA)59條件說明-newerFILE查找所有比FILE的內容修改時間新的文件-cnewerFILE查找所有比FILE的狀態(tài)修改時間新的文件(比如權限修改)-anewerFILE查找所有比FILE的訪問時間新的文件FILE為要比對的樣板文件或目錄find命令舉例(5)在/home下查找更新時間比tmp.txt新的文件或目錄$find/home-newertmp.txt在/home下查找存取時間比tmp.txt新的文件或目錄$find/home-anewertmp.txt2024年5月29日CreativeCommonsLicense(BY-NC-SA)60find命令

——條件表達式(5)用戶和組條件說明-uidN用戶ID為N的所有文件-gidN組ID為N的所有文件-userUSERNAME用戶名為USERNAME的所有文件-groupGROUPNAME組名為GROUPNAME的所有文件-nouser文件屬于不在/etc/passwd文件中的用戶-nogroup文件屬于不在/etc/group文件中的組2024年5月29日CreativeCommonsLicense(BY-NC-SA)61N可以使用

N,+N,-Nfind命令舉例(6)查找在系統(tǒng)中已作廢用戶(在/etc/passwd中無記錄)的文件$find/-nouser查找在系統(tǒng)中已作廢組(在/etc/group中無記錄)的文件$find/-nogroup查找屬于osmond用戶的文件$find/-userosmond查找屬于students組的文件$find/-groupstudents查找UID為502的所有文件$find/-uid502查找UID大于600的所有文件$find/-uid+600查找GID小于60的所有文件$find/-gid-602024年5月29日CreativeCommonsLicense(BY-NC-SA)62find命令

——條件表達式(6)文件權限條件說明-permMODE精確匹配權限模式為MODE的文件-perm-MODE匹配權限模式至少為MODE的文件(用戶、組和其他人這三種權限必須都匹配)-perm/MODE或-perm+MODE匹配權限模式至少為MODE的文件(用戶、組和其他人這三種權限中有一種匹配即可)2024年5月29日CreativeCommonsLicense(BY-NC-SA)63MODE與chown命令的書寫方式一致,既可以使用字符模式也可以使用八進制的數(shù)值模式,通常使用八進制的數(shù)值模式find命令舉例(7)在/home目錄下查找權限為700的所有文件或目錄$find/home-perm700在/home目錄下查找權限至少為740的所有文件或目錄$find/home-perm-740在~/bin目錄下查找權限至少為111的所有文件或目錄(或者屬主可執(zhí)行,或者組可執(zhí)行,或者其他人可執(zhí)行)$find~/bin-perm/1112024年5月29日CreativeCommonsLicense(BY-NC-SA)64find命令

——條件表達式(7)類型和大小條件說明-typeTYPE查找類型為TYPE的文件,可用的類型:b-塊設備文件;c-字符設備文件;d-目錄文件;p-命名管道;f-普通文件;l-符號鏈接;s-socket文件-linksN查找有N個鏈接的文件-inumN查找文件inode為N的文件-samefileNAME查找與NAME文件具有相同inode的文件-sizeN[bcwkMG]查找文件大小為N的文件,單位可以為:b-512字節(jié)的塊(省略單位的默認值);c-字節(jié);w-雙字節(jié);k-Kilobytes;M-Megabytes;G-Gigabytes-empty查找空文件(大小為0)2024年5月29日CreativeCommonsLicense(BY-NC-SA)65N可以使用:

N,+N,-Nfind命令舉例(8)在當前目錄下查找目錄$find.-typed在/home目錄下查找硬連接數(shù)大于2的文件$find/home-links+2在當前目錄下查找長度大于10kB的文件$find.-size+10k在/tmp目錄下查找長度等于1GB的文件$find/tmp-size1G在當前目錄下查找長度小于10MB的文件$find.-size-10M在/var/log目錄下查找所有的空文件或目錄$find/var/log-empty2024年5月29日CreativeCommonsLicense(BY-NC-SA)66find命令——

組合條件表達式可以使用邏輯運算符與、或、非組成的復合條件,并可以用()改變默認的操作符優(yōu)先級。若以空格作為各個表達式的間隔符,則各個表示式之間是與關系。

2024年5月29日CreativeCommonsLicense(BY-NC-SA)67(EXPR)改變操作符優(yōu)先次序,一些UNIX版的find命令要使用\(EXPR\)形式!EXPR表示對表達式取反EXPR1EXPR2與邏輯,若EXPR1為假,將不再評估EXPR2EXPR1-aEXPR2與EXPR1EXPR2功能一致EXPR1-oEXPR2邏輯或,若EXPR1為真,將不再評估EXPR2EXPR1,EXPR2若EXPR1為假,繼續(xù)評估EXPR2find命令舉例(9)查找/tmp目錄下21天之前訪問過的大于10G的文件$find/tmp-size+10M-a-atime+21查找/home目錄下屬主為jjheng或osmond的大于10M的文件$find/home\(-userjjheng-o-userosmond\)-size+10M查找/tmp目錄下的屬主不是osmond的文件$find/tmp!-userosmond在/mnt下查找*.txt且文件系統(tǒng)類型不為vfat的文件$find/mnt-name'*.txt'!-fstypevfat在/tmp下查找名為l開頭且類型為符號鏈接的文件$find/tmp-name'l*'-typel找出/var/log目錄下所有的5天前修改過的.log文件$find/var/log-name'*.log'-mtime+5查找所有比FILE1的內容修改時間新的且比FILE2舊的文件$find-newerFILE1!-newerFILE22024年5月29日CreativeCommonsLicense(BY-NC-SA)68find命令——動作表達式-print在標準輸出上列出查找結果(每行一個文件)-ls 使用‘ls-dils’在標準輸出上列出查找結果-prune忽略對某個目錄的查找-execCOMMAND{}\;對符合查找條件的文件執(zhí)行Linux命令-okCOMMAND{}\;對符合查找條件的文件執(zhí)行Linux命令;與-exec不同的是,它會詢問用戶是否需要執(zhí)行2024年5月29日CreativeCommonsLicense(BY-NC-SA)69

{}

兩個大括號之間不能有空格,表示查找到的對象

\;表示命令結束,反斜杠與前面的大括號之間必須要留空格find命令舉例(10)查找并列出當前目錄下不安全的文件(世界可讀寫執(zhí)行)$find.-perm-007-ls查找logs目錄下的所有的.log文件并查看它的詳細信息$findlogs-name"*.log"-typef-execls-l{}\;查找當天修改過的普通文件$find.-typef-mtime-1-execls-l{}\;查找當前目錄下的.php文件、并用grep過濾出包含include的行$find.-name"*.php"-execgrep"include"{}\;-print2024年5月29日CreativeCommonsLicense(BY-NC-SA)70find命令舉例(10)續(xù)查找并刪除當前目錄及其子目錄下所有擴展名為.tmp的文件$find.-name'*.tmp'-execrm{}\;在logs目錄中查找7天之內未修改過的文件并在刪除前詢問$findlogs-typef-mtime+7-exec-okrm{}\;從當前目錄下查找所有以.repo為后綴的文件,并為其改名(添加.bak后綴)$find.-name'*.repo'-typef-execmv{}{}.bak\;查詢并刪除一周以來從未訪問過的以.o結尾,或名為a.out且不存在于vfat文件系統(tǒng)中的所有文件$find/(-namea.out-o-name‘*.o’)-atime+7!-fstypevfat-execrm{}\;2024年5月29日CreativeCommonsLicense(BY-NC-SA)71find命令舉例(10)續(xù)2顯示當前目錄下除book目錄之外的所有文件$find.-namebook-prune-o-print查找當前目錄下(除了book目錄)之外的所有.sh文件$find.-namebook-prune-o-name'*.sh'-print顯示當前目錄下(除了book/server目錄)之外的所有文件$find.-path./book/server-prune-o-print查找當前目錄下(除了book/server目錄)之外的所有.sh文件$find.-path./book/server-prune-o-name'*.sh'-print顯示當前目錄下除book/server和book/server-utf8目錄的所有文件$find.-path'./book/server*'-prune-o-print查找當前目錄下(除了book/server和book/server-utf8目錄)的所有.sh文件$find.-path'./book/server*'-prune-o-name'*.sh'-print查找當前目錄下(除了book/server和book/basic目錄)的所有.sh文件$find.\(-path./book/server-o-path./book/basic\)-prune-o-name'*.sh'-print2024年5月29日CreativeCommonsLicense(BY-NC-SA)72find命令舉例(11)下面find命令的書寫形式均等價$find-name\*.sh-execcp{}/tmp\;$find-name'*.sh'-execcp{}/tmp';'$find-name"*.sh"-execcp{}/tmp";"$find-name\*.sh-execcp\{\}/tmp\;$find-name'*.sh'-execcp'{}'/tmp';'$find-name“*.sh”-execcp“{}”/tmp";”2024年5月29日CreativeCommonsLicense(BY-NC-SA)73文件打包和壓縮命令2024年5月29日74CreativeCommonsLicense(BY-NC-SA)常用的文件打包和壓縮命令命令功能xz使用LZMA算法的高性能壓縮/解壓工具gzip流行的GNUgzip

數(shù)據(jù)壓縮/解壓程序bzip2免費的,無專利的高性能數(shù)據(jù)壓縮工具zip/unzip與WinZIP兼容的壓縮/解壓工具rar與WinRAR兼容的壓縮/解壓工具7za使用LZMA算法的高性能壓縮/解壓工具tar文件打包、歸檔工具2024年5月29日CreativeCommonsLicense(BY-NC-SA)75打包和壓縮文件的文件后綴文件后綴說明.bz2用bzip2壓縮的文件.gz用gzip

壓縮的文件.xz用xz

壓縮的文件.tar用tar打包的文件,也稱tar文件.tbz

tar打包時用bzip2壓縮的文件.tgz

tar打包時用gzip

壓縮的文件.zip用zip/winzip

壓縮的文件.rar用rar

壓縮的文件.7z用7za壓縮的文件2024年5月29日CreativeCommonsLicense(BY-NC-SA)76gzipLinux下常用的壓縮和解壓縮命令。由官方倉庫的gzip軟件包提供。壓縮后gzip會在每個文件的后面添加擴展名.gz。壓縮后原文件會被自動刪除。在windows下可以用winzip或winrar或7-zip解壓。2024年5月29日CreativeCommonsLicense(BY-NC-SA)77gizp命令用法:gzip

[選項]文件列表選項:-d:解開壓縮文件。-f:強行壓縮文件,不理會文件名稱或硬鏈接是否存在以及該文件是否為符號鏈接。-l:列出壓縮文件的相關信息(壓縮文件的大??;未壓縮文件的大?。粔嚎s比;未壓縮文件的名字)。-n:壓縮文件時,不保存原來的文件名稱及時間戳(默認為保存,即-N)。-r:遞歸處理,將指定目錄下的所有文件及子目錄一同處理。-t:測試壓縮文件是否正確無誤。-v:顯示指令執(zhí)行過程。-<壓縮率>:壓縮率是一個介于1~9的數(shù)值,默認值為“6”,數(shù)值越大壓縮率越高。--best參數(shù)等價于-9;--fast參數(shù)等價于-1。2024年5月29日CreativeCommonsLicense(BY-NC-SA)78gizp命令舉例壓縮文件filename$gzipfilename壓縮文件file1和file2并顯示執(zhí)行過程$gzip-vfile1file2遞歸地高度壓縮mydir目錄下的所有文件(逐個文件進行)$gzip-9rmydir顯示當前目錄下所有壓縮過的gz文件信息$gzip-l*.gz解壓filename.gz文件$gzip-dfilename.gz$gunzipfilename.gz2024年5月29日CreativeCommonsLicense(BY-NC-SA)79bzip2Linux下常用的壓縮和解壓縮命令。由官方倉庫的bzip2軟件包提供。比gzip的壓縮比更高。壓縮后bzip2會在每個文件的后面添加擴展名.bz2。壓縮后原文件會被自動刪除。在windows下可以用winrar或7-zip解壓。bzip2命令的格式和參數(shù)與gzip類似。2024年5月29日CreativeCommonsLicense(BY-NC-SA)80bzip2命令舉例壓縮文件filename$bzip2filename高度壓縮文件file1和file2并顯示執(zhí)行過程$bzip2-9vfile1file2解壓filename.bz2文件$bzip2-dfilename.bz2$bunzip2filename.bz22024年5月29日CreativeCommonsLicense(BY-NC-SA)81zip/unzip與windows下的winzip兼容由官方倉庫的zip/unzip軟件包提供例如:壓縮文件file1為fiel1.zip,原文件保留$zipfile1.zipfile1將子目錄data1/下的所有文件壓縮到文件data1.zip$zip–rdata1.zipdata1解壓釋放壓縮文件data1.zip中的所有文件$unzipdata1.zip2024年5月29日CreativeCommonsLicense(BY-NC-SA)82rar和7zarar由RPMForge倉庫的rar軟件包提供7za/由EPEL倉庫的p7zip軟件包提供2024年5月29日CreativeCommonsLicense(BY-NC-SA)83tar基本功能:打包和解包格式:tar

[選項]文件或者目錄

常用選項-c:創(chuàng)建新的打包文件。-t:列出打包文件的內容,查看已經打包了哪些文件。-x:從打包文件中釋放文件。-f:指定打包文件名。-v:詳細列出tar處理的文件信息。-z:用gzip來壓縮/解壓縮打包文件。-j:用bzip2來壓縮/解壓縮打包文件。-J:用xz來壓縮/解壓縮打包文件。2024年5月29日CreativeCommonsLicense(BY-NC-SA)84tar命令舉例$tar-cvfmyball.tarsomedirname$tar-tfmyball.tar$tar-xvfmyball.tar$tar-zcvfmyball.tar.gzsomedirname$tar-ztfmyball.tar.gz$tar-zxvfmyball.tar.gz$tar-jcvfmyball.tar.bz2somedirname$tar-jtfmyball.tar.bz2$tar-jxvfmyball.tar.bz22024年5月29日CreativeCommonsLicense(BY-NC-SA)85注意:

“-f文件名|設備名”是一個整體,

所以

-cvfmyball.tar不能寫成:-cfvmyball.tar或

-fcvmyball.tar在BASH中提高工作效率2024年5月29日86CreativeCommonsLicense(BY-NC-SA)命令補全通常用戶在bash下輸入命令時不必把命令輸全,shell就能判斷出你所要輸入的命令。該功能的核心思想是:bash根據(jù)用戶已輸入的信息來查找以這些信息開頭的命令,從而試圖完成當前命令的輸入工作。用來執(zhí)行這項功能的鍵是Tab鍵,按下一次Tab鍵后,bash就試圖完成整個命令的輸入,如果不成功,可以再按一次Tab鍵,這時bash將列出所有能夠與當前輸入字符相匹配的命令列表。2024年5月29日CreativeCommonsLicense(BY-NC-SA)87命令補全舉例執(zhí)行system-config-network-tuisystem<Tab>-config-n<Tab>etwork-t<Tab>ui進入/etc/sysconfig/network-scripts/目錄cd/e<Tab>sys<Tab>c<Tab>ne<Tab>-<Tab>顯示$BASH變量的值echo$B<Tab>ASH2024年5月29日CreativeCommonsLicense(BY-NC-SA)88命令歷史bash可以記錄一定數(shù)目的以前在Shell中輸入的命令。記錄歷史命令的文本文件由環(huán)境變量

HISTFILE來指定,默認的記錄文件是.bash_history,這是一個隱含文件,位于用戶自己的目錄中??梢杂涗洑v史命令的數(shù)目由環(huán)境變量

HISTSIZE的值指定,默認為1000。查看命令歷史historyhistory30#查看最近30個歷史命令fc–l3050#列出命令歷史中第30到第50之間的命令2024年5月29日CreativeCommonsLicense(BY-NC-SA)89命令歷史(續(xù))鍵盤快捷鍵最簡單的方法是用上下方向鍵、<PgUp>和<PgDn>鍵來查看歷史命令如果需要的話,可以使用鍵盤上的編輯功能鍵對顯示在命令行上的命令進行編輯感嘆號的用法用!!執(zhí)行最近執(zhí)行過的命令用!<命令事件號>執(zhí)行已經運行過的命令用!<已經使用過的命令前面的部分>執(zhí)行已經運行過的以該字符串開頭的最近的命令2024年5月29日CreativeCommonsLicense(BY-NC-SA)90命令別名允許用戶按照自己喜歡的方式對命令進行自定義格式alias[alias_name='original_command']說明alias_name是用戶給命令取的別名。original_command是原來的命令和參數(shù)。若命令中包含空格或其他的特殊字符串必須使用引號。在定義別名時,等號兩邊不允許有空格。不帶任何參數(shù)的alias命令顯示當前已定義的所有別名??梢允褂胾naliasalias_name命令取消某個別名的定義。如果用戶需要別名的定義在每次登錄時均有效,應該將其寫入用戶自家目錄下的.bashrc文件中。2024年5月29日CreativeCommonsLicense(BY-NC-SA)91命令別名(續(xù))定義別名舉例aliaslh='ls-lh'aliasgrep='grep--color=auto'aliasgitcam='gitcommit-a-m'注意若系統(tǒng)中有一個命令,同時又定義了一個與之同名的別名(例如,系統(tǒng)中有grep命令,且又定義了grep的別名),則別名將優(yōu)先于系統(tǒng)中原有的命令的執(zhí)行。要想臨時使用系統(tǒng)中的命令而非別名,應該在命令前添加“\”字符,例如,$\grep命令將運行系統(tǒng)中原來的grep命令而不是grep別名,它不在輸出中顯示顏色。2024年5月29日CreativeCommonsLicense(BY-NC-SA)92正則表達式2024年5月29日93CreativeCommonsLicense(BY-NC-SA)正則表達式正則表達式是使用某種模式(pattern)去匹配(matching)一類字符串的一個公式。通常使用正則表達式進行查找、替換等操作。在適當?shù)那闆r下使用正則表達式可以極大地提高工作效率。有兩種風格的正則表達式:POSIX風格的正則表達式Perl風格的正則表達式(Perl-compatibleregularexpression)2024年5月29日CreativeCommonsLicense(BY-NC-SA)94支持RE的文本處理工具基本的正則表達式Basicregularexpression(BRE)grep按模式匹配文本ed一個原始的行編輯器sed一個流編輯器vim一個屏幕編輯器emacs一個屏幕編輯器擴展的正則表達式Extendedregularexpression(ERE)egrep按模式匹配文本awk進行簡單的文本處理2024年5月29日CreativeCommonsLicense(BY-NC-SA)95正則表達式的組成正則表達式由一些普通字符和一些元字符(metacharacters)組成。普通字符包括大小寫的字母、數(shù)字(即所有非元字符)元字符則具有特殊的含義2024年5月29日CreativeCommonsLicense(BY-NC-SA)96正則表達式的元字符2024年5月29日CreativeCommonsLicense(BY-NC-SA)97元字符含義類型舉例說明^匹配首字符BRE^x以字符x開始的字符串$匹配尾字符BREx$以x字符結尾的字符串.匹配任意一個字符BREl..elove,life,live…?匹配任意一個可選字符ERExy?x,xy*匹配零次或多次重復BRExy*x,xy,xyy,xyyy…+匹配一次或多次重復ERExy+xy,xyy,xyyy…[…]匹配任意一個字符BRE[xyz]x,y,z()對正則表達式分組ERE(xy)+xy,xyxy,xyxyxy,…正則表達式的元字符(續(xù))2024年5月29日CreativeCommonsLicense(BY-NC-SA)98元字符含義類型舉例說明\{n\}匹配n次BREgo\{2\}glegoogle\{n,\}匹配最少n次BREgo\{2,\}glegoogle,gooogle,goooogle…\{n,m\}匹配n到m次BREgo\{2,4\}glegoogle,gooogle,goooogle{n}匹配n次EREgo{2}glegoogle{n,}匹配最少n次EREgo{2,}glegoogle,gooogle,goooogle…{n,m}匹配n到m次EREgo{2,4}glegoogle,gooogle,goooogle|以或邏輯連接多個匹配EREgood|bon匹配good或bon\轉義字符BRE\**正則表達式的元字符(續(xù)2)POSIXRE用于方括號之內的元字符2024年5月29日CreativeCommonsLicense(BY-NC-SA)99元字符含義類型舉例說明^非(僅用于啟始字符)BRE[^xyz]匹配xyz之外的任意一個字符-用于指明字符范圍(不能是首字符和尾字符)BRE[a-zA-Z]匹配任意一個字母\轉義字符BRE[\.].正則表達式舉例12024年5月29日CreativeCommonsLicense(BY-NC-SA)100...x..x..x^d^thesh$^....$^$\.^.2\*\.past.*\.sh$t*\.sh$.a.*[]中都是單個字符匹配[0123456789][0-9][a-zA-Z0-9\-][^0-9][^abc]^[^1][Gg]reen[a-z][a-z]*^\.[0-9][0-9]正則表達式舉例2gr(a|e)y(^To:|^From:)(Seaman|Ramsay)[0-9]\{2\}-[0-9]\{2\}-[0-9]\{4\}(yellow|red)flower(s)?/etc/rc\.d/init\.d/httpd/usr/sbin/httpd(\.worker)?/var/www(/.*)?/logs(/.*)?/var/log/apache(2)?(/.*)?/var/www/[^/]*/cgi-bin(/.*)?/srv/([^/]*/)?www(/.*)?/usr/lib(64)?/httpd(/.*)?2024年5月29日CreativeCommonsLicense(BY-NC-SA)101文本文件操作命令2024年5月29日102CreativeCommonsLicense(BY-NC-SA)常用的文本文件提取命令2024年5月29日CreativeCommonsLicense(BY-NC-SA)103命令功能cat、tac滾屏顯示文本文件內容more、less分屏顯示文本文件內容head、tail顯示文本文件的前或后若干行(橫向截取文本文件內容)cut縱向切割出文本指定的部分(縱向截取文本文件內容)grep在文本文件中查找指定的字符串(按關鍵字提取文本文件中匹配的行)文本顯示命令舉例命令舉例cat/etc/passwd滾屏顯示文件/etc/passwd的內容cat-n/etc/passwd滾屏顯示文件/etc/passwd的內容,并顯示行號more/

溫馨提示

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

評論

0/150

提交評論