Linux命令之必須掌握的十條命令

必須掌握的十條命令

Linux現如今已經成爲了軟件行業最流行的操作系統,掌握Linux就成爲了每一個開發者必備的專業技能。

爲了方便大家學習,大學君在此爲大家整理了在使用Linux時必須掌握的十條命令,希望大家能熟練掌握。

1、cd命令

Linux cd命令用於切換當前工作目錄至 dirName(目錄參數)。

其中 dirName 表示法可爲絕對路徑或相對路徑。若目錄名稱省略,則變換至使用者的 home 目錄 (也就是剛 login 時所在的目錄)。

另外,”~” 也表示爲 home 目錄 的意思,”.” 則是表示目前所在的目錄,”..” 則表示目前目錄位置的上一層目錄。

語法

cd [dirName]

dirName:要切換的目標目錄。

實例

跳到 /usr/bin/ :

cd /usr/bin

跳到自己的 home 目錄 :

cd ~

跳到目前目錄的上上兩層 :

cd ../..

2、ls命令

Linux ls命令用於顯示指定工作目錄下之內容(列出目前工作目錄所含之文件及子目錄)。

語法

ls [-alrtAFR] [name…]

參數

-a 顯示所有文件及目錄 (ls內定將文件名或目錄名稱開頭爲”.”的視爲隱藏檔,不會列出)
-l 除文件名稱外,亦將文件型態、權限、擁有者、文件大小等資訊詳細列出
-r 將文件以相反次序顯示(原定依英文字母次序)
-t 將文件依建立時間之先後次序列出
-A 同 -a ,但不列出 “.” (目前目錄) 及 “..” (父目錄)
-F 在列出的文件名稱後加一符號;例如可執行檔則加 “*”, 目錄則加 “/”
-R 若目錄下有文件,則以下之文件亦皆依序列出

實例

列出根目錄(\)下的所有目錄:
# ls /
bin               dev   lib         media  net   root     srv  upload  www
boot              etc   lib64       misc   opt   sbin     sys  usr
home  lost+found  mnt    proc  selinux  tmp  var
列出目前工作目錄下所有名稱是 s 開頭的文件,越新的排越後面 :
ls -ltr s*
將 /bin 目錄以下所有目錄及文件詳細資料列出 :
ls -lR /bin
列出目前工作目錄下所有文件及目錄;目錄於名稱後加 “/”, 可執行檔於名稱後加 “*” :
ls –AF

3、grep命令

Linux grep命令用於查找文件裏符合條件的字符串。

grep指令用於查找內容包含指定的範本樣式的文件,如果發現某文件的內容符合所指定的範本樣式,預設grep指令會把含有範本樣式的那一列顯示出來。若不指定任何文件名稱,或是所給予的文件名爲”-“,則grep指令會從標準輸入設備讀取數據。

語法

grep [-abcEFGhHilLnqrsvVwxy][-A<顯示列數>][-B<顯示列數>][-C<顯示列數>][-d<進行動作>][-e<範本樣式>][-f<範本文件>][--help][範本樣式][文件或目錄...]

常用參數

-a :將binary文件以text文件的方式查找數據 

-c :計算找到‘查找字符串’的次數 

-i :忽略大小寫的區別,即把大小寫視爲相同 

-v :反向選擇,即顯示出沒有‘查找字符串’內容的那一行 

示例 

# 取出文件/etc/man.config中包含MANPATH的行,並把找到的關鍵字加上顏色 

grep –color=auto ‘MANPATH’ /etc/man.config 

# 把ls -l的輸出中包含字母file(不區分大小寫)的內容輸出 

ls -l | grep -i file 

4、find命令

Linux find命令用來在指定目錄下查找文件。任何位於參數之前的字符串都將被視爲欲查找的目錄名。如果使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄與文件。並且將查找到的子目錄和文件全部進行顯示。

語法

find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} ;

參數說明

