【2022最新Java面试宝典】—— Linux面试题(50道含答案)
目錄
- 一、Linux 概述
- 1. 什么是Linux
- 2. Windows和Linux的區別
- 3. Unix和Linux有什么區別?
- 4. 什么是 Linux 內核?
- 5. Linux的基本組件是什么?
- 6. Linux 的體系結構
- 7. BASH和DOS之間的基本區別是什么?
- 8. Linux 開機啟動過程?
- 9. Linux系統缺省的運行級別?
- 10. Linux 使用的進程間通信方式?
- 11. Linux 有哪些系統日志文件?
- 12. Linux系統安裝多個桌面環境有幫助嗎?
- 13. 什么是交換空間?
- 14. 什么是root帳戶
- 15. 什么是LILO?
- 16. 什么是BASH?
- 17. 什么是CLI?
- 18. 什么是GUI?
- 19. 開源的優勢是什么?
- 20. GNU項目的重要性是什么?
- 二、磁盤、目錄、文件
- 21. 簡單 Linux 文件系統?
- 22. Linux 的目錄結構是怎樣的?
- 23. 什么是 inode ?
- 24. 什么是硬鏈接和軟鏈接?
- 25. RAID 是什么?
- 三、安全
- 26. 一臺 Linux 系統初始化環境后需要做一些什么安全工作?
- 27. 什么叫 CC 攻擊?什么叫 DDOS 攻擊?
- 28. 什么是網站數據庫注入?
- 29. Shell 腳本是什么?
- 四、實戰
- 30.如何選擇 Linux 操作系統版本?
- 31. 如何規劃一臺 Linux 主機,步驟是怎樣?
- 32. 請問當用戶反饋網站訪問慢,你會如何處理?
- 33. Linux 性能調優都有哪幾種方法?
- 34. 基本命令
一、Linux 概述
1. 什么是Linux
- Linux是一套免費使用和自由傳播的類似Unix操作系統,一般的WEB項目都是部署都是放在Linux
操作系統上面。 Linux是一個基于POSIX和Unix的多用戶、多任務、支持多線程和多CPU的操作系
統。它能運行主要的Unix工具軟件、應用程序和網絡協議。它支持32位和64位硬件。Linux繼承了
Unix以網絡為核心的設計思想,是一個性能穩定的多用戶網絡操作系統。
2. Windows和Linux的區別
- Windows是微軟開發的操作系統,民用操作系統,可用于娛樂、影音、上網。 Windows操作系統
具有強大的日志記錄系統和強大的桌面應用。好處是它可以幫我們實現非常多絢麗多彩的效果,可
以非常方便去進行娛樂、影音、上網。 - Linux的應用相對單純很多,沒有什么絢麗多彩的效果,因此Linux的性能是非常出色的,可以完
全針對機器的配置有針對性的優化, - 簡單來說Windows適合普通用戶進行娛樂辦公使用,Linux適合軟件開發部署
3. Unix和Linux有什么區別?
- Linux和Unix都是功能強大的操作系統,都是應用廣泛的服務器操作系統,有很多相似之處,甚至
有一部分人錯誤地認為Unix和Linux操作系統是一樣的,然而,事實并非如此,以下是兩者的區
別。
Linux是一款開源操作系統,不需要付費,即可使用;Unix是一款對源碼實行知識產權保護的
傳統商業軟件,使用需要付費授權使用。
Linux操作系統具有良好的跨平臺性能,可運行在多種硬件平臺上;Unix操作系統跨平臺性能
較弱,大多需與硬件配套使用。
Linux除了進行命令行操作,還有窗體管理系統;Unix只是命令行下的系統。
Linux操作系統對硬件的要求較低,安裝方法更易掌握;Unix對硬件要求比較苛刻,按照難度
較大。
Linux的用戶群體很廣泛,個人和企業均可使用;Unix的用戶群體比較窄,多是安全性要求高
的大型企業使用,如銀行、電信部門等,或者Unix硬件廠商使用,如Sun等。
相比于Unix操作系統,Linux操作系統更受廣大計算機愛好者的喜愛,主要原因是Linux操作
系統具有Unix操作系統的全部功能,并且能夠在普通PC計算機上實現全部的Unix特性,開源
免費的特性,更容易普及使用!
4. 什么是 Linux 內核?
- Linux 系統的核心是內核。內核控制著計算機系統上的所有硬件和軟件,在必要時分配硬件,并根
據需要執行軟件。
5. Linux的基本組件是什么?
- 就像任何其他典型的操作系統一樣,Linux擁有所有這些組件:內核,shell和GUI,系統實用程序
和應用程序。Linux比其他操作系統更具優勢的是每個方面都附帶其他功能,所有代碼都可以免費
下載。
6. 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 的角度出發,為了保護內核的安全,把系統分成了兩部分。
- 用戶空間和內核空間是程序執行的兩種不同的狀態,我們可以通過兩種方式完成用戶空間到內核空
間的轉移:- 系統調用;
- 硬件中斷。
7. BASH和DOS之間的基本區別是什么?
- BASH和DOS控制臺之間的主要區別在于3個方面:
- BASH命令區分大小寫,而DOS命令則不區分;
- 在BASH下,/ character是目錄分隔符,\作為轉義字符。在DOS下,/用作命令參數分隔
符,\是目錄分隔符
- 在BASH下,/ character是目錄分隔符,\作為轉義字符。在DOS下,/用作命令參數分隔
- DOS遵循命名文件中的約定,即8個字符的文件名后跟一個點,擴展名為3個字符。BASH沒
有遵循這樣的慣例。
- BASH命令區分大小寫,而DOS命令則不區分;
8. Linux 開機啟動過程?
了解即可。
1、主機加電自檢,加載 BIOS 硬件信息。
2、讀取 MBR 的引導文件(GRUB、LILO)。
3、引導 Linux 內核。
4、運行第一個進程 init (進程號永遠為 1 )。
5、進入相應的運行級別。
6、運行終端,輸入用戶名和密碼。
9. Linux系統缺省的運行級別?
- 關機。
- 單機用戶模式。
- 字符界面的多用戶模式(不支持網絡)。
- 字符界面的多用戶模式。
- 未分配使用。
- 圖形界面的多用戶模式。
- 重啟。
10. Linux 使用的進程間通信方式?
了解即可,不需要太深入。
1、管道(pipe)、流管道(s_pipe)、有名管道(FIFO)。
2、信號(signal) 。
3、消息隊列。
4、共享內存。
5、信號量。
6、套接字(socket) 。
11. Linux 有哪些系統日志文件?
- 比較重要的是 /var/log/messages 日志文件。
該日志文件是許多進程日志文件的匯總,從該文件可以看出任何入侵企圖或成功的入侵。
另外,如果胖友的系統里有 ELK 日志集中收集,它也會被收集進去。
12. Linux系統安裝多個桌面環境有幫助嗎?
- 通常,一個桌面環境,如KDE或Gnome,足以在沒有問題的情況下運行。盡管系統允許從一個環
境切換到另一個環境,但這對用戶來說都是優先考慮的問題。有些程序在一個環境中工作而在另一
個環境中無法工作,因此它也可以被視為選擇使用哪個環境的一個因素。
13. 什么是交換空間?
- 交換空間是Linux使用的一定空間,用于臨時保存一些并發運行的程序。當RAM沒有足夠的內存來
容納正在執行的所有程序時,就會發生這種情況。
14. 什么是root帳戶
- root帳戶就像一個系統管理員帳戶,允許你完全控制系統。你可以在此處創建和維護用戶帳戶,為
每個帳戶分配不同的權限。每次安裝Linux時都是默認帳戶。
15. 什么是LILO?
- LILO是Linux的引導加載程序。它主要用于將Linux操作系統加載到主內存中,以便它可以開始運行。
16. 什么是BASH?
- BASH是Bourne Again SHell的縮寫。它由Steve Bourne編寫,作為原始Bourne Shell(由/ bin /
sh表示)的替代品。它結合了原始版本的Bourne Shell的所有功能,以及其他功能,使其更容易
使用。從那以后,它已被改編為運行Linux的大多數系統的默認shell。
17. 什么是CLI?
- 命令行界面(英語:command-line interface,縮寫]:CLI)是在圖形用戶界面得到普及之前使
用最為廣泛的用戶界面,它通常不支持鼠標,用戶通過鍵盤輸入指令,計算機接收到指令后,予以
執行。也有人稱之為字符用戶界面(CUI)。 - 通常認為,命令行界面(CLI)沒有圖形用戶界面(GUI)那么方便用戶操作。因為,命令行界面
的軟件通常需要用戶記憶操作的命令,但是,由于其本身的特點,命令行界面要較圖形用戶界面節
約計算機系統的資源。在熟記命令的前提下,使用命令行界面往往要較使用圖形用戶界面的操作速
度要快。所以,圖形用戶界面的操作系統中,都保留著可選的命令行界面。
18. 什么是GUI?
- 圖形用戶界面(Graphical User Interface,簡稱 GUI,又稱圖形用戶接口)是指采用圖形方式顯
示的計算機操作用戶界面。 - 圖形用戶界面是一種人與計算機通信的界面顯示格式,允許用戶使用鼠標等輸入設備操縱屏幕上的
圖標或菜單選項,以選擇命令、調用文件、啟動程序或執行其它一些日常任務。與通過鍵盤輸入文
本或字符命令來完成例行任務的字符界面相比,圖形用戶界面有許多優點。
19. 開源的優勢是什么?
- 開源允許你將軟件(包括源代碼)免費分發給任何感興趣的人。然后,人們可以添加功能,甚至可
以調試和更正源代碼中的錯誤。它們甚至可以讓它運行得更好,然后再次自由地重新分配這些增強
的源代碼。這最終使社區中的每個人受益。
20. GNU項目的重要性是什么?
- 這種所謂的自由軟件運動具有多種優勢,例如可以自由地運行程序以及根據你的需要自由學習和修
改程序。它還允許你將軟件副本重新分發給其他人,以及自由改進軟件并將其發布給公眾。
二、磁盤、目錄、文件
21. 簡單 Linux 文件系統?
在 Linux 操作系統中,所有被操作系統管理的資源,例如網絡接口卡、磁盤驅動器、打印機、輸入輸出
設備、普通文件或是目錄都被看作是一個文件。
- 也就是說在 Linux 系統中有一個重要的概念:一切都是文件。其實這是 Unix 哲學的一個體現,而
Linux 是重寫 Unix 而來,所以這個概念也就傳承了下來。在 Unix 系統中,把一切資源都看作是
文件,包括硬件設備。UNIX系統把每個硬件都看成是一個文件,通常稱為設備文件,這樣用戶就
可以用讀寫文件的方式實現對硬件的訪問。 - Linux 支持 5 種文件類型,如下圖所示:
22. 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)就在這里 |
23. 什么是 inode ?
一般來說,面試不會問 inode 。但是 inode 是一個重要概念,是理解 Unix/Linux 文件系統和硬
盤儲存的基礎。
- 理解inode,要從文件儲存說起。
- 文件儲存在硬盤上,硬盤的最小存儲單位叫做"扇區"(Sector)。每個扇區儲存512字節(相當于0.5KB)。
- 操作系統讀取硬盤的時候,不會一個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇
區,即一次性讀取一個"塊"(block)。這種由多個扇區組成的"塊",是文件存取的最小單
位。"塊"的大小,最常見的是4KB,即連續八個 sector組成一個 block。 - 文件數據都儲存在"塊"中,那么很顯然,我們還必須找到一個地方儲存文件的元信息,比如文件的
創建者、文件的創建日期、文件的大小等等。這種儲存文件元信息的區域就叫做inode,中文譯名
為"索引節點"。 - 每一個文件都有對應的inode,里面包含了與該文件有關的一些信息。
簡述 Linux 文件系統通過 i 節點把文件的邏輯結構和物理結構轉換的工作過程?
如果看的一臉懵逼,也沒關系。一般來說,面試官不太會問這個題目。
- Linux 通過 inode 節點表將文件的邏輯結構和物理結構進行轉換。
- inode 節點是一個 64 字節長的表,表中包含了文件的相關信息,其中有文件的大小、文件所
有者、文件的存取許可方式以及文件的類型等重要信息。在 inode 節點表中最重要的內容是
磁盤地址表。在磁盤地址表中有 13 個塊號,文件將以塊號在磁盤地址表中出現的順序依次讀
取相應的塊。
- inode 節點是一個 64 字節長的表,表中包含了文件的相關信息,其中有文件的大小、文件所
- Linux 文件系統通過把 inode 節點和文件名進行連接,當需要讀取該文件時,文件系統在當
前目錄表中查找該文件名對應的項,由此得到該文件相對應的 inode 節點號,通過該 inode
節點的磁盤地址表把分散存放的文件物理塊連接成文件的邏輯結構。
24. 什么是硬鏈接和軟鏈接?
- 硬鏈接:由于 Linux 下的文件是通過索引節點(inode)來識別文件,硬鏈接可以認為是一個指針,
指向文件索引節點的指針,系統并不為它重新分配 inode 。每添加一個一個硬鏈接,文件的鏈接
數就加 1 。- 不足:
1.不可以在不同文件系統的文件間建立鏈接;
2.只有超級用戶才可以為目錄創建硬鏈接。
- 不足:
- 軟鏈接:軟鏈接克服了硬鏈接的不足,沒有任何文件系統的限制,任何用戶可以創建指向目錄的符
號鏈接。因而現在更為廣泛使用,它具有更大的靈活性,甚至可以跨越不同機器、不同網絡對文件
進行鏈接。- 不足:因為鏈接文件包含有原文件的路徑信息,所以當原文件從一個目錄下移到其他目錄
中,再訪問鏈接文件,系統就找不到了,而硬鏈接就沒有這個缺陷,你想怎么移就怎么移;
還有它要系統分配額外的空間用于建立新的索引節點和保存原文件的路徑。
- 不足:因為鏈接文件包含有原文件的路徑信息,所以當原文件從一個目錄下移到其他目錄
- 實際場景下,基本是使用軟鏈接。總結區別如下:
- 硬鏈接不可以跨分區,軟件鏈可以跨分區。
- 硬鏈接指向一個 inode 節點,而軟鏈接則是創建一個新的 inode 節點。
- 刪除硬鏈接文件,不會刪除原文件,刪除軟鏈接文件,會把原文件刪除。
25. RAID 是什么?
RAID 全稱為獨立磁盤冗余陣列(Redundant Array of Independent Disks),基本思想就是把多個
相對便宜的硬盤組合起來,成為一個硬盤陣列組,使性能達到甚至超過一個價格昂貴、 容量巨大
的硬盤。RAID 通常被用在服務器電腦上,使用完全相同的硬盤組成一個邏輯扇區,因此操作系統
只會把它當做一個硬盤。
RAID 分為不同的等級,各個不同的等級均在數據可靠性及讀寫性能上做了不同的權衡。在實際應
用中,可以依據自己的實際需求選擇不同的 RAID 方案。
- 當然,因為很多公司都使用云服務,大家很難接觸到 RAID 這個概念,更多的可能是普通云盤、
SSD 云盤醬紫的概念。
三、安全
26. 一臺 Linux 系統初始化環境后需要做一些什么安全工作?
1、添加普通用戶登陸,禁止 root 用戶登陸,更改 SSH 端口號。
修改 SSH 端口不一定絕對哈。當然,如果要暴露在外網,建議改下。l
2、服務器使用密鑰登陸,禁止密碼登陸。
3、開啟防火墻,關閉 SElinux ,根據業務需求設置相應的防火墻規則。
4、裝 fail2ban 這種防止 SSH 暴力破擊的軟件。
5、設置只允許公司辦公網出口 IP 能登陸服務器(看公司實際需要)
也可以安裝 VPN 等軟件,只允許連接 VPN 到服務器上。
6、修改歷史命令記錄的條數為 10 條。
7、只允許有需要的服務器可以訪問外網,其它全部禁止。
8、做好軟件層面的防護。
8.1 設置 nginx_waf 模塊防止 SQL 注入。
8.2 把 Web 服務使用 www 用戶啟動,更改網站目錄的所有者和所屬組為 www 。
27. 什么叫 CC 攻擊?什么叫 DDOS 攻擊?
- CC 攻擊,主要是用來攻擊頁面的,模擬多個用戶不停的對你的頁面進行訪問,從而使你的系統資
源消耗殆盡。 - DDOS 攻擊,中文名叫分布式拒絕服務攻擊,指借助服務器技術將多個計算機聯合起來作為攻擊
平臺,來對一個或多個目標發動 DDOS 攻擊。
攻擊,即是通過大量合法的請求占用大量網絡資源,以達到癱瘓網絡的目的。
怎么預防 CC 攻擊和 DDOS 攻擊?
- 防 CC、DDOS 攻擊,這些只能是用硬件防火墻做流量清洗,將攻擊流量引入黑洞。
流量清洗這一塊,主要是買 ISP 服務商的防攻擊的服務就可以,機房一般有空余流量,我們一般
是買服務,畢竟攻擊不會是持續長時間。
28. 什么是網站數據庫注入?
- 由于程序員的水平及經驗參差不齊,大部分程序員在編寫代碼的時候,沒有對用戶輸入數據的合法
性進行判斷。 - 應用程序存在安全隱患。用戶可以提交一段數據庫查詢代碼,根據程序返回的結果,獲得某些他想
得知的數據,這就是所謂的 SQL 注入。 - SQL注入,是從正常的 WWW 端口訪問,而且表面看起來跟一般的 Web 頁面訪問沒什么區別,如
果管理員沒查看日志的習慣,可能被入侵很長時間都不會發覺。
如何過濾與預防?
- 數據庫網頁端注入這種,可以考慮使用 nginx_waf 做過濾與預防。
29. Shell 腳本是什么?
- 一個 Shell 腳本是一個文本文件,包含一個或多個命令。作為系統管理員,我們經常需要使用多個
命令來完成一項任務,我們可以添加這些所有命令在一個文本文件(Shell 腳本)來完成這些日常工
作任務。
四、實戰
30.如何選擇 Linux 操作系統版本?
一般來講,桌面用戶首選 Ubuntu ;服務器首選 RHEL 或 CentOS ,兩者中首選 CentOS 。
- 根據具體要求:
- 安全性要求較高,則選擇 Debian 或者 FreeBSD 。
- 需要使用數據庫高級服務和電子郵件網絡應用的用戶可以選擇 SUSE 。
- 想要新技術新功能可以選擇 Feddora ,Feddora 是 RHEL 和 CentOS 的一個測試版和預發布
版本。 - 【重點】根據現有狀況,絕大多數互聯網公司選擇 CentOS 。現在比較常用的是 6 系列,現
在市場占有大概一半左右。另外的原因是 CentOS 更側重服務器領域,并且無版權約束。
CentOS 7 系列,也慢慢使用的會比較多了。
31. 如何規劃一臺 Linux 主機,步驟是怎樣?
1、確定機器是做什么用的,比如是做 WEB 、DB、還是游戲服務器。
不同的用途,機器的配置會有所不同。
2、確定好之后,就要定系統需要怎么安裝,默認安裝哪些系統、分區怎么做。
3、需要優化系統的哪些參數,需要創建哪些用戶等等的。
32. 請問當用戶反饋網站訪問慢,你會如何處理?
有哪些方面的因素會導致網站網站訪問慢?
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、如果訪問還比較慢,那就需要從整體架構上進行優化咯。做到專角色專用,多臺服務器提供同
一個服務。
33. 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(網絡子系統調優)。
34. 基本命令
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 結果是詳細,有時間,
是否可讀寫等信息)
touch (touch:創建文件)創建文件
touch test.txt ;創建test.txt文件 touch /opt/java/test.java ;在指定目錄創建test.java文件mkdir (mkdir:創建目錄) 創建目錄
mkdir 文件夾名稱 ;在此目錄創建文件夾 mkdir /opt/java/jdk ;在指定目錄創建文件夾cat (concatenate:顯示或把多個文本文件連接起來)查看文件命令(可以快捷查看當前文件的內
容)(不能快速定位到最后一頁)
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 + 上或
者下可以上下移動查看視角)
| 管道命令(把多個命令組合起來使用)
管道命令的語法:命令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操作系統中cmdipconfig,查看本機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史上最全Java面試寶典,BAT大廠面試必備。整理不易,建議先關注點贊加收藏
| 1 | Java基礎面試題(91道含答案) | (點擊查看) |
| 2 | Java并發編程面試題 (123道含答案) | (點擊查看) |
| 3 | Java異常面試題 (33道含答案) | (點擊查看) |
| 4 | Java虛擬機(JVM)面試題(51道含答案) | (點擊查看) |
| 5 | Java集合面試題(52道含答案) | (點擊查看) |
| 6 | Linux面試題(50道含答案) | (點擊查看) |
| 7 | Memcache面試題(23道含答案) | (點擊查看) |
| 8 | Mybatiss面試題 (37道含答案) | (點擊查看) |
| 9 | MySQL面試題(40道含答案) | (點擊查看) |
| 10 | Netty面試題(49道含答案) | (點擊查看) |
| 11 | Nginx面試題(23道含答案) | (點擊查看) |
| 12 | RabbitMQ面試題(22道含答案) | (點擊查看) |
| 13 | Redis面試題(70道含答案) | (點擊查看) |
| 14 | SpringBoot面試題(44道含答案) | (點擊查看) |
| 15 | SpringCloud面試題(49道含答案) | (點擊查看) |
| 16 | SpringMVC面試題(29道含答案) | (點擊查看) |
| 17 | Spring面試題(75道含答案) | (點擊查看) |
| 18 | TCP、UDP、Socket、Http網絡編程面試題(47道含答案) | (點擊查看) |
| 19 | Tomcat面試題(15道含答案) | (點擊查看) |
| 20 | Zookeeper面試題(28道含答案) | (點擊查看) |
| 21 | 多線程面試題(60道含答案) | (點擊查看) |
| 22 | 設計模式面試題(14道含答案) | (點擊查看) |
| 23 | BIO、NIO、AIO、Netty面試題(35道含答案) | (點擊查看) |
| 24 | Dubbo面試題(47道含答案) | (點擊查看) |
| 25 | ElasticSearch面試題(31道含答案) | (點擊查看) |
| 26 | Git常用命令(63條) | (點擊查看) |
總結
以上是生活随笔為你收集整理的【2022最新Java面试宝典】—— Linux面试题(50道含答案)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IPSEC ***两个阶段的协商过程
- 下一篇: linux下Bash编程until语句及