1. 程式人生 > 實用技巧 >RedHat-Linux操作指令第1篇

RedHat-Linux操作指令第1篇

不同的linux系統切換方式會稍有一點差別
從圖形介面切換到字元介面:Alt+F(1-8) 或者 Alt+Ctrl+Shift+F(1-8)
從字元介面切換回圖形介面:Alt+F7
字元介面啟動到圖形介面使用:startx 或者 init5

WIN10
Fn+ctrl+alt+f8
Fn+ctrl+alt+f2

alt+tab(雙擊) 顯示操作的命令記錄

Linux命令
用於實現某一類功能的指令或程式
命令的執行依賴於直譯器程式(例如:/bin/bash)

Linux命令的分類
內部命令:屬於Shell直譯器的一部分
外部命令:獨立於Shell直譯器之外的程式檔案

Linux命令的通用命令格式
命令字 [選項] [引數]
選項及引數的含義
選項:用於調節命令的具體功能
以 “-”引導短格式選項(單個字元),例如“-l”
以“--”引導長格式選項(多個字元),例如“--color”
多個短格式選項可以寫在一起,只用一個“-”引導,例如“-al”
引數:命令操作的物件,如檔案、目錄名等

命令列編輯的快捷鍵:
1、Tab鍵:自動補齊
2、反斜槓“\”:強制換行
3、快捷鍵 Ctrl+U:清空至行首
4、快捷鍵 Ctrl+K:清空至行尾
5、快捷鍵 Ctrl+L:清屏
6、快捷鍵 Ctrl+C:取消本次命令編輯

內部命令help
檢視Bash內部命令的幫助資訊
命令的“--help” 選項
適用於大多數外部命令
使用man命令閱讀手冊頁
使用“”、“”方向鍵滾動文字
使用Page Up和Page Down鍵翻頁
按Q或q鍵退出閱讀環境、按“/”鍵後查詢內容
使用info命令閱讀資訊頁

一、目錄操作命令---5個
1、cd命令---切換工作目錄
絕對路徑:以“/”開始的路徑,表示從Linux目錄結構的最頂點算起
相對路徑:不“/”開始的路徑,可以相對於當前目錄、父目錄、其他使用者的目錄等作為起始點,使用形式如下:
1)直接使用檔名/目錄名;
2)以 “.” 或 “..” 開始的路徑;
3)以 “~使用者名稱” 的形式開始的路徑

格式:
cd .  當前目錄
cd ./ 當前目錄
cd / 返回根	
cd  從別的目錄下切換到宿主目錄,即/root目錄
cd /目錄名 切換到對應的目錄名位置,絕對路徑
cd 目錄名1/目錄名2/目錄名3... 進入到次級目錄,前提是當前目錄下存在目錄名1
cd ../  或cd .. 切換到上一級目錄
cd ../../ 切換到上兩級目錄
cd ~使用者名稱  切換到相應使用者名稱下對應的目錄
cd - 切換到上一次(執行cd命令前)操作的目錄

2、pwd命令---返回當前的所在目錄

3、ls命令---列表(List)顯示目錄內容
格式:ls [選項]... [目錄或檔名]

常用命令選項:
-a:顯示所有子目錄和檔案的資訊,包括隱藏檔案
-A:類似於“-a”,但不顯示“.”和“..”目錄的資訊
-d:顯示目錄本身的屬性
-l :以長格式顯示
-h:以更易讀的位元組單位(K、M等)顯示資訊
-R:遞迴顯示內容
--color:以顏色區分不同型別檔案

定義別名:
alias 別名='原命令組合'
示例:alias myls='ls -alh'

*萬用字元,匹配零個、1個或者多個任意字元。
ls install.log*

?萬用字元,匹配一個任意字元。
示例:ls -lh install.???

4、mkdir命令---建立目錄
建立目錄: mkdir [-p] [/路徑/] 目錄名稱
mkdir 目錄名1 在當前目錄下建立名為目錄名1的目錄
mkdir 目錄名1 目錄名2 目錄名3 在當前目錄下同時建立名為目錄名1、目錄名2、目錄名3的目錄
mkdir -p 目錄名1/目錄名2/目錄名3 建立多層次目錄
mkdir /目錄1/目錄N 在目錄1下建立名為目錄N的資料夾;/目錄1 為絕對路徑

