国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

后端程序員必備的 Linux 基礎(chǔ)知識(shí)+常見命令

2021-03-20 15:15 作者:后端攻城獅哇  | 我要投稿

1.從認(rèn)識(shí)操作系統(tǒng)開始

正式開始 Linux 之前,簡(jiǎn)單花一點(diǎn)點(diǎn)篇幅科普一下操作系統(tǒng)相關(guān)的內(nèi)容。

1.1.操作系統(tǒng)簡(jiǎn)介

我通過以下四點(diǎn)介紹什么是操作系統(tǒng):

  1. 操作系統(tǒng)(Operating System,簡(jiǎn)稱 OS)是管理計(jì)算機(jī)硬件與軟件資源的程序,是計(jì)算機(jī)的基石。

  2. 操作系統(tǒng)本質(zhì)上是一個(gè)運(yùn)行在計(jì)算機(jī)上的軟件程序 ,用于管理計(jì)算機(jī)硬件和軟件資源。?舉例:運(yùn)行在你電腦上的所有應(yīng)用程序都通過操作系統(tǒng)來(lái)調(diào)用系統(tǒng)內(nèi)存以及磁盤等等硬件。

  3. 操作系統(tǒng)存在屏蔽了硬件層的復(fù)雜性。?操作系統(tǒng)就像是硬件使用的負(fù)責(zé)人,統(tǒng)籌著各種相關(guān)事項(xiàng)。

  4. 操作系統(tǒng)的內(nèi)核(Kernel)是操作系統(tǒng)的核心部分,它負(fù)責(zé)系統(tǒng)的內(nèi)存管理,硬件設(shè)備的管理,文件系統(tǒng)的管理以及應(yīng)用程序的管理。

內(nèi)核(Kernel)在后文中會(huì)提到。

1.2.操作系統(tǒng)簡(jiǎn)單分類

1.2.1. Windows

目前最流行的個(gè)人桌面操作系統(tǒng) ,不做多的介紹,大家都清楚。界面簡(jiǎn)單易操作,軟件生態(tài)非常好。

玩玩電腦游戲還是必須要有 Windows 的,所以我現(xiàn)在是一臺(tái) Windows 用于玩游戲,一臺(tái) Mac 用于平時(shí)日常開發(fā)和學(xué)習(xí)使用。

1.2.2. Unix

最早的多用戶、多任務(wù)操作系統(tǒng) 。后面崛起的 Linux 在很多方面都參考了 Unix。

目前這款操作系統(tǒng)已經(jīng)逐漸逐漸退出操作系統(tǒng)的舞臺(tái)。

1.2.3. Linux

Linux 是一套免費(fèi)使用、開源的類 Unix 操作系統(tǒng)。?Linux 存在著許多不同的發(fā)行版本,但它們都使用了?Linux 內(nèi)核?。

嚴(yán)格來(lái)講,Linux 這個(gè)詞本身只表示 Linux 內(nèi)核,在 GNU/Linux 系統(tǒng)中,Linux 實(shí)際就是 Linux 內(nèi)核,而該系統(tǒng)的其余部分主要是由 GNU 工程編寫和提供的程序組成。單獨(dú)的 Linux 內(nèi)核并不能成為一個(gè)可以正常工作的操作系統(tǒng)。
很多人更傾向使用 “GNU/Linux” 一詞來(lái)表達(dá)人們通常所說的 “Linux”。

1.2.4. Mac OS

蘋果自家的操作系統(tǒng),編程體驗(yàn)和 Linux 相當(dāng),但是界面、軟件生態(tài)以及用戶體驗(yàn)各方面都要比 Linux 操作系統(tǒng)更好。

1.3.操作系統(tǒng)的內(nèi)核( Kernel)

我們先來(lái)看看維基百科對(duì)于內(nèi)核的解釋,我覺得總結(jié)的非常好!

