

Linux常用操作命令及示例大全
1. Linux基礎篇
1.1 Linux介紹
-
• Linux怎麼讀:最通用的讀法:/li’nʌks/(“裡那克斯”)或/'li:nэks/(“裡訥克斯”)或/li’nju:ks/(“裡紐克斯”)。 -
• Linux是一款作業系統,其特點是免費、開源、安全、高效、穩定,處理高併發非常強悍。現在很多的企業級專案都部署Linux/Unix伺服器執行。 -
• Linux的發行版本主要有:Red Hat Linux、Debian Linux、Ubuntu Linux、Suse Linux等。 -
• Linux的起源:Linux 核心最初是由李納斯•託瓦茲(Linus Torvalds)在赫爾辛基大學讀書時出於個人愛好而編寫的。
1.2 Linux和Unix的關係
-
• UNIX 作業系統由肯•湯普森(Ken Thompson)和丹尼斯•裡奇(Dennis Ritchie)發明。它的部分技術來源可追溯到從 1965 年開始的 Multics 工程計劃,該計劃由貝爾實驗室、美國麻省理工學院和通用電氣公司聯合發起,目標是開發一種互動式的、具有多道程式處理能力的分時作業系統,以取代當時廣泛使用的批處理作業系統。 -
• 二者的關係:UNIX 是 Linux 的父親。Linux 是一個類似 Unix 的作業系統,Unix 要早於 Linux,Linux 的初衷就是要替代 UNIX,並在功能和使用者體驗上進行最佳化,所以 Linux 模仿了 UNIX(但並沒有抄襲 UNIX 的原始碼),使得 Linux 在外觀和互動上與 UNIX 非常類似。
UNIX/Linux 系統可以粗糙地抽象為 3 個層次:底層是 UNIX/Linux 作業系統,即系統核心(Kernel);中間層是 Shell 層,即命令解釋層;高層則是應用層。

1) 核心層
2) Shell層
3) 應用層
1.3 橋接、NAT、僅主機的區別
-
• 橋接:橋接網路是指本地物理網絡卡和虛擬網絡卡透過VMnet0虛擬交換機進行橋接,物理網絡卡和虛擬網絡卡在拓撲圖上處於同等地位,那麼物理網絡卡和虛擬網絡卡就相當於處於同一個網段,虛擬交換機就相當於一臺現實網路中的交換機,所以兩個網絡卡的IP地址也要設定為同一網段。 所以當我們要在區域網使用虛擬機器,對區域網其他pc提供服務時,例如提供ftp,提供ssh,提供http服務,那麼就要選擇橋接模式。 在這裡插入圖片描述 -
• NAT:NAT模式中,就是讓虛擬機器藉助NAT(網路地址轉換)功能,透過宿主機器所在的網路來訪問公網。 NAT模式中,虛擬機器的網絡卡和物理網絡卡的網路,不在同一個網路,虛擬機器的網絡卡,是在vmware提供的一個虛擬網路。 在這裡插入圖片描述 -
• 僅主機: 在Host-Only模式下,虛擬網路是一個全封閉的網路,它唯一能夠訪問的就是主機。其實Host-Only網路和NAT網路很相似,不同的地方就是Host-Only網路沒有NAT服務,所以虛擬網路不能連線到Internet。
NAT和橋接的對比:
• NAT模式和橋接模式虛擬機器都可以上外網。 • 由於NAT的網路在vmware提供的一個虛擬網路裡,所以區域網其他主機是無法訪問虛擬機器的,而宿主機可以訪問虛擬機器,虛擬機器可以訪問區域網的所有主機,因為真實的區域網相對於NAT的虛擬網路,就是NAT的虛擬網路的外網。 • 橋接模式下,多個虛擬機器之間可以互相訪問;NAT模式下,多個虛擬機器之間也可以相互訪問。
在VMware的3種網路模式中,NAT模式是最簡單的,基本不需要手動配置IP地址等相關引數。至於橋接模式則需要額外的IP地址,如果是在內網環境中還很容易,如果是ADSL寬頻就比較麻煩了,因為很難多出一個公網IP。
2. Linux 實操篇 實用指令
2.1 指定執行級別
1)分類
-
• 0:關機 -
• 1:單使用者【可用於找回丟失密碼】 -
• 2:多使用者狀態無網路服務 -
• 3:多使用者狀態有網路服務 -
• 4:系統未使用保留給使用者 -
• 5:圖形介面 -
• 6:系統重啟
2) 切換到指定執行級別的指令
init [0/1/2/3/4/5]
切換到單使用者後再切換到圖形介面。

2.2 幫助指令
1) man指令
man [命令或配置檔案](功能描述:獲得幫助資訊)
檢視ls命令的幫助資訊。

2) help指令
help 命令 (功能描述:獲得 shell 內建命令的幫助資訊)
檢視cd命令的幫助資訊。

2.3 檔案目錄類
1) pwd指令
pwd (功能描述:顯示當前工作目錄的絕對路徑)
顯示當前工作目錄的絕對路徑。

