1. 程式人生 > 實用技巧 >北京好未來公司linux面試題

北京好未來公司linux面試題

linux面試試題

題一:用shell程式查詢192.168.190.1-192.168.190.100哪個主機線上,分別顯示其線上情況

答:

for NUM  in $(seq 100)
do
	ping 192.168.190.$NUM -c 1 &>/dev/null 
    if [ $? -eq 0 ]
    then
        echo "192.168.190.$NUM is on-line"
    else
        echo "192.168.190.$NUM is off-line"
    fi
done

題二:用RANDOM如何得到0-38中間的數:

答:

RANDOM的範圍是:0-32767
則:
1.若取0-38中間的數:
  expr $RANDOM % 39  # expr命令獲得後面運算後的結果,空格必須要有
2.若取1-38之間的數:
  先(同時減一)取得0 -37之間的數 $RANDOM % 38
  後加1 即可:$RANDOM % 38 + 1
  即:expr $RANDOM % 38  + 1  #注意空格
3.若取3-90之間的隨機數:
  先(同時減去3)取得0-87之間的隨機數:expr $RANDOM % 88
  在加3即可  expr $Rrandom % 88 + 3
  例如:隨機1-1000中的一個數
  expr $RANDOM%999 + 1  

題三:批量創造20個使用者,賬戶為user_1、2、3…20 .,密碼是user_5位隨機數

答:

#!/bin/bash
for USER in $(seq 20)
do
id user_$USER &>>/dev/null
if [ $? -eq 0 ]
        then
                echo "user_$USER already exists"
else
        RPASSWD=$(expr $RANDOM % 12768 + 10000) #10000-32767之間的5位隨機數
        useradd user_$USER -p user_$RPASSWD
        if [ $? -eq 0 ]
                then 
                        echo "user_$USER created successfully"
                else
                        echo "user_$USER created failed"
        fi
fi
done

題四:隨機生成一個5位隨機字串:

答:

此處給出2中種簡單的方式
head -c x  顯示前面x位元組的內容
head -c -x 顯示除了前面x位元組的內容

1.date | md5num | head –c 5
2.openssl rand 100  –base64 |head -c 5 
# 將隨機產生的100個字元用base64編碼輸出後選中選前5個字元
#若是 -hex 則是用16進位制輸出

題五:linux開機的具體流程

答:
1.載入BIOS的硬體資訊與進行自我檢測,並且依據設定取得第一個可啟動的裝置
2.讀取並執行第一個啟動裝置內MBR內的boot loader(即grub等程式)
3.根據boot loader的設定載入核心,核心開始檢測硬體和載入驅動程式
4.硬體驅動成功後,核心會主動呼叫init程序,取得執行等級的資訊
5.init執行/etc/rc.d.rc.sysinit檔案準備軟體的小左環境
6.init執行執行等級的各個服務的啟動
7.init執行/etc/rc.d/rc.local
8.init執行終端模擬程式mingetty啟動程序,等待使用者登入

題六:如何檢視併發連結數

答:

netstat 引數
-a (all)顯示所有選項,預設不顯示LISTEN相關
-t (tcp)僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數字的全部轉化成數字。
-l 僅列出有在 Listen (監聽) 的服務狀態

-p 顯示建立相關連結的程式名
注:LISTEN和LISTENING的狀態只有用-a或者-l才能看到
sort引數:
-n :以純數字進行排序(預設是以文字型別進行排序)
-r  :反向排序
-t  :  分割符(以什麼符號分割來進行排序,預設是空格)
-k  :以某個區間進行排序
eg:cat /etc/passwd | sort -t ':' -k  3 # 以':'為分隔符選取第3列進行排序

uniq引數:
 -i : 忽略大小寫
 -c :  進行計數

題七:如何檢視特定使用者的程序

答:ps  -u  root  #檢視root使用者的對應程序

題八:如何以八進位制和十六進位制的方式檢視一個檔案

答:

八進位制:
od filename
注:od預設以八進位制顯示,其他引數詳見:
http://www.itdaan.com/blog/2017/10/09/b2297cc3d424414d9a61a49e329652f2.html
十六機制:
xxd  filename
引數:
-l :從開始顯示多少位元組的內容。(2個十六進位制為一個位元組)
-g : 多少位元組為一個組
-i:以陣列的方式輸出

題九:linux如何掛在windows下的共享目錄

linux伺服器上的操作
建立掛載目錄/mnt/APP
[root@dev ~]# mkdir /mnt/APP
使用mount.cifs進行掛載操作:(下面的使用者名稱和密碼是登陸windows的)
[root@dev ~]# mount.cifs //192.168.9.155/APP /mnt/APP/ -o user=administrator,pass=dsff#$TTT

題十:怎麼把指令碼新增到系統服務裡,即用service來呼叫

在腳本里加入  
#!/bin/bash
# chkconfig: 345 85 15
# description: httpd

然後儲存
chkconfig httpd –add  建立系統服
現在就可以使用service 來 start or restart

若僅僅想使用service命令呼叫,只把指令碼放到/etc/init.d/木目錄下即可
chkconfig裡面的服務是系統服務,即隨著系統開機而開啟,關機而關機