內(nèi)核(英語(yǔ):Kernel,又稱核心)在計(jì)算機(jī)科學(xué)中是一個(gè)用來(lái)管理軟件發(fā)出的數(shù)據(jù) I/O(輸入與輸出)要求的電腦程序,將這些要求轉(zhuǎn)譯為數(shù)據(jù)處理的指令并交由中央處理器(CPU)及電腦中其他電子組件進(jìn)行處理,是現(xiàn)代操作系統(tǒng)中最基本的部分。它是為眾多應(yīng)用程序提供對(duì)計(jì)算機(jī)硬件的安全訪問的一部分軟件,這種訪問是有限的,并由內(nèi)核決定一個(gè)程序在什么時(shí)候?qū)δ巢糠钟布僮鞫嚅L(zhǎng)時(shí)間。?直接對(duì)硬件操作是非常復(fù)雜的。所以內(nèi)核通常提供一種硬件抽象的方法,來(lái)完成這些操作。有了這個(gè),通過進(jìn)程間通信機(jī)制及系統(tǒng)調(diào)用,應(yīng)用進(jìn)程可間接控制所需的硬件資源(特別是處理器及 IO 設(shè)備)。
早期計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)中,還沒有操作系統(tǒng)的內(nèi)核這個(gè)概念。隨著計(jì)算機(jī)系統(tǒng)的發(fā)展,操作系統(tǒng)內(nèi)核的概念才漸漸明晰起來(lái)了!

簡(jiǎn)單概括兩點(diǎn):

  1. 操作系統(tǒng)的內(nèi)核(Kernel)是操作系統(tǒng)的核心部分,它負(fù)責(zé)系統(tǒng)的內(nèi)存管理,硬件設(shè)備的管理,文件系統(tǒng)的管理以及應(yīng)用程序的管理。

  2. 操作系統(tǒng)的內(nèi)核是連接應(yīng)用程序和硬件的橋梁,決定著操作系統(tǒng)的性能和穩(wěn)定性。

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

關(guān)于 CPU 簡(jiǎn)單概括三點(diǎn):

  1. CPU 是一臺(tái)計(jì)算機(jī)的運(yùn)算核心(Core)+控制核心( Control Unit),可以稱得上是計(jì)算機(jī)的大腦。

  2. CPU 主要包括兩個(gè)部分:控制器+運(yùn)算器。

  3. CPU 的根本任務(wù)就是執(zhí)行指令,對(duì)計(jì)算機(jī)來(lái)說最終都是一串由“0”和“1”組成的序列。

1.5. CPU Vs Kernel(內(nèi)核)

很多人容易無(wú)法區(qū)分操作系統(tǒng)的內(nèi)核(Kernel)和中央處理器(CPU),你可以簡(jiǎn)單從下面兩點(diǎn)來(lái)區(qū)別:

  1. 操作系統(tǒng)的內(nèi)核(Kernel)屬于操作系統(tǒng)層面,而 CPU 屬于硬件。

  2. CPU 主要提供運(yùn)算,處理各種指令的能力。內(nèi)核(Kernel)主要負(fù)責(zé)系統(tǒng)管理比如內(nèi)存管理,它屏蔽了對(duì)硬件的操作。

下圖清晰說明了應(yīng)用程序、內(nèi)核、CPU 這三者的關(guān)系。

1.6.系統(tǒng)調(diào)用

介紹系統(tǒng)調(diào)用之前,我們先來(lái)了解一下用戶態(tài)和系統(tǒng)態(tài)。

根據(jù)進(jìn)程訪問資源的特點(diǎn),我們可以把進(jìn)程在系統(tǒng)上的運(yùn)行分為兩個(gè)級(jí)別:

  1. 用戶態(tài)(user mode)?: 用戶態(tài)運(yùn)行的進(jìn)程或可以直接讀取用戶程序的數(shù)據(jù)。

  2. 系統(tǒng)態(tài)(kernel mode): 可以簡(jiǎn)單的理解系統(tǒng)態(tài)運(yùn)行的進(jìn)程或程序幾乎可以訪問計(jì)算機(jī)的任何資源,不受限制。

說了用戶態(tài)和系統(tǒng)態(tài)之后,那么什么是系統(tǒng)調(diào)用呢?

我們運(yùn)行的程序基本都是運(yùn)行在用戶態(tài),如果我們調(diào)用操作系統(tǒng)提供的系統(tǒng)態(tài)級(jí)別的子功能咋辦呢?那就需要系統(tǒng)調(diào)用了!

也就是說在我們運(yùn)行的用戶程序中,凡是與系統(tǒng)態(tài)級(jí)別的資源有關(guān)的操作(如文件管理、進(jìn)程控制、內(nèi)存管理等),都必須通過系統(tǒng)調(diào)用方式向操作系統(tǒng)提出服務(wù)請(qǐng)求,并由操作系統(tǒng)代為完成。

