後端程式設計師必備的 Linux 基礎知識+常見命令(近萬字總結)

大家好!我是 Guide 哥,Java 後端開發。一個會一點前端,喜歡烹飪的自由少年。

今天這篇文章中簡單介紹一下一個 Java 程式設計師必知的 Linux 的一些概念以及常見命令。

如果文章有任何需要改善和完善的地方,歡迎在評論區指出,共同進步!筆芯!

1. 從認識作業系統開始

img

正式開始 Linux 之前,簡單花一點點篇幅科普一下作業系統相關的內容。

1.1. 作業系統簡介

我通過以下四點介紹什麼是作業系統:

  1. 作業系統(Operating System,簡稱 OS)是管理電腦硬體與軟體資源的程式,是電腦的基石。
  2. 作業系統本質上是一個運行在電腦上的軟體程式 ,用於管理電腦硬體和軟體資源。 舉例:運行在你電腦上的所有應用程式都通過作業系統來調用系統記憶體以及磁碟等等硬體。
  3. 作業系統存在屏蔽了硬體層的複雜性。 作業系統就像是硬體使用的負責人,統籌著各種相關事項。
  4. 作業系統的內核(Kernel)是作業系統的核心部分,它負責系統的記憶體管理,硬體設備的管理,文件系統的管理以及應用程式的管理

內核(Kernel)在後文中會提到。

Kernel_Layout

1.2. 作業系統簡單分類

1.2.1. Windows

目前最流行的個人桌面作業系統 ,不做多的介紹,大家都清楚。介面簡單易操作,軟體生態非常好。

玩玩電腦遊戲還是必須要有 Windows 的,所以我現在是一台 Windows 用於玩遊戲,一台 Mac 用於平時日常開發和學習使用。

windows

1.2.2. Unix

最早的多用戶、多任務作業系統 。後面崛起的 Linux 在很多方面都參考了 Unix。

目前這款作業系統已經逐漸逐漸退出作業系統的舞台。

unix

1.2.3. Linux

Linux 是一套免費使用、開源的類 Unix 作業系統。 Linux 存在著許多不同的發行版本,但它們都使用了 Linux 內核

嚴格來講,Linux 這個詞本身只表示 Linux 內核,在 GNU/Linux 系統中,Linux 實際就是 Linux 內核,而該系統的其餘部分主要是由 GNU 工程編寫和提供的程式組成。單獨的 Linux 內核並不能成為一個可以正常工作的作業系統。

很多人更傾向使用 「GNU/Linux」 一詞來表達人們通常所說的 「Linux」。

linux

1.2.4. Mac OS

蘋果自家的作業系統,編程體驗和 Linux 相當,但是介面、軟體生態以及用戶體驗各方面都要比 Linux 作業系統更好。

macos

1.3. 作業系統的內核(Kernel)

我們先來看看維基百科對於內核的解釋,我覺得總結的非常好!

內核(英語:Kernel,又稱核心)在電腦科學中是一個用來管理軟體發出的數據 I/O(輸入與輸出)要求的電腦程式,將這些要求轉譯為數據處理的指令並交由中央處理器(CPU)及電腦中其他電子組件進行處理,是現代作業系統中最基本的部分。它是為眾多應用程式提供對電腦硬體的安全訪問的一部分軟體,這種訪問是有限的,並由內核決定一個程式在什麼時候對某部分硬體操作多長時間。 直接對硬體操作是非常複雜的。所以內核通常提供一種硬體抽象的方法,來完成這些操作。有了這個,通過進程間通訊機制及系統調用,應用進程可間接控制所需的硬體資源(特別是處理器及 IO 設備)。

早期電腦系統的設計中,還沒有作業系統的內核這個概念。隨著電腦系統的發展,作業系統內核的概念才漸漸明晰起來了!

簡單概括兩點:

  1. 作業系統的內核(Kernel)是作業系統的核心部分,它負責系統的記憶體管理,硬體設備的管理,文件系統的管理以及應用程式的管理。
  2. 作業系統的內核是連接應用程式和硬體的橋樑,決定著作業系統的性能和穩定性。

1.4. 中央處理器(CPU,Central Processing Unit)

關於 CPU 簡單概括三點:

  1. CPU 是一台電腦的運算核心(Core)+控制核心( Control Unit),可以稱得上是電腦的大腦。
  2. CPU 主要包括兩個部分:控制器+運算器。
  3. CPU 的根本任務就是執行指令,對電腦來說最終都是一串由「0」和「1」組成的序列。

1.5. CPU vs Kernel(內核)

