Linux面试题(总结最全面的面试题!!!)
文章目錄
- Linux 概述
- 什么是Linux
- Windows和Linux的區別
- Unix和Linux有什么區別
- 什么是 Linux 內核
- Linux的基本組件是什么
- Linux 的體系結構
- BASH和DOS之間的基本區別是什么
- Linux 開機啟動過程
- Linux系統缺省的運行級別
- Linux 使用的進程間通信方式
- Linux 有哪些系統日志文件
- Linux系統安裝多個桌面環境有幫助嗎
- 什么是交換空間
- 什么是root帳戶
- 什么是LILO
- 什么是BASH
- 什么是CLI
- 什么是GUI
- 開源的優勢是什么
- GNU項目的重要性是什么
- 磁盤、目錄、文件
- 簡單 Linux 文件系統
- Linux 的目錄結構是怎樣的
- 什么是 inode
- 什么是硬鏈接和軟鏈接
- RAID 是什么?
- 安全
- 一臺 Linux 系統初始化環境后需要做一些什么安全工作
- 什么叫 CC 攻擊什么叫 DDOS 攻擊
- 什么是網站數據庫注入
- Shell 腳本是什么
- 實戰
- 如何選擇 Linux 操作系統版本?
- 如何規劃一臺 Linux 主機,步驟是怎樣
- 請問當用戶反饋網站訪問慢,你會如何處理
- Linux 性能調優都有哪幾種方法
- 基本命令
- cd (change directory:英文釋義是改變目錄)切換目錄
- pwd (print working directory:顯示當前工作目錄的絕對路徑)
- ls (ls:list的縮寫,查看列表)查看當前目錄下的所有文件夾(ls 只列出文件名或目錄名)
- ll (ll:list的縮寫,查看列表詳情)查看當前目錄下的所有詳細信息和文件夾(ll 結果是詳細,有時間,是否可讀寫等信息)
- touch (touch:創建文件)創建文件
- mkdir (mkdir:創建目錄) 創建目錄
- cat (concatenate:顯示或把多個文本文件連接起來)查看文件命令(可以快捷查看當前文件的內容)(不能快速定位到最后一頁)
- more (more:更多的意思)分頁查看文件命令(不能快速定位到最后一頁)
- less (lese:較少的意思)分頁查看文件命令(可以快速定位到最后一頁)
- tail(尾巴) 查看文件命令(看最后多少行)
- cp(copy單詞縮寫,復制功能)
- mv(move單詞縮寫,移動功能,該文件名稱功能)
- rm(remove:移除的意思)刪除文件,或文件夾
- find (find:找到的意思)查找指定文件或目錄
- vi (VIsual:視覺)文本編輯器 類似win的記事本 (操作類似于地下的vim命令,看底下vim 的操作)
- vim (VI IMproved:改進版視覺)改進版文本編輯器 (不管是文件查看還是文件編輯 按 Shift + 上或者下可以上下移動查看視角)
- | 管道命令(把多個命令組合起來使用)
- grep (grep :正則表達式)正則表達式,用于字符串的搜索工作(模糊查詢)。不懂可以先過
- yum install -y lrzsz 命令(實現win到Linux文件互相簡單上傳文件)
- tar (解壓 壓縮 命令)
- ps (process status:進程狀態,類似于windows的任務管理器)
- clear 清屏命令。(強迫癥患者使用)
- ifconfig命令
- ping (用于檢測與目標的連通性)語法:ping ip地址
- free 命令 (顯示系統內存)
- top 命令
- netstat 命令
- file (可查看文件類型)
- 重啟linux
- 關機linux
- 同步時間命令
- 更改為北京時間命令
- 查看時間命令:
Linux 概述
什么是Linux
-
Linux是一套免費使用和自由傳播的類似Unix操作系統,一般的WEB項目都是部署都是放在Linux操作系統上面。 Linux是一個基于POSIX和Unix的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的Unix工具軟件、應用程序和網絡協議。它支持32位和64位硬件。Linux繼承了Unix以網絡為核心的設計思想,是一個性能穩定的多用戶網絡操作系統。
Windows和Linux的區別
- Windows是微軟開發的操作系統,民用操作系統,可用于娛樂、影音、上網。 Windows操作系統具有強大的日志記錄系統和強大的桌面應用。好處是它可以幫我們實現非常多絢麗多彩的效果,可以非常方便去進行娛樂、影音、上網。
- Linux的應用相對單純很多,沒有什么絢麗多彩的效果,因此Linux的性能是非常出色的,可以完全針對機器的配置有針對性的優化,
- 簡單來說Windows適合普通用戶進行娛樂辦公使用,Linux適合軟件開發部署
Unix和Linux有什么區別
- Linux和Unix都是功能強大的操作系統,都是應用廣泛的服務器操作系統,有很多相似之處,甚至有一部分人錯誤地認為Unix和Linux操作系統是一樣的,然而,事實并非如此,以下是兩者的區別。
- 開源性
Linux是一款開源操作系統,不需要付費,即可使用;Unix是一款對源碼實行知識產權保護的傳統商業軟件,使用需要付費授權使用。 - 跨平臺性
Linux操作系統具有良好的跨平臺性能,可運行在多種硬件平臺上;Unix操作系統跨平臺性能較弱,大多需與硬件配套使用。 - 可視化界面
Linux除了進行命令行操作,還有窗體管理系統;Unix只是命令行下的系統。 - 硬件環境
Linux操作系統對硬件的要求較低,安裝方法更易掌握;Unix對硬件要求比較苛刻,按照難度較大。 - 用戶群體
Linux的用戶群體很廣泛,個人和企業均可使用;Unix的用戶群體比較窄,多是安全性要求高的大型企業使用,如銀行、電信部門等,或者Unix硬件廠商使用,如Sun等。
相比于Unix操作系統,Linux操作系統更受廣大計算機愛好者的喜愛,主要原因是Linux操作系統具有Unix操作系統的全部功能,并且能夠在普通PC計算機上實現全部的Unix特性,開源免費的特性,更容易普及使用!
什么是 Linux 內核
- Linux 系統的核心是內核。內核控制著計算機系統上的所有硬件和軟件,在必要時分配硬件,并根據需要執行軟件。
- 系統內存管理
- 應用程序管理
- 硬件設備管理
- 文件系統管理
Linux的基本組件是什么
- 就像任何其他典型的操作系統一樣,Linux擁有所有這些組件:內核,shell和GUI,系統實用程序和應用程序。Linux比其他操作系統更具優勢的是每個方面都附帶其他功能,所有代碼都可以免費下載。
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 的角度出發,為了保護內核的安全,把系統分成了兩部分。
- 用戶空間和內核空間是程序執行的兩種不同的狀態,我們可以通過兩種方式完成用戶空間到內核空間的轉移:
- 系統調用;
- 硬件中斷。
BASH和DOS之間的基本區別是什么
- BASH和DOS控制臺之間的主要區別在于3個方面:
- BASH命令區分大小寫,而DOS命令則不區分;
- 在BASH下,/ character是目錄分隔符,\作為轉義字符。在DOS下,/用作命令參數分隔符,\是目錄分隔符
- DOS遵循命名文件中的約定,即8個字符的文件名后跟一個點,擴展名為3個字符。BASH沒有遵循這樣的慣例。
Linux 開機啟動過程
-
1、主機加電自檢,加載 BIOS 硬件信息。
-
2、讀取 MBR 的引導文件(GRUB、LILO)。
-
3、引導 Linux 內核。
-
4、運行第一個進程 init (進程號永遠為 1 )。
-
5、進入相應的運行級別。
-
6、運行終端,輸入用戶名和密碼。
Linux系統缺省的運行級別
- 關機。
- 單機用戶模式。
- 字符界面的多用戶模式(不支持網絡)。
- 字符界面的多用戶模式。
- 未分配使用。
- 圖形界面的多用戶模式。
- 重啟。
Linux 使用的進程間通信方式
- 1、管道(pipe)、流管道(s_pipe)、有名管道(FIFO)。
- 2、信號(signal) 。
- 3、消息隊列。
- 4、共享內存。
- 5、信號量。
- 6、套接字(socket) 。
Linux 有哪些系統日志文件
-
比較重要的是 /var/log/messages 日志文件。
-
該日志文件是許多進程日志文件的匯總,從該文件可以看出任何入侵企圖或成功的入侵。
Linux系統安裝多個桌面環境有幫助嗎
- 通常,一個桌面環境,如KDE或Gnome,足以在沒有問題的情況下運行。盡管系統允許從一個環境切換到另一個環境,但這對用戶來說都是優先考慮的問題。有些程序在一個環境中工作而在另一個環境中無法工作,因此它也可以被視為選擇使用哪個環境的一個因素。
什么是交換空間
- 交換空間是Linux使用的一定空間,用于臨時保存一些并發運行的程序。當RAM沒有足夠的內存來容納正在執行的所有程序時,就會發生這種情況。
什么是root帳戶
- root帳戶就像一個系統管理員帳戶,允許你完全控制系統。你可以在此處創建和維護用戶帳戶,為每個帳戶分配不同的權限。每次安裝Linux時都是默認帳戶。
什么是LILO
- LILO是Linux的引導加載程序。它主要用于將Linux操作系統加載到主內存中,以便它可以開始運行。
什么是BASH
- BASH是Bourne Again SHell的縮寫。它由Steve Bourne編寫,作為原始Bourne Shell(由/ bin / sh表示)的替代品。它結合了原始版本的Bourne Shell的所有功能,以及其他功能,使其更容易使用。從那以后,它已被改編為運行Linux的大多數系統的默認shell。
什么是CLI
-
命令行界面(英語**:command-line interface**,縮寫]:CLI)是在圖形用戶界面得到普及之前使用最為廣泛的用戶界面,它通常不支持鼠標,用戶通過鍵盤輸入指令,計算機接收到指令后,予以執行。也有人稱之為字符用戶界面(CUI)。
-
通常認為,命令行界面(CLI)沒有圖形用戶界面(GUI)那么方便用戶操作。因為,命令行界面的軟件通常需要用戶記憶操作的命令,但是,由于其本身的特點,命令行界面要較圖形用戶界面節約計算機系統的資源。在熟記命令的前提下,使用命令行界面往往要較使用圖形用戶界面的操作速度要快。所以,圖形用戶界面的操作系統中,都保留著可選的命令行界面。
什么是GUI
-
圖形用戶界面(Graphical User Interface,簡稱 GUI,又稱圖形用戶接口)是指采用圖形方式顯示的計算機操作用戶界面。
-
圖形用戶界面是一種人與計算機通信的界面顯示格式,允許用戶使用鼠標等輸入設備操縱屏幕上的圖標或菜單選項,以選擇命令、調用文件、啟動程序或執行其它一些日常任務。與通過鍵盤輸入文本或字符命令來完成例行任務的字符界面相比,圖形用戶界面有許多優點。
開源的優勢是什么
- 開源允許你將軟件(包括源代碼)免費分發給任何感興趣的人。然后,人們可以添加功能,甚至可以調試和更正源代碼中的錯誤。它們甚至可以讓它運行得更好,然后再次自由地重新分配這些增強的源代碼。這最終使社區中的每個人受益。
GNU項目的重要性是什么
- 這種所謂的自由軟件運動具有多種優勢,例如可以自由地運行程序以及根據你的需要自由學習和修改程序。它還允許你將軟件副本重新分發給其他人,以及自由改進軟件并將其發布給公眾。
磁盤、目錄、文件
簡單 Linux 文件系統
在 Linux 操作系統中,所有被操作系統管理的資源,例如網絡接口卡、磁盤驅動器、打印機、輸入輸出設備、普通文件或是目錄都被看作是一個文件。
-
也就是說在 Linux 系統中有一個重要的概念**:一切都是文件**。其實這是 Unix 哲學的一個體現,而 Linux 是重寫 Unix 而來,所以這個概念也就傳承了下來。在 Unix 系統中,把一切資源都看作是文件,包括硬件設備。UNIX系統把每個硬件都看成是一個文件,通常稱為設備文件,這樣用戶就可以用讀寫文件的方式實現對硬件的訪問。
-
Linux 支持 5 種文件類型,如下圖所示:
Linux 的目錄結構是怎樣的
- Linux 文件系統的結構層次鮮明,就像一棵倒立的樹,最頂層是其根目錄:
常見目錄說明:
| /bin | 存放二進制可執行文件(ls,cat,mkdir等),常用命令一般都在這里; |
| /etc | 存放系統管理和配置文件; |
| /home | 存放所有用戶文件的根目錄,是用戶主目錄的基點,比如用戶user的主目錄就是/home/user,可以用~user表示; |
| /usr | 用于存放系統應用程序; |
| /opt | 額外安裝的可選應用程序包所放置的位置。一般情況下,我們可以把tomcat等都安裝到這里; |
| /proc | 虛擬文件系統目錄,是系統內存的映射。可直接訪問這個目錄來獲取系統信息; |
| /root | 超級用戶(系統管理員)的主目錄(特權階級); |
| /sbin | 存放二進制可執行文件,只有root才能訪問。這里存放的是系統管理員使用的系統級別的管理命令和程序。如ifconfig等; |
| /dev | 用于存放設備文件; |
| /mnt | 系統管理員安裝臨時文件系統的安裝點,系統提供這個目錄是讓用戶臨時掛載其他的文件系統; |
| /boot | 存放用于系統引導時使用的各種文件; |
| /lib | 存放著和系統運行相關的庫文件 ; |
| /tmp | 用于存放各種臨時文件,是公用的臨時文件存儲點; |
| /var | 用于存放運行時需要改變數據的文件,也是某些大文件的溢出區,比方說各種服務的日志文件(系統啟動日志等。)等; |
| /lost+found | 這個目錄平時是空的,系統非正常關機而留下“無家可歸”的文件(windows下叫什么.chk)就在這里 |
什么是 inode
-
理解inode,要從文件儲存說起。
-
文件儲存在硬盤上,硬盤的最小存儲單位叫做"扇區"(Sector)。每個扇區儲存512字節(相當于0.5KB)。
-
操作系統讀取硬盤的時候,不會一個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取一個"塊"(block)。這種由多個扇區組成的"塊",是文件存取的最小單位。"塊"的大小,最常見的是4KB,即連續八個 sector組成一個 block。
-
文件數據都儲存在"塊"中,那么很顯然,我們還必須找到一個地方儲存文件的元信息,比如文件的創建者、文件的創建日期、文件的大小等等。這種儲存文件元信息的區域就叫做inode,中文譯名為"索引節點"。
-
每一個文件都有對應的inode,里面包含了與該文件有關的一些信息。
簡述 Linux 文件系統通過 i 節點把文件的邏輯結構和物理結構轉換的工作過程
- Linux 通過 inode 節點表將文件的邏輯結構和物理結構進行轉換。
- inode 節點是一個 64 字節長的表,表中包含了文件的相關信息,其中有文件的大小、文件所有者、文件的存取許可方式以及文件的類型等重要信息。在 inode 節點表中最重要的內容是磁盤地址表。在磁盤地址表中有 13 個塊號,文件將以塊號在磁盤地址表中出現的順序依次讀取相應的塊。
- Linux 文件系統通過把 inode 節點和文件名進行連接,當需要讀取該文件時,文件系統在當前目錄表中查找該文件名對應的項,由此得到該文件相對應的 inode 節點號,通過該 inode 節點的磁盤地址表把分散存放的文件物理塊連接成文件的邏輯結構。
什么是硬鏈接和軟鏈接
-
硬鏈接:由于 Linux 下的文件是通過索引節點(inode)來識別文件,硬鏈接可以認為是一個指針,指向文件索引節點的指針,系統并不為它重新分配 inode 。每添加一個一個硬鏈接,文件的鏈接數就加 1 。
- 不足:
1.不可以在不同文件系統的文件間建立鏈接;
2. 只有超級用戶才可以為目錄創建硬鏈接。
- 不足:
-
軟鏈接:軟鏈接克服了硬鏈接的不足,沒有任何文件系統的限制,任何用戶可以創建指向目錄的符號鏈接。因而現在更為廣泛使用,它具有更大的靈活性,甚至可以跨越不同機器、不同網絡對文件進行鏈接。
- 不足:
因為鏈接文件包含有原文件的路徑信息,所以當原文件從一個目錄下移到其他目錄中,再訪問鏈接文件,系統就找不到了,而硬鏈接就沒有這個缺陷,你想怎么移就怎么移;還有它要系統分配額外的空間用于建立新的索引節點和保存原文件的路徑。
- 不足:
-
實際場景下,基本是使用軟鏈接。總結區別如下:
- 硬鏈接不可以跨分區,軟件鏈可以跨分區。
- 硬鏈接指向一個 inode 節點,而軟鏈接則是創建一個新的 inode 節點。
- 刪除硬鏈接文件,不會刪除原文件,刪除軟鏈接文件,會把原文件刪除。
RAID 是什么?
-
RAID 全稱為獨立磁盤冗余陣列(Redundant Array of Independent Disks),基本思想就是把多個相對便宜的硬盤組合起來,成為一個硬盤陣列組,使性能達到甚至超過一個價格昂貴、 容量巨大的硬盤。RAID 通常被用在服務器電腦上,使用完全相同的硬盤組成一個邏輯扇區,因此操作系統只會把它當做一個硬盤。
-
RAID 分為不同的等級,各個不同的等級均在數據可靠性及讀寫性能上做了不同的權衡。在實際應用中,可以依據自己的實際需求選擇不同的 RAID 方案。
-
當然,因為很多公司都使用云服務,大家很難接觸到 RAID 這個概念,更多的可能是普通云盤、SSD 云盤醬紫的概念。
安全
一臺 Linux 系統初始化環境后需要做一些什么安全工作
-
1、添加普通用戶登陸,禁止 root 用戶登陸,更改 SSH 端口號。
-
2、服務器使用密鑰登陸,禁止密碼登陸。
-
3、開啟防火墻,關閉 SElinux ,根據業務需求設置相應的防火墻規則。
-
4、裝 fail2ban 這種防止 SSH 暴力破擊的軟件。
-
5、設置只允許公司辦公網出口 IP 能登陸服務器(看公司實際需要)
-
6、修改歷史命令記錄的條數為 10 條。
-
7、只允許有需要的服務器可以訪問外網,其它全部禁止。
-
8、做好軟件層面的防護。
- 8.1 設置 nginx_waf 模塊防止 SQL 注入。
- 8.2 把 Web 服務使用 www 用戶啟動,更改網站目錄的所有者和所屬組為 www 。
什么叫 CC 攻擊什么叫 DDOS 攻擊
-
CC 攻擊,主要是用來攻擊頁面的,模擬多個用戶不停的對你的頁面進行訪問,從而使你的系統資源消耗殆盡。
-
DDOS 攻擊,中文名叫分布式拒絕服務攻擊,指借助服務器技術將多個計算機聯合起來作為攻擊平臺,來對一個或多個目標發動 DDOS 攻擊。
怎么預防 CC 攻擊和 DDOS 攻擊
-
防 CC、DDOS 攻擊,這些只能是用硬件防火墻做流量清洗,將攻擊流量引入黑洞。
-
流量清洗這一塊,主要是買 ISP 服務商的防攻擊的服務就可以,機房一般有空余流量,我們一般是買服務,畢竟攻擊不會是持續長時間。
什么是網站數據庫注入
- 由于程序員的水平及經驗參差不齊,大部分程序員在編寫代碼的時候,沒有對用戶輸入數據的合法性進行判斷。
- 應用程序存在安全隱患。用戶可以提交一段數據庫查詢代碼,根據程序返回的結果,獲得某些他想得知的數據,這就是所謂的 SQL 注入。
- SQL注入,是從正常的 WWW 端口訪問,而且表面看起來跟一般的 Web 頁面訪問沒什么區別,如果管理員沒查看日志的習慣,可能被入侵很長時間都不會發覺。
如何過濾與預防
- 數據庫網頁端注入這種,可以考慮使用 nginx_waf 做過濾與預防。
Shell 腳本是什么
- 一個 Shell 腳本是一個文本文件,包含一個或多個命令。作為系統管理員,我們經常需要使用多個命令來完成一項任務,我們可以添加這些所有命令在一個文本文件(Shell 腳本)來完成這些日常工作任務。
實戰
如何選擇 Linux 操作系統版本?
一般來講,桌面用戶首選 Ubuntu ;服務器首選 RHEL 或 CentOS ,兩者中首選 CentOS 。
-
根據具體要求:
-
安全性要求較高,則選擇 Debian 或者 FreeBSD 。
-
需要使用數據庫高級服務和電子郵件網絡應用的用戶可以選擇 SUSE 。
-
想要新技術新功能可以選擇 Feddora ,Feddora 是 RHEL 和 CentOS 的一個測試版和預發布版本。
-
【重點】根據現有狀況,絕大多數互聯網公司選擇 CentOS 。現在比較常用的是 6 系列,現在市場占有大概一半左右。另外的原因是 CentOS 更側重服務器領域,并且無版權約束。
-
如何規劃一臺 Linux 主機,步驟是怎樣
-
1、確定機器是做什么用的,比如是做 WEB 、DB、還是游戲服務器。
(不同的用途,機器的配置會有所不同。) -
2、確定好之后,就要定系統需要怎么安裝,默認安裝哪些系統、分區怎么做。
-
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、如果訪問還比較慢,那就需要從整體架構上進行優化咯。做到專角色專用,多臺服務器提供同一個服務。
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(網絡子系統調優)。
基本命令
cd (change directory:英文釋義是改變目錄)切換目錄
cd ../ ;跳到上級目錄 cd /opt ;不管現在到那直接跳到指定的opt文件夾中 cd ~ ;切換當前用戶的家目錄。root用戶的家目錄就是root目錄。pwd (print working directory:顯示當前工作目錄的絕對路徑)
pwd 顯示當前的絕對路勁ls (ls:list的縮寫,查看列表)查看當前目錄下的所有文件夾(ls 只列出文件名或目錄名)
ls -a ;顯示所有文件夾,隱藏文件也顯示出來 ls -R ;連同子目錄一起列出來ll (ll:list的縮寫,查看列表詳情)查看當前目錄下的所有詳細信息和文件夾(ll 結果是詳細,有時間,是否可讀寫等信息)
ll -a ;顯示所有文件,隱藏文件也顯示出來 ll -R ;連同子目錄內容一起列出來 ll -h ;友好展示詳情信息,可以看大小 ll -al ;即能顯示隱藏文件又能顯示詳細列表。touch (touch:創建文件)創建文件
touch test.txt ;創建test.txt文件 touch /opt/java/test.java ;在指定目錄創建test.java文件mkdir (mkdir:創建目錄) 創建目錄
mkdir 文件夾名稱 ;在此目錄創建文件夾 mkdir /opt/java/jdk ;在指定目錄創建文件夾cat (concatenate:顯示或把多個文本文件連接起來)查看文件命令(可以快捷查看當前文件的內容)(不能快速定位到最后一頁)
cat lj.log ;快捷查看文件命令 Ctrl + c ;暫停顯示文件 Ctrl + d ;退出查看文件命令more (more:更多的意思)分頁查看文件命令(不能快速定位到最后一頁)
回車:向下n行,需要定義,默認為1行。 空格鍵:向下滾動一屏或Ctrl+F B:返回上一層或Ctrl+B q:退出moreless (lese:較少的意思)分頁查看文件命令(可以快速定位到最后一頁)
less -m 顯示類似于more命令的百分比。 less -N 顯示每行的行號。(大寫的N) 兩參數一起使用如:less -mN 文件名,如此可分頁并顯示行號。空格鍵:前下一頁或page down。 回車:向下一行。 b:后退一頁 或 page up。 q:退出。 d:前進半頁。 u:后退半頁tail(尾巴) 查看文件命令(看最后多少行)
tail -10 ;文件名 看最后10行cp(copy單詞縮寫,復制功能)
cp /opt/java/java.log /opt/logs/ ;把java.log 復制到/opt/logs/下 cp /opt/java/java.log /opt/logs/aaa.log ;把java.log 復制到/opt/logs/下并且改名為aaa.log cp -r /opt/java /opt/logs ;把文件夾及內容復制到logs文件中mv(move單詞縮寫,移動功能,該文件名稱功能)
mv /opt/java/java.log /opt/mysql/ ;移動文件到mysql目錄下 mv java.log mysql.log ;把java.log改名為mysql.logrm(remove:移除的意思)刪除文件,或文件夾
-f或--force 強制刪除文件或目錄。刪除文件不包括文件夾的文件 -r或-R或--recursive 遞歸處理,將指定目錄下的所有文件及子目錄一并刪除。 -rf 強制刪除文件夾及內容rm 文件名 ;安全刪除命令 (yes刪除 no取消) rm -rf 強制刪除文件夾及內容 rm -rf * 刪除當前目錄下的所有內容。 rm -rf /* 刪除Linux系統根目錄下所有的內容。系統將完蛋。find (find:找到的意思)查找指定文件或目錄
* 表示0~多個任意字符。find -name 文件名;按照指定名稱查找在當前目錄下查找文件 find / -name 文件名按照指定名稱全局查找文件 find -name '*文件名' ;任意前綴加上文件名在當前目錄下查找文件 find / -name '*文件名*' ;全局進行模糊查詢帶文件名的文件vi (VIsual:視覺)文本編輯器 類似win的記事本 (操作類似于地下的vim命令,看底下vim 的操作)
vim (VI IMproved:改進版視覺)改進版文本編輯器 (不管是文件查看還是文件編輯 按 Shift + 上或者下可以上下移動查看視角)
輸入”vim 文件名” 打開文件,剛剛時是”一般模式”。一般模式:可以瀏覽文件內容,可以進行文本快捷操作。如單行復制,多行復制,單行刪除,多行刪除,(退出)等。 插入模式:可以編輯文件內容。 底行模式:可以進行強制退出操作,不保存 :q!可以進行保存并退出操作 :wq按下”i”或”a”或”o”鍵,從”一般模式”,進入”插入模式(編輯模式)”。 在編輯模式下按”Esc” 即可到一般模式 在一般模式下按”:”,冒號進入底行模式。在一般模式下的快捷鍵dd ;刪除一整行X ;向前刪除 等同于windowns系統中的刪除鍵x ;向后刪除和大寫x相反方向Ctrl + f ;向后看一頁Ctrl + b ;向前看一頁u ;撤銷上一步操作/word ;向下查找word關鍵字 輸入:n查找下一個,N查找上一個(不管是哪個查找都是全局查找 只不過n的方向相反)?log ;向上查找log關鍵字 輸入:n查找上一個,N查找下一個:1,90s/redis/Redis/g ;把1-90行的redis替換為Redis。語法n1,n2s/原關鍵字/新關鍵字/g,n1代表其實行,n2代表結尾行,g是必須要的:0 ;光標移動到第一行:$ ;光標移動到最后一行:300 ;光標移動到300行,輸入多少數字移動到多少行:w ;保存:w! ;強制保存:q ;退出:q! ;強制退出5dd ;刪除后面5行,打一個參數為自己填寫5x ;刪除此光標后面5個字符d1G ;刪除此光標之前的所有d0 ;從光標當前位置刪除到此行的第一個位置yy ;復制p ;在光標的下面進行粘貼P ;在光標的上門進行粘貼| 管道命令(把多個命令組合起來使用)
管道命令的語法:命令1 | 命令2 | 命令3。grep (grep :正則表達式)正則表達式,用于字符串的搜索工作(模糊查詢)。不懂可以先過
單獨使用: grep String test.java ;在test.java文件中查找String的位置,返回整行 一般此命令不會單獨使用下面列幾個常用的命令(地下通過管道命令組合起來使用)ps aux|grep java ;查找帶java關鍵字的進程 ll |grep java ;查找帶java關鍵字的文件夾及文件yum install -y lrzsz 命令(實現win到Linux文件互相簡單上傳文件)
#(實際上就是在Linux系統中下載了一個插件)下了了此安裝包后就可以實現win系統到linux之間拉文件拉文件 #等待下載完了就可以輸入:rz 從win系統中選擇文件上傳到Linux系統中sz 文件名 選擇Linux系統的文件復制到win系統中tar (解壓 壓縮 命令)
常用的組合命令: -z 是否需要用gzip壓縮。 -c 建立一個壓縮文件的參數指令(create) –壓縮-x 解開一個壓縮文件的參數指令(extract) –解壓 -v 壓縮的過程中顯示文件(verbose)-f 使用檔名,在f之后要立即接檔中(file)常用解壓參數組合:zxvf常用壓縮參數組合:zcvf 解壓命令: tar -zxvf redis-3.2.8.tar.gz ;解壓到當前文件夾 tar -zxvf redis-3.2.8.tar.gz -C /opt/java/ ;解壓到指定目錄壓縮命令:(注意 語法有點反了,我反正每次都搞反) tar -zcvf redis-3.2.8.tar.gz redis-3.2.8/ ;語法 tar -zcvf 壓縮后的名稱 要壓縮的文件 tar -zcvf 壓縮后的文件(可指定目錄) 要壓縮的文件(可指定目錄)ps (process status:進程狀態,類似于windows的任務管理器)
常用組合:ps -ef 標準的格式查看系統進程ps -aux BSD格式查看系統進程ps -aux|grep redis BSD格式查看進程名稱帶有redis的系統進程(常用技巧) //顯示進程的一些屬性,需要了解(ps aux) USER //用戶名 PID //進程ID號,用來殺死進程的 %CPU //進程占用的CPU的百分比 %MEM //占用內存的的百分比 VSZ //該進程使用的虛擬內存量(KB) RSS //該進程占用的固定內存量(KB) STAT //進程的狀態 START //該進程被觸發啟動時間 TIME //該進程實際使用CPU運行的時間clear 清屏命令。(強迫癥患者使用)
kill 命令用來中止一個進程。(要配合ps命令使用,配合pid關閉進程) (ps類似于打開任務管理器,kill類似于關閉進程)kill -5 進程的PID ;推薦,和平關閉進程kill -9 PID ;不推薦,強制殺死進程ifconfig命令
用于查看和更改網絡接口的地址和參數,包括IP地址、網絡掩碼、廣播地址,使用權限是超級用戶。(一般是用來查看的,很少更改) 如果此命令輸入無效,先輸入yum -y install net-tools ifconfigping (用于檢測與目標的連通性)語法:ping ip地址
測試: 1、在Windows操作系統中?cmd?ipconfig,查看本機IP地址: 2、再到LInux系統中輸入 ping ip地址 (公司電腦,我就不暴露Ip了,沒圖片 自己去試) 按Ctrl + C 可以停止測試。free 命令 (顯示系統內存)
#顯示系統內存使用情況,包括物理內存、交互區內存(swap)和內核緩沖區內存。 -b 以Byte顯示內存使用情況 -k 以kb為單位顯示內存使用情況 -m 以mb為單位顯示內存使用情況 -g 以gb為單位顯示內存使用情況 -s<間隔秒數> 持續顯示內存 -t 顯示內存使用總合top 命令
#顯示當前系統正在執行的進程的相關信息,包括進程 ID、內存占用率、CPU 占用率等 -c 顯示完整的進程命令 -s 保密模式 -p <進程號> 指定進程顯示 -n <次數>循環顯示次數netstat 命令
#Linux netstat命令用于顯示網絡狀態。 #利用netstat指令可讓你得知整個Linux系統的網絡情況。 #語法: netstat [-acCeFghilMnNoprstuvVwx][-A<網絡類型>][--ip]file (可查看文件類型)
file 文件名重啟linux
Linux centos 重啟命令:reboot關機linux
Linux centos 關機命令:halt同步時間命令
ntpdate ntp1.aliyun.com更改為北京時間命令
rm -rf /etc/localtime ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime查看時間命令:
date總結
以上是生活随笔為你收集整理的Linux面试题(总结最全面的面试题!!!)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux VNC server 安装配
- 下一篇: [密码学基础][每个信息安全博士生应该知