這些系統(tǒng)調(diào)用按功能大致可分為如下幾類:

  • 設(shè)備管理?:完成設(shè)備的請(qǐng)求或釋放,以及設(shè)備啟動(dòng)等功能。

  • 文件管理?:完成文件的讀、寫、創(chuàng)建及刪除等功能。

  • 進(jìn)程控制?:完成進(jìn)程的創(chuàng)建、撤銷、阻塞及喚醒等功能。

  • 進(jìn)程通信?:完成進(jìn)程之間的消息傳遞或信號(hào)傳遞等功能。

  • 內(nèi)存管理?:完成內(nèi)存的分配、回收以及獲取作業(yè)占用內(nèi)存區(qū)大小及地址等功能。

我在網(wǎng)上找了一個(gè)圖,通過這個(gè)圖可以很清晰的說明用戶程序、系統(tǒng)調(diào)用、內(nèi)核和硬件之間的關(guān)系。(_太難了~木有自己畫_)

2.初探Linux

2.1. Linux簡(jiǎn)介

我們上面已經(jīng)簡(jiǎn)單了 Linux,這里只強(qiáng)調(diào)三點(diǎn)。

  • 類 Unix 系統(tǒng)?: Linux 是一種自由、開放源碼的類似 Unix 的操作系統(tǒng)

  • Linux 本質(zhì)是指 Linux 內(nèi)核?: 嚴(yán)格來(lái)講,Linux 這個(gè)詞本身只表示 Linux 內(nèi)核,單獨(dú)的 Linux 內(nèi)核并不能成為一個(gè)可以正常工作的操作系統(tǒng)。所以,就有了各種 Linux 發(fā)行版。

  • Linux 之父?: 一個(gè)編程領(lǐng)域的傳奇式人物,真大佬!我輩崇拜敬仰之楷模。他是?Linux 內(nèi)核?的最早作者,隨后發(fā)起了這個(gè)開源項(xiàng)目,擔(dān)任 Linux 內(nèi)核的首要架構(gòu)師。他還發(fā)起了 Git 這個(gè)開源項(xiàng)目,并為主要的開發(fā)者。

2.2. Linux誕生

1989 年,Linus Torvalds 進(jìn)入芬蘭陸軍新地區(qū)旅,服 11 個(gè)月的國(guó)家義務(wù)兵役,軍銜為少尉,主要服務(wù)于計(jì)算機(jī)部門,任務(wù)是彈道計(jì)算。服役期間,購(gòu)買了安德魯·斯圖爾特·塔能鮑姆所著的教科書及 minix 源代碼,開始研究操作系統(tǒng)。1990 年,他退伍后回到大學(xué),開始接觸 Unix。

Minix?是一個(gè)迷你版本的類 Unix 操作系統(tǒng),由塔能鮑姆教授為了教學(xué)之用而創(chuàng)作,采用微核心設(shè)計(jì)。它啟發(fā)了 Linux 內(nèi)核的創(chuàng)作。

1991 年,Linus Torvalds 開源了 Linux 內(nèi)核。Linux 以一只可愛的企鵝作為標(biāo)志,象征著敢作敢為、熱愛生活。

2.3. 常見Lnux發(fā)行版本有哪些?

Linus Torvalds 開源的只是 Linux 內(nèi)核,我們上面也提到了操作系統(tǒng)內(nèi)核的作用。一些組織或廠商將 Linux 內(nèi)核與各種軟件和文檔包裝起來(lái),并提供系統(tǒng)安裝界面和系統(tǒng)配置、設(shè)定與管理工具,就構(gòu)成了 Linux 的發(fā)行版本。

內(nèi)核主要負(fù)責(zé)系統(tǒng)的內(nèi)存管理,硬件設(shè)備的管理,文件系統(tǒng)的管理以及應(yīng)用程序的管理。

Linux 的發(fā)行版本可以大體分為兩類:

  • 商業(yè)公司維護(hù)的發(fā)行版本,以著名的 Red Hat 為代表,比較典型的有 CentOS 。

  • 社區(qū)組織維護(hù)的發(fā)行版本,以 Debian 為代表,比較典型的有 Ubuntu、Debian。

對(duì)于初學(xué)者學(xué)習(xí) Linux ,推薦選擇 CentOS 。

3. Linux文件系統(tǒng)概覽

3.1. Linux文件系統(tǒng)簡(jiǎn)介

在 Linux 操作系統(tǒng)中,所有被操作系統(tǒng)管理的資源,例如網(wǎng)絡(luò)接口卡、磁盤驅(qū)動(dòng)器、打印機(jī)、輸入輸出設(shè)備、普通文件或是目錄都被看作是一個(gè)文件。?也就是說在 Linux 系統(tǒng)中有一個(gè)重要的概念:一切都是文件。

