常用linux命令(1)

做java開發自然少不了對linux系統的瞭解,以下總結了工作以來接觸到的linux命令

1、find命令

find命令用於在目錄結構中搜索文件,並執行指定的操作。

(1)命令格式:
find pathname -options [-print -exec -ok ...]
(2)命令參數:
pathname: find命令所查找的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄。
 -print: find命令將匹配的文件輸出到標準輸出。
-exec: find命令對匹配的文件執行該參數所給出的shell命令。相應命令的形式爲'command' {  } ;,注意{   }和;之間的空格。
-ok: 和-exec的作用相同,只不過以一種更爲安全的模式來執行該參數所給出的shell命令,在執行每一個命令之前,都會給出提示,讓用戶來確定是否執行。

例:find . -name "*.log"(查找.log文件)

2、ls命令

ls命令是linux下最常用的命令。ls命令就是list的縮寫,缺省下ls用來打印出當前目錄的清單。如果ls指定其他目錄,那麼就會顯示指定目錄裏的文件及文件夾清單。 通過ls 命令不僅可以查看linux文件夾包含的文件,而且可以查看文件權限(包括目錄、文件夾、文件權限)或者查看目錄信息等。

(1)命令格式:
ls [選項] [目錄名]
(2)常用參數:
-a, –all 列出目錄下的所有文件,包括以 . 開頭的隱含文件
-C 每欄由上至下列出項目
-d, –directory 將目錄象文件一樣顯示,而不是顯示其下的文件。
-D, –dired 產生適合 Emacs 的 dired 模式使用的結果
-l 除了文件名之外,還將文件的權限、所有者、文件大小等信息詳細列出來。
-m 所有項目以逗號分隔,並填滿整行行寬
-o 類似 -l,顯示文件的除組信息外的詳細信息。
-s, –size 以塊大小爲單位列出所有文件的大小

例:ls -l  /home/spider

3、cd命令

cd 命令用於切換當前目錄至dirName,可以說是Linux中最基本的命令語句,其他的命令語句要進行操作,都是建立在使用 cd 命令上的。

命令格式:cd [目錄名]

4、pwd命令

Linux中用 pwd 命令來查看”當前工作目錄“的完整路徑。 簡單得說,當你在終端進行操作時,都會有一個當前工作目錄。在不太確定當前位置時,就會使用pwd來判定當前目錄在文件系統內的確切位置。
(1)命令格式:
pwd [選項]
(2)常用參數:
一般情況下不帶任何參數,如果目錄是鏈接時,格式:pwd -P  顯示出實際路徑,而非使用連接(link)路徑。
5、mkdir命令

mkdir命令用來創建指定的名稱的目錄,要求創建目錄的用戶在當前目錄中具有寫權限,並且指定的目錄名不能是當前目錄中已有的目錄。

(1)命令格式:
mkdir [選項] 目錄…
(2)命令功能:
通過 mkdir 命令可以實現在指定位置創建以 DirName(指定的文件名)命名的文件夾或目錄。要創建文件夾或目錄的用戶必須對所創建的文件夾的父文件夾具有寫權限。並且,所創建的文件夾(目錄)不能與其父目錄(即父文件夾)中的文件名重名,即同一個目錄下不能有同名的(區分大小寫)。
(3)命令參數:
-m, --mode=模式,設定權限模式
 -p, --parents  可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項後,系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄;
 -v, --verbose  每次創建新目錄都顯示信息
6、rm命令

rm是常用的命令,該命令的功能爲刪除一個目錄中的一個或多個文件或目錄,它也可以將某個目錄及其下的所有文件及子目錄均刪除。對於鏈接文件,只是刪除了鏈接,原有文件均保持不變。rm是一個危險的命令,使用的時候要特別當心,尤其對於新手,否則整個系統就會毀在這個命令(比如在/(根目錄)下執行rm * -rf)。所以,我們在執行rm之前最好先確認一下在哪個目錄,到底要刪除什麼東西,操作時保持高度清醒的頭腦。
(1)命令格式:
rm [選項] 文件…
(2)命令參數:
-f, --force    忽略不存在的文件,從不給出提示。
-i, --interactive 進行交互式刪除
-r, -R, --recursive   指示rm將參數中列出的全部目錄和子目錄均遞歸地刪除。
-v, --verbose    詳細顯示進行的步驟
7、
rmdir命令

rmdir是常用的命令,該命令的功能是刪除空目錄,一個目錄被刪除之前必須是空的。(注意,rm – r dir命令可代替rmdir,但是有很大危險性。)刪除某目錄時也必須具有對父目錄的寫權限。

(1)命令格式:

rmdir [選項]… 目錄…

(2)命令參數:

- p 遞歸刪除目錄dirname,當子目錄刪除後其父目錄爲空時,也一同被刪除。 如果整個路徑被刪除或者由於某種原因保留部分路徑,則系統在標準輸出上顯示相應的信息。
 -v, --verbose  顯示指令執行過程
8、mv命令
mv命令是move的縮寫,可以用來移動文件或者將文件改名(move (rename) files),是Linux系統下常用的命令,經常用來備份文件或者目錄。
(1)命令格式:
mv [選項] 源文件或目錄 目標文件或目錄
(2)命令功能:
視mv命令中第二個參數類型的不同(是目標文件還是目標目錄),mv命令將文件重命名或將其移至一個新的目錄中。當第二個參數類型是文件時,mv命令完成文件重命名,此時,源文件只能有一個(也可以是源目錄名),它將所給的源文件或目錄重命名爲給定的目標文件名。當第二個參數是已存在的目錄名稱時,源文件或目錄參數可以有多個,mv命令將各參數指定的源文件均移至目標目錄中。在跨文件系統移動文件時,mv先拷貝,再將原有文件刪除,而鏈至該文件的鏈接也將丟失。
(3)命令參數:
-b :若需覆蓋文件,則覆蓋前先行備份。
-f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋;
-i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!
-u :若目標文件已經存在,且 source 比較新,纔會更新(update)
-t  : –target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目標目錄,該選項適用於移動多個源文件到一個目錄的情況,此時目標目錄在前,源文件在後。
9、cp命令
cp命令用來複制文件或者目錄,是Linux系統中最常用的命令之一。一般情下,shell會設置一個別名,在命令行下複製文件時,如果目標文件已經存在,就會詢問是否覆蓋,不管你是否使用-i參數。但是如果是在shell腳本中執行cp時,沒有-i參數時不會詢問是否覆蓋。這說明命令行和shell腳本的執行方式有些不同。
(1)命令格式:
cp [選項]… [-T] 源 目的
或:cp [選項]… 源… 目錄
或:cp [選項]… -t 目錄 源…
(2)命令參數:
–backup[=CONTROL    爲每個已存在的目標文件創建備份
-b                類似–backup 但不接受參數
-f, –force        如果目標文件無法打開則將其移除並重試(當 -n 選項
存在時則不需再選此項)
-i, –interactive        覆蓋前詢問(使前面的 -n 選項失效)
-l, –link            鏈接文件而不復制
-n, –no-clobber   不要覆蓋已存在的文件(使前面的 -i 選項失效)
-R, -r, –recursive  複製目錄及目錄內的所有項目
10、touch命令
linux的touch命令不常用,一般在使用make的時候可能會用到,用來修改文件時間戳,或者新建一個不存在的文件。
(1)命令格式:
touch [選項]... 文件...
(2)命令參數:
-a   或--time=atime或--time=access或--time=use  只更改存取時間。
-c   或--no-create  不建立任何文檔。
-d  使用指定的日期時間,而非現在的時間。
-m   或--time=mtime或--time=modify  只更改變動時間。
-r  把指定文檔或目錄的日期時間,統統設成和參考文檔或目錄的日期時間相同。
-t  使用指定的日期時間,而非現在的時間。
(3)命令功能:
touch命令參數可更改文檔或目錄的日期時間,包括存取時間和更改時間。
11、cat命令
cat命令的用途是連接文件或標準輸入並打印。這個命令常用來顯示文件內容,或者將幾個文件連接起來顯示,或者從標準輸入讀取內容並顯示,它常與重定向符號配合使用。 
(1)命令格式:
cat [選項] [文件]...
(2)命令功能:
cat主要有三大功能:
①一次顯示整個文件:cat filename
②從鍵盤創建一個文件:cat > filename 只能創建新文件,不能編輯已有文件.
③將幾個文件合併爲一個文件:cat file1 file2 > file
(3)命令參數:
-A, --show-all
-b, --number-nonblank    對非空輸出行編號
-E, --show-ends          在每行結束處顯示 $
-n, --number     對輸出的所有行編號,由1開始對所有輸出的行數編號
-s, --squeeze-blank  有連續兩行以上的空白行,就代換爲一行的空白行 
-T, --show-tabs          將跳格字符顯示爲 ^I
12、nl命令
nl 命令在linux系統中用來計算文件中行號。nl 可以將輸出的文件內容自動的加上行號。其默認的結果與 cat -n 有點不太一樣, nl 可以將行號做比較多的顯示設計,包括位數與是否自動補齊 0 等等的功能。  
(1)命令格式:
nl [選項]... [文件]...
(2)命令參數:
-b a :表示不論是否爲空行,也同樣列出行號(類似 cat -n);
-b t :如果有空行,空的那一行不要列出行號(默認值);
-n ln :行號在螢幕的最左方顯示;
-n rn :行號在自己欄位的最右方顯示,且不加 0 ;
-n rz :行號在自己欄位的最右方顯示,且加 0 ;
-w  :行號欄位的佔用的位數。
-p 在邏輯定界符處不重新開始計算。 
(3)命令功能:
nl 命令讀取 File 參數(缺省情況下標準輸入),計算輸入中的行號,將計算過的行號寫入標準輸出。 在輸出中,nl 命令根據您在命令行中指定的標誌來計算左邊的行。 輸入文本必須寫在邏輯頁中。每個邏輯頁有頭、主體和頁腳節(可以有空節)。 除非使用 -p 標誌,nl 命令在每個邏輯頁開始的地方重新設置行號。 可以單獨爲頭、主體和頁腳節設置行計算標誌(例如,頭和頁腳行可以被計算然而文本行不能)。
13、more命令
more命令,功能類似 cat ,cat命令是整個文件的內容從上到下顯示在屏幕上。 more會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示,而且還有搜尋字串的功能 。more命令從前向後讀取文件,因此在啓動時就加載整個文件。
(1)命令格式:
more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ] 
(2)命令參數:
+n      從笫n行開始顯示
-n       定義屏幕大小爲n行
+/pattern 在每個檔案顯示前搜尋該字串(pattern),然後從該字串前兩行之後開始顯示  
-c       從頂部清屏,然後顯示
-d       提示“Press space to continue,’q’ to quit(按空格鍵繼續,按q鍵退出)”,禁用響鈴功能
-l        忽略Ctrl+l(換頁)字符
-p       通過清除窗口而不是滾屏來對文件進行換頁,與-c選項相似
-s       把連續的多個空行顯示爲一行
-u       把文件內容中的下畫線去掉
14、less命令
less 工具也是對文件或其它輸出進行分頁顯示的工具,應該說是linux正統查看文件內容的工具,功能極其強大。less 的用法比起 more 更加的有彈性。在 more 的時候,我們並沒有辦法向前面翻, 只能往後面看,但若使用了 less 時,就可以使用 [pageup] [pagedown] 等按鍵的功能來往前往後翻看文件,更容易用來查看一個文件的內容!除此之外,在 less 裏頭可以擁有更多的搜索功能,不止可以向下搜,也可以向上搜。
(1)命令格式:
less [參數]  文件 
(2)命令功能:
less 與 more 類似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動,卻不能向後移動,而且 less 在查看之前不會加載整個文件。
(3)命令參數:
-b <緩衝區大小> 設置緩衝區的大小
-e  當文件顯示結束後,自動離開
-f  強迫打開特殊文件,例如外圍設備代號、目錄和二進制文件
-g  只標誌最後搜索的關鍵詞
-i  忽略搜索時的大小寫
-m  顯示類似more命令的百分比
-N  顯示每行的行號
-o <文件名> 將less 輸出的內容在指定文件中保存起來
-Q  不使用警告音
-s  顯示連續空行爲一行
-S  行過長時間將超出部分捨棄
-x <數字> 將“tab”鍵顯示爲規定的數字空格
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重複前一個搜索(與 / 或 ? 有關)
N:反向重複前一個搜索(與 / 或 ? 有關)
b  向後翻一頁
d  向後翻半頁
h  顯示幫助界面
Q  退出less 命令
u  向前滾動半頁
y  向前滾動一行
空格鍵 滾動一行
回車鍵 滾動一頁
[pagedown]: 向下翻動一頁
[pageup]:   向上翻動一頁
15、head命令
head 與 tail 就像它的名字一樣的淺顯易懂,它是用來顯示開頭或結尾某個數量的文字區塊,head 用來顯示檔案的開頭至標準輸出中,而 tail 想當然爾就是看檔案的結尾。 
(1)命令格式:
head [參數]... [文件]...  
(2)命令功能:
head 用來顯示檔案的開頭至標準輸出中,默認head命令打印其相應文件的開頭10行。
(3)命令參數:
-q 隱藏文件名
-v 顯示文件名
-c<字節> 顯示字節數
-n<行數> 顯示的行數
16、tail命令
tail 命令從指定點開始將文件寫到標準輸出.使用tail命令的-f選項可以方便的查閱正在改變的日誌文件,tail -f filename會把filename裏最尾部的內容顯示在屏幕上,並且不但刷新,使你看到最新的文件內容. 
(1)命令格式;
tail[必要參數][選擇參數][文件]   
(2)命令功能:
用於顯示指定文件末尾內容,不指定文件時,作爲輸入信息進行處理。常用查看日誌文件。
(3)命令參數:
-f 循環讀取
-q 不顯示處理信息
-v 顯示詳細的處理信息
-c<數目> 顯示的字節數
-n<行數> 顯示行數
--pid=PID 與-f合用,表示在進程ID,PID死掉之後結束. 
-q, --quiet, --silent 從不輸出給出文件名的首部 
-s, --sleep-interval=S 與-f合用,表示在每次反覆的間隔休眠S秒 
17、which命令
我們經常在linux要查找某個文件,但不知道放在哪裏了,可以使用下面的一些命令來搜索:
which  查看可執行文件的位置。
whereis 查看文件的位置。 
locate   配合數據庫查看文件位置。
find   實際搜尋硬盤查詢文件名稱。
which命令的作用是,在PATH變量指定的路徑中,搜索某個系統命令的位置,並且返回第一個搜索結果。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。
 (1)命令格式:
which 可執行文件名稱 
(2)命令參數:
-n  指定文件名長度,指定的長度必須大於或等於所有文件中最長的文件名。
-p  與-n參數相同,但此處的包括了文件的路徑。
-w  指定輸出時欄位的寬度。
-V  顯示版本信息
18、whereis命令
whereis命令只能用於程序名的搜索,而且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。如果省略參數,則返回所有信息。和find相比,whereis查找的速度非常快,這是因爲linux系統會將 系統內的所有文件都記錄在一個數據庫文件中,當使用whereis和下面即將介紹的locate時,會從數據庫中查找數據,而不是像find命令那樣,通 過遍歷硬盤來查找,效率自然會很高。 但是該數據庫文件並不是實時更新,默認情況下時一星期更新一次,因此,我們在用whereis和locate 查找文件時,有時會找到已經被刪除的數據,或者剛剛建立文件,卻無法查找到,原因就是因爲數據庫文件沒有被更新。 
(1)命令格式:
whereis [-bmsu] [BMS 目錄名 -f ] 文件名
(2)命令功能:
whereis命令是定位可執行文件、源代碼文件、幫助文件在文件系統中的位置。這些文件的屬性應屬於原始代碼,二進制文件,或是幫助文件。whereis 程序還具有搜索源代碼、指定備用搜索路徑和搜索不尋常項的能力。
(3)命令參數:
-b   定位可執行文件。
-m   定位幫助文件。
-s   定位源代碼文件。
-u   搜索默認路徑下除可執行文件、源代碼文件、幫助文件以外的其它文件。
-B   指定搜索可執行文件的路徑。
-M   指定搜索幫助文件的路徑。
-S   指定搜索源代碼文件的路徑。
19、locate命令
locate 讓使用者可以很快速的搜尋檔案系統內是否有指定的檔案。其方法是先建立一個包括系統內所有檔案名稱及路徑的數據庫,之後當尋找時就只需查詢這個數據庫,而不必實際深入檔案系統之中了。在一般的 distribution 之中,數據庫的建立都被放在 crontab 中自動執行。
(1)命令格式:
Locate [選擇參數] [樣式]
(2)命令功能:
locate命令可以在搜尋數據庫時快速找到檔案,數據庫由updatedb程序來更新,updatedb是由cron daemon週期性建立的,locate命令在搜尋數據庫時比由整個由硬盤資料來搜尋資料來得快,但較差勁的是locate所找到的檔案若是最近才建立或 剛更名的,可能會找不到,在內定值中,updatedb每天會跑一次,可以由修改crontab來更新設定值。(etc/crontab)
locate指定用在搜尋符合條件的檔案,它會去儲存檔案與目錄名稱的數據庫內,尋找合乎範本樣式條件的檔案或目錄錄,可以使用特殊字元(如”*” 或”?”等)來指定範本樣式,如指定範本爲kcpa*ner, locate會找出所有起始字串爲kcpa且結尾爲ner的檔案或目錄,如名稱爲kcpartner若目錄錄名稱爲kcpa_ner則會列出該目錄下包括 子目錄在內的所有檔案。
locate指令和find找尋檔案的功能類似,但locate是透過update程序將硬盤中的所有檔案和目錄資料先建立一個索引數據庫,在 執行loacte時直接找該索引,查詢速度會較快,索引數據庫一般是由操作系統管理,但也可以直接下達update強迫系統立即修改索引數據庫。
(3)命令參數:
-e   將排除在尋找的範圍之外。
-1  如果 是 1.則啓動安全模式。在安全模式下,使用者不會看到權限無法看到的檔案。這會始速度減慢,因爲 locate 必須至實際的檔案系統中取得檔案的權限資料。
-f   將特定的檔案系統排除在外,例如我們沒有到理要把 proc 檔案系統中的檔案放在資料庫中。
-q  安靜模式,不會顯示任何錯誤訊息。
-n 至多顯示 n個輸出。
-r 使用正規運算式 做尋找的條件。
-o 指定資料庫存的名稱。
-d 指定資料庫的路徑


發佈了68 篇原創文章 · 獲贊 75 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章