天天看點

linux 指令整理(自己常用)

Linux 常用指令

1. Linux下有兩種使用者:超級使用者(root)、普通使用者。

a) 超級使用者:可以再linux系統下做任何事情,不受限制。

b) 普通使用者:在linux下做有限的事情。

超級使用者的指令提示符是“#”,普通使用者的指令提示符是“$”。

指令:su  [使用者名] 

功能:切換使用者。

例如,要從root使用者切換到普通使用者user,則使用 su user。

要從普通使用者user切換到root使用者則使用 su root(root可以省略),此時系統會提示輸入root使用者的密碼。

2. 添加使用者。

指令:useradd 使用者名

功能:添加一個普通使用者。

例如,要想添加一個普通使用者user1 , 則可以使用

useradd  user1。使用該指令後,系統會在 目錄“/home”下建立一個名為 user1 的目錄。

3. 設定密碼

指令:passwd 使用者名

功能:設定或修改使用者名的密碼。

例如,我們要給剛才建立的user1使用者設定一個密碼123456,則使用 passwd user1,然後系統會提示你輸入新密碼。

4. 檢視檔案或目錄

指令:ls [選項] [目錄或檔案]

功能:對于目錄,該指令列出該目錄下的所有子目錄與檔案。對于檔案,将列出檔案名以及其他資訊。Linux檔案系統不是根據字尾名來執行檔案的,而是根據此檔案是否有可執行權限。

常用的選項有:

-a  顯示指定目錄下所有子目錄與檔案。例如 列出“/root/home”目錄下的所有子目錄及檔案,則使用 

ls –a  /root/home 。

 -l  列出指定目錄下所有目錄及檔案的詳細資訊。例如 列出“/root/home”目錄下的所有子目錄及檔案,則使用 

Ls  –l  /root/home 。每行列出的詳細資訊依次是:

檔案類型與權限 連接配接數 檔案所有者 檔案所屬組 檔案大小 最近修改時間 檔案名字。

使用ls –l 指令顯示的資訊中 ,開頭是由10個字母構成的字元串,其中第一個字元表示檔案類型,它可以是下列類型之一:

- :普通檔案

d : 目錄

l :符号連結

b :塊裝置檔案

c :字元裝置檔案

p :命名管道

s :socket檔案

後面的9個字元表示檔案的通路權限,分為3組,每組3位。

第一組表示檔案建立者的權限,第二組表示同組使用者的權限,第三組表示其他使用者的權限。每一組的三個字元分别表示對檔案的讀、寫、執行權限。

各權限如下:r(讀)、w(寫)、x(執行)、_(沒有設定權限)。每一組可以用一個數字表示,例如 r_x : 5 , rw_:6

R__:4,那麼這三組就可以用3個數字表示,例如rwxr_xr_x:755  , rw_r__r__:644。

ls輸出内容是有顔色的,比如:目錄是藍色,壓縮檔案是紅色的顯示,如果沒有顔色,可以加上參數--color=never 表示輸出沒有彩色,而--color=auto 表示自動,--color=always表示始終有顔色。

如果需要更加詳細的參數描述,可以通過如下方式獲得ls的幫助:man  ls。

5. 改變工作目錄。

指令:cd 目錄名

功能:改變工作目錄。将目前工作目錄改變到指定的目錄下,例如要切換目前目錄到“/home/user/0718”目錄,則使用

cd  /home/user/0718。

常用的切換目錄指令:

cd .. 到父目錄

cd / 到根目錄

cd ~ 到使用者主目錄下~ 與直接執行cd 效果一樣

cd – 到上一次目錄

6. 顯示目前工作目錄。

指令 : pwd

功能 : 顯示使用者目前所在的目錄。例如當我們使用指令

cd  /home/user/0718 時,再使用指令 pwd 則指令行會顯示

/home/user/0718。

7. 建立目錄

指令:mkdir [選項] dirname

功能:在目前目錄下建立一個名為 “dirname”的目錄。例如要在目前目錄下建立一個名為“07181”的目錄,則使用指令

mkdir 07181。系統就會在目前目錄下,建立一個07181的目錄,此時可以使用 ls –l 檢視。

8. 删除目錄

指令:rmdir [選項] dirname