其實(shí)這是 UNIX 哲學(xué)的一個(gè)體現(xiàn),在 UNIX 系統(tǒng)中,把一切資源都看作是文件,Linux 的文件系統(tǒng)也是借鑒 UNIX 文件系統(tǒng)而來(lái)。

3.2.inode介紹

inode 是 linux/unix 文件系統(tǒng)的基礎(chǔ)。那么,inode 是什么?有什么作用呢?

硬盤的最小存儲(chǔ)單位是扇區(qū)(Sector),塊(block)由多個(gè)扇區(qū)組成。文件數(shù)據(jù)存儲(chǔ)在塊中。塊的最常見的大小是 4kb,約為 8 個(gè)連續(xù)的扇區(qū)組成(每個(gè)扇區(qū)存儲(chǔ) 512 字節(jié))。一個(gè)文件可能會(huì)占用多個(gè) block,但是一個(gè)塊只能存放一個(gè)文件。

雖然,我們將文件存儲(chǔ)在了塊(block)中,但是我們還需要一個(gè)空間來(lái)存儲(chǔ)文件的?元信息 metadata?:如某個(gè)文件被分成幾塊、每一塊在的地址、文件擁有者,創(chuàng)建時(shí)間,權(quán)限,大小等。這種?存儲(chǔ)文件元信息的區(qū)域就叫 inode,譯為索引節(jié)點(diǎn):i(index)+node。 每個(gè)文件都有一個(gè) inode,存儲(chǔ)文件的元信息。

可以使用?stat?命令可以查看文件的 inode 信息。每個(gè) inode 都有一個(gè)號(hào)碼,Linux/Unix 操作系統(tǒng)不使用文件名來(lái)區(qū)分文件,而是使用 inode 號(hào)碼區(qū)分不同的文件。

簡(jiǎn)單來(lái)說:inode 就是用來(lái)維護(hù)某個(gè)文件被分成幾塊、每一塊在的地址、文件擁有者,創(chuàng)建時(shí)間,權(quán)限,大小等信息。

簡(jiǎn)單總結(jié)一下:

  • inode?:記錄文件的屬性信息,可以使用 stat 命令查看 inode 信息。

  • block?:實(shí)際文件的內(nèi)容,如果一個(gè)文件大于一個(gè)塊時(shí)候,那么將占用多個(gè) block,但是一個(gè)塊只能存放一個(gè)文件。(因?yàn)閿?shù)據(jù)是由 inode 指向的,如果有兩個(gè)文件的數(shù)據(jù)存放在同一個(gè)塊中,就會(huì)亂套了)

3.3. Linux件類型

Linux 支持很多文件類型,其中非常重要的文件類型有:?普通文件,目錄文件,鏈接文件,設(shè)備文件管道文件,Socket 套接字文件等。

  • 普通文件(-)?: 用于存儲(chǔ)信息和數(shù)據(jù), Linux 用戶可以根據(jù)訪問權(quán)限對(duì)普通文件進(jìn)行查看、更改和刪除。比如:圖片、聲音、PDF、text、視頻、源代碼等等。

  • 目錄文件(d,directory file)?:目錄也是文件的一種,用于表示和管理系統(tǒng)中的文件,目錄文件中包含一些文件名和子目錄名。打開目錄事實(shí)上就是打開目錄文件。

  • 符號(hào)鏈接文件(l,symbolic link)?:保留了指向文件的地址而不是文件本身。

  • 字符設(shè)備(c,char)?:用來(lái)訪問字符設(shè)備比如硬盤。

  • 設(shè)備文件(b,block)?: 用來(lái)訪問塊設(shè)備比如硬盤、軟盤。

  • 管道文件(p,pipe)?: 一種特殊類型的文件,用于進(jìn)程之間的通信。

  • 套接字(s,socket)?:用于進(jìn)程間的網(wǎng)絡(luò)通信,也可以用于本機(jī)之間的非網(wǎng)絡(luò)通信。

3.4. Linux錄樹

所有可操作的計(jì)算機(jī)資源都存在于目錄樹這個(gè)結(jié)構(gòu)中,對(duì)計(jì)算資源的訪問,可以看做是對(duì)這棵目錄樹的訪問。

Linux 的目錄結(jié)構(gòu)如下:

Linux 文件系統(tǒng)的結(jié)構(gòu)層次鮮明,就像一棵倒立的樹,最頂層是其根目錄:

