主頁 > 作業系統 > 后端程式員必備的 Linux 基礎知識

后端程式員必備的 Linux 基礎知識

2020-11-18 12:30:50 作業系統

1. 從認識作業系統開始

正式開始 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 作業系統更好,
Mac OS

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): 可以簡單的理解系統態運行的行程或程式幾乎可以訪問計算機的任何資源,不受限制,

說了用戶態和系統態之后,那么什么是系統呼叫呢?

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

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

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

  • 設備管理 :完成設備的請求或釋放,以及設備啟動等功能,
  • 檔案管理 :完成檔案的讀、寫、創建及洗掉等功能,
  • 行程控制 :完成行程的創建、撤銷、阻塞及喚醒等功能,
  • 行程通信 :完成行程之間的訊息傳遞或信號傳遞等功能,
  • 記憶體管理 :完成記憶體的分配、回收以及獲取作業占用記憶體區大小及地址等功能,

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

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 以一只可愛的企鵝作為標志,象征著敢作敢為、熱愛生活,

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.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

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

下面將詳細講解檔案的型別、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,我們每次開機到要求其自動啟動該怎么辦?

  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 做個重開機的模擬(只有紀錄并不會真的重開機),

作者:Snailclimb
鏈接:后端程式員必備的 Linux 基礎知識
來源:github

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/223878.html

標籤:其他

上一篇:ARM內核常用縮寫含義

下一篇:后端程式員必備的 Linux 基礎知識

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • CA和證書

    1、在 CentOS7 中使用 gpg 創建 RSA 非對稱密鑰對 gpg --gen-key #Centos上生成公鑰/密鑰對(存放在家目錄.gnupg/) 2、將 CentOS7 匯出的公鑰,拷貝到 CentOS8 中,在 CentOS8 中使用 CentOS7 的公鑰加密一個檔案 gpg -a ......

    uj5u.com 2020-09-10 00:09:53 more
  • Kubernetes K8S之資源控制器Job和CronJob詳解

    Kubernetes的資源控制器Job和CronJob詳解與示例 ......

    uj5u.com 2020-09-10 00:10:45 more
  • VMware下安裝CentOS

    VMware下安裝CentOS 一、軟硬體準備 1 Centos鏡像準備 1.1 CentOS鏡像下載地址 下載地址 1.2 CentOS鏡像下載程序 點擊下載地址進入如下圖的網站,選擇需要下載的版本,這里選擇的是Centos8,點擊如圖所示。 決定選擇Centos8后,選擇想要的鏡像源進行下載,此 ......

    uj5u.com 2020-09-10 00:12:10 more
  • 如何使用Grep命令查找多個字串

    如何使用Grep 命令查找多個字串 大家好,我是良許! 今天向大家介紹一個非常有用的技巧,那就是使用 grep 命令查找多個字串。 簡單介紹一下,grep 命令可以理解為是一個功能強大的命令列工具,可以用它在一個或多個輸入檔案中搜索與正則運算式相匹配的文本,然后再將每個匹配的文本用標準輸出的格式 ......

    uj5u.com 2020-09-10 00:12:28 more
  • git配置http代理

    git配置http代理 經常遇到克隆 github 慢的問題,這里記錄一下幾種配置 git 代理的方法,解決 clone github 過慢。 目錄 git配置代理 git單獨配置github代理 git配置全域代理 配置終端環境變數 git配置代理 主要使用 git config 命令 git單獨 ......

    uj5u.com 2020-09-10 00:12:33 more
  • Linux npm install 裝包時提示Error EACCES permission denied解

    npm install 裝包時提示Error EACCES permission denied解決辦法 ......

    uj5u.com 2020-09-10 00:12:53 more
  • Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包

    Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包。 18 (flaskApi) [root@67 flaskDemo]# yum -y install nginx 19 已加載插件:fastestmirror, langpacks 20 Loading ......

    uj5u.com 2020-09-10 00:13:13 more
  • Linux查看服務器暴力破解ssh IP

    在公網的服務器上經常遇到別人爆破你服務器的22埠,用來挖礦或者干其他嘿嘿嘿的事情~ 這種情況下正確的做法是: 修改默認ssh的22埠 使用設定密鑰登錄或者白名單ip登錄 建議服務器密碼為復雜密碼 創建普通用戶登錄服務器(root權限過大) 建立堡壘機,實作統一管理服務器 統計爆破IP [root ......

    uj5u.com 2020-09-10 00:13:17 more
  • CentOS 7系統常見快捷鍵操作方式

    Linux系統中一些常見的快捷方式,可有效提高操作效率,在某些時刻也能避免操作失誤帶來的問題。 ......

    uj5u.com 2020-09-10 00:13:31 more
  • CentOS 7作業系統目錄結構介紹

    作業系統存在著大量的資料檔案資訊,相應檔案資訊會存在于系統相應目錄中,為了更好的管理資料資訊,會將系統進行一些目錄規劃,不同目錄存放不同的資源。 ......

    uj5u.com 2020-09-10 00:13:35 more
最新发布
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:43:21 more
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:42:36 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:26:53 more
  • 設定Windows主機的瀏覽器為wls2的默認瀏覽器

    這里以Chrome為例。 1. 準備作業 wsl是可以使用Windows主機上安裝的exe程式,出于安全考慮,默認情況下改功能是無法使用。要使用的話,終端需要以管理員權限啟動。 我這里以Windows Terminal為例,介紹如何默認使用管理員權限打開終端,具體操作如下圖所示: 2. 操作 wsl ......

    uj5u.com 2023-04-19 09:25:49 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:19:04 more
  • Linux學習筆記

    IP地址和主機名 IP地址 ifconfig可以用來查詢本機的IP地址,如果不能使用,可以通過install net-tools安裝。 Centos系統下ens33表示主網卡;inet后表示IP地址;lo表示本地回環網卡; 127.0.0.1表示代指本機;0.0.0.0可以用于代指本機,同時在放行設 ......

    uj5u.com 2023-04-18 06:52:01 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:50 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:01 more
  • 你是不是暴露了?

    作者:袁首京 原創文章,轉載時請保留此宣告,并給出原文連接。 如果您是計算機相關從業人員,那么應該經歷不止一次網路安全專項檢查了,你肯定是收到過資訊系統技術檢測報告,要求你加強風險監測,確保你提供的系統服務堅實可靠了。 沒檢測到問題還好,檢測到問題的話,有些處理起來還是挺麻煩的,尤其是線上正在運行的 ......

    uj5u.com 2023-04-05 16:52:56 more
  • 細節拉滿,80 張圖帶你一步一步推演 slab 記憶體池的設計與實作

    1. 前文回顧 在之前的幾篇記憶體管理系列文章中,筆者帶大家從宏觀角度完整地梳理了一遍 Linux 記憶體分配的整個鏈路,本文的主題依然是記憶體分配,這一次我們會從微觀的角度來探秘一下 Linux 內核中用于零散小記憶體塊分配的記憶體池 —— slab 分配器。 在本小節中,筆者還是按照以往的風格先帶大家簡單 ......

    uj5u.com 2023-04-05 16:44:11 more