功能:在目前工作目錄下删除目錄名為“dirname”的子目錄。此時該子目錄必須是個空目錄。我們剛才建立了一個空目錄07181,如果我們想把它删掉,則使用 rmdir 07181 。此時再使用ls –l 列舉一下,這時發現07181 已經被删掉了。如果使用該指令删除一個非空的目錄,則删除失敗。

9. 拷貝檔案或目錄

指令cp [選項] 源檔案或目錄 目标檔案或目錄

功能:把指定的源檔案複制到目标檔案或把多個源檔案複制到目标目錄中。

常用參數:

-f  若目标目錄中存在與源檔案同名的檔案,則直接覆寫,不提示。例如将目前目錄下的main.c檔案拷貝到“/home/user/0718”下,并且若存在同名的則進行覆寫,使用:

cp –f ./main.c  /home/user/0718 。

如果在拷貝的同時将源檔案重命名,例如将目前目錄下的main.c檔案拷貝到“/home/user/0718”目錄下并命名為main1.c,則使用:

 cp  –f  ./main.c  /home/user/0718/main1.c。

 -i 和-f相反,當目标檔案中存在于源檔案同名的檔案,copy時系統會提示是否進行覆寫。裡如上例,若在拷貝過程中,目标檔案中存在與源檔案同名的檔案,需要提示是否覆寫,則隻需要将上例中的-f 改為 –I 即可。例如

cp  –i  ./main.c  /home/user/0718 。

cp  –i  ./main.c  /home/user/0718/main1.c。

-r 如果要拷貝的是一個目錄,此時将同時拷貝該目錄下的子目錄和檔案。此時目标檔案必須為一個目錄。例如,将”/home/user/0718”目錄下的所有檔案及目錄拷貝到“/home/user1”目錄下,則使用 

cp  –r  /home/user/0718  /home/user1 。

10. 移動檔案或目錄。

指令:mv [選項] 源檔案或目錄 目标檔案或目錄

功能:視mv指令中第二個參數類型的不同(是目标檔案還是目标目錄),mv指令将檔案重命名或将其移至一個新的目錄中。當第二個參數類型是檔案時,mv指令完成檔案重命名,此時,源檔案隻能有一個(也可以是源目錄名),它将所給的源檔案或目錄重命名為給定的目标檔案名。當第二個參數是已存在的目錄名稱時,源檔案或目錄參數可以有多個,mv指令将各參數指定的源檔案均移至目标目錄中。在跨檔案系統移動檔案時,mv先拷貝,再将原有檔案删除,而鍊至該檔案的連結也将丢失。

參數:

-i 如果在移動的過程中存在重名的,則進行提示是否覆寫。

-f 若果在移動的過程中存在重名的,則直接進行覆寫,不會給出提示。

例如 要将 “/home/user/0718”下的main.c 檔案重命名為main.cpp,則使用 

mv  /home/user/0718/main.c   /home/user/0718/main.cpp。

要将“/home/user/0718”下的所有内容移動到 “/home/user/0719”,則使用

mv  –f  /home/user/0718  /home/user/0719。

11. 删除檔案或目錄

指令:rm [選項] 檔案或目錄

功能:在linux中建立檔案很容易,系統中随時會有檔案變得過時且毫無用處。使用者可以用rm指令将其删除。該指令的功能為删除一個目錄中的一個或多個檔案或目錄,它也可以将某個目錄及其下的所有檔案及子目錄均删除。對于連結檔案,隻是删除了連結,原有檔案均保持不變。如果删除時沒有-r選項則不會殺出目錄。

參數:

-f 删除過程中不會給出提示。

-i 删除過程中會給出互動式提示。

-r 如果删除的是一個目錄,則将該目錄下的目錄及子目錄均删除掉。

例如要删除 “/home/user/0718”目錄下的main.cc  main.exe

則使用,

rm  -f  /home/user/0718/main.cc  /home/user/0718/main.exe 

 若果要删除“/home/user/0718”這個目錄,則使用

rm  –rf  /home/user/0718。

12.檢視檔案内容

指令: cat [選項] [檔案]

功能: 檢視目标檔案的内容

參數:

-b 對非空輸出行編号

-E 在每行結束處顯示$

-n 對輸出的所有行編号

-s 不輸出多行空行。

例如 要檢視目前目錄下的main.cc 的内容