find 根據下列規則判斷 path 和 expression,在命令列上第一個 – ( ) , ! 之前的部份爲 path,之後的是 expression。如果 path 是空字串則使用目前路徑,如果 expression 是空字串則使用 -print 爲預設 expression。

expression 中可使用的選項有二三十個之多,在此只介紹最常用的部份。

-mount, -xdev : 只檢查和指定目錄在同一個文件系統下的文件,避免列出其它文件系統中的文件

-amin n : 在過去 n 分鐘內被讀取過

-anewer file : 比文件 file 更晚被讀取過的文件

-atime n : 在過去 n 天過讀取過的文件

-cmin n : 在過去 n 分鐘內被修改過

-cnewer file :比文件 file 更新的文件

-ctime n : 在過去 n 天過修改過的文件

-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名稱是 name

-ipath p, -path p : 路徑名稱符合 p 的文件,ipath 會忽略大小寫

-name name, -iname name : 文件名稱符合 name 的文件。iname 會忽略大小寫

-size n : 文件大小 是 n 單位,b 代表 512 位元組的區塊,c 表示字元數,k 表示 kilo bytes,w 是二個位元組。-type c : 文件類型是 c 的文件。

d: 目錄

c: 字型裝置文件

b: 區塊裝置文件

p: 具名貯列

f: 一般文件

l: 符號連結

s: socket

-pid n : process id 是 n 的文件

你可以使用 ( ) 將運算式分隔,並使用下列運算。

exp1 -and exp2

! expr

-not expr

exp1 -or exp2

exp1, exp2

實例

將目前目錄及其子目錄下所有延伸檔名是 c 的文件列出來。

# find . -name "*.c"

將目前目錄其其下子目錄中所有一般文件列出

# find . -ftype f

將目前目錄及其子目錄下所有最近 20 分鐘內更新過的文件列出

# find . -ctime -20

查找/var/logs目錄中更改時間在7日以前的普通文件,並在刪除之前詢問它們:

$ find /var/logs -type f -mtime +7 -ok rm { } ;

查找前目錄中文件屬主具有讀、寫權限,並且文件所屬組的用戶和其他用戶具有讀權限的文件:

$ find . -type f -perm 644 -exec ls -l { } ;

爲了查找系統中所有文件長度爲0的普通文件,並列出它們的完整路徑:

$ find / -type f -size 0 -exec ls -l { } ;

查找/var/logs目錄中更改時間在7日以前的普通文件,並在刪除之前詢問它們:

$ find /var/logs -type f -mtime +7 -ok rm { } ;

5、cp命令

Linux cp命令主要用於複製文件或目錄。

語法

cp [options] source dest

cp [options] source... directory

參數說明

-a:此選項通常在複製目錄時使用,它保留鏈接、文件屬性,並複製目錄下的所有內容。其作用等於dpR參數組合。

-d:複製時保留鏈接。這裏所說的鏈接相當於Windows系統中的快捷方式。

-f:覆蓋已經存在的目標文件而不給出提示。

-i:與-f選項相反,在覆蓋目標文件之前給出提示,要求用戶確認是否覆蓋,回答”y”時目標文件將被覆蓋。

-p:除複製文件的內容外,還把修改時間和訪問權限也複製到新文件中。

-r:若給出的源文件是一個目錄文件,此時將複製該目錄下所有的子目錄和文件。

-l:不復制文件,只是生成鏈接文件。

實例

使用指令”cp”將當前目錄”test/”下的所有文件複製到新目錄”newtest”下,輸入如下命令:

$ cp –r test/ newtest          

注意:用戶使用該指令複製目錄時,必須使用參數”-r”或者”-R”。

6、mv命令

Linux mv命令用來爲文件或目錄改名、或將文件或目錄移入其它位置。

語法

mv [options] source dest
mv [options] source... directory

參數說明

-i: 若指定目錄已有同名文件,則先詢問是否覆蓋舊文件;

-f: 在mv操作要覆蓋某已有的目標文件時不給任何指示;

mv參數設置與運行結果

命令格式

運行結果

mv 文件名 文件名
將源文件名改爲目標文件名