說明:
1、mkdir命令用於建立新的空目錄,可以同時建立多個目錄
2、較常用到的選項為“-p”,該命令用於建立巢狀的多層目錄結構
3、若不使用“-p”選項,則只能在已經存在的目錄中建立其他子目錄

5、du命令---統計目錄及檔案的空間佔用情況
用途:統計目錄及檔案的空間佔用情況(estimate file space usage)
格式:du [選項]... [目錄或檔名]

常用命令選項
-a:統計時包括所有的檔案,而不僅僅只統計目錄 
-h:以更易讀的位元組單位(K、M等)顯示資訊
-s:只統計每個引數所佔用空間總的大小

二、檔案操作命令---8個
1、touch命令---建立檔案/更新檔案時間標記
格式:touch 檔名1 檔名2 檔名3
命令解析:在當前目錄下同時建立多個檔案,檔案內容為空

2、file命令---檢視檔案內容的格式
格式:file 檔名
說明:
1、當內容為空時,顯示“empty”。

3、cp命令---複製檔案或目錄
格式:cp [選項] 原始檔或目錄 目標檔案或目錄
命令解析:把原始檔或目錄複製到目標檔案或目錄
如果複製的是目錄選項必須有 -r (遞迴複製整個目錄樹)

常用命令選項:
-r:遞迴複製整個目錄樹
-f:強制覆蓋目標同名檔案或目錄
-i:需要覆蓋檔案或目錄時進行提醒
-p:保持原始檔的屬性不變

4、rm命令---刪除(Remove)檔案或目錄
格式:rm [選項]... 檔案或目錄
如果刪除的是目錄選項必須有 -r (遞迴刪除整個目錄樹)

常用命令選項:
-r:遞迴刪除整個目錄樹
-f:強行刪除檔案或目錄,不進行提醒
-i:刪除檔案或目錄時提醒使用者確認

說明:
1、使用“rm -rf 目錄名”的形式可以不經提示即直接刪除整個目錄樹,應慎用

5、mv命令---移動(Move)檔案或目錄
格式:mv [選項]... 原始檔或目錄… 目標檔案或目錄

說明:
1、如果目標位置與源位置相同,則效果相當於為檔案或目錄改名
2、若需要移動的是多個檔案或目錄時,則目標必須是目錄

6、which命令---查詢Linux命令對應檔案並顯示所在的位置
格式:which 命令或程式名

說明:
1、搜尋範圍由 PATH 環境變數指定

7、find命令---用於查詢檔案或目錄
格式:find [查詢範圍] [查詢條件]

常用查詢條件:
-name:按檔名稱查詢
-size:按檔案大小查詢
-user:按檔案屬主查詢
-type:按檔案型別查詢

說明:
1、按名稱查詢:關鍵字為“-name”,根據目標檔案的部分名稱查詢,允許使用“*”及“?”萬用字元。
2、按檔案大小查詢:關鍵字為“-size”,根據目標檔案的大小進行查詢,一般使用“+”、“-”號設定超過或小於指定的大小作為查詢條件。常用的容量單位包括k(注意是小寫)、M、G。
3、按檔案屬主查詢:關鍵字為“-user”,根據檔案是否屬於目標使用者進行查詢。
4、按檔案型別查詢:關鍵字為“-type”,根據檔案的型別進行查詢,這裡的型別指的是普通檔案(f)、目錄(d)、塊裝置檔案(b)、字元裝置檔案(c)等。塊裝置指的是成塊讀取資料的裝置(如硬碟、記憶體等),而字元裝置指的是按單個字元讀取資料的裝置(如鍵盤、滑鼠等) 

注意:
1、	缺寫查詢範圍,代表當前目錄下查詢。

2、	查詢條件:
–name 按名稱 、-size 按檔案大小 、 -user 按檔案建立者 、-type 按檔案型別。

3、	條件的內容需要用雙引號;內容一般需要使用萬用字元* 或 _