2)ls指令
ls [ 選 項] [目錄或是檔案]
-
• -a :顯示當前目錄所有的檔案和目錄,包括隱藏的。 -
• -l :以列表的方式顯示資訊。
檢視當前目錄的所有內容資訊。

3)cd指令
cd [引數] (功能描述:切換到指定目錄)
使用絕對路徑切換到 root 目錄。

4)mkdir指令
mkdir 指令用於建立目錄(make directory)
mkdir [選項] 要建立的目錄
-
• -p:建立多級目錄
1.建立一個目錄/home/dog

2.建立一個多級目錄/home/animal/tiger

5)rmdir指令
rmdir 指令刪除空目錄
rmdir [選項] 要刪除的空目錄
需要刪除非空目錄時,需要使用rm -rf 要刪除的目錄名
指令。
1.刪除一個目錄/home/dog。

2.刪除一個非空目錄/home/naimal。

6)touch指令
touch指令建立空檔案
touch 檔名稱
建立一個空檔案 hello.txt。

7)cp指令
cp 指令複製檔案到指定目錄
cp [選項] source dest
-
• -r:遞迴複製整個資料夾
1.將/home/aaa.txt
複製到/home/bbb
目錄下[複製單個檔案]

2.遞迴複製整個資料夾,將/home/test
整個目錄複製到/home/test1
目錄[複製非空資料夾]

8)rm指令
rm 指令移除【刪除】檔案或目錄
rm [選項] 要刪除的檔案或目錄
-
• -r:遞迴刪除整個資料夾 -
• -f:強制刪除不提示
1.將/home/aaa.txt
刪除。

2.遞迴刪除整個資料夾/home/bbb
。

9)mv指令
mv 移動檔案、目錄或重新命名
mv oldNameFile newNameFile (功能描述:重新命名) mv /temp/movefile /targetFolder (功能描述:移動檔案)
1.將/home/aaa.txt
檔案重新命名為pig.txt
。

2.將/home/pig.txt
檔案移動到/home
目錄下。

10)cat指令
cat 檢視檔案內容,是以只讀的方式開啟
cat [選項] 要檢視的檔案
-
• -n:顯示行號
cat 只能瀏覽檔案,而不能修改檔案,為了瀏覽方便,一般會帶上 管道命令 | more語法為:cat 檔名 | more [分頁瀏覽]
1.顯示/etc/profile
檔案內容,並顯示行號。

1.分頁顯示/etc/profile
檔案內容,並顯示行號。


11)more指令
more 指令是一個基於 VI 編輯器的文字過濾器,它以全螢幕的方式按頁顯示文字檔案的內容。
more 要檢視的檔案
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
採用more檢視/etc/profile
檔案。

12)less指令
less 指令用來分屏檢視檔案內容,它的功能與 more 指令類似,但是比 more 指令更加強大,支援各種顯示終端。less 指令在顯示檔案內容時,並不是一次將整個檔案載入之後才顯示,而是根據顯示需要載入內容,對於顯示大型檔案具有較高的效率。
less 要檢視的檔案
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13)> 指令 和 >> 指令
> 輸出重定向 : 會將原來的檔案的內容覆蓋>> 追加: 不會覆蓋原來檔案的內容,而是追加到檔案的尾部
1)ls -l > 檔名 (內容覆蓋)2)ls -al >> 檔名 (內容追加)
1.把ls -l
顯示的內容覆蓋寫入到a.txt
檔案中,如果a.txt
檔案不存在,則建立該檔案。

2.把ls -l
顯示的內容追加寫入到a.txt
檔案末尾中。

14)echo指令
echo 輸出內容到控制檯
echo [選項] [輸出內容]
1.使用 echo 指令輸出環境變數,輸出當前的環境路徑

2.使用echo指令輸出hello,world!
這段文字。

15)head指令
head 用於顯示檔案的開頭部分內容,預設情況下 head 指令顯示檔案的前 10 行內容。
head 檔名 (功能描述:檢視檔案頭 10 行內容)head -n 5 檔名 (功能描述:檢視檔案頭 5 行內容,5 可以是任意行數)
1.檢視/etc/profile
的前面五行程式碼。

16)tail指令
tail 用於輸出檔案中尾部的內容,預設情況下 tail 指令顯示檔案的後 10 行內容。
1)tail 檔名 (功能描述:檢視檔案末尾10行的內容)2)tail -n 5 檔名 (功能描述:檢視檔案後5行的內容,5可以是任意行數)3)tail -f 檔名 (功能描述:即時追蹤該文件的所有更新,工作中經常使用)
1.檢視/etc/profile
最後5行的程式碼。

2.即時監控 mydate.txt , 看看到檔案有變化時,是否看到, 即時的追加日期。


17)ln指令
ln指令叫做軟連結也叫符號連結,類似於 windows 裡的快捷方式,主要存放了連結其他檔案的路徑。
ln -s [原檔案或目錄] [軟連結名] (功能描述:給原檔案建立一個軟連結)
刪除一個軟連線時應該用指令rm -rf [軟連線名]
。
1.在/root
目錄下建立一個軟連線linkToHome,連線到/home
目錄。

