「面试必背」Linux面试题(2022最新版)
作為 Java 的從業者,在找工作的時候,一定會被問及關于Linux 相關的知識。Linux知識的掌握程度,在很多面試官眼里是候選人技術深度的一個重要評判標準。在這里我們將詳細的整理常見的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有什么區別?
4. 什么是 Linux 內核?
Linux 系統的核心是內核。內核控制著計算機系統上的所有硬件和軟件,在必要時分配硬件,并根據需要執行軟件。
- 系統內存管理
 - 應用程序管理
 - 硬件設備管理
 - 文件系統管理
 
5. Linux的基本組件是什么?
就像任何其他典型的操作系統一樣,Linux擁有所有這些組件:內核,shell和GUI,系統實用程序和應用程序。Linux比其他操作系統更具優勢的是每個方面都附帶其他功能,所有代碼都可以免費下載。
6. Linux 的體系結構
從大的方面講,Linux 體系結構可以分為兩塊:
7. 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 日志文件。
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?
18. 什么是GUI?
19. 開源的優勢是什么?
開源允許你將軟件(包括源代碼)免費分發給任何感興趣的人。然后,人們可以添加功能,甚至可以調試和更正源代碼中的錯誤。它們甚至可以讓它運行得更好,然后再次自由地重新分配這些增強的源代碼。這最終使社區中的每個人受益。
20. GNU項目的重要性是什么?
這種所謂的自由軟件運動具有多種優勢,例如可以自由地運行程序以及根據你的需要自由學習和修改程序。它還允許你將軟件副本重新分發給其他人,以及自由改進軟件并將其發布給公眾。
21. 簡單 Linux 文件系統?
22. Linux 的目錄結構是怎樣的?
23. 什么是 inode ?
24. 什么是硬鏈接和軟鏈接?
25. RAID 是什么?
26. 一臺 Linux 系統初始化環境后需要做一些什么安全工作?
27. 什么叫 CC 攻擊?什么叫 DDOS 攻擊?
28. 什么是網站數據庫注入?
29. Shell 腳本是什么?
一個 Shell 腳本是一個文本文件,包含一個或多個命令。作為系統管理員,我們經常需要使用多個命令來完成一項任務,我們可以添加這些所有命令在一個文本文件(Shell 腳本)來完成這些日常工作任務。
30.如何選擇 Linux 操作系統版本?
31. 如何規劃一臺 Linux 主機,步驟是怎樣?
32. 請問當用戶反饋網站訪問慢,你會如何處理?
33. Linux 性能調優都有哪幾種方法?
34. 基本命令
- cd (change directory:英文釋義是改變目錄)切換目錄
 - pwd (print working directory:顯示當前工作目錄的絕對路徑)
 - ls (ls:list的縮寫,查看列表)查看當前目錄下的所有文件夾(ls 只列出文件名或目錄名)
 - ll (ll:list的縮寫,查看列表詳情)查看當前目錄下的所有詳細信息和文件夾(ll 結果是詳細,有時間,是否可讀寫等信息)
 - touch (touch:創建文件)創建文件
 - mkdir (mkdir:創建目錄) 創建目錄
 - cat (concatenate:顯示或把多個文本文件連接起來)查看文件命令(可以快捷查看當前文件的內容)(不能快速定位到最后一頁)
 - more (more:更多的意思)分頁查看文件命令(不能快速定位到最后一頁)
 - tail(尾巴) 查看文件命令(看最后多少行)
 - cp(copy單詞縮寫,復制功能)
 - mv(move單詞縮寫,移動功能,該文件名稱功能)
 - rm(remove:移除的意思)刪除文件,或文件夾
 - fifind (fifind:找到的意思)查找指定文件或目錄
 - 回車:向下n行,需要定義,默認為1行。
 - 空格鍵:向下滾動一屏或Ctrl+F
 - B:返回上一層或Ctrl+B
 - q:退出more
 - less -m 顯示類似于more命令的百分比。
 - less -N 顯示每行的行號。(大寫的N)
 - 兩參數一起使用如:less -mN 文件名,如此可分頁并顯示行號。
 - 空格鍵:前下一頁或page down。
 - 回車:向下一行。
 - b:后退一頁 或 page up。
 - q:退出。
 - d:前進半頁。
 - u:后退半頁
 - tail -10 ;文件名 看最后10行
 - 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 /opt/java/java.log /opt/mysql/ ;移動文件到mysql目錄下
 - mv java.log mysql.log ;把java.log改名為mysql.log
 - -f或--force 強制刪除文件或目錄。刪除文件不包括文件夾的文件
 - -r或-R或--recursive 遞歸處理,將指定目錄下的所有文件及子目錄一并刪除。
 - -rf 強制刪除文件夾及內容
 - rm 文件名 ;安全刪除命令 (yes刪除 no取消)
 - rm -rf 強制刪除文件夾及內容
 - rm -rf * 刪除當前目錄下的所有內容。
 - rm -rf /* 刪除Linux系統根目錄下所有的內容。系統將完蛋。vi (VIsual:視覺)文本編輯器 類似win的記事本 (操作類似于地下的vim命令,看底下vim 的操
 - 作)
 - vim (VI IMproved:改進版視覺)改進版文本編輯器 (不管是文件查看還是文件編輯 按 Shift + 上或
 - 者下可以上下移動查看視角)
 - | 管道命令(把多個命令組合起來使用)
 - * 表示0~多個任意字符。
 - find -name 文件名;按照指定名稱查找在當前目錄下查找文件
 - find / -name 文件名按照指定名稱全局查找文件
 - find -name '*文件名' ;任意前綴加上文件名在當前目錄下查找文件
 - find / -name '*文件名*' ;全局進行模糊查詢帶文件名的文件
 - 輸入”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 ;在光標的上門進行粘貼grep (grep :正則表達式)正則表達式,用于字符串的搜索工作(模糊查詢)。不懂可以先過
 - yum install -y lrzsz 命令(實現win到Linux文件互相簡單上傳文件)
 - tar (解壓 壓縮 命令)
 - ps (process status:進程狀態,類似于windows的任務管理器)
 - 管道命令的語法:命令1 | 命令2 | 命令3。
 - 單獨使用:
 - grep String test.java ;在test.java文件中查找String的位置,返回整行
 - 一般此命令不會單獨使用下面列幾個常用的命令(地下通過管道命令組合起來使用)
 - ps aux|grep java ;查找帶java關鍵字的進程
 - ll |grep java ;查找帶java關鍵字的文件夾及文件
 - (實際上就是在Linux系統中下載了一個插件)下了了此安裝包后就可以實現win系統到linux之間拉文件拉
 - 文件
 - 等待下載完了就可以輸入:
 - rz 從win系統中選擇文件上傳到Linux系統中
 - sz 文件名 選擇Linux系統的文件復制到win系統中
 - 常用的組合命令:
 - -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 -ef 標準的格式查看系統進程
 - ps -aux BSD格式查看系統進程
 - ps -aux|grep redis BSD格式查看進程名稱帶有redis的系統進程(常用技巧)
 - //顯示進程的一些屬性,需要了解(ps aux)
 - USER //用戶名
 - PID //進程ID號,用來殺死進程的
 - %CPU //進程占用的CPU的百分比
 - %MEM //占用內存的的百分比clear 清屏命令。(強迫癥患者使用)
 - ifconfifig命令
 - ping (用于檢測與目標的連通性)語法:ping ip地址
 - free 命令 (顯示系統內存)
 - top 命令
 - netstat 命令
 - VSZ //該進程使用的虛擬內存量(KB)
 - RSS //該進程占用的固定內存量(KB)
 - STAT //進程的狀態
 - START //該進程被觸發啟動時間
 - TIME //該進程實際使用CPU運行的時間
 - kill 命令用來中止一個進程。(要配合ps命令使用,配合pid關閉進程)
 - (ps類似于打開任務管理器,kill類似于關閉進程)
 - kill -5 進程的PID ;推薦,和平關閉進程
 - kill -9 PID ;不推薦,強制殺死進程
 - 用于查看和更改網絡接口的地址和參數,包括IP地址、網絡掩碼、廣播地址,使用權限是超級用戶。(一般是用來查看的,很少更改)
 
35.Linux 中主要有哪幾種內核鎖?
36.Linux 中的用戶模式和內核模式是什么含意?
37.怎樣申請大塊內核內存?
38.用戶進程間通信主要哪幾種方式?
39.通過伙伴系統申請內核內存的函數有哪些?
40.Linux 虛擬文件系統的關鍵數據結構有哪些?(至少寫出四個)
41.對文件或設備的操作函數保存在那個數據結構中?
42.Linux 中的文件包括哪些?
43.創建進程的系統調用有那些?
44.調用 schedule()進行進程切換的方式有幾種?
45.Linux 調度程序是根據進程的動態優先級還是靜態優先級來調度進程的?
46.進程調度的核心數據結構是哪個?
47.如何加載、卸載一個模塊?
48.模塊和應用程序分別運行在什么空間?
49.Linux 中的浮點運算由應用程序實現還是內核實現?
50.模塊程序能否使用可鏈接的庫函數?
51.TLB 中緩存的是什么內容?
52.Linux 中有哪幾種設備?
53.字符設備驅動程序的關鍵數據結構是哪個?
54.設備驅動程序包括哪些功能函數?
55.如何唯一標識一個設備?
56.Linux 通過什么方式實現系統調用?
57.Linux 軟中斷和工作隊列的作用是什么?
感謝閱讀,由于篇幅有限以上面經資料博主已經整理打包好了,這些知識點的導圖和問題的答案詳解的PDF文檔都可以免費分享給大家,點贊收藏文章后,私信【資料】免費領取!
總結
以上是生活随笔為你收集整理的「面试必背」Linux面试题(2022最新版)的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 交换机Vlan中tagged和untag
 - 下一篇: [Bugku][Crypto][CTF]