Linux命令面试突击
Linux 命令常見面試題總結(jié)。
其它面試知識(shí)點(diǎn)突擊整理:
| 1 | Java基礎(chǔ)面試突擊 | 
| 2 | JVM面試突擊 | 
| 3 | 設(shè)計(jì)模式面試突擊 | 
| 4 | 并發(fā)編程面試突擊 | 
| 5 | 消息隊(duì)列Kafka面試突擊 | 
| 6 | Redis面試突擊 | 
| 7 | 計(jì)算機(jī)網(wǎng)絡(luò)面試突擊 | 
| 8 | Spring面試突擊 | 
| 9 | Dubbo面試突擊 | 
| 10 | MyBatis面試突擊 | 
| 11 | 操作系統(tǒng)面試突擊 | 
| 12 | MySQL面試突擊 | 
| 13 | Linux命令面試突擊 | 
文章目錄
- 1. 說一下常用的Linux命令?
 - 2. 如何查看所有java進(jìn)程
 - 3. 如何殺掉某個(gè)服務(wù)的進(jìn)程
 - 4. 啟動(dòng)/停止服務(wù)
 - 5. 如何查看測(cè)試項(xiàng)目的日志
 - 6. 如何查看某個(gè)端口是否被占用
 - 7. 查看當(dāng)前所有已經(jīng)使用的端口情況
 - 8. 如何查找一個(gè)文件大小超過5M的文件
 - 9. 如果知道一個(gè)文件名稱,怎么查這個(gè)文件在linux下的哪個(gè)目錄
 - 10. find查找文件
 - 11. vim(vi)編輯器
 - 12. /etc/hosts?件什么作??
 - 13. 硬鏈接和軟連接的區(qū)別?
 - 14. linux連接超時(shí),處理方案
 - 15. 用什么命令對(duì)一個(gè)文件的內(nèi)容進(jìn)行統(tǒng)計(jì)?(行號(hào)、單詞數(shù)、字節(jié)數(shù))
 - 16. Linux 中進(jìn)程有哪幾種狀態(tài)?在 ps 顯示出來的信息中,分別用什么符號(hào)表示的?
 - 17. 哪個(gè)命令專門用來查看后臺(tái)任務(wù)?
 - 18. 使用什么命令查看磁盤使用空間? 空閑空間呢?
 - 19. du 和 df 的定義,以及區(qū)別?
 - 20. Java服務(wù)端問題排查(OOM,CPU?,Load?,類沖突)?
 
1. 說一下常用的Linux命令?
| 1 | top | 查看內(nèi)存 | 
| 2 | df -h | 查看磁盤存儲(chǔ)情況 | 
| 3 | iotop | 查看磁盤IO讀寫 | 
| 4 | iotop -0 | 直接查看比較高的磁盤讀寫程序 | 
| 5 | nestat -tunlp | grep 端口號(hào) | 查看端口占用情況 | 
| 6 | uptime | 查看報(bào)告系統(tǒng)運(yùn)行時(shí)常及平均負(fù)載 | 
| 7 | ps aux | 查看進(jìn)程 | 
| 8 | ls【參數(shù) -a -l】 | 列出文件列表 | 
| 9 | mkdir rmdir | 創(chuàng)建目錄和移除目錄 | 
| 10 | tar -xvf (-zcvf) | tail打包 (打包并壓縮) | 
| 11 | grep | 查找字符串 | 
| 12 | pwd | 顯示當(dāng)前所在目錄 | 
| 13 | vim vi | 編輯器 | 
| 14 | touch | 創(chuàng)建空文件 | 
| 15 | ifconfig | 查看 ip 地址及接口信息 | 
| 16 | netstat | 查看網(wǎng)絡(luò)是否連通 | 
2. 如何查看所有java進(jìn)程
grep是搜索關(guān)鍵字>ps -ef | grep java-aux 顯示所有狀態(tài)>ps -aux | grep java3. 如何殺掉某個(gè)服務(wù)的進(jìn)程
kill 命令用于終止進(jìn)程-9 強(qiáng)迫進(jìn)程立即停止>kill -9 [PID]這里pid需要用 ps -ef | grep 查詢pid4. 啟動(dòng)/停止服務(wù)
以啟動(dòng)Tomcat為例,先cd到啟動(dòng)的.sh文件目錄> cd /java/tomcat/bin> ./startup.sh停止Tomcat服務(wù)命令>./shutdown.sh5. 如何查看測(cè)試項(xiàng)目的日志
一般測(cè)試的項(xiàng)目里面,有個(gè)logs的目錄文件,會(huì)存放日志文件,有個(gè)xxx.out的文件,可以用tail -f 動(dòng)態(tài)實(shí)時(shí)查看后端日志先cd 到logs目錄(里面有xx.out文件)>tail -f xx.out這時(shí)屏幕上會(huì)動(dòng)態(tài)實(shí)時(shí)顯示當(dāng)前的日志,ctr+c停止查看最近1000行日志>tail -1000 xx.out6. 如何查看某個(gè)端口是否被占用
>netstat -anp | grep 端口號(hào)
 圖中主要看監(jiān)控狀態(tài)為L(zhǎng)ISTEN表示已經(jīng)被占用,最后一列顯示被服務(wù)mysqld占用,查看具體端口號(hào),只要有如圖這一行就表示被占用了。