2.刪除軟連線linkToHome。

2.4 時間日期類
1)date指令 —— 用於顯示
• date (功能描述:顯示當前時間) • date +%Y (功能描述:顯示當前年份) • date +%m(功能描述:顯示當前月份) • date +%d (功能描述:顯示當前是哪一天) • date “+%Y-%m-%d %H:%M:%S”(功能描述:顯示年月日時分秒)
1.顯示當前時間資訊。

2.顯示當前時間年月日。

3.顯示當前時間年月日時分秒。

2)date指令 —— 用於設定
date -s 字串時間
設定當前系統時間為2021-5-20 5:20:20。

3)cal指令
cal指令檢視日曆
• cal (功能描述:顯示本月日曆) • cal 年份 (功能描述:用於顯示一整年的日曆)
1.顯示當前日曆。

2.顯示一整年的日曆。

2.5 搜尋查詢類
1)find指令
find 指令將從指定目錄向下遞迴地遍歷其各個子目錄,將滿足條件的檔案或者目錄顯示在終端。
find [搜尋範圍] [選項]
|
|
|
|
|
|
|
|
1.按檔名查詢:根據名稱查詢/home
目錄下的hello.txt
檔案。

2.按擁有者查詢:查詢/opt
目錄下,使用者名稱為nobody
的檔案。

3.按檔案大小查詢:查詢整個linux系統下大於20m的檔案。(+n大於 -n小於 =n等於)

4.查詢linux系統下,所有以txt
結尾的檔案。

2)locate指令
locate 指令可以快速定位檔案路徑。locate 指令利用事先建立的系統中所有檔名稱及路徑的locate 資料庫實現快速定位給定的檔案。Locate 指令無需遍歷整個檔案系統,查詢速度較快。為了保證查詢結果的準確度,管理員必須定期更新 locate 時刻。
• updatedb (功能描述:建立locate資料庫) • locate 搜尋檔名 (功能描述:搜尋檔案)
使用locate指令快速定位hello.txt檔案所在的目錄。

3)grep指令和管道符號
grep 過濾查詢 , 管道符,“|”,表示將前一個命令的處理結果輸出傳遞給後面的命令處理。
grep [選項] 查詢內容 原始檔
|
|
|
|
|
|
在hello.txt
檔案中查詢yes
所在行,並顯示行號。

2.6 壓縮解壓類
1)gzip/gunzip指令
gzip 用於壓縮檔案, gunzip 用於解壓
• gzip 檔案 (功能描述:壓縮檔案,只能將檔案壓縮為*.gz 檔案) • gunzip 檔案.gz (功能描述:解壓縮檔案命令)
當我們使用 gzip 對檔案進行壓縮後,不會保留原來的檔案。
1.gzip壓縮:將/home
目錄下的hello.txt
檔案進行壓縮。

2.gunzip解壓縮:將/home
目錄下的hello.txt
檔案進行解壓縮。

2)zip/unzip指令
zip 用於壓縮檔案, unzip 用於解壓的,這個在專案打包釋出中很有用的。
• zip [選項] XXX.zip 將要壓縮的內容(功能描述:壓縮檔案和目錄的命令) • unzip [選項] XXX.zip (功能描述:解壓縮檔案)
-
• -r:遞迴壓縮,即壓縮目錄
-
• -d<目錄>:指定解壓後文件的存放目錄
1.將/home
下的所有檔案進行壓縮,壓縮後文件名為mypackage.zip
。

2.將mypackage.zip
解壓到/opt/tmp
目錄下。

3)tar指令
tar 指令 是打包指令,最後打包後的檔案是 .tar.gz 的檔案。
tar [選項] XXX.tar.gz 打包的內容 (功能描述:打包目錄,壓縮後的檔案格式.tar.gz)
|
|
|
|
|
|
|
|
|
|
|
|
zip 用於壓縮檔案, unzip 用於解壓的,這個在專案打包釋出中很有用的。
• zip [選項] XXX.zip 將要壓縮的內容(功能描述:壓縮檔案和目錄的命令) • unzip [選項] XXX.zip (功能描述:解壓縮檔案)
-
• -r:遞迴壓縮,即壓縮目錄
-
• -d<目錄>:指定解壓後文件的存放目錄
1.將/home
下的所有檔案進行壓縮,壓縮後文件名為mypackage.zip
。

2.將mypackage.zip
解壓到/opt/tmp
目錄下。

3)tar指令
tar 指令 是打包指令,最後打包後的檔案是 .tar.gz 的檔案。
tar [選項] XXX.tar.gz 打包的內容 (功能描述:打包目錄,壓縮後的檔案格式.tar.gz)
|
|
|
|
|
|
|
|
|
|
|
|
1.壓縮多個檔案,將/home/a1.txt
和/home/a2.txt
壓縮成a.tar.gz
。

2.將a.tar.gz
解壓到當前目錄。

