Linux常用命令詳解(一)

Linux是目前服務器應用最廣泛的系統,對於Linux的學習也是程序員必須具備的衆多技能之一,先從Linux系統結構圖來看,學習的整個過程大致圍繞常用指令來學習:

這裏寫圖片描述

ls 常用命令

1.列出某個文件夾下的所有文件和目錄詳細資料

$ ls -l -R Directory_Path 或者
$ ls -lR Directory_Path

2.列出當前目錄中以某個字母或字符串開頭的文件信息。
如:

$ ls -l abc*

3.只列出文件下的子目錄

$ ls -F /home |grep /$    //列出/home文件下的子目錄
$ ls -l /home |grep "^d"  //列出/home文件下子目錄詳細情況

4.列出當前目錄下的所有文件和詳細信息,倒序排列

$ ls -lrt *

5.列出當前目錄下所有檔案及目錄

$ ls -AF

6.計算當前目錄下的文件數和目錄數

$ ls -l * |grep "^-"|wc -l  //文件個數
$ ls -l * |grep "^d"|wc -l  //目錄個數

7.列出當前目錄下的所有文件包括隱藏文件的絕對路徑。

$ find $PWD -maxdepth l | xargs ls -ld  //對目錄不做遞歸
$ find $PWD | xargs ls -ld              //對目錄遞歸

cd命令(切換當前目錄至dirName)

1.進入系統根目錄

$ cd /

2.使用cd命令進入當前用戶主目錄

$ cd

3.返回進入此目錄之前所在的目錄

$ cd -

4.把上個命令的參數作爲cd參數使用

$ cd !$

pwd命令(查看當前目錄的絕對路徑)

1.默認命令

$ pwd

2.目錄聯接鏈接時,顯示實際路徑

$ pwd -p

mkdir(創建目錄)

1.遞歸創建多個目錄

$ mkdir -p test1/test11

2.創建權限爲777的目錄

$ mkdir -m 777 test

3.創建新目錄並顯示信息

$ mkdir -v test

rm(刪除命令)

命令參數:

-f, –force 忽略不存在的文件,從不給出提示。
-i, –interactive 進行交互式刪除
-r, -R, –recursive 指示rm將參數中列出的全部目錄和子目錄均遞歸地刪除。
-v, –verbose 詳細顯示進行的步驟
–help 顯示此幫助信息並退出
–version 輸出版本信息並退出

1.刪除某個子目錄及子目錄中所有檔案

$ rm -rf test

2.刪除以 -f 開頭的文件

$ rm -- -f

3.自定義回收站功能

$ myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D; mv "$@" $D && echo "moved to $D ok"; }
$ alias rm='myrm'

mv命令

命令參數:

-b :若需覆蓋文件,則覆蓋前先行備份。
-f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋;
-i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!
-u :若目標文件已經存在,且 source 比較新,纔會更新(update)
-t : –target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目標目錄,該選項適用於移動多個源文件到一個目錄的情況,此時目標目錄在前,源文件在後。

1.移動當前文件夾下的所有文件到上一級目錄

$ mv * ../

2.把當前目錄下的子目錄中的文件移動到另一個目錄