常見目錄說明:

  • /bin:?存放二進(jìn)制可執(zhí)行文件(ls、cat、mkdir 等),常用命令一般都在這里;

  • /etc:?存放系統(tǒng)管理和配置文件;

  • /home:?存放所有用戶文件的根目錄,是用戶主目錄的基點(diǎn),比如用戶 user 的主目錄就是/home/user,可以用~user 表示;

  • /usr :?用于存放系統(tǒng)應(yīng)用程序;

  • /opt:?額外安裝的可選應(yīng)用程序包所放置的位置。一般情況下,我們可以把 tomcat 等都安裝到這里;

  • /proc:?虛擬文件系統(tǒng)目錄,是系統(tǒng)內(nèi)存的映射??芍苯釉L問這個(gè)目錄來(lái)獲取系統(tǒng)信息;

  • /root:?超級(jí)用戶(系統(tǒng)管理員)的主目錄(特權(quán)階級(jí)^o^);

  • /sbin:?存放二進(jìn)制可執(zhí)行文件,只有 root 才能訪問。這里存放的是系統(tǒng)管理員使用的系統(tǒng)級(jí)別的管理命令和程序。如 ifconfig 等;

  • /dev:?用于存放設(shè)備文件;

  • /mnt:?系統(tǒng)管理員安裝臨時(shí)文件系統(tǒng)的安裝點(diǎn),系統(tǒng)提供這個(gè)目錄是讓用戶臨時(shí)掛載其他的文件系統(tǒng);

  • /boot:?存放用于系統(tǒng)引導(dǎo)時(shí)使用的各種文件;

  • /lib :?存放著和系統(tǒng)運(yùn)行相關(guān)的庫(kù)文件 ;

  • /tmp:?用于存放各種臨時(shí)文件,是公用的臨時(shí)文件存儲(chǔ)點(diǎn);

  • /var:?用于存放運(yùn)行時(shí)需要改變數(shù)據(jù)的文件,也是某些大文件的溢出區(qū),比方說各種服務(wù)的日志文件(系統(tǒng)啟動(dòng)日志等。)等;

  • /lost+found:?這個(gè)目錄平時(shí)是空的,系統(tǒng)非正常關(guān)機(jī)而留下“無(wú)家可歸”的文件(windows 下叫什么.chk)就在這里。

4. Linux基本命令

下面只是給出了一些比較常用的命令。推薦一個(gè) Linux 命令快查網(wǎng)站,非常不錯(cuò),大家如果遺忘某些命令或者對(duì)某些命令不理解都可以在這里得到解決。

Linux 命令大全:man.linuxde.net/

4.1.錄切換命令

  • cd usr?切換到該目錄下 usr 目錄

  • cd ..(或cd../)?切換到上一層目錄

  • cd /?切換到系統(tǒng)根目錄

  • cd ~?切換到用戶主目錄

  • cd -?切換到上一個(gè)操作所在目錄

4.2.綠的操作命令(增刪改查)

  • mkdir 目錄名稱?增加目錄。

  • **ls/ll**(ll 是 ls -l 的別名,ll 命令可以看到該目錄下的所有目錄和文件的詳細(xì)信息):查看目錄信息。

  • find 目錄 參數(shù)?尋找目錄(查)。示例:① 列出當(dāng)前目錄及子目錄下所有文件和文件夾:?find .;② 在/home目錄下查找以.txt 結(jié)尾的文件名:find /home -name "*.txt"?,忽略大小寫:?find /home -iname "*.txt"?;③ 當(dāng)前目錄及子目錄下查找所有以.txt 和.pdf 結(jié)尾的文件:find . \( -name "*.txt" -o -name "*.pdf" \)find . -name "*.txt" -o -name "*.pdf"。

  • mv 目錄名稱 新目錄名稱?修改目錄的名稱(改)。注意:mv 的語(yǔ)法不僅可以對(duì)目錄進(jìn)行重命名而且也可以對(duì)各種文件,壓縮包等進(jìn)行 重命名的操作。mv 命令用來(lái)對(duì)文件或目錄重新命名,或者將文件從一個(gè)目錄移到另一個(gè)目錄中。后面會(huì)介紹到 mv 命令的另一個(gè)用法。

  • mv 目錄名稱 目錄的新位置?移動(dòng)目錄的位置---剪切(改)。注意:mv 語(yǔ)法不僅可以對(duì)目錄進(jìn)行剪切操作,對(duì)文件和壓縮包等都可執(zhí)行剪切操作。另外 mv 與 cp 的結(jié)果不同,mv 好像文件“搬家”,文件個(gè)數(shù)并未增加。而 cp 對(duì)文件進(jìn)行復(fù)制,文件個(gè)數(shù)增加了。

  • cp -r 目錄名稱 目錄拷貝的目標(biāo)位置?拷貝目錄(改),-r 代表遞歸拷貝 。注意:cp 命令不僅可以拷貝目錄還可以拷貝文件,壓縮包等,拷貝文件和壓縮包時(shí)不 用寫-r 遞歸。

  • rm [-rf] 目錄:?刪除目錄(刪)。注意:rm 不僅可以刪除目錄,也可以刪除其他文件或壓縮包,為了增強(qiáng)大家的記憶, 無(wú)論刪除任何目錄或文件,都直接使用rm -rf?目錄/文件/壓縮包。