查看82端口的使用情況,如圖
>netstat -anp |grep 82
 可以看出并沒有LISTEN那一行,所以就表示沒有被占用。此處注意,圖中顯示的LISTENING并不表示端口被占用,不要和LISTEN混淆哦,查看具體端口時(shí)候,必須要看到tcp,端口號(hào),LISTEN那一行,才表示端口被占用了。
7. 查看當(dāng)前所有已經(jīng)使用的端口情況
netstat -nultp(此處不用加端口號(hào))8. 如何查找一個(gè)文件大小超過5M的文件
>find . -type f -size +100M9. 如果知道一個(gè)文件名稱,怎么查這個(gè)文件在linux下的哪個(gè)目錄
如:要查找tnsnames.ora文件
>find / -name tnsnames.ora查到:/opt/app/oracle/product/10.2/network/admin/tnsnames.ora/opt/app/oracle/product/10.2/network/admin/samples/tnsnames.ora還可以用locate 來查找
>locate tnsnames.ora結(jié)果是:/opt/app/oracle/product/10.2/hs/admin/tnsnames.ora.sample10. find查找文件
find / -name httpd.conf #在根目錄下查找文件httpd.conf,表示在整個(gè)硬盤查找find /etc -name httpd.conf #在/etc目錄下文件httpd.conffind /etc -name ‘srm’ #使用通配符(0或者任意多個(gè))。表示在/etc目錄下查找文件名中含有字符串‘srm’的文件find . -name ‘srm’ #表示當(dāng)前目錄下查找文件名開頭是字符串‘srm’的文件按照文件特征查找 find / -amin -10 # 查找在系統(tǒng)中最后10分鐘訪問的文件(access time)find / -atime -2 # 查找在系統(tǒng)中最后48小時(shí)訪問的文件find / -empty # 查找在系統(tǒng)中為空的文件或者文件夾find / -group cat # 查找在系統(tǒng)中屬于 group為cat的文件find / -mmin -5 # 查找在系統(tǒng)中最后5分鐘里修改過的文件(modify time)find / -mtime -1 #查找在系統(tǒng)中最后24小時(shí)里修改過的文件find / -user fred #查找在系統(tǒng)中屬于fred這個(gè)用戶的文件find / -size +10000c #查找出大于10000000字節(jié)的文件(c:字節(jié),w:雙字,k:KB,M:MB,G:GB)find / -size -1000k #查找出小于1000KB的文件11. vim(vi)編輯器
有命令模式、輸入模式、末行模式三種模式。
- 命令模式:查找內(nèi)容(/abc、跳轉(zhuǎn)到指定行(20gg)、跳轉(zhuǎn)到尾行(G)、跳轉(zhuǎn)到首行(gg)、刪除行(dd)、插入行(o)、復(fù)制粘貼(yy,p)
 - 輸入模式:編輯文件內(nèi)容
 - 末行模式:保存退出(wq)、強(qiáng)制退出(q!)、顯示文件行號(hào)(set nu)
 
在命令模式下,輸入a或i即可切換到輸入模式,輸入冒號(hào)(:)即可切換到末行模式;在輸入模式和末行模式下,按esc鍵切換到命令模式
12. /etc/hosts?件什么作??
在當(dāng)前主機(jī)給ip設(shè)置別名,通過該別名可以訪問到該ip地址,通過別名、ip訪問的效果是?樣的。
13. 硬鏈接和軟連接的區(qū)別?
硬鏈接:
軟鏈接:
danglinglink,若被指向路徑?件被重新創(chuàng)建,死鏈接可恢復(fù)為正常的軟鏈接)。
14. linux連接超時(shí),處理方案
測(cè)試網(wǎng)絡(luò)是否通:
ping 遠(yuǎn)程IP如果能ping通則表示與服務(wù)器網(wǎng)絡(luò)連接是正常,接下來測(cè)試端口:
telnet 遠(yuǎn)程ip 端口如果telnet不上,要考慮服務(wù)器是否有防火墻攔截:
CentOS7查看防火墻是否運(yùn)行 firewall-cmd --state CentOS6查看防火墻是否運(yùn)行 /sbin/service iptables status如果防火墻被攔截,需要放行端口。如果防火墻沒有攔截,則要考慮服務(wù)內(nèi)部是否配置限定IP訪問。
MySQL、MongoDB、Redis都有bind選項(xiàng),用來限定客戶端IP
再檢查服務(wù)內(nèi)部是否有其它權(quán)限設(shè)置,例如MySQL有遠(yuǎn)程訪問配置,Redis有protected-mode改為no
15. 用什么命令對(duì)一個(gè)文件的內(nèi)容進(jìn)行統(tǒng)計(jì)?(行號(hào)、單詞數(shù)、字節(jié)數(shù))
wc 命令 - c 統(tǒng)計(jì)字節(jié)數(shù) - l 統(tǒng)計(jì)行數(shù) - w 統(tǒng)計(jì)字?jǐn)?shù)16. Linux 中進(jìn)程有哪幾種狀態(tài)?在 ps 顯示出來的信息中,分別用什么符號(hào)表示的?
17. 哪個(gè)命令專門用來查看后臺(tái)任務(wù)?
job -l把后臺(tái)任務(wù)調(diào)到前臺(tái)執(zhí)行使用什么命令?把停下的后臺(tái)任務(wù)在后臺(tái)執(zhí)行起來用什么命令?
把后臺(tái)任務(wù)調(diào)到前臺(tái)執(zhí)行 fg把停下的后臺(tái)任務(wù)在后臺(tái)執(zhí)行起來 bg18. 使用什么命令查看磁盤使用空間? 空閑空間呢?
df -hl 文件系統(tǒng) 容量 已用 可用 已用% 掛載點(diǎn) Filesystem Size Used Avail Use% Mounted on /dev/hda2 45G 19G 24G 44% / /dev/hda1 494M 19M 450M 4% /boot19. du 和 df 的定義,以及區(qū)別?
- du 顯示目錄或文件的大小
 - df 顯示每個(gè)<文件>所在的文件系統(tǒng)的信息,默認(rèn)是顯示所有文件系統(tǒng)。 (文件系統(tǒng)分配其中的一些磁盤塊用來記錄它自身的一些數(shù)據(jù),如 i節(jié)點(diǎn),磁盤分布圖,間接塊,超級(jí)塊等。這些數(shù)據(jù)對(duì)大多數(shù)用戶級(jí)的程序來說是不可見的,通常稱為 Meta Data。)
 - du命令是用戶級(jí)的程序,它不考慮 Meta Data,而 df 命令則查看文件系統(tǒng)的磁盤分配圖并考慮 Meta Data。
 - df 命令獲得真正的文件系統(tǒng)數(shù)據(jù),而 du 命令只查看文件系統(tǒng)的部分情況。
 