則使用,cat  main.cc。

标準的輸入輸出與重定向:

檔案描述符是一個整數,它代表一個打開的檔案,标準的三個描述符号:

标準輸入:一般指鍵盤,描述符為:0

标準輸出:一般指螢幕輸出,描述符為:1

錯誤輸出:也是螢幕,描述符為:2

重定向符号:

<重定向輸入 、 >重定向輸出 、 >>添加輸出 、 2>錯誤重定向 、 &>錯誤和資訊重定向

cat常常與重定向一起使用。其中>表示建立,>>表示追加,<<表示以什麼結束

如果cat的指令行中沒有參數,它就會從标準輸入中讀取資料,并将其送到标準輸出。

linux中建立空檔案的四種方式:

方式1: echo > a.txt(好像會有一個位元組)

方式2: touch b.txt

方式3: cat > c.txt 按ctrl+c組合鍵退出;或Ctrl+d

方式4: vi d.txt 進入之後:wq退出。

13.顯示檔案内容的前幾行

指令:head –n 行數值 檔案名

功能:顯示目标檔案的前幾行。

例如 要顯示 目前目錄下main.cc 的前10行,則使用

Head –n  10 main.cc。

14. 顯示檔案的後幾行

指令: tail –n 行數值 檔案名。

功能:顯示目标檔案的最後幾行。

例如 要顯示“/home/user/0718/”目錄下的main.cc 檔案的最後10行。則使用 tail  –n  10  /home/user/0718/main.cc。

15.管道與指令替換

管道:是重定向的一種,就像一個導管一樣,将一個程式或指令的輸出作為另一個程式或指令的輸入。eg: #ls –l /etc | wc –w

指令替換:和重定向有點相似,但差別在于指令替換是将一個指令的輸出作為另一個指令的參數。常用的格式為 : command1 `command2`或command1 $(command2)

舉例:

首先列出目前的所有資訊,并重定向到aa檔案中:

#ls | cat > aa 或ls > aa

然後,通過指令替換,列出aa檔案中所有的檔案資訊

#ls –l `cat aa` 或者用 ls –l $(cat aa)

16.檔案或目錄的建立掩碼

umask指檔案(0666)或目錄(0777)建立時在全部權限中要去掉的一些權限,普通使用者預設時umask的值為002,超級使用者為022。

002表示建立目錄時所有者的權限不去掉, 所屬組權限不去掉,其他組權限寫屬性去掉

建立一檔案以後,普通使用者預設的權限為664                   超級使用者:  644

建立一目錄以後,普通使用者預設的權限為775                   超級使用者:  755

可以通過umask檢視預設的預設的掩碼值。通過umask 001修改掩碼值。

17.改變目錄或檔案的權限

功能:chmod指令是非常重要的,用于改變檔案或目錄的通路權限。使用者用它控制檔案或目錄的通路權限。

文法:該指令有兩種用法。一種是包含字母和操作符表達式的文字設定法;另一種是包含數字的數字設定法。

說明:我們利用ls –l長格式列出檔案或目錄的基本資訊如下:

檔案類型與權限 連結數 檔案所有者 檔案屬組 檔案大小 最近修改的時間 名字

對于權限,有第一組表示檔案所有者的權限,第二組表示同組使用者的權限,第三組表示其他使用者的權限。每一組的三個字元分别表示對檔案的讀、寫和執行權限。可以通過chmod來修改權限。

1. 文字設定法

chmod [who][+|-|=][mode] 檔案名 //修改指定檔案名中who的權限增加/去除/指派為mode

參數:

操作對象who可是下述字母中的任一個或者它們的組合:

u 表示“使用者(user)”,即檔案或目錄的所有者。

g 表示“同組(group)使用者”,即與檔案所有者有相同組ID的所有使用者。

o 表示“其他(others)使用者”。

a 表示“所有(all)使用者”。它是系統預設值。即chmod +x 1.c表示所有人都有可執行的權限。

操作符号可以是:

+ 添加某個權限。

 - 取消某個權限。

 = 賦予給定權限并取消其他所有權限(如果有的話)。

設定mode所表示的權限可用下述字母的任意組合(當組合的時候,who不能少):

  r 可讀

  w 可寫

  x 可執行

檔案名:以空格分開的要改變權限的檔案清單,支援通配符。

