後端程式設計師必備的 Linux 基礎知識+常見命令(近萬字總結)
大家好!我是 Guide 哥,Java 後端開發。一個會一點前端,喜歡烹飪的自由少年。
今天這篇文章中簡單介紹一下一個 Java 程式設計師必知的 Linux 的一些概念以及常見命令。
如果文章有任何需要改善和完善的地方,歡迎在評論區指出,共同進步!筆芯!
1. 從認識作業系統開始
正式開始 Linux 之前,簡單花一點點篇幅科普一下作業系統相關的內容。
1.1. 作業系統簡介
我通過以下四點介紹什麼是作業系統:
- 作業系統(Operating System,簡稱 OS)是管理計算機硬體與軟體資源的程式,是計算機的基石。
- 作業系統本質上是一個執行在計算機上的軟體程式 ,用於管理計算機硬體和軟體資源。
- 作業系統存在遮蔽了硬體層的複雜性。 作業系統就像是硬體使用的負責人,統籌著各種相關事項。
- 作業系統的核心(Kernel)是作業系統的核心部分,它負責系統的記憶體管理,硬體裝置的管理,檔案系統的管理以及應用程式的管理。
核心(Kernel)在後文中會提到。
1.2. 作業系統簡單分類
1.2.1. Windows
目前最流行的個人桌面作業系統 ,不做多的介紹,大家都清楚。介面簡單易操作,軟體生態非常好。
玩玩電腦遊戲還是必須要有 Windows 的,所以我現在是一臺 Windows 用於玩遊戲,一臺 Mac 用於平時日常開發和學習使用。
1.2.2. Unix
最早的多使用者、多工作業系統 。後面崛起的 Linux 在很多方面都參考了 Unix。
目前這款作業系統已經逐漸逐漸退出作業系統的舞臺。
1.2.3. Linux
Linux 是一套免費使用、開源的類 Unix 作業系統。 Linux 存在著許多不同的發行版本,但它們都使用了 Linux 核心 。
嚴格來講,Linux 這個詞本身只表示 Linux 核心,在 GNU/Linux 系統中,Linux 實際就是 Linux 核心,而該系統的其餘部分主要是由 GNU 工程編寫和提供的程式組成。單獨的 Linux 核心並不能成為一個可以正常工作的作業系統。
很多人更傾向使用 “GNU/Linux” 一詞來表達人們通常所說的 “Linux”。
1.2.4. Mac OS
蘋果自家的作業系統,程式設計體驗和 Linux 相當,但是介面、軟體生態以及使用者體驗各方面都要比 Linux 作業系統更好。
1.3. 作業系統的核心(Kernel)
我們先來看看維基百科對於核心的解釋,我覺得總結的非常好!
核心(英語:Kernel,又稱核心)在電腦科學中是一個用來管理軟體發出的資料 I/O(輸入與輸出)要求的電腦程式,將這些要求轉譯為資料處理的指令並交由中央處理器(CPU)及電腦中其他電子元件進行處理,是現代作業系統中最基本的部分。它是為眾多應用程式提供對計算機硬體的安全訪問的一部分軟體,這種訪問是有限的,並由核心決定一個程式在什麼時候對某部分硬體操作多長時間。 直接對硬體操作是非常複雜的。所以核心通常提供一種硬體抽象的方法,來完成這些操作。有了這個,通過程序間通訊機制及系統呼叫,應用程序可間接控制所需的硬體資源(特別是處理器及 IO 裝置)。
早期計算機系統的設計中,還沒有作業系統的核心這個概念。隨著計算機系統的發展,作業系統核心的概念才漸漸明晰起來了!
簡單概括兩點:
- 作業系統的核心(Kernel)是作業系統的核心部分,它負責系統的記憶體管理,硬體裝置的管理,檔案系統的管理以及應用程式的管理。
- 作業系統的核心是連線應用程式和硬體的橋樑,決定著作業系統的效能和穩定性。
1.4. 中央處理器(CPU,Central Processing Unit)
關於 CPU 簡單概括三點:
- CPU 是一臺計算機的運算核心(Core)+控制核心( Control Unit),可以稱得上是計算機的大腦。
- CPU 主要包括兩個部分:控制器+運算器。
- CPU 的根本任務就是執行指令,對計算機來說最終都是一串由“0”和“1”組成的序列。
1.5. CPU vs Kernel(核心)
很多人容易無法區分作業系統的核心(Kernel)和中央處理器(CPU),你可以簡單從下面兩點來區別:
- 作業系統的核心(Kernel)屬於作業系統層面,而 CPU 屬於硬體。
- CPU 主要提供運算,處理各種指令的能力。核心(Kernel)主要負責系統管理比如記憶體管理,它遮蔽了對硬體的操作。
下圖清晰說明了應用程式、核心、CPU 這三者的關係。
1.6. 系統呼叫
介紹系統呼叫之前,我們先來了解一下使用者態和系統態。
根據程序訪問資源的特點,我們可以把程序在系統上的執行分為兩個級別:
- 使用者態(user mode) : 使用者態執行的程序或可以直接讀取使用者程式的資料。
- 系統態(kernel mode): 可以簡單的理解系統態執行的程序或程式幾乎可以訪問計算機的任何資源,不受限制。
說了使用者態和系統態之後,那麼什麼是系統呼叫呢?
我們執行的程式基本都是執行在使用者態,如果我們呼叫作業系統提供的系統態級別的子功能咋辦呢?那就需要系統呼叫了!
也就是說在我們執行的使用者程式中,凡是與系統態級別的資源有關的操作(如檔案管理、程序控制、記憶體管理等),都必須通過系統呼叫方式向作業系統提出服務請求,並由作業系統代為完成。
這些系統呼叫按功能大致可分為如下幾類:
- 裝置管理 :完成裝置的請求或釋放,以及裝置啟動等功能。
- 檔案管理 :完成檔案的讀、寫、建立及刪除等功能。
- 程序控制 :完成程序的建立、撤銷、阻塞及喚醒等功能。
- 程序通訊 :完成程序之間的訊息傳遞或訊號傳遞等功能。
- 記憶體管理 :完成記憶體的分配、回收以及獲取作業佔用記憶體區大小及地址等功能。
我在網上找了一個圖,通過這個圖可以很清晰的說明使用者程式、系統呼叫、核心和硬體之間的關係。(太難了~木有自己畫)
2. 初探 Linux
2.1. Linux 簡介
我們上面已經簡單了 Linux,這裡只強調三點。
- 類 Unix 系統 : Linux 是一種自由、開放原始碼的類似 Unix 的作業系統
- Linux 本質是指 Linux 核心 : 嚴格來講,Linux 這個詞本身只表示 Linux 核心,單獨的 Linux 核心並不能成為一個可以正常工作的作業系統。所以,就有了各種 Linux 發行版。
- Linux 之父 : 一個程式設計領域的傳奇式人物,真大佬!我輩崇拜敬仰之楷模。他是 Linux 核心 的最早作者,隨後發起了這個開源專案,擔任 Linux 核心的首要架構師。他還發起了 Git 這個開源專案,併為主要的開發者。
2.2. Linux 誕生
1989 年,Linus Torvalds 進入芬蘭陸軍新地區旅,服 11 個月的國家義務兵役,軍銜為少尉,主要服務於計算機部門,任務是彈道計算。服役期間,購買了安德魯·斯圖爾特·塔能鮑姆所著的教科書及 minix 原始碼,開始研究作業系統。1990 年,他退伍後回到大學,開始接觸 Unix。
Minix 是一個迷你版本的類 Unix 作業系統,由塔能鮑姆教授為了教學之用而創作,採用微核心設計。它啟發了 Linux 核心的創作。
1991 年,Linus Torvalds 開源了 Linux 核心。Linux 以一隻可愛的企鵝作為標誌,象徵著敢作敢為、熱愛生活。
2.3. 常見 Linux 發行版本有哪些?
Linus Torvalds 開源的只是 Linux 核心,我們上面也提到了作業系統核心的作用。一些組織或廠商將 Linux 核心與各種軟體和文件包裝起來,並提供系統安裝介面和系統配置、設定與管理工具,就構成了 Linux 的發行版本。
核心主要負責系統的記憶體管理,硬體裝置的管理,檔案系統的管理以及應用程式的管理。
Linux 的發行版本可以大體分為兩類:
- 商業公司維護的發行版本,以著名的 Red Hat 為代表,比較典型的有 CentOS 。
- 社群組織維護的發行版本,以 Debian 為代表,比較典型的有 Ubuntu、Debian。
對於初學者學習 Linux ,推薦選擇 CentOS 。
3. Linux 檔案系統概覽
3.1. Linux 檔案系統簡介
在 Linux 作業系統中,所有被作業系統管理的資源,例如網路介面卡、磁碟驅動器、印表機、輸入輸出裝置、普通檔案或是目錄都被看作是一個檔案。 也就是說在 Linux 系統中有一個重要的概念:一切都是檔案。
其實這是 UNIX 哲學的一個體現,在 UNIX 系統中,把一切資源都看作是檔案,Linux 的檔案系統也是借鑑 UNIX 檔案系統而來。
3.2. inode 介紹
inode 是 linux/unix 檔案系統的基礎。那麼,inode 是什麼?有什麼作用呢?
硬碟的最小儲存單位是扇區(Sector),塊(block)由多個扇區組成。檔案資料儲存在塊中。塊的最常見的大小是 4kb,約為 8 個連續的扇區組成(每個扇區儲存 512 位元組)。一個檔案可能會佔用多個 block,但是一個塊只能存放一個檔案。
雖然,我們將檔案儲存在了塊(block)中,但是我們還需要一個空間來儲存檔案的 元資訊 metadata :如某個檔案被分成幾塊、每一塊在的地址、檔案擁有者,建立時間,許可權,大小等。這種 儲存檔案元資訊的區域就叫 inode,譯為索引節點:i(index)+node。 每個檔案都有一個 inode,儲存檔案的元資訊。
可以使用 stat
命令可以檢視檔案的 inode 資訊。每個 inode 都有一個號碼,Linux/Unix 作業系統不使用檔名來區分檔案,而是使用 inode 號碼區分不同的檔案。
簡單來說:inode 就是用來維護某個檔案被分成幾塊、每一塊在的地址、檔案擁有者,建立時間,許可權,大小等資訊。
簡單總結一下:
- inode :記錄檔案的屬性資訊,可以使用 stat 命令檢視 inode 資訊。
- block :實際檔案的內容,如果一個檔案大於一個塊時候,那麼將佔用多個 block,但是一個塊只能存放一個檔案。(因為資料是由 inode 指向的,如果有兩個檔案的資料存放在同一個塊中,就會亂套了)
3.3. Linux 檔案型別
Linux 支援很多檔案型別,其中非常重要的檔案型別有: 普通檔案,目錄檔案,連結檔案,裝置檔案,管道檔案,Socket 套接字檔案等。
- 普通檔案(-) : 用於儲存資訊和資料, Linux 使用者可以根據訪問許可權對普通檔案進行檢視、更改和刪除。比如:圖片、聲音、PDF、text、視訊、原始碼等等。
- 目錄檔案(d,directory file) :目錄也是檔案的一種,用於表示和管理系統中的檔案,目錄檔案中包含一些檔名和子目錄名。開啟目錄事實上就是開啟目錄檔案。
- 符號連結檔案(l,symbolic link) :保留了指向檔案的地址而不是檔案本身。
- 字元裝置(c,char) :用來訪問字元裝置比如硬碟。
- 裝置檔案(b,block) : 用來訪問塊裝置比如硬碟、軟盤。
- 管道檔案(p,pipe) : 一種特殊型別的檔案,用於程序之間的通訊。
- 套接字(s,socket) :用於程序間的網路通訊,也可以用於本機之間的非網路通訊。
3.4. Linux 目錄樹
所有可操作的計算機資源都存在於目錄樹這個結構中,對計算資源的訪問,可以看做是對這棵目錄樹的訪問。
Linux 的目錄結構如下:
Linux 檔案系統的結構層次鮮明,就像一棵倒立的樹,最頂層是其根目錄:
常見目錄說明:
- /bin: 存放二進位制可執行檔案(ls、cat、mkdir 等),常用命令一般都在這裡;
- /etc: 存放系統管理和配置檔案;
- /home: 存放所有使用者檔案的根目錄,是使用者主目錄的基點,比如使用者 user 的主目錄就是/home/user,可以用~user 表示;
- /usr : 用於存放系統應用程式;
- /opt: 額外安裝的可選應用程式包所放置的位置。一般情況下,我們可以把 tomcat 等都安裝到這裡;
- /proc: 虛擬檔案系統目錄,是系統記憶體的對映。可直接訪問這個目錄來獲取系統資訊;
- /root: 超級使用者(系統管理員)的主目錄(特權階級o);
- /sbin: 存放二進位制可執行檔案,只有 root 才能訪問。這裡存放的是系統管理員使用的系統級別的管理命令和程式。如 ifconfig 等;
- /dev: 用於存放裝置檔案;
- /mnt: 系統管理員安裝臨時檔案系統的安裝點,系統提供這個目錄是讓使用者臨時掛載其他的檔案系統;
- /boot: 存放用於系統引導時使用的各種檔案;
- /lib : 存放著和系統執行相關的庫檔案 ;
- /tmp: 用於存放各種臨時檔案,是公用的臨時檔案儲存點;
- /var: 用於存放執行時需要改變資料的檔案,也是某些大檔案的溢位區,比方說各種服務的日誌檔案(系統啟動日誌等。)等;
- /lost+found: 這個目錄平時是空的,系統非正常關機而留下“無家可歸”的檔案(windows 下叫什麼.chk)就在這裡。
4. Linux 基本命令
下面只是給出了一些比較常用的命令。推薦一個 Linux 命令快查網站,非常不錯,大家如果遺忘某些命令或者對某些命令不理解都可以在這裡得到解決。
Linux 命令大全:http://man.linuxde.net/
4.1. 目錄切換命令
cd usr
: 切換到該目錄下 usr 目錄cd ..(或cd../)
: 切換到上一層目錄cd /
: 切換到系統根目錄cd ~
: 切換到使用者主目錄cd -
: 切換到上一個操作所在目錄
4.2. 目錄的操作命令(增刪改查)
mkdir 目錄名稱
: 增加目錄。ls/ll
(ll 是 ls -l 的別名,ll 命令可以看到該目錄下的所有目錄和檔案的詳細資訊):檢視目錄資訊。find 目錄 引數
: 尋找目錄(查)。示例:① 列出當前目錄及子目錄下所有檔案和資料夾:find .
;② 在/home
目錄下查詢以.txt 結尾的檔名:find /home -name "*.txt"
,忽略大小寫:find /home -iname "*.txt"
;③ 當前目錄及子目錄下查詢所有以.txt 和.pdf 結尾的檔案:find . \( -name "*.txt" -o -name "*.pdf" \)
或find . -name "*.txt" -o -name "*.pdf"
。mv 目錄名稱 新目錄名稱
: 修改目錄的名稱(改)。注意:mv 的語法不僅可以對目錄進行重新命名而且也可以對各種檔案,壓縮包等進行 重新命名的操作。mv 命令用來對檔案或目錄重新命名,或者將檔案從一個目錄移到另一個目錄中。後面會介紹到 mv 命令的另一個用法。mv 目錄名稱 目錄的新位置
: 移動目錄的位置---剪下(改)。注意:mv 語法不僅可以對目錄進行剪下操作,對檔案和壓縮包等都可執行剪下操作。另外 mv 與 cp 的結果不同,mv 好像檔案“搬家”,檔案個數並未增加。而 cp 對檔案進行復制,檔案個數增加了。cp -r 目錄名稱 目錄拷貝的目標位置
: 拷貝目錄(改),-r 代表遞迴拷貝 。注意:cp 命令不僅可以拷貝目錄還可以拷貝檔案,壓縮包等,拷貝檔案和壓縮包時不 用寫-r 遞迴。rm [-rf] 目錄
: 刪除目錄(刪)。注意:rm 不僅可以刪除目錄,也可以刪除其他檔案或壓縮包,為了增強大家的記憶, 無論刪除任何目錄或檔案,都直接使用rm -rf
目錄/檔案/壓縮包。
4.3. 檔案的操作命令(增刪改查)
touch 檔名稱
: 檔案的建立(增)。cat/more/less/tail 檔名稱
:檔案的檢視(查) 。命令tail -f 檔案
可以對某個檔案進行動態監控,例如 tomcat 的日誌檔案, 會隨著程式的執行,日誌會變化,可以使用tail -f catalina-2016-11-11.log
監控 文 件的變化 。vim 檔案
: 修改檔案的內容(改)。vim 編輯器是 Linux 中的強大元件,是 vi 編輯器的加強版,vim 編輯器的命令和快捷方式有很多,但此處不一一闡述,大家也無需研究的很透徹,使用 vim 編輯修改檔案的方式基本會使用就可以了。在實際開發中,使用 vim 編輯器主要作用就是修改配置檔案,下面是一般步驟:vim 檔案------>進入檔案----->命令模式------>按i進入編輯模式----->編輯檔案 ------->按Esc進入底行模式----->輸入:wq/q!
(輸入 wq 代表寫入內容並退出,即儲存;輸入 q!代表強制退出不儲存)。rm -rf 檔案
: 刪除檔案(刪)。
4.4. 壓縮檔案的操作命令
1)打包並壓縮檔案:
Linux 中的打包檔案一般是以.tar 結尾的,壓縮的命令一般是以.gz 結尾的。而一般情況下打包和壓縮是一起進行的,打包並壓縮後的檔案的字尾名一般.tar.gz。 命令:tar -zcvf 打包壓縮後的檔名 要打包壓縮的檔案
,其中:
- z:呼叫 gzip 壓縮命令進行壓縮
- c:打包檔案
- v:顯示執行過程
- f:指定檔名
比如:假如 test 目錄下有三個檔案分別是:aaa.txt bbb.txt ccc.txt,如果我們要打包 test 目錄並指定壓縮後的壓縮包名稱為 test.tar.gz 可以使用命令:tar -zcvf test.tar.gz aaa.txt bbb.txt ccc.txt
或 tar -zcvf test.tar.gz /test/
2)解壓壓縮包:
命令:`tar [-xvf] 壓縮檔案``
其中:x:代表解壓
示例:
- 將 /test 下的 test.tar.gz 解壓到當前目錄下可以使用命令:
tar -xvf test.tar.gz
- 將 /test 下的 test.tar.gz 解壓到根目錄/usr 下:
tar -xvf test.tar.gz -C /usr
(- C 代表指定解壓的位置)
4.5. Linux 的許可權命令
作業系統中每個檔案都擁有特定的許可權、所屬使用者和所屬組。許可權是作業系統用來限制資源訪問的機制,在 Linux 中許可權一般分為讀(readable)、寫(writable)和執行(excutable),分為三組。分別對應檔案的屬主(owner),屬組(group)和其他使用者(other),通過這樣的機制來限制哪些使用者、哪些組可以對特定的檔案進行什麼樣的操作。
通過 ls -l
命令我們可以 檢視某個目錄下的檔案或目錄的許可權
示例:在隨意某個目錄下ls -l
第一列的內容的資訊解釋如下:
下面將詳細講解檔案的型別、Linux 中許可權以及檔案有所有者、所在組、其它組具體是什麼?
檔案的型別:
- d: 代表目錄
- -: 代表檔案
- l: 代表軟連結(可以認為是 window 中的快捷方式)
Linux 中許可權分為以下幾種:
- r:代表權限是可讀,r 也可以用數字 4 表示
- w:代表權限是可寫,w 也可以用數字 2 表示
- x:代表權限是可執行,x 也可以用數字 1 表示
檔案和目錄許可權的區別:
對檔案和目錄而言,讀寫執行表示不同的意義。
對於檔案:
許可權名稱 | 可執行操作 |
---|---|
r | 可以使用 cat 檢視檔案的內容 |
w | 可以修改檔案的內容 |
x | 可以將其執行為二進位制檔案 |
對於目錄:
許可權名稱 | 可執行操作 |
---|---|
r | 可以檢視目錄下列表 |
w | 可以建立和刪除目錄下檔案 |
x | 可以使用 cd 進入目錄 |
需要注意的是: 超級使用者可以無視普通使用者的許可權,即使檔案目錄許可權是 000,依舊可以訪問。
在 linux 中的每個使用者必須屬於一個組,不能獨立於組外。在 linux 中每個檔案有所有者、所在組、其它組的概念。
- 所有者(u) :一般為檔案的建立者,誰建立了該檔案,就天然的成為該檔案的所有者,用
ls ‐ahl
命令可以看到檔案的所有者 也可以使用 chown 使用者名稱 檔名來修改檔案的所有者 。 - 檔案所在組(g) :當某個使用者建立了一個檔案後,這個檔案的所在組就是該使用者所在的組用
ls ‐ahl
命令可以看到檔案的所有組也可以使用 chgrp 組名 檔名來修改檔案所在的組。 - 其它組(o) :除開檔案的所有者和所在組的使用者外,系統的其它使用者都是檔案的其它組。
我們再來看看如何修改檔案/目錄的許可權。
修改檔案/目錄的許可權的命令:chmod
示例:修改/test 下的 aaa.txt 的許可權為檔案所有者有全部許可權,檔案所有者所在的組有讀寫許可權,其他使用者只有讀的許可權。
chmod u=rwx,g=rw,o=r aaa.txt
或者 chmod 764 aaa.txt
補充一個比較常用的東西:
假如我們裝了一個 zookeeper,我們每次開機到要求其自動啟動該怎麼辦?
- 新建一個指令碼 zookeeper
- 為新建的指令碼 zookeeper 新增可執行許可權,命令是:
chmod +x zookeeper
- 把 zookeeper 這個指令碼新增到開機啟動項裡面,命令是:
chkconfig --add zookeeper
- 如果想看看是否新增成功,命令是:
chkconfig --list
4.6. Linux 使用者管理
Linux 系統是一個多使用者多工的分時作業系統,任何一個要使用系統資源的使用者,都必須首先向系統管理員申請一個賬號,然後以這個賬號的身份進入系統。
使用者的賬號一方面可以幫助系統管理員對使用系統的使用者進行跟蹤,並控制他們對系統資源的訪問;另一方面也可以幫助使用者組織檔案,併為使用者提供安全性保護。
Linux 使用者管理相關命令:
useradd 選項 使用者名稱
:新增使用者賬號userdel 選項 使用者名稱
:刪除使用者帳號usermod 選項 使用者名稱
:修改帳號passwd 使用者名稱
:更改或建立使用者的密碼passwd -S 使用者名稱
:顯示使用者賬號密碼資訊passwd -d 使用者名稱
: 清除使用者密碼
useradd
命令用於 Linux 中建立的新的系統使用者。useradd
可用來建立使用者帳號。帳號建好之後,再用passwd
設定帳號的密碼.而可用userdel
刪除帳號。使用useradd
指令所建立的帳號,實際上是儲存在 /etc/passwd
文字檔案中。
passwd
命令用於設定使用者的認證資訊,包括使用者密碼、密碼過期時間等。系統管理者則能用它管理系統使用者的密碼。只有管理者可以指定使用者名稱稱,一般使用者只能變更自己的密碼。
4.7. Linux 系統使用者組的管理
每個使用者都有一個使用者組,系統可以對一個使用者組中的所有使用者進行集中管理。不同 Linux 系統對使用者組的規定有所不同,如 Linux 下的使用者屬於與它同名的使用者組,這個使用者組在建立使用者時同時建立。
使用者組的管理涉及使用者組的新增、刪除和修改。組的增加、刪除和修改實際上就是對/etc/group
檔案的更新。
Linux 系統使用者組的管理相關命令:
groupadd 選項 使用者組
:增加一個新的使用者組groupdel 使用者組
:要刪除一個已有的使用者組groupmod 選項 使用者組
: 修改使用者組的屬性
4.8. 其他常用命令
pwd
: 顯示當前所在位置sudo + 其他命令
:以系統管理者的身份執行指令,也就是說,經由 sudo 所執行的指令就好像是 root 親自執行。grep 要搜尋的字串 要搜尋的檔案 --color
: 搜尋命令,--color 代表高亮顯示ps -ef
/ps -aux
: 這兩個命令都是檢視當前系統正在執行程序,兩者的區別是展示格式不同。如果想要檢視特定的程序可以使用這樣的格式:ps aux|grep redis
(檢視包括 redis 字串的程序),也可使用pgrep redis -a
。注意:如果直接用 ps((Process Status))命令,會顯示所有程序的狀態,通常結合 grep 命令檢視某程序的狀態。kill -9 程序的pid
: 殺死程序(-9 表示強制終止。)先用 ps 查詢程序,然後用 kill 殺掉- 網路通訊命令:
- 檢視當前系統的網絡卡資訊:ifconfig
- 檢視與某臺機器的連線情況:ping
- 檢視當前系統的埠使用:netstat -an
- net-tools 和 iproute2 :
net-tools
起源於 BSD 的 TCP/IP 工具箱,後來成為老版本 LinuxLinux 中配置網路功能的工具。但自 2001 年起,Linux 社群已經對其停止維護。同時,一些 Linux 發行版比如 Arch Linux 和 CentOS/RHEL 7 則已經完全拋棄了 net-tools,只支援iproute2
。linux ip 命令類似於 ifconfig,但功能更強大,旨在替代它。更多詳情請閱讀如何在 Linux 中使用 IP 命令和示例 shutdown
:shutdown -h now
: 指定現在立即關機;shutdown +5 "System will shutdown after 5 minutes"
:指定 5 分鐘後關機,同時送出警告資訊給登入使用者。reboot
:reboot
: 重開機。reboot -w
: 做個重開機的模擬(只有紀錄並不會真的重開機)。