linux 面試題

**週一到清睿面試,週三上午到北軟,下午到國通:總結下這三次的面試題:
1、怎樣查看linux系統日誌文件?
2、192.168.12.0/24 分成四個網段,子網掩碼和各自的IP段是多少?
3、RAID5的特點是什麼?
4、ARP協議是那一層的?110,23,143是哪些服務的端口?
5、兩種定時任務 at 和 crontab 的區別是什麼?
6、每個月的8號的8點執行定時任務的腳本怎麼寫?如果一個腳本在命令行中能執行,在定時任務中卻執行不了,可能的原因是什麼?
7、客戶端訪問A服務器並跳到B服務器,怎麼用ssh實現?
8、linux中設定iptales , 允許192.168.2.3的主機訪問本機的80端口,該怎麼寫防火牆規則?
9、查找修改時間不超過30天的文件,寫出命令。
10、殺死某個用戶下的所有進程,寫出命令。
11、至少列出三種打包工具命令及參數。
12、umask 爲 022 用它創建的目錄和文件的權限分別是多少?
13、vi編輯器中:刪除某一個特定的單詞?刪除光標後的文本?將所有的回車替換成空格?插入空行?
14、選出某文件的最後一列,去重並排序,腳本怎麼寫?
15、mysql和oracle數據庫的區別?
16、刪除某個表中所有數據的語句的sql有哪幾個?
17、查看某個表中共有多少條數據的sql語句是什麼?
18、查看某個磁盤還有空間,但是無法創建文件,爲什麼?
19、寫出linux系統中處在連接狀態的鏈接數。

shell腳本題
1、統計nginx日誌中20:00至22:00每分鐘action請求次數最多的前五個時間點(按請求次數排序)
2、統計程序日誌中20:50至21:10間執行時間最慢的五個action的名稱,執行時間及對應時間點(按時間倒敘)


【查看日誌文件】
核心啓動日誌: /var/log/dmesg/ 用 dmesg 命令 或 less /var/log/dmesg
系統報錯日誌:/var/log/message 用 tail -f /var/log/messages
系統登錄日誌:/var/log/wtmp 因爲是二進制文件 用 last 或 last -f /var/log/wtmp


【RAID】獨立磁盤冗餘陣列
由多個物理硬盤按照不同方式組合成的一個硬盤組,對操作系統顯示爲一個邏輯硬盤。
考慮到存儲性能,數據安全,成本三個因素
RAID0技術需要n塊硬盤,n>=2,數據被分到這n塊硬盤中,系統的 I/O請求被分成了 n 個操作分別向n個磁盤, 從而提高了存儲性能,缺點是數據安全沒有保證。
RAID1技術使用了鏡像的理念,把數據備份到另一個盤中,存儲性能不高,但安全性好。
RAID5 技術使用了 奇偶校驗的技術,數據被分到了幾個盤中,存儲性能高,空間利用率是 n-1個盤,一個盤損壞時,通過奇偶校驗技術通過其他盤把這個盤的數據恢復,安全性好。


【ARP協議】
地址解析協議
1) 在同一局域網內,根據IP來尋找硬件MAC地址
2) 屬於TCP/IP協議族,屬於3層網絡層,用抓包工具看數據,ARP是封裝在IP後的。
3) 在OSI模型中屬於數據鏈路層,當數據從網絡層封裝到鏈路層後,因爲不知道目的MAC 地址所以會觸發ARP請求,請求目的IP的MAC地址。
4) 基於功能來考慮,ARP是鏈路層協議;基於分層/包封裝來考慮,ARP是網絡層協議。


【子網劃分】
分成四個網段,2^2=4,所以IP地址的網絡位向前 借 2個主機位,192.168.12.0/26
每個網絡有多少IP? 2^(8-2)-2=62
192.168.12.0/26 , 192.168.12.64/26 , 192.168.12.128/26 , 192.168.12.192/26


【端口】
110 是POP3協議,客戶端接收郵件
143 是IMAP協議,瀏覽器接收郵件
873 是rsync 文件傳輸服務
23 是telnet 遠程登錄服務


【定時任務】
at 是讓特定任務只執行一次,要開啓 atd 進程。
crontab -e 分時日月周 commd

  • /6 commd 每6小時執行一次
    0 6 commd 每天6點執行
    0 1-4/2 , 7
    commd 每天1-4點每2個小時,7點 執行
    0 0 0,3,5 commd 每週日,三,五晚上12點執行一次

    1、環境變量,比如在 oracle 用戶下創建的定時任務,權限沒有問題,當前shell下手動執行可以,但是在crontab文件中可能沒有加載oracle 的環境變量,需要先聲明。如:source  ~/.bashrc
    2、路徑問題,命令和命令的對象最好都用絕對路徑。
    3、權限問題,腳本沒有執行的權限。或者腳本轉碼的問題。