$ mv test/*.txt test2

3.文件被覆蓋前做簡單備份,前面加參數-b

$ mv hello.txt -b helloworld.txt

cp命令

命令參數:

-a, –archive 等於-dR –preserve=all
–backup[=CONTROL 爲每個已存在的目標文件創建備份
-b 類似–backup 但不接受參數
–copy-contents 在遞歸處理是複製特殊文件內容
-d 等於–no-dereference –preserve=links
-f, –force 如果目標文件無法打開則將其移除並重試(當 -n 選項存在時則不需再選此項)
-i, –interactive 覆蓋前詢問(使前面的 -n 選項失效)
-H 跟隨源文件中的命令行符號鏈接
-l, –link 鏈接文件而不復制
-L, –dereference 總是跟隨符號鏈接
-n, –no-clobber 不要覆蓋已存在的文件(使前面的 -i 選項失效)
-P, –no-dereference 不跟隨源文件中的符號鏈接
-p 等於–preserve=模式,所有權,時間戳
–preserve[=屬性列表 保持指定的屬性(默認:模式,所有權,時間戳),如果可能保持附加屬性:環境、鏈接、xattr 等
-R, -r, –recursive 複製目錄及目錄內的所有項目

touch命令

命令參數:

-a 或–time=atime或–time=access或–time=use  只更改存取時間。
-c 或–no-create  不建立任何文檔。
-d  使用指定的日期時間,而非現在的時間。
-f  此參數將忽略不予處理,僅負責解決BSD版本touch指令的兼容性問題。
-m 或–time=mtime或–time=modify  只更改變動時間。
-r  把指定文檔或目錄的日期時間,統統設成和參考文檔或目錄的日期時間相同。
-t  使用指定的日期時間,而非現在的時間。

1.更新兩個文件的時間戳相同

$ touch -r test1.log test2.log

2.設定文件的時間戳

$ touch -t test.log

cat命令

cat主要有三大功能:

  • 一次顯示整個文件:cat filename
  • 從鍵盤創建一個文件:cat > filename 只能創建新文件,不能編輯已有文件
  • 將幾個文件合併爲一個文件:cat file1 file2 > file

命令參數:

-A, –show-all 等價於 -vET
-b, –number-nonblank 對非空輸出行編號
-e 等價於 -vE
-E, –show-ends 在每行結束處顯示 $
-n, –number 對輸出的所有行編號,由1開始對所有輸出的行數編號
-s, –squeeze-blank 有連續兩行以上的空白行,就代換爲一行的空白行
-t 與 -vT 等價
-T, –show-tabs 將跳格字符顯示爲 ^I
-u (被忽略)
-v, –show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外

1.顯示文件加上行號然後輸出到另一個文件中

$ cat -n test.log test2.log

2.把log2015.log 和 log2016.log 的文件內容加上行號(空白不加),之後將內容附加到 log201609.log

$ cat -b log2015.log log2016.log log201609.log

3.把 log2015.log 的文件內容加上行號後輸出到 log2016.log 這個文件中

$ cat -n log2015.log > log2016.log

4.使用 here doc 來生成文件

$ cat > log.txt <<EOF

nl命令

nl命令在Linux系統中用來計算文件中行號。nl可以將輸出的文件內容自動的加上行號。其默認的結果與 cat -n 有點不太一樣, nl 可以將行號做比較多的顯示設計,包括位數與是否自動補齊 0 等等的功能。
命令參數:

-b :指定行號指定的方式,主要有兩種:
-b a :表示不論是否爲空行,也同樣列出行號(類似 cat -n);
-b t :如果有空行,空的那一行不要列出行號(默認值);
-n :列出行號表示的方法,主要有三種:
-n ln :行號在螢幕的最左方顯示;
-n rn :行號在自己欄位的最右方顯示,且不加 0 ;
-n rz :行號在自己欄位的最右方顯示,且加 0 ;
-w :行號欄位的佔用的位數。
-p 在邏輯定界符處不重新開始計算。

命令功能:

nl 命令讀取 File 參數(缺省情況下標準輸入),計算輸入中的行號,將計算過的行號寫入標準輸出。 在輸出中,nl 命令根據您在命令行中指定的標誌來計算左邊的行。 輸入文本必須寫在邏輯頁中。每個邏輯頁有頭、主體和頁腳節(可以有空節)。 除非使用 -p 標誌,nl 命令在每個邏輯頁開始的地方重新設置行號。 可以單獨爲頭、主體和頁腳節設置行計算標誌(例如,頭和頁腳行可以被計算然而文本行不能)。

1.用nl列出文件中的內容

$ nl log.txt

2.列出文件中的內容,空本行也加上行號

$ nl -b a log.txt

3.行號前自動補0,統一輸出格式

$ nl -b a -n rz log.txt       //默認顯示六位數
$ nl -b a -n rz -w 3 log.txt  //指定輸出格式爲三位數顯示

more命令

more命令功能類似cat,cat命令是整個文件的內容從上到下顯示在屏幕上。 more會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示,而且還有搜尋字串的功能 。more命令從前向後讀取文件,因此在啓動時就加載整個文件。

格式:

$ more [-dlfpcsu] [-num] [+/pattern] [+linenum] [file...]

功能:
more命令和cat的功能一樣都是查看文件裏的內容,但有所不同的是 more 可以按頁來查看文件的內容,還支持直接跳轉行等功能。

命令參數:

+n 從笫n行開始顯示
-n 定義屏幕大小爲n行
+/string 在每個檔案顯示前搜尋該字串(string),然後從該字串前兩行之後開始顯示
-c 從頂部清屏,然後顯示
-d 提示“Press space to continue,’q’ to quit(按空格鍵繼續,按q鍵退出)”,禁用響鈴功能
-l 忽略Ctrl+l(換頁)字符
-p 通過清除窗口而不是滾屏來對文件進行換頁,與-c選項相似
-s 把連續的多個空行顯示爲一行
-u 把文件內容中的下畫線去掉

常用操作:
Enter 向下n行,需要定義。默認爲1行
Ctrl+F 向下滾動一屏
空格鍵 向下滾動一屏
Ctrl+B 返回上一屏
= 輸出當前行的行號
:f 輸出文件名和當前行的行號
V 調用vi編輯器
!命令 調用Shell,並執行命令
q 退出more

實例:
1.從第幾行開始顯示文件內容

$ more +n filename    //n值自定義,可以是任意數字

2.從文件中查找第一次出現某個字符串的行,並從此處顯示

$ more +/string filename   //如more +/hello hello.txt 從有hello的行開始顯示

3.設置屏幕顯示的行

$ more -n filename    //n值自定義,可以是任意整數

4.使用分頁顯示一個文件下的所有目錄

$ ls -l | more -n     //使用管道分割設置每頁顯示行數

less命令

less 與 more 類似,less 在查看之前不會加載整個文件,可以隨意瀏覽,more只能向前瀏覽。

命令參數:

-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]: 向上翻動一頁

head命令

1.顯示文件的前幾行

$ head -n num filename //如顯示前10行,n就是10

2.顯示除了最後n行之外的全部內容

$ head -n -num filename

3.顯示文件前n個字節

$ head -c num filename  //如num=10,顯示前10個字節

4.顯示除最後n個字節以外的內容

$ head -c -num filename 

tail命令

用於顯示指定文件末尾內容,不指定文件時,作爲輸入信息進行處理,常用查看日誌文件。

命令參數:

-f 循環讀取
-q 不顯示處理信息
-v 顯示詳細的處理信息
-c<數目> 顯示的字節數
-n<行數> 顯示行數
–pid=PID 與-f合用,表示在進程ID,PID死掉之後結束.
-q, –quiet, –silent 從不輸出給出文件名的首部
-s, –sleep-interval=S 與-f合用,表示在每次反覆的間隔休眠S秒

1.顯示文件末尾內容

$ tail -n num filename

2.循環查看文件內容

$ tail -f filename

3.從第n行開始顯示文件

$ tail -n +num filename

which命令

查看可執行文件的位置

命令參數:

-n  指定文件名長度,指定的長度必須大於或等於所有文件中最長的文件名。
-p  與-n參數相同,但此處的包括了文件的路徑。
-w  指定輸出時欄位的寬度。
-V  顯示版本信息

whereis命令

查看文件位置

命令參數:

-b 定位可執行文件。
-m 定位幫助文件。
-s 定位源代碼文件。
-u 搜索默認路徑下除可執行文件、源代碼文件、幫助文件以外的其它文件。
-B 指定搜索可執行文件的路徑。
-M 指定搜索幫助文件的路徑。
-S 指定搜索源代碼文件的路徑。

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