在一個指令行中可給出多個權限方式,其間用逗号隔開。例如:chmod g+r,o+r example使同組和其他使用者對檔案example 有讀權限。

2. 數字設定法

我們必須首先了解用數字表示的屬性的含義:0表示沒有權限,1表示可執行權限,2表示可寫權限,4表示可讀權限,然後将其相加。是以數字屬性的格式應為3個從0到7的八進制數,其順序是(u)(g)(o)。

例如,如果想讓某個檔案的所有者有"讀/寫"二種權限,需要把4(可讀)+2(可寫)=6(讀/寫).

數字設定法的一般形式為:chmod [mode] 檔案名

  例子:

  (1)文字設定法:

  例1:$ chmod a+x sort

  即設定檔案sort的屬性為:

  檔案所有者(u) 增加執行權限

  與檔案所有者同組使用者(g) 增加執行權限

  其他使用者(o) 增加執行權限

  例2:$ chmod ug+w,o-x text

  即設定檔案text的屬性為:

  檔案所有者(u) 增加寫權限

  與檔案所有者同組使用者(g) 增加寫權限

  其他使用者(o) 删除執行權限

  例3:$ chmod a–x mm.txt

  $ chmod –x mm.txt

  $ chmod ugo–x mm.txt

  以上這三個指令都是将檔案mm.txt的執行權限删除,它設定的對象為所有使用者。

  (2)數字設定法:

  例1: $ chmod 644 mm.txt

  $ ls –l

  即設定檔案mm.txt的屬性為:

  -rw-r--r-- 1 inin users 1155 Nov 5 11:22 mm.txt

  檔案所有者(u)inin 擁有讀、寫權限

  與檔案所有者同組人使用者(g) 擁有讀權限

  其他人(o) 擁有讀權限

  例2: $ chmod 750 wch.txt

  $ ls –l

  -rwxr-x--- 1 inin users 44137 Nov 12 9:22 wchtxt

  即設定wchtxt這個檔案的屬性為:

  檔案主本人(u)inin 可讀/可寫/可執行權

  與檔案主同組人(g) 可讀/可執行權

  其他人(o) 沒有任何權限

18.檔案查找

指令:find 起始目錄 查找條件 操作

功能:在指定目錄結構中搜尋問價,并執行指定的操作。

該指令的查找條件可以是一個邏輯運算符not、and、or組成的複合條件。

(1) and:邏輯與,在指令中用-a表示,表示隻有當所給的條件都滿足時,查找條件才滿足。例如在 “/home/user”目錄下查找名為0718 類型是一個目錄的檔案。則使用

find  /home/user –name  0718  –a  -type  d

(2) or:邏輯或,在指令中用-o表示,表示隻要所給的條有一個滿足,查找條件就滿足。例如在“/home/user”目錄下查找名字為main.cc 或名字為 main.c的檔案。則使用

find  /home/user  -name main.cc  -o  -name main.c。

(3) not:邏輯非,在指令中用!表示查找不滿足所給條件的檔案。例如在“/home/user“下查找名字不是main.c的檔案,則使用

find  /home/user  ! –name main.cc 。     

常用的查找條件有:

(1) 根據名稱和檔案屬性查找。

-name ’字串’ 查找檔案名比對所給字串的所有檔案,字串内可用通配符*、?、[ ]。

 -gid n 查找屬于ID号為n的使用者組的所有檔案。

 -uid n 查找屬于ID号為n的使用者的所有檔案。

 -group ’字串’ 查找屬于使用者組名為所給字串的所有的檔案。 

 -user ’字串’ 查找屬于使用者名為所給字串的所有的檔案。

 -empty 查找大小為0的目錄或檔案。

 -perm 權限 查找具有指定權限的檔案和目錄,權限的表示可以如711,644。 

 -size n[bckw] 查找指定檔案大小的檔案,n後面的字元表示機關,預設為b,代表512位元組的塊。

 -type x 查找類型為x的檔案,x為下列字元之一:

  b 塊裝置檔案 

  c 字元裝置檔案

  d 目錄檔案 

  p 命名管道(FIFO) 

  f 普通檔案

  l 符号連結檔案(symbolic links)

  s socket檔案

(2) 根據時間查找