【SSH跳板】
客戶端通過 x-shell 登錄 A 服務器,再 執行 ssh root@IP 即可到B服務器上。


【Iptables 防火牆】
4表5鏈:
filter表 過濾,nat 表 端口或者地址映射,mangle 表 特定數據包的修改,raw 表
PREROUTING: 數據包進入路由表之前
INPUT : 數據包通過路由表後目的地爲本機
FORWARD: 通過路由表後,目的地不是本機
OUTPUT: 由本機產生,向外轉發
POSTROUTING : 發送到網卡接口之前

     格式:
     iptables -t 表名 -I 鏈名 匹配條件 -j 動作
      在頭部插入規則 -I ,在尾部插入規則 -A ,刪除指定表指定鏈中規則 -D
        默認策略:-P , 清空鏈中的規則 -F ,修改規則 -R 
        動作 有 ACCEPT , DROP ,REJECT

    例子:
    添加: iptables -t filter -I INPUT -s 192.168.220.12 -j DROP 
    查看:iptables -nL --line-number
    刪除:iptable -t filter -D INPUT 1
    修改:iptable -t filter -R INPUT 1 -p tcp --dport 22 -s 192.168.220.12 -j REJECT

【find命令】
按時間查找的三種時間戳:
按訪問時間: -atime/天, -amin/分鐘 最後一次訪問時間
按修改時間: -mtime/天,-mmin/分鐘 最後一次修改時間
按變化時間: -ctime/天, -cmin/分鐘 最後一次數據元(如權限)修改的時間
find / -type f -mtime -30 (其中 -30是30天以內,+30是30天以外)

         按文件大小 -size -10M
         按文件類型 -type f (  f是普通文件,d是目錄 )
         按文件名    -name  filename

【殺死某用戶下所有進程】
killall -u username
pkill -u username

【打包工具】
tar -cvf name.tar filename
tar -czvf name.tar.gz filename
tar -czvf name.tar.bz2 filename

【權限管理】
linux 創建文件默認權限是 644 ,創建目錄默認權限是 755 ,默認權限是 022
文件的權限基數是 6 ,目錄的權限基數是 7


【vim編輯器】
打開文本後是在 “命令模式”下,i 或 o 進入 插入模式,i是在光標處插入,o是下一行插入。
按 esc 回到命令模式,:進入 編輯模式

移動光標到:第一行開頭:gg , 第n行開頭 nG , 最後一行開頭:G,本行的開頭數字 0 ,末尾 $
    撤銷上一步操作:u  撤銷恢復:ctrl+r
    複製操作:nyy , 粘貼操作 p
    剪切 (刪除):本行 dd ,ndd, 到行尾:D,到文件尾:dG  n1行到n2行剪切:“:n1,n2 d”
    替換: “%s/abc/bcd/g” 
    搜索: /abc

【AWK】
刪除空行: grep -v "^$" filename
取文本的最後一列: awk '{print $NF}'
合併相鄰記錄數並統計重複數:uniq -c
合併前先排序:sort (按ASCII碼排序) -r 按數字從大到小排序
grep -v "^$" filename | awk '{print $NF} ' | sort | uniq -c | sort -r


【數據庫】
進入mysql數據庫:mysql -h 主機地址 -u 用戶名 -p 密碼
進入oracle 命令: sqlplus /nolog
查看錶中的數據l量:use database ;select count(*) from table_name

        oracle 是大型,市場佔有率多,價格高,功能豐富的數據庫。
        mysql 是中小型,市場佔有率低,開源免費的數據庫

        刪除表中的數據:
        drop 是刪除整個表
        truncate table 表名 :清空表中的數據,保留表結構 數據不可恢復,速度快
        delete from 表名  清空數據,數據可恢復,速度慢
        delete from 表名 where 列名=值 

 數據庫事務的功能:
     事務是一種機制,保證數據庫數據的一致性。設置事務起始點 (begin transcation) ,到 提交(commit)之間的所有操作視爲一個整體,要麼都執行成功,要麼都執行失敗。然後可以進行回滾(rollback)就是 撤銷 操作。
     在銀行轉賬,A賬戶數字減少,B賬戶數字增加,這兩個操作要麼都執行成功,要麼都執行失敗。
     mysql 數據庫要開啓存儲引磬 InnoDB才支持事務功能。

【文件inode】
用 df -h 查看磁盤空間未滿,但是無法創建文件。
用 df -i 查看 文件的 inode 節點是否已經用完,然後刪除文件較多的目錄。

【網絡鏈接狀態】
網絡鏈接狀態有11種,常見的有 LISTEN ,ESTABLISHED , TIME_WAIT 三種
查看網絡鏈接的概況:ss -s
查看監聽狀態的鏈接:ss -lt
查看established狀態:ss


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章