4.3.文件的操作命令(增刪改查)

  • touch 文件名稱:?文件的創(chuàng)建(增)。

  • cat/more/less/tail 文件名稱?:文件的查看(查) 。命令?tail -f 文件?可以對(duì)某個(gè)文件進(jìn)行動(dòng)態(tài)監(jiān)控,例如 tomcat 的日志文件, 會(huì)隨著程序的運(yùn)行,日志會(huì)變化,可以使用?tail -f catalina-2016-11-11.log?監(jiān)控 文 件的變化 。

  • vim 文件?修改文件的內(nèi)容(改)。vim 編輯器是 Linux 中的強(qiáng)大組件,是 vi 編輯器的加強(qiáng)版,vim 編輯器的命令和快捷方式有很多,但此處不一一闡述,大家也無(wú)需研究的很透徹,使用 vim 編輯修改文件的方式基本會(huì)使用就可以了。在實(shí)際開發(fā)中,使用 vim 編輯器主要作用就是修改配置文件,下面是一般步驟:?vim 文件------>進(jìn)入文件----->命令模式------>按i進(jìn)入編輯模式----->編輯文件 ------->按Esc進(jìn)入底行模式----->輸入:wq/q!?(輸入 wq 代表寫入內(nèi)容并退出,即保存;輸入 q!代表強(qiáng)制退出不保存)。

  • rm -rf 文件?刪除文件(刪)。

4.4.壓縮文件的操作命令

1)打包并壓縮文件:

Linux 中的打包文件一般是以.tar 結(jié)尾的,壓縮的命令一般是以.gz 結(jié)尾的。而一般情況下打包和壓縮是一起進(jìn)行的,打包并壓縮后的文件的后綴名一般.tar.gz。 命令:tar -zcvf 打包壓縮后的文件名 要打包壓縮的文件?,其中:

  • z:調(diào)用 gzip 壓縮命令進(jìn)行壓縮

  • c:打包文件

  • v:顯示運(yùn)行過程

  • f:指定文件名

比如:假如 test 目錄下有三個(gè)文件分別是: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 解壓到當(dāng)前目錄下可以使用命令:**tar -xvf test.tar.gz**

  • 將 /test 下的 test.tar.gz 解壓到根目錄/usr 下:**tar -xvf test.tar.gz -C /usr**(- C 代表指定解壓的位置)

4.5. Linux的權(quán)限命令

操作系統(tǒng)中每個(gè)文件都擁有特定的權(quán)限、所屬用戶和所屬組。權(quán)限是操作系統(tǒng)用來(lái)限制資源訪問的機(jī)制,在 Linux 中權(quán)限一般分為讀(readable)、寫(writable)和執(zhí)行(excutable),分為三組。分別對(duì)應(yīng)文件的屬主(owner),屬組(group)和其他用戶(other),通過這樣的機(jī)制來(lái)限制哪些用戶、哪些組可以對(duì)特定的文件進(jìn)行什么樣的操作。

通過?ls -l?命令我們可以 查看某個(gè)目錄下的文件或目錄的權(quán)限

示例:在隨意某個(gè)目錄下ls -l

第一列的內(nèi)容的信息解釋如下:

下面將詳細(xì)講解文件的類型、Linux 中權(quán)限以及文件有所有者、所在組、其它組具體是什么?

文件的類型:

  • d: 代表目錄

  • -: 代表文件

  • l: 代表軟鏈接(可以認(rèn)為是 window 中的快捷方式)

Linux 中權(quán)限分為以下幾種:

  • r:代表權(quán)限是可讀,r 也可以用數(shù)字 4 表示

  • w:代表權(quán)限是可寫,w 也可以用數(shù)字 2 表示

  • x:代表權(quán)限是可執(zhí)行,x 也可以用數(shù)字 1 表示