4、檔案型別:
1)-/f:普通檔案  ;顯示顏色:白色
2)d:目錄;顯示顏色: 藍色
3)b:塊裝置檔案 ,代表磁碟、硬碟 ;顯示顏色:橙色
4)c:字元裝置,代表滑鼠、鍵盤;顯示顏色:黃色;
5)l:軟連線  相當於WINDOWS下的桌面快捷方式  天藍色

8、ln命令---為檔案或目錄建立連結(Link)
格式:ln [-s] 原始檔或目錄… 連結檔案或目標目錄

常用命令選項
-s:建立符號連結檔案(省略此項則建立硬連結)

關於連結檔案
1、符號連結:指向原始檔案所在的路徑,又稱為軟連結
2、硬連結:指向原始檔案對應的資料儲存位置
3、不能為目錄建立硬連結檔案
4、硬連結與原始檔案必須位於同一分割槽(檔案系統)中

為檔案或目錄建立連線,link  相當於在WINDOWS下在桌面建立快捷方式。

軟連線:ln [-s] 原始檔/目錄 目標檔案/目錄
硬連線:ln  原始檔 目標檔案

注意:
	1、軟連線的原始檔路徑必須寫全完整的路徑,即從/根目錄開始寫。
	2、修改硬連線內容,軟連線、原始檔內容會同時發生改變;
		修改軟連線內容,硬連線、原始檔內容會同時發生改變。
		修改原始檔內容,軟連線、硬連線內容會同時發生改變。
	3、刪除原始檔,軟連線會顯示紅色,並且失效。硬連線檔案內容保持不變並且可以正常使用。
	4、硬連線不能操作目錄;不能跨分割槽操作。
	5、硬連線無-s。
	6、符號/軟連結:指向原檔案所在的路徑,刪除目標檔案或目錄時不能查到,軟連結與原始檔案可以位於不同分割槽中。
	7、硬連結:指向原始檔案對應的資料儲存位置,不能為目錄建立硬連結檔案,硬連結與原始檔案必須位於同一分割槽中。

刪除原始檔案後,硬連結無影響,還能檢視。

三、檔案內容操作命令---7個
1、 cat命令---用於顯示出檔案的全部內容
格式:cat 檔名

說明:
1、檔案內容操作命令都需要使用文字檔案的名稱作為命令引數(或者通過管道操作獲取文字內容)
2、cat命令本來用於連線多個檔案的內容,但在實際使用中更多的用於檢視檔案內容
3、當檔案內容較多時,使用cat命令往往只能看到檔案的最後一部分內容,而無法分頁逐屏顯示,若要分頁顯示,需要使用另外兩個命令:more、less

2、more命令---全屏方式分頁顯示檔案內容
格式:more 檔名
互動操作方法:
1、按Enter鍵向下逐行滾動
2、按空格鍵向下翻一屏、按b鍵向上翻一屏
3、按q鍵退出。

注意:
1、在分頁閱讀介面中,到檔案末尾時more命令會自動退出,less命令不會。
2、無法控制游標的移動。移動到檔案末尾,會自動結束。
3、more命令結合管道操作使用時(例如:ls -R /etc | more)無法向上翻頁,但less命令可以
4、more和less都可以用於分頁檢視文字內容,具體使用哪一個看使用者習慣
5、全屏方式分頁顯示檔案內容,可以實行滾動,翻屏的互動操作。

3、less命令---與more命令相同,但擴充套件功能更多
格式:less 檔名

說明:
1、與more命令基本類似,但個別操作會有些出入
2、more命令結合管道操作使用時(例如:ls -R /etc |more)無法向上翻頁,但less命令可以在分頁閱讀介面中,到檔案末尾時more命令會自動退出,less命令不會。
3、more和less都可以用於分頁檢視文字內容,具體使用哪一個看使用者習慣
4、less 特點:與more命令相同,但是擴充套件功能更多。互動操作也類似,但個別的操作會有些不同,如:開啟檔案後可以按鍵盤上下左右鍵移動游標位置;翻頁到檔案最後位置時不會自動退出文字,需要按q才退出。

4、head命令---檢視檔案開頭的一部分內容(預設為10行)
格式:head -n 檔名

說明:
1、n為設定的行數,不寫時為預設行數。

