天天看點

Linux指令

Linux指令的構成

command [options] [parameters]

其中: command 為指令名,options為選項,parameters為參數, []表示可以有多個選項、參數,也可以無選項或參數。

指令名一般由小寫字母組成,Linux指令是大小寫敏感的。指令名、選項、參數之間必須用空格分開。選項前一般帶有“-”号,可以多個選項合并使用,例如清單指令#ls -la  /etc。

線上幫助指令

man、info和help三種指令可提供線上幫助。

使用方法:

$ man 指令名 ;$ info 指令名 ; $ 指令名 --help

man是一個非常重要的幫助指令,是所有Linux/Unix系統的必備工具。

 幫助頁的使用方法(插入示範:#man ls、info ls、ls --help)

退出幫助:q;快速定位關鍵字:/關鍵字;繼續定位關鍵字:n;顯示下一頁:空格鍵;顯示上一頁:PageUp鍵。

檔案清單指令 

ls

用于列出目錄下的檔案和子目錄。

-a:列出所有檔案和目錄。

-c:以更改時間排序,顯示檔案和目錄。

-d:顯示目錄名稱而及其屬性。

-i:顯示檔案和目錄的inode編号。

-l:使用詳細的長格式清單。

-r:反向排序。

-R:遞歸處理,将指定目錄下的所有檔案及子目錄一并處理。

顯示文本檔案内容的指令 

 cat  

一次性顯示文本檔案内容。

-A:全面顯示。

-E:行尾加$。

-n:顯示行号(含空行)。

執行個體

(注意:學會用shift+PageUp/PageDown移動上下屏)

輸入輸出重定向

ls >file

more 

用于分頁顯示檔案内容。(按空格鍵繼續顯示)

-d:螢幕底部提示幫助資訊。

-p:清屏後再顯示下屏。

- num:每頁顯示的行數。

+ num:從num行開始顯示。

管道技術 

$ls –la |more )

less(與more類似)

head 

顯示檔案頭部。

-c:指定顯示字元數。

-n:指定顯示的行數,預設為10行。

tail 

顯示檔案尾部。

-f:實時觀察檔案尾部分的變化。

(結合實時監測log檔案講解如:

#tail –f /var/log/messages )

查詢文本内容的指令 

 grep (egrep或fgrep)指令

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

-i:不區分大小寫。

-n:增加顯示比對行的行号。

-v:隻顯示不比對行。

-x:隻顯示整行比對的行。

(結合管道技術講解如:

$ls –la |grep keyword )

查找檔案的指令 

find 查找系統中的檔案。

-name 檔案名:find要查找的檔案名。

-perm 權限值:查找所有符合指定權限值的檔案,如果權限值前面是“-”或“+”号,則搜尋所有含該權限值中特權位的檔案。

-size n:查找大小為n個block的檔案名。

-user 使用者名:搜尋所有屬主為使用者名的檔案。

-group 組名:搜尋所有屬組為組名的檔案。

-atime  數字:搜尋在[數字]天前通路過的檔案。

-mtime  數字:搜尋在[數字]天前修改過的檔案。

locate或slocate

快速搜尋索引資料庫中檔案,其查找檔案速度較find快。但索引資料庫的更新在每天的4:02分,查找當天檔案需要手工執行指令#updatedb 來更新索引資料庫。選項:

which 指令名  找出指令在系統中存儲位置

$which find

統計、排序和比較文本内容的指令 

 wc

用于統計文本檔案中字元、字和行的數量。 

-c:隻輸出位元組數。

-w:隻輸出單詞數。

-l:隻輸出行數。

 sort 

用于對文本檔案中各行進行排序 。

-d:排序時,除了英文字母、數字及空格字元外,忽略其他的字元。

-f:排序時,将小寫字母視為大寫字母。

-m:将幾個排序好的檔案合并。

-r:以相反的順序來排序。

uniq 

用于檢查及消去文本檔案中連續的重複行。檔案要先作sort,然後再執行uniq。 

-c:在每列旁邊顯示該行重複出現的次數。

-d:僅顯示重複出現的行。

 diff 

用于比較兩個文本檔案的不同點。

-i:忽略大小寫。

#diff A B >C 

A是原始檔案,B是修改後的檔案,C稱為A的更新檔檔案

 patch

把diff生成的更新檔檔案應用到現有代碼上。

#patch A C 

得到修改後的檔案B 

#patch -R B C 

可以重新還原到A 

vi文本編輯工具

是基于字元界面的文本編輯工具,也是Linux急救模式的唯一編輯工具。vi功能強大,編輯檔案過程中還可以執行輸出、删除、查找、替換和塊操作等功能。

 vi的工作模式

1)指令模式