很多人容易無法區分作業系統的內核(Kernel)和中央處理器(CPU),你可以簡單從下面兩點來區別:

  1. 作業系統的內核(Kernel)屬於作業系統層面,而 CPU 屬於硬體。
  2. CPU 主要提供運算,處理各種指令的能力。內核(Kernel)主要負責系統管理比如記憶體管理,它屏蔽了對硬體的操作。

下圖清晰說明了應用程式、內核、CPU 這三者的關係。

Kernel_Layout

1.6. 系統調用

介紹系統調用之前,我們先來了解一下用戶態和系統態。

根據進程訪問資源的特點,我們可以把進程在系統上的運行分為兩個級別:

  1. 用戶態(user mode) : 用戶態運行的進程或可以直接讀取用戶程式的數據。
  2. 系統態(kernel mode): 可以簡單的理解系統態運行的進程或程式幾乎可以訪問電腦的任何資源,不受限制。

說了用戶態和系統態之後,那麼什麼是系統調用呢?

我們運行的程式基本都是運行在用戶態,如果我們調用作業系統提供的系統態級別的子功能咋辦呢?那就需要系統調用了!

也就是說在我們運行的用戶程式中,凡是與系統態級別的資源有關的操作(如文件管理、進程式控制制、記憶體管理等),都必須通過系統調用方式向作業系統提出服務請求,並由作業系統代為完成。

這些系統調用按功能大致可分為如下幾類:

  • 設備管理 :完成設備的請求或釋放,以及設備啟動等功能。
  • 文件管理 :完成文件的讀、寫、創建及刪除等功能。
  • 進程式控制制 :完成進程的創建、撤銷、阻塞及喚醒等功能。
  • 進程通訊 :完成進程之間的消息傳遞或訊號傳遞等功能。
  • 記憶體管理 :完成記憶體的分配、回收以及獲取作業佔用記憶體區大小及地址等功能。

我在網上找了一個圖,通過這個圖可以很清晰的說明用戶程式、系統調用、內核和硬體之間的關係。(太難了~木有自己畫

img

2. 初探 Linux

2.1. Linux 簡介

我們上面已經簡單了 Linux,這裡只強調三點。

  • 類 Unix 系統 : Linux 是一種自由、開放源碼的類似 Unix 的作業系統
  • Linux 本質是指 Linux 內核 : 嚴格來講,Linux 這個詞本身只表示 Linux 內核,單獨的 Linux 內核並不能成為一個可以正常工作的作業系統。所以,就有了各種 Linux 發行版。
  • Linux 之父 : 一個編程領域的傳奇式人物,真大佬!我輩崇拜敬仰之楷模。他是 Linux 內核 的最早作者,隨後發起了這個開源項目,擔任 Linux 內核的首要架構師。他還發起了 Git 這個開源項目,並為主要的開發者。

Linux

2.2. Linux 誕生

1989 年,Linus Torvalds 進入芬蘭陸軍新地區旅,服 11 個月的國家義務兵役,軍銜為少尉,主要服務於電腦部門,任務是彈道計算。服役期間,購買了安德魯·斯圖爾特·塔能鮑姆所著的教科書及 minix 源程式碼,開始研究作業系統。1990 年,他退伍後回到大學,開始接觸 Unix。

Minix 是一個迷你版本的類 Unix 作業系統,由塔能鮑姆教授為了教學之用而創作,採用微核心設計。它啟發了 Linux 內核的創作。

1991 年,Linus Torvalds 開源了 Linux 內核。Linux 以一隻可愛的企鵝作為標誌,象徵著敢作敢為、熱愛生活。

OPINION: Make the switch to a Linux operating system | Opinion ...

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 指向的,如果有兩個文件的數據存放在同一個塊中,就會亂套了)

文件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 文件系統的結構層次鮮明,就像一棵倒立的樹,最頂層是其根目錄: 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 命令大全://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.txttar -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

img

第一列的內容的資訊解釋如下:

img

下面將詳細講解文件的類型、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

img

補充一個比較常用的東西:

假如我們裝了一個 zookeeper,我們每次開機到要求其自動啟動該怎麼辦?

  1. 新建一個腳本 zookeeper
  2. 為新建的腳本 zookeeper 添加可執行許可權,命令是:chmod +x zookeeper
  3. 把 zookeeper 這個腳本添加到開機啟動項裡面,命令是:chkconfig --add zookeeper
  4. 如果想看看是否添加成功,命令是: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 做個重開機的模擬(只有紀錄並不會真的重開機)。

我是 Guide 哥,一 Java 後端開發,會一點前端,自由的少年。我們下期再見!