5、tail命令---檢視檔案結尾的少部分內容(預設為10行)
格式:tail -n 檔名
tail -f 檔名
說明:
1、tail命令結合“-f”選項使用時,可以用於跟蹤日誌檔案末尾的內容變化,實時顯示更新的日誌內容。

6、wc命令---統計檔案中的單詞數量(Word Count)等資訊
格式:wc [選項]... 目標檔案...

常用命令選項:
-l:統計行數
-w:統計單詞個數 
-c:統計位元組數

說明:
1、選項預設,統計行數、單詞個數、位元組數。

7、grep命令---在檔案中查詢並顯示包含指定字串的所在的行
格式:grep [選項]... 查詢條件 目標檔案

常用命令選項:
-i:查詢時忽略大小寫
-v:反轉查詢,輸出與查詢條件不相符的行。

查詢條件設定:
1、要查詢的字串以雙引號括起來。
2、“^……”表示以……開頭;“……$”表示以……結尾;“^$”表示空行。
3、查詢條件一般使用正則表示式,正則表示式是一組特殊字元組成的一組公式。

示例1:過濾出hosts檔案中的非註釋行(不以”#“號開頭的行)
	[root@localhost ~]# grep -v "^#" /etc/hosts
	127.0.0.1       localhost.localdomain   localhost
	::1     localhost6.localdomain6 localhost6

示例2:查詢系統啟動時識別的USB匯流排資訊
	[root@localhost ~]# dmesg | grep "USB"
	drivers/usb/input/hid-core.c: v2.6:USB HID core driver
	USB Universal Host Controller Interface driver v3.0
	uhci_hcd 0000:02:00.0: new USB bus registered, assigned bus number 1
	hub 1-0:1.0: USB hub found
	ohci_hcd: 2005 April 22 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
	ehci_hcd 0000:02:03.0: new USB bus registered, assigned bus number 2
	ehci_hcd 0000:02:03.0: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
	hub 2-0:1.0: USB hub found

四、歸檔壓縮命令---3個
1、gzip命令、bzip2命令---製作壓縮檔案、解開壓縮檔案

1)格式:gzip命令壓縮檔案
gzip -9 檔名1 檔名2 …
	注意:
	1、gzip壓縮後文件名為 .gz的壓縮檔案
	2、是純正的自由軟體,效能不錯。若沒有加上任何引數,生成壓縮檔案後,會刪除原始檔案。可以提高壓縮率。
	3、-9中的數字能自由選擇1-9 數字越大壓縮效果越好。預設為6。
	4、目錄壓縮:目錄不能直接壓縮,必須先打包後壓縮。

2)格式:bzip2命令壓縮檔案
bzip2 -9 檔名1 檔名2 …
	注意:
	1、bzip2壓縮後文件名為 . bz2的壓縮檔案
	2、採用了新的壓縮演演算法,壓縮效果比傳統的壓縮演算法好。若沒有加上任何引數,生成壓縮檔案後,會刪除原始檔案。
	3、目錄壓縮:目錄不能直接壓縮,必須先打包後壓縮。

1)格式:gzip解壓檔案
gzip –d *.gz格式的壓縮檔案

2)格式:gzip解壓檔案
bzip2 -d *.bz2格式的壓縮檔案

常用命令選項:
-9:表示高壓縮比,多在建立壓縮包時用
-d:用於解開已經壓縮過的檔案

注意事項:
1、gzip壓縮的檔案只能用gzip解壓;bzip2壓縮的檔案只能用bzip2解壓。

2、tar命令---製作歸檔/打包檔案、釋放歸檔/解包檔案
1)打包格式:
tar -c[選項]... 歸檔/打包檔名 原始檔或目錄

	tar -cvf 歸檔後的名稱.tar 原始檔或目錄
	
	tar -cf 歸檔後的名稱.tar 原始檔或目錄
	