所有按鍵的輸入都被視為指令接收,包括’:‘指令。按i、a、o 等指令進入編輯模式 

2)編輯模式  

鍵入的每一個鍵都代表一個将要輸入到文本中的字元。 按Esc鍵退出編輯模式,一個好習慣就是編輯過程中多按Esc鍵 。 

啟動和退出vi

$ vi 檔案名 

:wq (存盤退出)

:q!    (不儲存修改,退出)

光标移動指令 

左方向← 鍵、右方向→鍵、向下方向↓鍵、上方向↑鍵。

向下翻頁PageDown鍵、向上翻頁PageUp鍵。

:0: 等價于Home鍵,移至首行。

:$: 等價于End鍵,移至首尾。

: ^: 移至行首。

:5 移至第5行

進入編輯模式指令 

I:在行首輸入。

A:在行尾輸入。

O:在光标所在行上插入一新行。

i:在光标所在字元前插入。

a:在光标所在字元後插入。

o:在光标所在行下插入一新行。

删除、修改和取消指令 

X:删除光标前一字元。(backspace)

x:删除光标所在的字元(delete)。

dd:删除光标所在的行。

n dd:删除光标所在的n行。

dw:删除光标所在的一個字。

u:恢複上一次操作。

複制與粘貼指令 

yy:複制光标所在整行到粘貼闆。

n yy:複制光标所在n行到粘貼闆。

yw:複制光标所在一個字到粘貼闆。

y^:複制光标至行首到粘貼闆。

y$:複制光标至行尾到粘貼闆。

p:粘貼到光标後。

P:粘貼到光标前。

查找與替換指令 

:[range] s/patern/string/[c,g,i]

其中:[range]指定查找範圍,如全部查找:1,$。

patern指定查找字元串

string指定新替換串

c每次替換前詢問是否确認

g表示不詢問,全部替換

i不區分大小寫。

例如, :1,$ s/oldstring/newstring/g

其他指令

:w newfile――另存檔案為newfile。

:! Command――不退出vi執行shell指令――command。

:r filename――将檔案filename讀入編輯區。

:set number――設定行号。

:ce――本行文字居中。

:ri――本行文字右對齊。

:le――本行文字左對齊。

複制、移動和删除檔案的指令 

$ cp[選項] 源檔案  目标檔案

用于複制檔案和目錄。 

-f:強行複制檔案或目錄,不作任何提示。 

-i:覆寫已有檔案之前先詢問使用者。

-p:保留源檔案或目錄的屬性。

-r:遞歸處理,将指定目錄下的檔案與子目錄一并處理。

-R:同-r。

-v:顯示指令執行過程。 

mv  ($ mv [選項] 源檔案  目标檔案)

-b:覆寫目标檔案之前作備份,備份檔案會在字尾加上一個備份字元串“~”。

rm  

用于删除檔案或目錄。

-f:強制删除檔案或目錄。

-i:删除既有檔案或目錄之前先詢問使用者。

-r:遞歸處理,将指定目錄下的所有檔案及子目錄一并處理。

-v:顯示指令執行過程 