- amin  n 查找n分鐘以前被通路過的所有檔案。(+表示n分鐘之前,-或者不寫表示n分鐘之内)

- cmin  n 查找n分鐘以前檔案狀态被修改過的所有檔案。

- mmin  n 查找n分鐘以前檔案内容被修改過的所有檔案。

- atime n 查找n天以前被通路過的所有檔案。

- ctime n 查找n天以前檔案狀态被修改過的所有檔案。

- mtime n 查找n天以前檔案内容被修改過的所有檔案。

(3) 可執行的操作。

- exec 指令名稱 {}   :對符合條件的檔案執行所給的Linux 指令,而不詢問使用者是否需要執行該指令。{}表示指令的參數即為所找到的檔案;指令的末尾必須以“ \;”結束。

例如,在“/home/user“目錄下查找名為main.c檔案并顯示這些檔案的詳細資訊,則使用

find  /home/user –name  main.c  -exec ls –l {}  \;

 - ok 指令名稱 { }   :對符合條件的檔案執行所給的Linux 指令,與exec不同的是,它會詢問使用者是否需要執行該指令。

19.搜尋檔案内容grep

指令:grep [選項][查找模式][檔案名1,檔案名2,…]

功能:grep過濾器查找指定字元模式的檔案,并顯示含有此模式的所有行。被尋找的模式稱為正規表達式。

常用的一些正規表達式

^ :以什麼開頭 ,例如 ls –l  |  grep ^d  顯示目前目錄下的所有子目錄的詳細資訊。

   $ :以什麼結尾 。例如 ls  –l  |  grep  c$ 顯示目前目錄下以c結尾的檔案。

常用的參數:

-E 每個模式作為一個擴充的正規表達式對待。

-F 每個模式作為固定的字元串對待

-c  隻顯示比對行的數量。

-i  比較式不區分大小寫。

-n 在輸出前加上比對串所在的行号。

20. 文檔管理

指令:tar [主選項+輔選項] 目标文檔 源檔案或目錄  

功能:tar可以為檔案和目錄建立檔案。利用tar,使用者可以為某一特定檔案建立檔案(備份檔案),也可以在檔案中改變檔案,或者向檔案中加入新的檔案。tar最初被用來在錄音帶上建立檔案, 現在,使用者可以在任何裝置上建立檔案,如軟碟。

利用tar指令,可以把一大堆的檔案和目錄全部打包成一個檔案,這對于備份檔案或将幾個檔案組合成為一個檔案以便于網絡傳輸是非常有用的。

   常用參數:

c:建立新的檔案檔案。

r: 要把存檔的檔案追加到檔案檔案的末尾。

x:從檔案檔案中釋放檔案。

f:使用檔案檔案或裝置。

v:在歸檔過程中顯示處理的檔案。

z:用gzip來壓縮/解壓縮檔案,字尾名為.gz,加上該選項後可以将檔案檔案進行壓縮。

例如,把“/home/user/0718”下的所有字尾為.c 的歸檔到source.tar,則使用 tar  cvf source.tar  /home/user/0718/*.c

若果在歸檔的過程中還要進行壓縮,則使用

tar  czvf source.tar.gz  /home/user/0718/*.c。

如果要将歸檔的檔案source.tar釋放掉,則使用

Tar  xvf  source.tar

若果将歸檔後的壓縮檔案釋放掉,則使用

 Tar  xzvf  source.tar.gz。

21.檔案壓縮解壓

指令:gzip/bzip2  [選項]壓縮或解壓縮的檔案名 

功能:gzip用來将檔案壓縮成字尾為.gz的壓縮檔案,或者将字尾為.gz的檔案進行解壓。Bzip2用來将檔案壓縮成字尾名為.bz2的壓縮檔案,或者将字尾為.bz2的壓縮檔案解壓。

常用參數:

-d: 将壓縮檔案進行解壓。

-v: 在壓縮或解壓過程中顯示解壓或壓縮的檔案。

例如,将main.c 進行壓縮,則使用

Gzip/bzip2 –v  main.c。

則就會将main.c 壓縮成 main.c.gz 或者 main.c.bz2 。

如果将剛才的壓縮檔案解壓,則使用

Gzip  –dv  main.c.gz,或者 bzip2 –dv  main.c.bz2。

繼續閱讀