2)解包到當前工作目錄格式:
	tar  -x[選項]...  歸檔/打包檔名  

	tar -xvf 歸檔之後的名稱.tar
	
	tar -xf 歸檔之後的名稱.tar
	

   解包到非當前使用者所在目錄:
	tar  -x[選項]...  歸檔/打包檔名  [-C 目標目錄]

	常用命令選項:
	-c:建立 .tar 格式的包檔案----必要,必須使用
	-x:解開.tar格式的包檔案---必要,必須使用
	-v:輸出詳細資訊---非必要,可選可不選
	-f:表示使用歸檔檔案---必要,必須使用
	-p:打包時保留原始檔案及目錄的許可權---非必要,可選可不選
	-t:列表檢視包內的檔案---相當於使用WINDOWS下雙擊壓縮包,檢視裡面的內容。
	-C:解包時指定釋放的目標資料夾
	-z:呼叫gzip程式進行壓縮或解壓
	-j:呼叫bzip2程式進行壓縮或解壓

	注意:
	1、C為大寫。
	2、製作歸檔檔案的意思是將許多零散的檔案做成一個包(可以壓縮,也可以不壓縮)
	3、小寫字母“-p”選項用於保持原始檔案許可權等資訊,大寫字母“-P”選項用於保持原始檔案的絕對路徑,參考“man tar”幫助
	4、使用tar命令時,選項前的“-”號引導字元可以省略
	5、在實際的備份工作中,通常在歸檔的同時也會將包檔案進行壓縮,以便節省磁碟空間,

3、打壓縮包、解壓縮包
打包壓縮
tar -zcvf 歸檔之後的名稱.tar.gz 原始檔或目錄
tar -zcf 歸檔之後的名稱tar.gz 原始檔或目錄

tar -jcvf 歸檔之後的名稱.tar.bz2  原始檔或目錄
tar -jcf 歸檔之後的名稱.tar.bz2  原始檔或目錄

解包解壓縮
tar -zxvf 歸檔之後的名稱.tar.gz 原始檔或目錄
tar -zxf 歸檔之後的名稱tar.gz 原始檔或目錄  [-C 目標路徑]

tar -jxvf 歸檔之後的名稱.tar.bz2  原始檔或目錄
tar -jxf 歸檔之後的名稱.tar.bz2  原始檔或目錄

五、檔案/目錄的許可權和歸屬

訪問許可權
	讀取:允許檢視檔案內容、顯示目錄列表
	寫入:允許修改檔案內容,允許在目錄中新建、移動、刪除檔案或子目錄
	可執行:允許執行程式、切換目錄
	
歸屬(所有權)
	屬主:擁有該檔案或目錄的使用者帳號
	屬組:擁有該檔案或目錄的組帳號

使用者對檔案到底擁有何種許可權,需要由訪問許可權和歸屬(所有權)共同決定

1、chmod命令---設定檔案或目錄的許可權
格式1:chmod [ugoa] [+-=] [rwx] 檔案或目錄...
chmod ugoa+-=r/w/x 檔案/目錄
格式2:chmod nnn 檔案或目錄
常用命令選項
-R:遞迴修改指定目錄下所有檔案、子目錄的許可權

	說明:
		1、u、g、o、a 分別表示屬主、屬組、其他使用者、所有使用者 
		2、+、-、= 分別表示增加、去除、設定許可權
		3、多組分配許可權用逗號分隔:chmod  ugoa+-=r/w/x,ugoa+-=r/w/x  檔案/目錄
		4、r、w、x、- 許可權字元還可分別表示為8進位制數字4、2、1、0;屬主 可讀可寫可執行:rwx 4+2+1=7、屬組可讀可寫:rw 4+2=6、其他可讀:r 4  
		5、回收所有許可權設為0,分配所有許可權設為7.	
		6、在表示屬主、屬組內使用者或其他使用者對該檔案的訪問許可權時,主要使用了四種不同的許可權字元: r    可讀 ;w   可寫 ;x   可執行 ;-無許可權 

示例:“-rw-r—r--”
1、第一個字元表示檔案型別,可以是d(目錄)、b(塊裝置檔案)、c(字元裝置檔案),減號“-”(普通檔案)、字母“l”(連結檔案)等
2、其餘部分指定了檔案的訪問許可權

示例1:重新設定mymkdir檔案的許可權,為屬主使用者新增執行許可權,去除其他使用者的讀取許可權
[root@localhost ~]# chmod u+x,o-r mymkdir
[root@localhost ~]# ls -l mymkdir
-rwxr----- 1 root root 29588 05-12 06:19 mymkdir