文件和目錄權(quán)限的區(qū)別:

對(duì)文件和目錄而言,讀寫執(zhí)行表示不同的意義。

對(duì)于文件:

對(duì)于目錄:

需要注意的是:?超級(jí)用戶可以無(wú)視普通用戶的權(quán)限,即使文件目錄權(quán)限是 000,依舊可以訪問。

在 linux 中的每個(gè)用戶必須屬于一個(gè)組,不能獨(dú)立于組外。在 linux 中每個(gè)文件有所有者、所在組、其它組的概念。

  • 所有者(u)?:一般為文件的創(chuàng)建者,誰(shuí)創(chuàng)建了該文件,就天然的成為該文件的所有者,用?ls ‐ahl?命令可以看到文件的所有者 也可以使用 chown 用戶名 文件名來(lái)修改文件的所有者 。

  • 文件所在組(g)?:當(dāng)某個(gè)用戶創(chuàng)建了一個(gè)文件后,這個(gè)文件的所在組就是該用戶所在的組用?ls ‐ahl命令可以看到文件的所有組也可以使用 chgrp 組名 文件名來(lái)修改文件所在的組。

  • 其它組(o)?:除開文件的所有者和所在組的用戶外,系統(tǒng)的其它用戶都是文件的其它組。

我們?cè)賮?lái)看看如何修改文件/目錄的權(quán)限。

修改文件/目錄的權(quán)限的命令:chmod

示例:修改/test 下的 aaa.txt 的權(quán)限為文件所有者有全部權(quán)限,文件所有者所在的組有讀寫權(quán)限,其他用戶只有讀的權(quán)限。

chmod u=rwx,g=rw,o=r aaa.txt?或者?chmod 764 aaa.txt

補(bǔ)充一個(gè)比較常用的東西:

假如我們裝了一個(gè) zookeeper,我們每次開機(jī)到要求其自動(dòng)啟動(dòng)該怎么辦?

  1. 新建一個(gè)腳本 zookeeper

  2. 為新建的腳本 zookeeper 添加可執(zhí)行權(quán)限,命令是:chmod +x zookeeper

  3. 把 zookeeper 這個(gè)腳本添加到開機(jī)啟動(dòng)項(xiàng)里面,命令是:chkconfig --add zookeeper

  4. 如果想看看是否添加成功,命令是:chkconfig --list

4.6. Linux戶管理

Linux 系統(tǒng)是一個(gè)多用戶多任務(wù)的分時(shí)操作系統(tǒng),任何一個(gè)要使用系統(tǒng)資源的用戶,都必須首先向系統(tǒng)管理員申請(qǐng)一個(gè)賬號(hào),然后以這個(gè)賬號(hào)的身份進(jìn)入系統(tǒng)。

用戶的賬號(hào)一方面可以幫助系統(tǒng)管理員對(duì)使用系統(tǒng)的用戶進(jìn)行跟蹤,并控制他們對(duì)系統(tǒng)資源的訪問;另一方面也可以幫助用戶組織文件,并為用戶提供安全性保護(hù)。

Linux 用戶管理相關(guān)命令:

  • useradd 選項(xiàng) 用戶名:添加用戶賬號(hào)

  • userdel 選項(xiàng) 用戶名:刪除用戶帳號(hào)

  • usermod 選項(xiàng) 用戶名:修改帳號(hào)

  • passwd 用戶名:更改或創(chuàng)建用戶的密碼

  • passwd -S 用戶名?:顯示用戶賬號(hào)密碼信息

  • passwd -d 用戶名: 清除用戶密碼

useradd?命令用于 Linux 中創(chuàng)建的新的系統(tǒng)用戶。useradd可用來(lái)建立用戶帳號(hào)。帳號(hào)建好之后,再用passwd設(shè)定帳號(hào)的密碼.而可用userdel刪除帳號(hào)。使用useradd指令所建立的帳號(hào),實(shí)際上是保存在?/etc/passwd文本文件中。

passwd命令用于設(shè)置用戶的認(rèn)證信息,包括用戶密碼、密碼過期時(shí)間等。系統(tǒng)管理者則能用它管理系統(tǒng)用戶的密碼。只有管理者可以指定用戶名稱,一般用戶只能變更自己的密碼。

4.7. Linux系統(tǒng)用戶組的管理

每個(gè)用戶都有一個(gè)用戶組,系統(tǒng)可以對(duì)一個(gè)用戶組中的所有用戶進(jìn)行集中管理。不同 Linux 系統(tǒng)對(duì)用戶組的規(guī)定有所不同,如 Linux 下的用戶屬于與它同名的用戶組,這個(gè)用戶組在創(chuàng)建用戶時(shí)同時(shí)創(chuàng)建。