mv 文件名 目錄名
將文件移動到目標目錄

mv 目錄名 目錄名
目標目錄已存在,將源目錄
移動到目標目錄;目標
目錄不存在則改名

mv 目錄名 文件名
出錯

實例

將文件 aaa 更名爲 bbb :

mv aaa bbb

將info目錄放入logs目錄中。注意,如果logs目錄不存在,則該命令將info改名爲logs。

mv info/ logs 

再如將/usr/student下的所有文件和目錄移到當前目錄下,命令行爲:

$ mv /usr/student/*  . 

7、rm命令

Linux rm命令用於刪除一個文件或者目錄。

語法

rm [options] name...

參數

-i 刪除前逐一詢問確認。

-f 即使原檔案屬性設爲唯讀,亦直接刪除,無需逐一確認。

-r 將目錄及以下之檔案亦逐一刪除。

實例

刪除文件可以直接使用rm命令,若刪除目錄則必須配合選項”-r”,例如:

# rm  test.txt 
rm:是否刪除 一般文件 "test.txt"? y  
# rm  homework  
rm: 無法刪除目錄"homework": 是一個目錄  
# rm  -r  homework  
rm:是否刪除 目錄 "homework"? y 

刪除當前目錄下的所有文件及目錄,命令行爲:

rm  -r  * 

文件一旦通過rm命令刪除,則無法恢復,所以必須格外小心地使用該命令。

8、ps命令

Linux ps命令用於顯示當前進程 (process) 的狀態。

語法

ps [options] [—help]

常用參數

-A :所有的進程均顯示出來 

-a :不與terminal有關的所有進程 

-u :有效用戶的相關進程 

-x :一般與a參數一起使用,可列出較完整的信息 

-l :較長,較詳細地將PID的信息列出 

常用組合

ps aux # 查看系統所有的進程數據 

ps ax # 查看不與terminal有關的所有進程 

ps -lA # 查看系統所有的進程數據 

ps axjf # 查看連同一部分進程樹狀態

9、kill命令

Linux kill命令用於刪除執行中的程序或工作。

kill可將指定的信息送至程序。預設的信息爲SIGTERM(15),可將指定程序終止。若仍無法終止該程序,可使用SIGKILL(9)信息嘗試強制刪除程序。程序或工作的編號可利用ps指令或jobs指令查看。

語法

kill [-s <信息名稱或編號>][程序] 或 kill [-l <信息編號>]

參數說明

-l <信息編號>  若不加<信息編號>選項,則-l參數會列出全部的信息名稱。

-s <信息名稱或編號>  指定要送出的信息。

[程序]  [程序]可以是程序的PID或是PGID,也可以是工作編號。

實例

殺死進程

# kill 12345

強制殺死進程

# kill -KILL 123456

發送SIGHUP信號,可以使用一下信號

# kill -HUP pid

徹底殺死進程

# kill -9 123456

殺死指定用戶所有進程

#kill -9 $(ps -ef | grep hnlinux) //方法一 過濾出hnlinux用戶進程 
#kill -u hnlinux //方法二

10、cat命令

cat命令用於把檔案串連接後傳到基本輸出(螢幕或加 > fileName 到另一個檔案)

使用權限

所有使用者

語法格式

cat [-AbeEnstTuv] [--help] [--version] fileName

參數說明

  -n 或 –number 由 1 開始對所有輸出的行數編號

  -b 或 –number-nonblank 和 -n 相似,只不過對於空白行不編號

  -s 或 –squeeze-blank 當遇到有連續兩行以上的空白行,就代換爲一行的空白行

  -v 或 –show-nonprinting

實例

把 textfile1 的檔案內容加上行號後輸入 textfile2 這個檔案裏

cat -n textfile1 > textfile2

把 textfile1 和 textfile2 的檔案內容加上行號(空白行不加)之後將內容附加到 textfile3 裏。

cat -b textfile1 textfile2 >> textfile3

清空/etc/test.txt檔案內容

cat /dev/null > /etc/test.txt

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章