硬核文章第一時間送達!
本文一共 3w + 字,分别從 linux概述、磁盤、目錄、檔案、安全、文法級、實戰、檔案管理指令、文檔編輯指令、磁盤管理指令、網絡通訊指令、系統管理指令、備份壓縮指令等方面拆解 linux 知識點。本文預計閱讀時間 2h,可以慢慢讀。一、linux 概述1. 什麼是linuxlinux是一套免費使用和自由傳播的類unix作業系統,是一個基于posix和unix的多使用者、多任務、支援多線程和多cpu的作業系統。它能運作主要的unix工具軟體、應用程式和網絡協定。它支援32位和64位硬體。linux繼承了unix以網絡為核心的設計思想,是一個性能穩定的多使用者網絡作業系統。2. unix和linux有什麼差別?linux和unix都是功能強大的作業系統,都是應用廣泛的伺服器作業系統,有很多相似之處,甚至有一部分人錯誤地認為unix和linux作業系統是一樣的,然而,事實并非如此,以下是兩者的差別。1. 開源性
linux是一款開源作業系統,不需要付費,即可使用;unix是一款對源碼實行知識産權保護的傳統商業軟體,使用需要付費授權使用。
2. 跨平台性linux作業系統具有良好的跨平台性能,可運作在多種硬體平台上;unix作業系統跨平台性能較弱,大多需與硬體配套使用。3. 可視化界面linux除了進行指令行操作,還有窗體管理系統;unix隻是指令行下的系統。4. 硬體環境linux作業系統對硬體的要求較低,安裝方法更易掌握;unix對硬體要求比較苛刻,安裝難度較大。5. 使用者群體linux的使用者群體很廣泛,個人和企業均可使用;unix的使用者群體比較窄,多是安全性要求高的大型企業使用,如銀行、電信部門等,或者unix硬體廠商使用,如sun等。
相比于unix作業系統,linux作業系統更受廣大計算機愛好者的喜愛,主要原因是linux作業系統具有unix作業系統的全部功能,并且能夠在普通pc計算機上實作全部的unix特性,開源免費的特性,更容易普及使用!
3. 什麼是 linux 核心?
linux 系統的核心是核心。核心控制着計算機系統上的所有硬體和軟體,在必要時配置設定硬體,并根據需要執行軟體。
系統記憶體管理
應用程式管理
硬體裝置管理
檔案系統管理
4. linux的基本元件是什麼?
就像任何其他典型的作業系統一樣,linux擁有所有這些元件:核心,shell和gui,系統實用程式和應用程式。linux比其他作業系統更具優勢的是每個方面都附帶其他功能,所有代碼都可以免費下載下傳。
5. linux 的體系結構
從大的方面講,linux 體系結構可以分為兩塊:
使用者空間(user space) :使用者空間又包括使用者的應用程式(user applications)、c 庫(c library) 。
核心空間(kernel space) :核心空間又包括系統調用接口(system call interface)、核心(kernel)、平台架構相關的代碼(architecture-dependent kernel code) 。
為什麼 linux 體系結構要分為使用者空間和核心空間的原因?
1. 現代 cpu 實作了不同的工作模式,不同模式下 cpu 可以執行的指令和通路的寄存器不同。
2. linux 從 cpu 的角度出發,為了保護核心的安全,把系統分成了兩部分。
使用者空間和核心空間是程式執行的兩種不同的狀态,我們可以通過兩種方式完成使用者空間到核心空間的轉移:1)系統調用;2)硬體中斷。
6. bash和dos之間的基本差別是什麼?
bash和dos控制台之間的主要差別在于3個方面:1. bash指令區分大小寫,而dos指令則不區分;
2. 在bash下,/ character是目錄分隔符,\作為轉義字元。在dos下,/用作指令參數分隔符,\是目錄分隔符
3. os遵循命名檔案中的約定,即8個字元的檔案名後跟一個點,擴充名為3個字元。bash沒有遵循這樣的慣例。7. linux 開機啟動過程?1、主機加電自檢,加載 bios 硬體資訊。
2、讀取 mbr 的引導檔案(grub、lilo)。
3、引導 linux 核心。
4、運作第一個程序 init (程序号永遠為 1 )。
5、進入相應的運作級别。
6、運作終端,輸入使用者名和密碼。8. linux系統預設的運作級别?
關機。 單機使用者模式。 字元界面的多使用者模式(不支援網絡)。 字元界面的多使用者模式。 未配置設定使用。 圖形界面的多使用者模式。 重新開機。
管道(pipe)、流管道(s_pipe)、有名管道(fifo)
信号(signal)
消息隊列
共享記憶體
信号量
套接字(socket)
10. linux 有哪些系統日志檔案?
比較重要的是 /var/log/messages 日志檔案。
該日志檔案是許多程序日志檔案的彙總,從該檔案可以看出任何入侵企圖或成功的入侵。另外,如果胖友的系統裡有 elk 日志集中收集,它也會被收集進去。
11. linux系統安裝多個桌面環境有幫助嗎?
通常,一個桌面環境,如kde或gnome,足以在沒有問題的情況下運作。盡管系統允許從一個環境切換到另一個環境,但這對使用者來說都是優先考慮的問題。有些程式在一個環境中工作而在另一個環境中無法工作,是以它也可以被視為選擇使用哪個環境的一個因素。
12. 什麼是交換空間?
交換空間是linux使用的一定空間,用于臨時儲存一些并發運作的程式。當ram沒有足夠的記憶體來容納正在執行的所有程式時,就會發生這種情況。13. 什麼是root帳戶
root帳戶就像一個系統管理者帳戶,允許你完全控制系統。你可以在此處建立和維護使用者帳戶,為每個帳戶配置設定不同的權限。每次安裝linux時都是預設帳戶。14. 什麼是lilo?
lilo是linux的引導加載程式。它主要用于将linux作業系統加載到主記憶體中,以便它可以開始運作。15. 什麼是bash?
bash是bourne again shell的縮寫。它由steve bourne編寫,作為原始bourne shell(由/ bin / sh表示)的替代品。它結合了原始版本的bourne shell的所有功能,以及其他功能,使其更容易使用。從那以後,它已被改編為運作linux的大多數系統的預設shell。16. 什麼是cli?
指令行界面(英語**:command-line interface**,縮寫]:cli)是在圖形使用者界面得到普及之前使用最為廣泛的使用者界面,它通常不支援滑鼠,使用者通過鍵盤輸入指令,計算機接收到指令後,予以執行。也有人稱之為字元使用者界面(cui)。
通常認為,指令行界面(cli)沒有圖形使用者界面(gui)那麼友善使用者操作。因為,指令行界面的軟體通常需要使用者記憶操作的指令,但是,由于其本身的特點,指令行界面要較圖形使用者界面節約計算機系統的資源。在熟記指令的前提下,使用指令行界面往往要較使用圖形使用者界面的操作速度要快。是以,圖形使用者界面的作業系統中,都保留着可選的指令行界面。17. 什麼是gui?
圖形使用者界面(graphical user interface,簡稱 gui,又稱圖形使用者接口)是指采用圖形方式顯示的計算機操作使用者界面。
圖形使用者界面是一種人與計算機通信的界面顯示格式,允許使用者使用滑鼠等輸入裝置操縱螢幕上的圖示或菜單選項,以選擇指令、調用檔案、啟動程式或執行其它一些日常任務。與通過鍵盤輸入文本或字元指令來完成例行任務的字元界面相比,圖形使用者界面有許多優點。18. 開源的優勢是什麼?
開源允許你将軟體(包括源代碼)免費分發給任何感興趣的人。然後,人們可以添加功能,甚至可以調試和更正源代碼中的錯誤。它們甚至可以讓它運作得更好,然後再次自由地重新配置設定這些增強的源代碼。這最終使社群中的每個人受益。19. gnu項目的重要性是什麼?
這種所謂的自由軟體運動具有多種優勢,例如可以自由地運作程式以及根據你的需要自由學習和修改程式。它還允許你将軟體副本重新分發給其他人,以及自由改進軟體并将其釋出給公衆。二、磁盤、目錄、檔案
1. 簡單 linux 檔案系統?
在 linux 作業系統中,所有被作業系統管理的資源,例如網絡接口卡、磁盤驅動器、列印機、輸入輸出裝置、普通檔案或是目錄都被看作是一個檔案。
也就是說在 linux 系統中有一個重要的概念**:一切都是檔案**。其實這是 unix 哲學的一個展現,而 linux 是重寫 unix 而來,是以這個概念也就傳承了下來。在 unix 系統中,把一切資源都看作是檔案,包括硬體裝置。unix系統把每個硬體都看成是一個檔案,通常稱為裝置檔案,這樣使用者就可以用讀寫檔案的方式實作對硬體的通路。
linux 支援 5 種檔案類型,如下圖所示:
2. 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)就在這裡。
3. 什麼是 inode ?
一般來說,面試不會問 inode 。但是 inode 是一個重要概念,是了解 unix/linux 檔案系統和硬碟儲存的基礎。
了解inode,要從檔案儲存說起。
檔案儲存在硬碟上,硬碟的最小存儲機關叫做"扇區"(sector)。每個扇區儲存512位元組(相當于0.5kb)。
作業系統讀取硬碟的時候,不會一個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取一個"塊"(block)。這種由多個扇區組成的"塊",是檔案存取的最小機關。"塊"的大小,最常見的是4kb,即連續八個 sector組成一個 block。
檔案資料都儲存在"塊"中,那麼很顯然,我們還必須找到一個地方儲存檔案的元資訊,比如檔案的建立者、檔案的建立日期、檔案的大小等等。這種儲存檔案元資訊的區域就叫做inode,中文譯名為"索引節點"。
每一個檔案都有對應的inode,裡面包含了與該檔案有關的一些資訊。
簡述 linux 檔案系統通過 i 節點把檔案的邏輯結構和實體結構轉換的工作過程?
一般來說,面試官不太會問這個題目。
linux 通過 inode 節點表将檔案的邏輯結構和實體結構進行轉換。
· inode 節點是一個 64 位元組長的表,表中包含了檔案的相關資訊,其中有檔案的大小、檔案所有者、檔案的存取許可方式以及檔案的類型等重要資訊。在 inode 節點表中最重要的内容是磁盤位址表。在磁盤位址表中有 13 個塊号,檔案将以塊号在磁盤位址表中出現的順序依次讀取相應的塊。
· linux 檔案系統通過把 inode 節點和檔案名進行連接配接,當需要讀取該檔案時,檔案系統在目前目錄表中查找該檔案名對應的項,由此得到該檔案相對應的 inode 節點号,通過該 inode 節點的磁盤位址表把分散存放的檔案實體塊連接配接成檔案的邏輯結構。
4. 什麼是硬連結和軟連結?
1)硬連結
由于 linux 下的檔案是通過索引節點(inode)來識别檔案,硬連結可以認為是一個指針,指向檔案索引節點的指針,系統并不為它重新配置設定 inode 。每添加一個一個硬連結,檔案的連結數就加 1 。
不足:1)不可以在不同檔案系統的檔案間建立連結;2)隻有超級使用者才可以為目錄建立硬連結。
2)軟連結
軟連結克服了硬連結的不足,沒有任何檔案系統的限制,任何使用者可以建立指向目錄的符号連結。因而現在更為廣泛使用,它具有更大的靈活性,甚至可以跨越不同機器、不同網絡對檔案進行連結。不足:因為連結檔案包含有原檔案的路徑資訊,是以當原檔案從一個目錄下移到其他目錄中,再通路連結檔案,系統就找不到了,而硬連結就沒有這個缺陷,你想怎麼移就怎麼移;還有它要系統配置設定額外的空間用于建立新的索引節點和儲存原檔案的路徑。
實際場景下,基本是使用軟連結。總結差別如下:
· 硬連結不可以跨分區,軟體鍊可以跨分區。
· 硬連結指向一個 inode 節點,而軟連結則是建立一個新的 inode 節點。
· 删除硬連結檔案,不會删除原檔案,删除軟連結檔案,會把原檔案删除。
5. raid 是什麼?
raid 全稱為獨立磁盤備援陣列(redundant array of independent disks),基本思想就是把多個相對便宜的硬碟組合起來,成為一個硬碟陣列組,使性能達到甚至超過一個價格昂貴、 容量巨大的硬碟。raid 通常被用在伺服器電腦上,使用完全相同的硬碟組成一個邏輯扇區,是以作業系統隻會把它當做一個硬碟。
raid 分為不同的等級,各個不同的等級均在資料可靠性及讀寫性能上做了不同的權衡。在實際應用中,可以依據自己的實際需求選擇不同的 raid 方案。
當然,因為很多公司都使用雲服務,大家很難接觸到 raid 這個概念,更多的可能是普通雲盤、ssd 雲盤醬紫的概念。三、安全1. 一台 linux 系統初始化環境後需要做一些什麼安全工作?
1、添加普通使用者登陸,禁止 root 使用者登陸,更改 ssh 端口号。修改 ssh 端口不一定絕對哈。當然,如果要暴露在外網,建議改下。
2、伺服器使用密鑰登陸,禁止密碼登陸。
3、開啟防火牆,關閉 selinux ,根據業務需求設定相應的防火牆規則。
4、裝 fail2ban 這種防止 ssh 暴力破擊的軟體。
5、設定隻允許公司辦公網出口 ip 能登陸伺服器(看公司實際需要),也可以安裝 vpn 等軟體,隻允許連接配接 vpn 到伺服器上。
6、修改曆史指令記錄的條數為 10 條。
7、隻允許有需要的伺服器可以通路外網,其它全部禁止。
8、做好軟體層面的防護。 8.1 設定 nginx_waf 子產品防止 sql 注入。 8.2 把 web 服務使用 www 使用者啟動,更改網站目錄的所有者和所屬組為 www
2. 什麼叫 cc 攻擊?什麼叫 ddos 攻擊?
cc 攻擊,主要是用來攻擊頁面的,模拟多個使用者不停的對你的頁面進行通路,進而使你的系統資源消耗殆盡。
ddos 攻擊,中文名叫分布式拒絕服務攻擊,指借助伺服器技術将多個計算機聯合起來作為攻擊平台,來對一個或多個目标發動 ddos 攻擊。
攻擊,即是通過大量合法的請求占用大量網絡資源,以達到癱瘓網絡的目的。
怎麼預防 cc 攻擊和 ddos 攻擊?
防 cc、ddos 攻擊,這些隻能是用硬體防火牆做流量清洗,将攻擊流量引入黑洞。
流量清洗這一塊,主要是買 isp 服務商的防攻擊的服務就可以,機房一般有空餘流量,我們一般是買服務,畢竟攻擊不會是持續長時間。
3. 什麼是網站資料庫注入?
由于程式員的水準及經驗參差不齊,大部分程式員在編寫代碼的時候,沒有對使用者輸入資料的合法性進行判斷。應用程式存在安全隐患。使用者可以送出一段資料庫查詢代碼,根據程式傳回的結果,獲得某些他想得知的資料,這就是所謂的 sql 注入。sql注入,是從正常的 www 端口通路,而且表面看起來跟一般的 web 頁面通路沒什麼差別,如果管理者沒檢視日志的習慣,可能被入侵很長時間都不會發覺。
如何過濾與預防?
資料庫網頁端注入這種,可以考慮使用 nginx_waf 做過濾與預防。shell
1. shell 腳本是什麼?
一個 shell 腳本是一個文本檔案,包含一個或多個指令。作為系統管理者,我們經常需要使用多個指令來完成一項任務,我們可以添加這些所有指令在一個文本檔案(shell 腳本)來完成這些日常工作任務。
- 什麼是預設登入 shell ?
在 linux 作業系統,"/bin/bash" 是預設登入 shell,是在建立使用者時配置設定的。
使用 chsh 指令可以改變預設的 shell 。示例如下所示:
-在 shell 腳本中,如何寫入注釋?
注釋可以用來描述一個腳本可以做什麼和它是如何工作的。每一行注釋以 # 開頭。例子如下:
2. 文法級
- 可以在 shell 腳本中使用哪些類型的變量?
在 shell 腳本,我們可以使用兩種類型的變量:
系統定義變量:系統變量是由系統系統自己建立的。這些變量通常由大寫字母組成,可以通過 set 指令檢視。
使用者定義變量:使用者變量由系統使用者來生成和定義,變量的值可以通過指令 "echo $<變量名>" 檢視。
- shell腳本中 $? 标記的用途是什麼?
在寫一個 shell 腳本時,如果你想要檢查前一指令是否執行成功,在 if 條件中使用 $? 可以來檢查前一指令的結束狀态。
· 如果結束狀态是 0 ,說明前一個指令執行成功。例如:
· 如果結束狀态不是0,說明指令執行失敗。例如:
- bourne shell(bash) 中有哪些特殊的變量?
下面的表列出了 bourne shell 為指令行設定的特殊變量。
- 如何取消變量或取消變量指派?
unset 指令用于取消變量或取消變量指派。文法如下所示:
- shell 腳本中 if 文法如何嵌套?
- 在 shell 腳本中如何比較兩個數字?
在 if-then 中使用測試指令( -gt 等)來比較兩個數字。例如:
- shell 腳本中 case 語句的文法?基礎文法如下:
shell 腳本中 for 循環文法?
基礎文法如下:
shell 腳本中 while 循環文法?
· 如同 for 循環,while 循環隻要條件成立就重複它的指令塊。
· 不同于 for循環,while 循環會不斷疊代,直到它的條件不為真。
基礎文法:
- do-while 語句的基本格式?do-while 語句類似于 while 語句,但檢查條件語句之前先執行指令(lctt 譯注:意即至少執行一次。)。下面是用 do-while 語句的文法:
- shell 腳本中 break 指令的作用?
break 指令一個簡單的用途是退出執行中的循環。我們可以在 while 和 until 循環中使用 break 指令跳出循環。
- shell 腳本中 continue 指令的作用?
continue 指令不同于 break 指令,它隻跳出目前循環的疊代,而不是整個循環。continue 指令很多時候是很有用的,例如錯誤發生,但我們依然希望繼續執行大循環的時候。
- 如何使腳本可執行?
使用 chmod 指令來使腳本可執行。例子如下:chmod a+x myscript.sh 。
- 如何調試 shell腳本?
使用 -x' 數(sh -x myscript.sh)可以調試 shell腳本。
另一個種方法是使用 -nv 參數(sh -nv myscript.sh)。
- 如何将标準輸出和錯誤輸出同時重定向到同一位置?
方法一:2>&1 (如## ls /usr/share/doc > out.txt 2>&1 ) 。
方法二:&> (如## ls /usr/share/doc &> out.txt ) 。
- 在 shell 腳本中,如何測試檔案?
test 指令可以用來測試檔案。基礎用法如下表格:
- 在 shell 腳本如何定義函數呢?
函數是擁有名字的代碼塊。當我們定義代碼塊,我們就可以在我們的腳本調用函數名字,該塊就會被執行。示例如下所示:
如何讓 shell 就腳本得到來自終端的輸入?read 指令可以讀取來自終端(使用鍵盤)的資料。read 指令得到使用者的輸入并置于你給出的變量中。例子如下:
- 如何執行算術運算?
有兩種方法來執行算術運算:
1、使用 expr 指令:## expr 5 + 2 。
2、用一個美元符号和方括号($[ 表達式 ]):test=$[16 + 4] ; test=$[16 + 4] 。
四、程式設計題
1. 判斷一檔案是不是字元裝置檔案,如果是将其拷貝到 /dev 目錄下?
2. 添加一個新組為 class1 ,然後添加屬于這個組的 30 個使用者,使用者名的形式為 stdxx ,其中 xx 從 01 到 30 ?
3. 編寫 shell 程式,實作自動删除 50 個賬号的功能,賬号名為stud1 至 stud50 ?
4. 寫一個 sed 指令,修改 /tmp/input.txt 檔案的内容?要求:
· 删除所有空行。
· 一行中,如果包含 “11111”,則在 “11111” 前面插入 “aaa”,在 “11111” 後面插入 “bbb” 。比如:将内容為 0000111112222 的一行改為 0000aaa11111bbb2222 。
五、實戰
1. 如何選擇 linux 作業系統版本?
一般來講,桌面使用者首選 ubuntu ;伺服器首選 rhel 或 centos ,兩者中首選 centos 。根據具體要求:
· 安全性要求較高,則選擇 debian 或者 freebsd 。
· 需要使用資料庫進階服務和電子郵件網絡應用的使用者可以選擇 suse 。
· 想要新技術新功能可以選擇 feddora ,feddora 是 rhel 和 centos 的一個測試版和預釋出版本。
·【重點】根據現有狀況,絕大多數網際網路公司選擇 centos 。現在比較常用的是 6 系列,現在市場占有大概一半左右。另外的原因是 centos 更側重伺服器領域,并且無版權限制。
centos 7 系列,也慢慢使用的會比較多了。
2. 如何規劃一台 linux 主機,步驟是怎樣
1. 确定機器是做什麼用的,比如是做 web 、db、還是遊戲伺服器。不同的用途,機器的配置會有所不同。
2. 确定好之後,就要定系統需要怎麼安裝,預設安裝哪些系統、分區怎麼做。
3. 需要優化系統的哪些參數,需要建立哪些使用者等等的。
3. 請問當使用者回報網站通路慢,如何處理?
- 有哪些方面的因素會導緻網站網站通路慢?
1、伺服器出口帶寬不夠用,本身伺服器購買的出口帶寬比較小。一旦并發量大的話,就會造成分給每個使用者的出口帶寬就小,通路速度自然就會慢。跨營運商網絡導緻帶寬縮減。例如,公司網站放在電信的網絡上,那麼客戶這邊對接是長城寬帶或聯通,這也可能導緻帶寬的縮減。2、伺服器負載過大,導緻響應不過來可以從兩個方面入手分析:
分析系統負載,使用 w 指令或者 uptime 指令檢視系統負載。如果負載很高,則使用 top 指令檢視 cpu ,mem 等占用情況,要麼是 cpu 繁忙,要麼是記憶體不夠。如果這二者都正常,再去使用 sar 指令分析網卡流量,分析是不是遭到了攻擊。一旦分析出問題的原因,采取對應的措施解決,如決定要不要殺死一些程序,或者禁止一些通路等。
3、資料庫瓶頸
如果慢查詢比較多。那麼就要開發人員或 dba 協助進行 sql 語句的優化。如果資料庫響應慢,考慮可以加一個資料庫緩存,如 redis 等。然後,也可以搭建 mysql 主從,一台 mysql 伺服器負責寫,其他幾台從資料庫負責讀。
4、網站開發代碼沒有優化好
例如 sql 語句沒有優化,導緻資料庫讀寫相當耗時。
- 針對網站通路慢,怎麼去排查?
1、首先要确定是使用者端還是服務端的問題。當接到使用者回報通路慢,那邊自己立即通路網站看看,如果自己這邊通路快,基本斷定是使用者端問題,就需要耐心跟客戶解釋,協助客戶解決問題。
不要上來就看服務端的問題。一定要從源頭開始,逐漸逐漸往下。
2、如果通路也慢,那麼可以利用浏覽器的調試功能,看看加載那一項資料消耗時間過多,是圖檔加載慢,還是某些資料加載慢。
3、針對伺服器負載情況。檢視伺服器硬體(網絡、cpu、記憶體)的消耗情況。如果是購買的雲主機,比如阿裡雲,可以登入阿裡雲平台提供各方面的監控,比如 cpu、記憶體、帶寬的使用情況。
4、如果發現硬體資源消耗都不高,那麼就需要通過查日志,比如看看 mysql慢查詢的日志,看看是不是某條 sql 語句查詢慢,導緻網站通路慢。
- 怎麼去解決?
1、如果是出口帶寬問題,那麼久申請加大出口帶寬。
2、如果慢查詢比較多,那麼就要開發人員或 dba 協助進行 sql 語句的優化。
3、如果資料庫響應慢,考慮可以加一個資料庫緩存,如 redis 等等。然後也可以搭建mysql 主從,一台 mysql 伺服器負責寫,其他幾台從資料庫負責讀。
4、申請購買 cdn 服務,加載使用者的通路。
5、如果通路還比較慢,那就需要從整體架構上進行優化咯。做到專角色專用,多台伺服器提供同一個服務。
4. linux 性能調優都有哪幾種方法?
1、disabling daemons (關閉 daemons)。
2、shutting down the gui (關閉 gui)。
3、changing kernel parameters (改變核心參數)。
4、kernel parameters (核心參數)。
5、tuning the processor subsystem (處理器子系統調優)。
6、tuning the memory subsystem (記憶體子系統調優)。
7、tuning the file system (檔案系統子系統調優)。
8、tuning the network subsystem(網絡子系統調優)。
六、檔案管理指令
1. cat 指令
cat 指令用于連接配接檔案并列印到标準輸出裝置上。
cat 主要有三大功能:
1.一次顯示整個檔案:
2.從鍵盤建立一個檔案:
隻能建立新檔案,不能編輯已有檔案。
3.将幾個檔案合并為一個檔案:
-b 對非空輸出行号
-n 輸出所有行号
- 執行個體:
(1)把 log2012.log 的檔案内容加上行号後輸入 log2013.log 這個檔案裡
(2)把 log2012.log 和 log2013.log 的檔案内容加上行号(空白行不加)之後将内容附加到 log.log 裡
(3)使用 here doc 生成新檔案
(4)反向列示
2. chmod 指令
linux/unix 的檔案調用權限分為三級 : 檔案擁有者、群組、其他。利用 chmod 可以控制檔案如何被他人所調用。
用于改變 linux 系統檔案或目錄的通路權限。用它控制檔案或目錄的通路權限。該指令有兩種用法。一種是包含字母和操作符表達式的文字設定法;另一種是包含數字的數字設定法。
每一檔案或目錄的通路權限都有三組,每組用三位表示,分别為檔案屬主的讀、寫和執行權限;與屬主同組的使用者的讀、寫和執行權限;系統中其他使用者的讀、寫和執行權限。可使用 ls -l test.txt 查找。
以檔案 log2012.log 為例:
第一列共有 10 個位置,第一個字元指定了檔案類型。在通常意義上,一個目錄也是一個檔案。如果第一個字元是橫線,表示是一個非目錄的檔案。如果是 d,表示是一個目錄。從第二個字元開始到第十個 9 個字元,3 個字元一組,分别表示了 3 組使用者對檔案或者目錄的權限。權限字元用橫線代表空許可,r 代表隻讀,w 代表寫,x 代表可執行。常用參數:
權限範圍:
權限代号:
(1)增加檔案 t.log 所有使用者可執行權限
(2)撤銷原來所有的權限,然後使擁有者具有可讀權限,并輸出處理資訊
(3)給 file 的屬主配置設定讀、寫、執行(7)的權限,給file的所在組配置設定讀、執行(5)的權限,給其他使用者配置設定執行(1)的權限
(4)将 test 目錄及其子目錄所有檔案添加可讀權限
3. chown 指令
chown 将指定檔案的擁有者改為指定的使用者或組,使用者可以是使用者名或者使用者 id;組可以是組名或者組 id;檔案是以空格分開的要改變權限的檔案清單,支援通配符。
(1)改變擁有者和群組 并顯示改變資訊
(2)改變檔案群組
(3)改變檔案夾及子檔案目錄屬主及屬組為 mail
4. cp 指令
将源檔案複制至目标檔案,或将多個源檔案複制至目标目錄。
注意:指令行複制,如果目标檔案已經存在會提示是否覆寫,而在 shell 腳本中,如果不加 -i 參數,則不會提示,而是直接覆寫!
(1)複制 a.txt 到 test 目錄下,保持原檔案時間,如果原檔案存在提示是否覆寫。
(2)為 a.txt 建議一個連結(快捷方式)
5. find 指令
用于在檔案樹中查找檔案,并作出相應的處理。
指令格式:
指令參數:
指令選項:
(1)查找 48 小時内修改過的檔案
(2)在目前目錄查找 以 .log 結尾的檔案。. 代表目前目錄
(3)查找 /opt 目錄下 權限為 777 的檔案
(4)查找大于 1k 的檔案
(5)查找等于 1000 字元的檔案
-exec 參數後面跟的是 command 指令,它的終止是以 ; 為結束标志的,是以這句指令後面的分号是不可缺少的,考慮到各個系統中分号會有不同的意義,是以前面加反斜杠。{} 花括号代表前面find查找出來的檔案名。
6. head 指令
head 用來顯示檔案的開頭至标準輸出中,預設 head 指令列印其相應檔案的開頭 10 行。
常用參數:
執行個體:
(1)顯示 1.log 檔案中前 20 行
(2)顯示 1.log 檔案前 20 位元組
(3)顯示 t.log最後 10 行
7. less 指令
less 與 more 類似,但使用 less 可以随意浏覽檔案,而 more 僅能向前移動,卻不能向後移動,而且 less 在檢視之前不會加載整個檔案。常用指令參數:
(1)ps 檢視程序資訊并通過 less 分頁顯示
(2)檢視多個檔案
可以使用 n 檢視下一個,使用 p 檢視前一個。
8. ln 指令
功能是為檔案在另外一個位置建立一個同步的連結,當在不同目錄需要該問題時,就不需要為每一個目錄建立同樣的檔案,通過 ln 建立的連結(link)減少磁盤占用量。
連結分類:軟體連結及硬連結
軟連結:
1.軟連結,以路徑的形式存在。類似于windows作業系統中的快捷方式
2.軟連結可以 跨檔案系統 ,硬連結不可以
3.軟連結可以對一個不存在的檔案名進行連結
4.軟連結可以對目錄進行連結硬連結:
1.硬連結,以檔案副本的形式存在。但不占用實際空間。
2.不允許給目錄建立硬連結
3.硬連結隻有在同一個檔案系統中才能建立
需要注意:
第一:ln指令會保持每一處連結檔案的同步性,也就是說,不論你改動了哪一處,其它的檔案都會發生相同的變化;
第二:ln的連結又分軟連結和硬連結兩種,軟連結就是ln –s 源檔案 目标檔案,它隻會在你標明的位置上生成一個檔案的鏡像,不會占用磁盤空間,硬連結 ln 源檔案 目标檔案,沒有參數-s, 它會在你標明的位置上生成一個和源檔案大小相同的檔案,無論是軟連結還是硬連結,檔案都保持同步變化。
第三:ln指令用在連結檔案或目錄,如同時指定兩個以上的檔案或目錄,且最後的目的地是一個已經存在的目錄,則會把前面指定的所有檔案或目錄複制到該目錄中。若同時指定多個檔案或目錄,且最後的目的地并非是一個已存在的目錄,則會出現錯誤資訊。
(1)給檔案建立軟連結,并顯示操作資訊
(2)給檔案建立硬連結,并顯示操作資訊
(3)給目錄建立軟連結
9. locate 指令
locate 通過搜尋系統内建文檔資料庫達到快速找到檔案,資料庫由 updatedb 程式來更新,updatedb 是由 cron daemon 周期性調用的。預設情況下 locate 指令在搜尋資料庫時比由整個由硬碟資料來搜尋資料來得快,但較差勁的是 locate 所找到的檔案若是最近才建立或 剛更名的,可能會找不到,在内定值中,updatedb 每天會跑一次,可以由修改 crontab 來更新設定值 (etc/crontab)。
locate 與 find 指令相似,可以使用如 *、? 等進行正則比對查找
(1)查找和 pwd 相關的所有檔案(檔案名中包含 pwd)
(2)搜尋 etc 目錄下所有以 sh 開頭的檔案
(3)查找 /var 目錄下,以 reason 結尾的檔案
10. more 指令
功能類似于 cat, more 會以一頁一頁的顯示友善使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示。
常用操作指令:
(1)顯示檔案中從第3行起的内容
(2)在所列出檔案目錄詳細資訊,借助管道使每次顯示 5 行
按空格顯示下 5 行。11. mv 指令
移動檔案或修改檔案名,根據第二參數類型(如目錄,則移動檔案;如為檔案則重指令該檔案)。
當第二個參數為目錄時,第一個參數可以是多個以空格分隔的檔案或目錄,然後移動第一個參數指定的多個檔案到第二個參數指定的目錄中。
(1)将檔案 test.log 重命名為 test1.txt
(2)将檔案 log1.txt,log2.txt,log3.txt 移動到根的 test3 目錄中
(3)将檔案 file1 改名為 file2,如果 file2 已經存在,則詢問是否覆寫
(4)移動目前檔案夾下的所有檔案到上一級目錄
12. rm 指令
删除一個目錄中的一個或多個檔案或目錄,如果沒有使用 -r 選項,則 rm 不會删除目錄。如果使用 rm 來删除檔案,通常仍可以将該檔案恢複原狀。
(1)删除任何 .log 檔案,删除前逐一詢問确認:
(2)删除 test 子目錄及子目錄中所有檔案删除,并且不用一一确認:
(3)删除以 -f 開頭的檔案
13. tail 指令
用于顯示指定檔案末尾内容,不指定檔案時,作為輸入資訊進行處理。常用檢視日志檔案。
(1)循環讀取逐漸增加的檔案内容
背景運作:可使用 jobs -l 檢視,也可使用 fg 将其移到前台運作。
(檢視日志)
14. touch 指令
linux touch指令用于修改檔案或者目錄的時間屬性,包括存取時間和更改時間。若檔案不存在,系統會建立一個新的檔案。
ls -l 可以顯示檔案的時間記錄。
文法
參數說明:
a 改變檔案的讀取時間記錄。
m 改變檔案的修改時間記錄。
c 假如目的檔案不存在,不會建立新的檔案。與 --no-create 的效果一樣。
f 不使用,是為了與其他 unix 系統的相容性而保留。
r 使用參考檔的時間記錄,與 --file 的效果一樣。
d 設定時間與日期,可以使用各種不同的格式。
t 設定檔案的時間記錄,格式與 date 指令相同。
–no-create 不會建立新檔案。
–help 列出指令格式。
–version 列出版本訊息。執行個體
使用指令"touch"修改檔案"testfile"的時間屬性為目前系統時間,輸入如下指令:
首先,使用ls指令檢視testfile檔案的屬性,如下所示:
執行指令"touch"修改檔案屬性以後,并再次檢視該檔案的時間屬性,如下所示:
使用指令"touch"時,如果指定的檔案不存在,則将建立一個新的空白檔案。例如,在目前目錄下,使用該指令建立一個空白檔案"file",輸入如下指令:
15. vim 指令
vim是從 vi 發展出來的一個文本編輯器。代碼補完、編譯及錯誤跳轉等友善程式設計的功能特别豐富,在程式員中被廣泛使用。 打開檔案并跳到第 10 行:vim +10 filename.txt 。
打開檔案跳到第一個比對的行:vim +/search-term filename.txt 。
以隻讀模式打開檔案:vim -r /etc/passwd 。基本上 vi/vim 共分為三種模式,分别是指令模式(command mode),輸入模式(insert mode)和底線指令模式(last line mode)。
簡單的說,我們可以将這三個模式想成底下的圖示來表示:16. whereis 指令
whereis 指令隻能用于程式名的搜尋,而且隻搜尋二進制檔案(參數-b)、man說明檔案(參數-m)和源代碼檔案(參數-s)。如果省略參數,則傳回所有資訊。whereis 及 locate 都是基于系統内建的資料庫進行搜尋,是以效率很高,而find則是周遊硬碟查找檔案。
(1)查找 locate 程式相關檔案
(2)查找 locate 的源碼檔案
(3)查找 lcoate 的幫助檔案
17. which 指令
在 linux 要查找某個檔案,但不知道放在哪裡了,可以使用下面的一些指令來搜尋:
which 是在 path 就是指定的路徑中,搜尋某個系統指令的位置,并傳回第一個搜尋結果。使用 which 指令,就可以看到某個系統指令是否存在,以及執行的到底是哪一個位置的指令。常用參數:
執行個體:(1)檢視 ls 指令是否存在,執行哪個
(2)檢視 which
3)檢視 cd
檢視目前 path 配置:
或使用 env 檢視所有環境變量及對應值
七、文檔編輯指令
1. grep 指令
強大的文本搜尋指令,grep(global regular expression print) 全局正規表達式搜尋。
grep 的工作方式是這樣的,它在一個或多個檔案中搜尋字元串模闆。如果模闆包括空格,則必須被引用,模闆後的所有字元串被看作檔案名。搜尋的結果被送到标準輸出,不影響原檔案内容。
grep 的規則表達式:
(1)查找指定程序
(2)查找指定程序個數
(3)從檔案中讀取關鍵詞
(4)從檔案夾中遞歸查找以grep開頭的行,并隻列出檔案
(5)查找非x開關的行内容
(6)顯示包含 ed 或者 at 字元的内容行
2. wc 指令
wc(word count)功能為統計指定的檔案中位元組數、字數、行數,并将統計結果輸出
(1)查找檔案的 行數 單詞數 位元組數 檔案名
結果:
(2)統計輸出結果的行數
八、磁盤管理指令1. cd 指令
cd(changedirectory) 指令文法:
說明:切換目前目錄至 dirname。
(1)進入要目錄
(2)進入 “home” 目錄
(3)進入上一次工作路徑
(4)把上個指令的參數作為cd參數使用。
2. df 指令
顯示磁盤空間使用情況。擷取硬碟被占用了多少空間,目前還剩下多少空間等資訊,如果沒有檔案名被指定,則所有目前被挂載的檔案系統的可用空間将被顯示。預設情況下,磁盤空間将以 1kb 為機關進行顯示,除非環境變量 posixly_correct 被指定,那樣将以512位元組為機關進行顯示:
(1)顯示磁盤使用情況
(2)以易讀方式列出所有檔案系統及其類型
3. du 指令
du 指令也是檢視使用空間的,但是與 df 指令不同的是 linux du 指令是對檔案和目錄磁盤使用的空間的檢視:
(1)以易讀方式顯示檔案夾内及子檔案夾大小
(2)以易讀方式顯示檔案夾内所有檔案大小
(3)顯示幾個檔案或目錄各自占用磁盤空間的大小,還統計它們的總和
(4)輸出目前目錄下各個子目錄所使用的空間
4. ls指令
就是 list 的縮寫,通過 ls 指令不僅可以檢視 linux 檔案夾包含的檔案,而且可以檢視檔案權限(包括目錄、檔案夾、檔案權限)檢視目錄資訊等等。
常用參數搭配:
(1) 按易讀方式按時間反序排序,并顯示檔案詳細資訊
(2) 按大小反序顯示檔案詳細資訊
(3)列出目前目錄中所有以"t"開頭的目錄的詳細内容
(4) 列出檔案絕對路徑(不包含隐藏檔案)
(5) 列出檔案絕對路徑(包含隐藏檔案)
5. mkdir 指令
mkdir 指令用于建立檔案夾。
可用選項:
-m: 對建立目錄設定存取權限,也可以用 chmod 指令設定;
-p: 可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項後,系統将自動建立好那些尚不在的目錄,即一次可以建立多個目錄。
(1)目前工作目錄下建立名為 t的檔案夾
(2)在 tmp 目錄下建立路徑為 test/t1/t 的目錄,若不存在,則建立:
6. pwd 指令
pwd 指令用于檢視目前工作目錄路徑。
(1)檢視目前路徑
(2)檢視軟連結的實際路徑
7. rmdir 指令
從一個目錄中删除一個或多個子目錄項,删除某目錄時也必須具有對其父目錄的寫權限。
注意:不能删除非空目錄
(1)當 parent 子目錄被删除後使它也成為空目錄的話,則順便一并删除:
九、網絡通訊指令九、網絡通訊指令
1. ifconfig 指令
ifconfig 用于檢視和配置 linux 系統的網絡接口。檢視所有網絡接口及其狀态:ifconfig -a 。使用 up 和 down 指令啟動或停止某個接口:ifconfig eth0 up 和 ifconfig eth0 down 。
2. iptables 指令
iptables ,是一個配置 linux 核心防火牆的指令行工具。功能非常強大,對于我們開發來說,主要掌握如何開放端口即可。例如:
把來源 ip 為 192.168.1.101 通路本機 80 端口的包直接拒絕:iptables -i input -s 192.168.1.101 -p tcp --dport 80 -j reject 。開啟 80 端口,因為web對外都是這個端口
另外,要注意使用 iptables save 指令,進行儲存。否則,伺服器重新開機後,配置的規則将丢失。
3. netstat 指令
linux netstat指令用于顯示網絡狀态。利用netstat指令可讓你得知整個linux系統的網絡情況。
參數說明: -a或–all 顯示所有連線中的socket。
-a<網絡類型>或–<網絡類型> 列出該網絡類型連線中的相關位址。
-c或–continuous 持續列出網絡狀态。
-c或–cache 顯示路由器配置的快取資訊。
-e或–extend 顯示網絡其他相關資訊。
-f或–fib 顯示fib。
-g或–groups 顯示多重廣播功能群組組員名單。
-h或–help 線上幫助。
-i或–interfaces 顯示網絡界面資訊表單。
-l或–listening 顯示監控中的伺服器的socket。
-m或–masquerade 顯示僞裝的網絡連線。
-n或–numeric 直接使用ip位址,而不通過域名伺服器。
-n或–netlink或–symbolic 顯示網絡硬體外圍裝置的符号連接配接名稱。
-o或–timers 顯示計時器。
-p或–programs 顯示正在使用socket的程式識别碼和程式名稱。
-r或–route 顯示routing table。
-s或–statistice 顯示網絡工作資訊統計表。
-t或–tcp 顯示tcp傳輸協定的連線狀況。
-u或–udp 顯示udp傳輸協定的連線狀況。
-v或–verbose 顯示指令執行過程。
-v或–version 顯示版本資訊。
-w或–raw 顯示raw傳輸協定的連線狀況。
-x或–unix 此參數的效果和指定"-a unix"參數相同。
–ip或–inet 此參數的效果和指定"-a inet"參數相同。
執行個體
如何檢視系統都開啟了哪些端口?
如何檢視網絡連接配接狀況?
如何統計系統目前程序連接配接數?
輸入指令 netstat -an | grep established | wc -l 。
輸出結果 177 。一共有 177 連接配接數。
用 netstat 指令配合其他指令,按照源 ip 統計所有到 80 端口的 established 狀态連結的個數?
嚴格來說,這個題目考驗的是對 awk 的使用。
首先,使用 netstat -an|grep established 指令。結果如下:
4. ping 指令
linux ping指令用于檢測主機。
執行ping指令會使用icmp傳輸協定,發出要求回應的資訊,若遠端主機的網絡功能沒有問題,就會回應該資訊,因而得知該主機運作正常。指定接收包的次數
5. telnet 指令
linux telnet指令用于遠端登入。執行telnet指令開啟終端機階段作業,并登入遠端主機。
-8 允許使用8位字元資料,包括輸入與輸出。
-a 嘗試自動登入遠端系統。
-b<主機名稱> 使用别名指定遠端主機名稱。
-c 不讀取使用者專屬目錄裡的.telnetrc檔案。
-d 啟動排錯模式。
-e<脫離字元> 設定脫離字元。
-e 濾除脫離字元。
-f 此參數的效果和指定"-f"參數相同。
-f 使用kerberos v5認證時,加上此參數可把本地主機的認證資料上傳到遠端主機。
-k<域名> 使用kerberos認證時,加上此參數讓遠端主機采用指定的領域名,而非該主機的域名。
-k 不自動登入遠端主機。
-l<使用者名稱> 指定要登入遠端主機的使用者名稱。
-l 允許輸出8位字元資料。
-n<記錄檔案> 指定檔案記錄相關資訊。
-r 使用類似rlogin指令的使用者界面。
-s<服務類型> 設定telnet連線所需的ip tos資訊。
-x 假設主機有支援資料加密的功能,就使用它。
-x<認證形态> 關閉指定的認證形态。
登入遠端主機
十、系統管理指令
1. date指令
顯示或設定系統的日期與時間。
(1)顯示下一天
(2)-d參數使用
2. free 指令
顯示系統記憶體使用情況,包括實體記憶體、互動區記憶體(swap)和核心緩沖區記憶體。
(1)顯示記憶體使用情況
(2)以總和的形式顯示記憶體的使用資訊
(3)周期性查詢記憶體使用情況
3. kill 指令
發送指定的信号到相應程序。不指定型号将發送sigterm(15)終止指定程序。如果任無法終止該程式可用"-kill" 參數,其發送的信号為sigkill(9) ,将強制結束程序,使用ps指令或者jobs 指令可以檢視程序号。root使用者将影響使用者的程序,非root使用者隻能影響自己的程序。
(1)先使用ps查找程序pro1,然後用kill殺掉
4. ps 指令
ps(process status),用來檢視目前運作的程序狀态,一次性檢視,如果需要動态連續結果使用 top
linux上程序有5種狀态:
1. 運作(正在運作或在運作隊列中等待)
2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到信号)
3. 不可中斷(收到信号不喚醒和不可運作, 程序必須等待直到有中斷發生)
4. 僵死(程序已終止, 但程序描述符存在, 直到父程序調用wait4()系統調用後釋放)
5. 停止(程序收到sigstop, sigstp, sigtin, sigtou信号後停止運作運作)
ps 工具辨別程序的5種狀态碼:
(1)顯示目前所有程序環境變量及程序間關系
(2)顯示目前所有程序
(3)與grep聯用查找某程序
(4)找出與 cron 與 syslog 這兩個服務有關的 pid 号碼
5. rpm 指令
linux rpm 指令用于管理套件。
rpm(redhat package manager) 原本是 red hat linux 發行版專門用來管理 linux 各項套件的程式,由于它遵循 gpl 規則且功能強大友善,因而廣受歡迎。逐漸受到其他發行版的采用。rpm 套件管理方式的出現,讓 linux 易于安裝,更新,間接提升了 linux 的适用度。
6. top 指令
顯示目前系統正在執行的程序的相關資訊,包括程序 id、記憶體占用率、cpu 占用率等
前五行是目前系統情況整體的統計資訊區。第一行,任務隊列資訊,同 uptime 指令的執行結果,具體參數說明情況如下:
14:06:23 — 目前系統時間
up 70 days, 16:44 — 系統已經運作了70天16小時44分鐘(在這期間系統沒有重新開機過的吆!)
2 users — 目前有2個使用者登入系統
load average: 1.15, 1.42, 1.44 — load average後面的三個數分别是1分鐘、5分鐘、15分鐘的負載情況。
load average資料是每隔5秒鐘檢查一次活躍的程序數,然後按特定算法計算出的數值。如果這個數除以邏輯cpu的數量,結果高于5的時候就表明系統在超負荷運轉了。
第二行,tasks — 任務(程序),具體資訊說明如下:
系統現在共有206個程序,其中處于運作中的有1個,205個在休眠(sleep),stoped狀态的有0個,zombie狀态(僵屍)的有0個。
第三行,cpu狀态資訊,具體屬性說明如下:
備注:在這裡cpu的使用比率和windows概念不同,需要了解linux系統使用者空間和核心空間的相關知識!
第四行,記憶體狀态,具體資訊如下:
第五行,swap交換分區資訊,具體資訊說明如下:
第六行,空行。
第七行以下:各程序(任務)的狀态監控,項目列資訊說明如下:
top 互動指令
7. yum 指令yum( yellow dog updater, modified)是一個在fedora和redhat以及suse中的shell前端軟體包管理器。
基於rpm包管理,能夠從指定的伺服器自動下載下傳rpm包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載下傳、安裝。
yum提供了查找、安裝、删除某一個、一組甚至全部軟體包的指令,而且指令簡潔而又好記。
1.列出所有可更新的軟體清單指令:yum check-update
2.更新所有軟體指令:yum update
3.僅安裝指定的軟體指令:yum install <package_name>
4.僅更新指定的軟體指令:yum update <package_name>
5.列出所有可安裝的軟體清單指令:yum list
6.删除軟體包指令:yum remove <package_name>
7.查找軟體包 指令:yum search
8.清除緩存指令:
yum clean packages: 清除緩存目錄下的軟體包
yum clean headers: 清除緩存目錄下的 headers
yum clean oldheaders: 清除緩存目錄下舊的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除緩存目錄下的軟體包及舊的headers
安裝 pam-devel
十一、備份壓縮指令
1. bzip2 指令
建立 *.bz2 壓縮檔案:bzip2 test.txt 。
解壓 *.bz2 檔案:bzip2 -d test.txt.bz2 。
2. gzip 指令
建立一個 *.gz 的壓縮檔案:gzip test.txt 。
解壓 *.gz 檔案:gzip -d test.txt.gz 。
顯示壓縮的比率:gzip -l *.gz 。
3. tar 指令
用來壓縮和解壓檔案。tar 本身不具有壓縮功能,隻具有打包功能,有關壓縮及解壓是調用其它的功能來完成。
弄清兩個概念:打包和壓縮。打包是指将一大堆檔案或目錄變成一個總的檔案;壓縮則是将一個大的檔案通過一些壓縮算法變成一個小檔案
有關 gzip 及 bzip2 壓縮:
(1)将檔案全部打包成 tar 包
(2)将 /etc 下的所有檔案及目錄打包到指定目錄,并使用 gz 壓縮
(3)檢視剛打包的檔案内容(一定加z,因為是使用 gzip 壓縮的)
(4)要壓縮打包 /home, /etc ,但不要 /home/dmtsai
4. unzip 指令
解壓 *.zip 檔案:unzip test.zip
檢視 *.zip 檔案的内容:unzip -l jasper.zip