用戶組的管理涉及用戶組的添加、刪除和修改。組的增加、刪除和修改實(shí)際上就是對(duì)/etc/group文件的更新。

Linux 系統(tǒng)用戶組的管理相關(guān)命令:

  • groupadd 選項(xiàng) 用戶組?:增加一個(gè)新的用戶組

  • groupdel 用戶組:要?jiǎng)h除一個(gè)已有的用戶組

  • groupmod 選項(xiàng) 用戶組?: 修改用戶組的屬性

4.8.其他常用命令

  • pwd?顯示當(dāng)前所在位置

  • sudo + 其他命令:以系統(tǒng)管理者的身份執(zhí)行指令,也就是說,經(jīng)由 sudo 所執(zhí)行的指令就好像是 root 親自執(zhí)行。

  • grep 要搜索的字符串 要搜索的文件 --color?搜索命令,--color 代表高亮顯示

  • ps -ef/ps -aux?這兩個(gè)命令都是查看當(dāng)前系統(tǒng)正在運(yùn)行進(jìn)程,兩者的區(qū)別是展示格式不同。如果想要查看特定的進(jìn)程可以使用這樣的格式:**ps aux|grep redis** (查看包括 redis 字符串的進(jìn)程),也可使用?pgrep redis -a。
    注意:如果直接用 ps((Process Status))命令,會(huì)顯示所有進(jìn)程的狀態(tài),通常結(jié)合 grep 命令查看某進(jìn)程的狀態(tài)。

  • kill -9 進(jìn)程的pid?殺死進(jìn)程(-9 表示強(qiáng)制終止。)
    先用 ps 查找進(jìn)程,然后用 kill 殺掉

  • 網(wǎng)絡(luò)通信命令:

    • 查看當(dāng)前系統(tǒng)的網(wǎng)卡信息:ifconfig

    • 查看與某臺(tái)機(jī)器的連接情況:ping

    • 查看當(dāng)前系統(tǒng)的端口使用:netstat -an


  • net-tools 和 iproute2 :net-tools起源于 BSD 的 TCP/IP 工具箱,后來(lái)成為老版本 LinuxLinux 中配置網(wǎng)絡(luò)功能的工具。但自 2001 年起,Linux 社區(qū)已經(jīng)對(duì)其停止維護(hù)。同時(shí),一些 Linux 發(fā)行版比如 Arch Linux 和 CentOS/RHEL 7 則已經(jīng)完全拋棄了 net-tools,只支持iproute2。linux ip 命令類似于 ifconfig,但功能更強(qiáng)大,旨在替代它。

  • shutdownshutdown -h now: 指定現(xiàn)在立即關(guān)機(jī);shutdown +5 "System will shutdown after 5 minutes":指定 5 分鐘后關(guān)機(jī),同時(shí)送出警告信息給登入用戶。

  • rebootreboot?重開機(jī)。**reboot -w:** 做個(gè)重開機(jī)的模擬(只有紀(jì)錄并不會(huì)真的重開機(jī))。

個(gè)人技術(shù)交流群960994558整理了一些個(gè)人覺得比較好Linux服務(wù)器架構(gòu)師學(xué)習(xí)書籍、大廠面試題、和熱門技術(shù)教學(xué)視頻資料(資料包括C/C++,Linux,golang技術(shù),Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒體,CDN,P2P,K8S,Docker,TCP/IP,協(xié)程,DPDK,ffmpeg等),和架構(gòu)學(xué)習(xí)路線腦圖(對(duì)標(biāo)騰訊T9職級(jí))免費(fèi)分享有需要的可以自行添加哦!~



后端程序員必備的 Linux 基礎(chǔ)知識(shí)+常見命令的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
商河县| 韩城市| 沙河市| 凌源市| 遂溪县| 乌鲁木齐市| 苍南县| 北流市| 三江| 潜山县| 六盘水市| 鄂托克前旗| 定陶县| 兴文县| 轮台县| 突泉县| 闽侯县| 西峡县| 龙里县| 武清区| 霸州市| 朝阳市| 集安市| 阳曲县| 读书| 平远县| 中江县| 龙里县| 唐海县| 临潭县| 镇康县| 剑川县| 金川县| 玉林市| 梓潼县| 双柏县| 洛隆县| 平果县| 宁都县| 五台县| 壤塘县|