標籤:linux面試題-10k
1、Linux掛載Winodws共用資料夾首先要安裝samba-client 掛載命令為mount -t cifs //ip/sharedir /mnt -o username=user,password=passwd2、查看http的並發請求數及其TCP串連狀態:請求數: ps aux |grep -c httpd串連狀態: netstat -an |grep ‘:80‘3、用tcpdump嗅探80連接埠的訪問看看誰最高tcpdump -nn port 80 4、統計/var/log/下檔案個數find /var/log/ -type f |wc -l 5、查看當前系統每IP串連數netstat -n | awk ‘/^tcp/ {print $5}‘| awk -F: ‘{print $1}‘ | sort | uniq -c | sort -rn6、shell下32位隨機密碼產生mkpasswd -l 327、統計出apache的access.log中訪問量最多的5個IPawk ‘{print $1}‘access.log|sort -n |uniq -c |sort -nr |head -58、如何查看二進位檔案的內容xxd filename9、ps aux 中VSZ代表什麼意思 RSS代表什麼 VSZ表示為進程分配的虛擬記憶體,RSS表示進程實際使用的實體記憶體10、檢測並修複/dev/hda5fsck -y /dev/hda511、Linux開機啟動順序bios自檢 - MBR引導 - 載入核心 - 運行init - 系統初始化 - 建立終端 - 登陸系統12、符號連結和永久連結的區別符號連結可以連結檔案或者目錄,但永久連結不可以連結目錄;符號連結可以跨檔案系統跨分區,但永久連結不可以;符號連結是一個捷徑,永久連結是inode的資訊複製;13、儲存當前磁碟分割的分區表dd if=/dev/sda1 of=/mbr.bak bs=446 count=115、手動安裝grubgrun-install /dev/sda16、改核心參數vim /etc/sysctl.conf17、在1-39內取隨機數echo $[$RANDOM%39]18、限定apache每秒鐘串連數為1,峰值為3# iptables -A INPUT -d 172.16.100.1 -p tcp --dport 80 -m limit --limit 1/second --limit-burst 3 -j ACCEPT19、FTP主動與被動模式PORT(主動)方式的串連過程是:用戶端向伺服器的FTP連接埠(預設是21)發送串連請求,伺服器接受串連,建立一條命令鏈路。當需要傳送資料時,用戶端在命令鏈路上用PORT 命令告訴伺服器:“我開啟了XXXX連接埠,你過來串連我”。於是伺服器從20連接埠向用戶端的 XXXX連接埠發送串連請求,建立一條資料鏈路來傳送資料。 PASV(被動)方式的串連過程是:用戶端向伺服器的FTP連接埠(預設是21)發送串連請求,伺服器接受串連,建立一條命令鏈路。當需要傳送資料時,伺服器在命令鏈路上用PASV 命令告訴用戶端:“我開啟了XXXX連接埠,你過來串連我”。於是用戶端向伺服器的XXXX連接埠 發送串連請求,建立一條資料鏈路來傳送資料。從上面可以看出,兩種方式的命令鏈路串連方法是一樣的,而資料鏈路的建立方法就完 全不同。20、顯示/etc/inittab中以#開頭,且後面跟一個或多個空白字元,而後又跟了任意非空白字元的行;grep -E "^#\ +.*$" /etc/inittab grep "^# \{1,\}[^ ]" /etc/inittab21、顯示/etc/inittab中包含了:一個數字:(即兩個冒號中間一個數字)的行;grep ‘:[0-9]:‘ /etc/inittab22、怎麼把自己寫的指令碼添加到服務裡面,即可以使用service命令來調用 #!/bin/bash # chkconfig: - 90 10 # description: just a test echo "Hello,$1" # mv test /etc/init.d/ # chmod +x /etc/init.d/test # chkconfig --add test # service test start 23、寫一個指令碼,實現大量新增20個使用者,使用者名稱為user1-20,密碼為user後面跟5個隨機字元#! /bin/bashfor i in `seq 1 20`; do usern="user$i" pas1=`mkpasswd -s 0 -d 1 -l 5` pas2=user$pas1 useradd $usern echo -e "$pas2\n$pas2\n" |passwd $userndone24、寫一個指令碼,實現判斷192.168.1.0/24網路裡,當前線上的IP有哪些,能ping通則認為線上#! /bin/bashfor i in `seq 1 255`; do ip="192.168.1.$i" echo $ip los_pk=`ping -c 4 $ip |grep ‘packet loss‘ |awk ‘{print $6}‘ |cut -d% -f1` if [ $los_pk -eq 0 ]; then echo "$ip online" else echo "$ip not online" fidone25、寫一個指令碼,判斷一個指定的指令碼是否是語法錯誤;如果有錯誤,則提醒使用者鍵入Q或者q無視錯誤並退出其它任何鍵可以通過vim開啟這個指定的指令碼;#! /bin/bashscript_f="./3.sh"sh -n $script_f >/dev/null 2>/dev/nulln=`echo $?`if [ $n -ne 0 ]; then read -p "The script is a bad file, tap "q" or "Q" for quit or tap other key to edit the file." key if [ $key == ‘q‘ -o $key == ‘Q‘ ] then exit else vim $script_f fifi26、寫一個指令碼:1、建立一個函數,能接受兩個參數:1)第一個參數為URL,即可下載的檔案;第二個參數為目錄,即下載後儲存的位置;2)如果使用者給的目錄不存在,則提示使用者是否建立;如果建立就繼續執行,否則,函數返回一個51的錯誤值給呼叫指令碼;3)如果給的目錄存在,則下載檔案;下載命令執行結束後測試檔案下載成功與否;如果成功,則返回0給呼叫指令碼,否則,返回52給呼叫指令碼;#! /bin/bashfunction download() { url=$1 dir=$2 while :; do if [ -d $dir ]; then cd $dir wget $url n=`echo $?` if [ $n -eq 0 ]; then return 0 else return 52 fi else read -p "The directory is not exist, create or not? Y/N" k if [ $k == ‘Y‘ -o $k == ‘y‘ ]; then mkdir -p $dir continue else return 51 fi fi done}download http://www.lishiming.net/1forum.php 12327、寫一個指令碼:1、建立一個函數,可以接受一個磁碟裝置路徑(如/dev/sdb)作為參數;在真正開始後面步驟之前提醒使用者有危險,並讓使用者選擇是否繼續; 而後將此磁碟裝置上的所有分區清空(提示,使用命令dd if=/dev/zero of=/dev/sdb bs=512 count=1實現,注意其中的裝置路徑不要寫錯了 ;如果此步驟失敗,返回67給主程式; 接著在此磁碟裝置上建立兩個主要磁碟分割,一個大小為100M,一個大小為1G;如果此步驟失敗,返回68給主程式; 格式化此兩分區,檔案系統類型為ext3;如果此步驟失敗,返回69給主程式; 如果上述過程都正常,返回0給主程式;2、調用此函數;並通過接收函數執行的傳回值來判斷其執行情況,並將資訊顯示出來;#! /bin/bashfunction disk() { read -p "Input the device you want to format. " dev read -p "Waring! It will be format the device $dev, and the data on $dev will be deleted, are you sure to do this? Y/N " k while :; do if [ $k == ‘N‘ -o $k == ‘n‘ ]; then exit elif [ $k == ‘Y‘ -o $k == ‘y‘ ]; then dd if=/dev/zero of=$dev bs=512 count=1 n1=`echo $?` if [ $n1 -ne 0 ]; then return 67 else echo -e "n\np\n1\n1\n+100M\nn\np\n2\n\n+1G\nw\nquit\n" |fdisk $dev n2=`echo $?` if [ $n2 -ne 0 ]; then return 68 else mkfs.ext3 /dev/sdb1 && mkfs.ext3 /dev/sdb2 n3=`echo $?` if [ $n3 == 0 ]; then return 0 else return 69 fi fi fi else continue fi done}diskn4=`echo $?`if [ $n4 == 67 ]; then echo "Delete the partition table error."elif [ $n4 == 68 ]; then echo "Reinstall the partition table error."elif [ $n4 == 69 ]; then echo "Format the patition error."else echo "The whole opration is successful!"fi
本文出自 “Linux_Config” 部落格,請務必保留此出處http://jialiang1026.blog.51cto.com/10119067/1632292
價值10k的Linux面試題