Linux 面試最常問的十個問題
如果你要去面試一個Linux系統運維工程師的職位,下面這十個最常見的問題一定要會,否則你的面試可能就危險了。這些都是比較基本的問題,大家要理解,不能光死記硬背。
1、如何檢視系統核心的版本
這裡有兩種方法:
1) uname -a
uname 這個命令是用來列印系統資訊的, -a 可以列印系統所有資訊,其中包含核心版本,比如我的版本號是3.10.0-957.21.3.el7.X86_64。
2) cat /proc/version
下面再補充一下各個數字和字母代表的含義:
-
3 表示主版本號,有結構性變化才更改 (最新的是5)
-
10 表示次版本號,新增功能才會變化,一般基數表示測試版,偶數表示穩定版。2020年3月30日,Linus Torvalds 釋出了最新的 Linux 核心版本為 5.6
-
0 表示對次版本的修訂次數或補丁包數
-
957 代表編譯的次數,每次編譯可對少數程式優化或修改
-
el7 用來表示版本的特殊資訊,有較大的隨意性;el 代表企業版,pp代表測試版,fc代表 Fedora core,rc代表候選版本
-
X86_64 表示64位
2、如何檢視系統當前的 IP 地址
也有兩種方法:
1)ifconfig -a
ifconfig 是用來配置網路介面的命令,-a 可以顯示當前所有的介面。
2)ip addr show
3、如何檢視磁碟還有多少剩餘空間
這裡主要可以用 df -ah 命令來檢視,df 是用來檢視檔案系統磁碟空間使用情況的命令,-a 顯示所有檔案系統,-h 用人們可讀的方式進行顯示。
上面可以看到我的磁碟 /dev/vda1 有40 G,已經用了1.7 G,還有 36 G的可用空間。
4、如何在系統中管理服務
這裡別人可能會問你,如何檢視一個服務是否在執行,如何啟動、停止、或重新載入配置檔案。這裡答案也有兩種。
1) 使用 service 命令
-
檢視服務狀態
service [servicename] status
-
啟動/停止/重啟服務
service [servicename] [start|stop|restart]
-
重新載入服務配置檔案(不重啟服務)
service [servicename] [reload]
比如我想檢視一下 sshd 的服務有沒有開啟
2)使用 systemctl 命令
比較新的系統都已經採用了 systemd,systemctl 是systemd的一個工具,主要負責控制systemd系統和服務管理器。
-
檢視服務狀態
systemctl status [servicename]
-
啟動/停止/重啟服務
systemctl [start|stop|restart] [servicename]
-
重新載入服務配置檔案(不重啟服務)
systemctl [reload] [servicename]
5、如何檢視一個目錄的大小
可以使用 du -sh [目錄] 命令,du 使用來計算檔案/目錄大小的命令,-s 顯示檔案或整個目錄的大小,-h 是用可讀格式。
比如上面我查看了一下我的主目錄下tmp目錄的大小,一共有80 K
6、如何檢視你係統中開放的埠號
1) 使用 netstat 命令
netstat命令用來顯示網路狀態,包括網路連線、路由表、介面統計等資訊。常用的引數如下:
-a (all) 顯示所有選項,預設不顯示LISTEN相關。
-t (tcp) 僅顯示tcp相關選項。
-u (udp) 僅顯示udp相關選項。
-n 拒絕顯示別名,能顯示數字的全部轉化成數字。
-l 僅列出有在 Listen (監聽) 的服務狀態。
-p 顯示建立相關連結的程式名
-r 顯示路由資訊,路由表
-e 顯示擴充套件資訊,例如uid等
-s 按各個協議進行統計
-c 每隔一個固定時間,執行該netstat命令。
下面我用了 netstat -tulpn 命令,可以看到埠 22正在被監聽。
2)使用 ss 命令
現在也有很多人用 ss 命令,ss 一般用於轉儲套接字統計資訊。它還可以顯示所有型別的套接字統計資訊,包括 PACKET、TCP、UDP、DCCP、RAW、Unix 域等。這裡可以用 ss -lntpd
7、如何檢視某個程序對 CPU 的使用情況
1) 可以使用 top 命令
top命令是Linux下常用的效能分析工具,能夠實時顯示系統中各個程序的資源佔用狀況,類似於Windows的工作管理員。
2) 使用 ps 命令
ps aux 可以顯示所有使用者的程序,最常用的方法是ps aux,然後再利用一個管道符號導向到grep去查詢特定的程序。比如檢視nginx 程序可以用
ps aux | grep nginx
8、Linux裡如何來做掛載
這裡主要考的是 mount 命令,用於掛載Linux系統外的檔案。
只輸入 mount命令可以檢視所有系統已經掛載的檔案。
如果想掛載一個新的檔案,比如將 /dev/hda1 掛在 /mnt 之下,可以用
mount /dev/hda1 /mnt
9、如何檢視一些你不太熟悉的命令
這裡要考大家的是使用 man 命令。對某個 Linux的命令不熟悉,可以用 man <命令 >,系統會返回該命令的一個非常詳細的手冊,來幫助大家使用。
10、如果使用了 man 命令還是找不到答案怎麼辦
百度,或者在論壇、社群裡求助大神......
當然,只掌握上面這十個基本問題還是遠遠不夠的。大家在平時的工作和學習中要注重積累;在面試前將自己的經歷、重要的知識點作好梳理和充分的準備;在面試當中調整好心態,從容回答問題,邏輯要清晰,表達要清楚。最後祝大家都能找到自己理想的工作。
&n