示例2:重新設定mymkdir檔案的訪問許可權,恢復為“rwxr-xr-x”
[root@localhost ~]# chmod 755 mymkdir
[root@localhost ~]# ls -l mymkdir
-rwxr-xr-x 1 root root 29588 05-12 06:19 mymkdir 

示例3:使用遞迴的方式將“/usr/src/”目錄中所有子目錄、檔案的許可權都設定為“rw-r--r--”
[root@localhost ~]# chmod -R 644 /usr/src/
“nnn”為需要設定的具體許可權值,如“755”、“644”等

附加許可權:
1、SET位許可權
	主要用途:
	 為可執行(有 x 許可權的)檔案設定,許可權字元為“s”
	 其他使用者執行該檔案時,將擁有屬主或屬組使用者的許可權
	 
SET位許可權型別:
	 SUID:表示對屬主使用者增加SET位許可權
	 SGID:表示對屬組內的使用者增加SET位許可權


普通使用者並沒有許可權修改“/etc/shadow”檔案,那為什麼可以修改自己的登入密碼呢?
因為:passwd命令程式被設定了SUID許可權,普通使用者在執行該命令時臨時獲得相當於屬主使用者(root)的許可權

	注意:					1、不要輕易為可執行檔案設定SET位許可權,特別是對於那些屬主、屬組是root的執行程式,使用SET位許可權時更應該慎重。例如,若為vim編輯器程式設定SUID許可權,將導致普通使用者也可以使用vim編輯器修改系統中的任何配置檔案。

2、粘滯位許可權(Sticky)
主要用途:
		為公共目錄(例如,許可權為777的)設定,許可權字元為“t”
		使用者不能刪除該目錄中其他使用者的檔案
		
		說明:
			1、由於系統及服務程式執行的需要, Linux提供了/tmp、/var/tmp等臨時目錄,允許任意使用者、程式寫入資料
			2、若任意一個普通使用者都能夠刪除系統服務執行中使用的臨時檔案,將造成什麼後果?
			設定粘滯位以後,正好可以保持一種動態的平衡:允許各使用者在目錄中任意寫入、刪除資料,但是禁止隨意刪除其他使用者的資料 

3、設定SET位、粘滯位許可權
	使用許可權字元
		 chmod  ug±s  可執行檔案...
		 chmod  o±t  目錄名...
	使用許可權數字:
		 chmod  mnnn  可執行檔案...
		 m為4時,對應SUID,2對應SGID,1對應粘滯位,可疊加
		 
		說明:
		1、SET位標記字元為“s”,若使用8進位制數字形式,則SUID對應為“4”、SGID對應為“2”
		2、在許可權模式中可採用“nnnn”的形式時,如“4755”表示設定SUID許可權、“6755”表示同時設定SUID、SGID許可權
		3、以為 /bin/touch 命令設定SUID許可權為例進行演示,普通使用者使用該命令建立測試檔案,比較新建檔案的屬主變化
		
		注意:
		1、為普通檔案(無執行許可權的)設定SET位許可權從語法上雖然也可行,但沒有實際意義(標記字元將變為大寫字母“S”)
		通過例項操作演示,展示粘滯位的作用,例如:由普通使用者1在 /tmp 目錄中嘗試刪除 普通使用者2的檔案,對比是否設定粘滯位的區別
		
		2、為普通檔案或者使用者本沒有寫入許可權的目錄設定粘滯位語法上也是可行的,但沒有實際意義(標記字元將變為大寫字母“T”)

2、設定檔案或目錄的歸屬
chown命令
格式:chown 屬主 檔案或目錄
chown :屬組 檔案或目錄
chown 屬主:屬組 檔案或目錄
常用命令選項
-R:遞迴修改指定目錄下所有檔案、子目錄的歸屬

說明:
1、需要設定檔案或者目錄的歸屬時,可以通過chown、chgrp命令進行
2、chown命令既可以修改屬主,也可以修改屬組,而chgrp命令只用於修改屬組資訊(因此並不常用)