20. Java服務(wù)端問題排查(OOM,CPU?,Load?,類沖突)?
(1)業(yè)務(wù)?志相關(guān):
1. less或者more 2. grep 3. tail -f filename 注意:切忌vim直接打開??志?件,因?yàn)闀?huì)直接加載到內(nèi)存的(2)數(shù)據(jù)庫相關(guān):
1. 登錄線上庫,show processlist查看數(shù)據(jù)庫連接情況(3) jvm相關(guān):
1. jps 顯示java進(jìn)程 2. jinfo 實(shí)時(shí)查看和調(diào)整jvm參數(shù) 3. jstat 監(jiān)控jvm各種運(yùn)?狀態(tài)信息; 4. jstack(Stack Trace for Java)命令?于?成JVM進(jìn)程當(dāng)前時(shí)刻的線程的調(diào)?堆棧,可以?來定位線程間死鎖、鎖等待、等待外部資源等 5. jmap(Memory Map for Java) 命令?于?成堆轉(zhuǎn)儲(chǔ)快照dump?件,除了這種?式還可以通過-XX:HeapDumpOnOutOfMemoryError參數(shù),可以在虛擬機(jī)發(fā)?OOM的時(shí)候?動(dòng)?成堆的dump?件,或者kill -3命令發(fā)出進(jìn)程退出信號(hào)"嚇唬"?下虛擬機(jī),也能拿到dump?件。(4)oom問題:
1. 配置了-XX:+HeapDumpOnOutOfMemoryError, 在發(fā)?OOM的時(shí)候會(huì)在-XX:HeapDumpPath?成堆的dump?件,結(jié)合MAT,可以對(duì)dump?件進(jìn)?分析,查找出發(fā)?OOM的原因。 2. 另外?動(dòng)dump堆快照,可以使?命令jmap -dump:format=b,file=file_name pid 或者kill -3 pid(5)死鎖:
1. jps -v 2. jstack -l pid(6) 線程block、線程數(shù)暴漲:
1. jstack -l pid |wc -l 2. jstack -l pid |grep “BLOCKED”|wc -l 3. jstack -l pid |grep “Waiting on condition”|wc -l 線程block問題?般是等待io、等待?絡(luò)、等待監(jiān)視器鎖等造成,可能會(huì)導(dǎo)致請(qǐng)求超時(shí)、造成造成線程數(shù)暴漲導(dǎo)致系統(tǒng)502等。(7) 服務(wù)器問題:
1)CPU
top2)內(nèi)存
free -m -c10 -s1: a. -m:以MB為單位顯示,其他的有-k -g -b b. -s: 間隔多少秒持續(xù)觀察內(nèi)存使?狀況 c. -c:觀察多少次 vmstat 1 10:1表示每隔1s輸出?次,10 表示輸出10次 a. r: 運(yùn)?隊(duì)列中進(jìn)程數(shù)量,這個(gè)值也可以判斷是否需要增加CPU。(?期?于1) b. b: 等待IO的進(jìn)程數(shù)量。 iostat -m 1 10: -m:某些使?block為單位的列強(qiáng)制使?MB為單位 1 10:數(shù)據(jù)顯示每隔1秒刷新?次,共顯示10次
 3)網(wǎng)絡(luò)
(8)排查工具
Java常?問題排查?具及?法(top,iostat,vmstat,sar,tcpdump,jvisualvm,jmap,jconsole)
具體參考:Java自帶的性能監(jiān)測(cè)工具用法簡(jiǎn)介——jstack、jconsole、jinfo、jmap、jdb、jsta、jvisualvm
參考:
Java面試常問linux命令
Java linux面試題及答案
Linux命令常見面試題
Java面試題 -Linux命令
總結(jié)
以上是生活随笔為你收集整理的Linux命令面试突击的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: JavaSE_04异常处理
 - 下一篇: 动态规划——矩阵中的最短路径长度