(講解root使用者使用rm –rf 删除系統目錄的危險性:

#rm –rf /home/test )

檔案連結指令 

ln  ($ ln [選項] [源檔案或目錄] [目标檔案或目錄])

用于建立檔案或目錄的的軟、硬連結。

-f:強行建立檔案的連結,不論檔案是否存在。

-i:覆寫既有檔案之前先詢問使用者。

-s:對源檔案建立符号連結,而非硬連結。 

查詢和修改使用者工作目錄的指令 

 pwd 

用于顯示使用者的工作目錄。

cd   ($ cd  [目标目錄])

用于改變使用者的工作目錄。

建立和删除子目錄的指令 

mkdir 

用于建立子目錄。

-m:建立目錄時同時設定目錄的權限。

-p:若所要建立目錄的父目錄目前尚未建立,則會一并建立父目錄。

rmdir 

删除空子目錄。但是,删除包含檔案的目錄要用rm –rf 指令。

了解磁盤空間的指令 

du ($ du  [選項] [目錄])

用于了解目錄或檔案所占磁盤空間。

-a:遞歸地顯示目錄中各檔案及子目錄中各檔案占用的資料塊數。

-b:以位元組為機關顯示。

-k:以1024位元組為機關顯示。

-c:最後一行加入總計占用的資料塊總數。

df  ($ df  [選項] [目錄])

用于顯示磁盤檔案系統的使用情況。

-a:顯示全部檔案系統。

-h:以1024位元組為機關顯示。

-i:顯示inodes資訊。

-T:同時顯示檔案系統類型資訊。

顯示變量内容和檔案屬性的指令 

echo  (echo[選項] [資訊内容] )

用于在顯示器上顯示資訊。

-n//輸出文本後不換行。

[資訊内容]可以是字元串或變量。

$ echo “abcd”

file ($ file[選項] 檔案名)、stat

用于顯示檔案的屬性資訊。

$ file file

$ stat file

 touch($ touch[選項] 檔案名)

用于建立空檔案或修改檔案時間。

-a:隻改變檔案存取時間。

-m:隻修改檔案的的修改時間。

-r:指定參考檔案,使檔案的日期設定與參考檔案的日期一緻。

例:(1)将檔案的存取時間設為目前時間。

$touch –a file

(2)建立空檔案。

$touch file1

系統通信指令 

write ($write  [使用者名][字元串])

用于向線上使用者釋出資訊,但不能向非線上使用者發資訊。

輸入Ctrl+D結束釋出的資訊。

#useradd test    //建立test使用者

#passwd test    //給test使用者授權密碼

wall  (wall  [字元串])

用于向所有線上使用者釋出資訊,适合所有系統使用者。

mesg ($ mesg  [y/n])

用于設定允許或拒絕接收由普通使用者發來的write、 wall和talk通信資訊,但對root的資訊無效。

例如:$mesg n 

核心及使用者資訊查詢指令 

uname 

用于顯示核心資訊。

-a:以如下順序顯示所有核心資訊。

-s:核心名

-n:網絡主機名

-r:核心版本

-v:釋出日期

-p:處理器型号

-i:硬體平台

finger  $ finger  [使用者名] 

用于顯示系統使用者的配置資訊。

whoami 

用于顯示目前登入使用者的資訊。

id ($ id [使用者名])

who  ($ w或who )

顯示所有系統線上使用者資訊 。

清屏及記憶體與磁盤同步指令 

clear

清屏指令

sync 

用于把記憶體資訊寫入硬碟,實作同步。關機或重新開機時,系統自動執行該指令。

其他基本操作指令 

cal  ($ cal  [選項] [month[year]])

用于顯示月曆。

-j:以1月1日起的天數顯示。

date ($ date  [格式串])

用于顯示或設定系統的日期與時間。

其中: [格式串]為MMDDhhmm[[CC]YY][.ss]的格式。

MM為月份,DD為日期,hh為小時,mm為分鐘,CC為年份前面兩位數字,YY為年份後面兩位數字,ss為秒數。

su (su – 使用者名)

更換使用者身份指令。

$su root      $su – root   $su peng

上一篇: linux指令
下一篇: Linux指令

繼續閱讀