題目:
1马澈、Linux掛載Winodws共享文件夾
2缩焦、查看http的并發(fā)請(qǐng)求數(shù)及其TCP連接狀態(tài):
3、用tcpdump嗅探80端口的訪問看看誰(shuí)最高
4衙传、統(tǒng)計(jì)/var/log/下文件個(gè)數(shù)
5嘱支、查看當(dāng)前系統(tǒng)每IP連接數(shù)
6蚓胸、shell下32位隨機(jī)密碼生成
7、統(tǒng)計(jì)出apache的access.log中訪問量最多的5個(gè)IP
8斗塘、如何查看二進(jìn)制文件的內(nèi)容
9赢织、ps aux 中VSZ代表什么意思 RSS代表什么?
10亮靴、檢測(cè)并修復(fù)/dev/hda5
11馍盟、Linux開機(jī)啟動(dòng)順序
12、符號(hào)鏈接和硬鏈接的區(qū)別
13茧吊、保存當(dāng)前磁盤分區(qū)的分區(qū)表
15贞岭、手動(dòng)安裝grub
16、改內(nèi)核參數(shù)
17搓侄、在1-39內(nèi)取隨機(jī)數(shù)
18瞄桨、限定apache每秒鐘連接數(shù)為1,峰值為3
19、FTP主動(dòng)與被動(dòng)模式
20讶踪、顯示/etc/inittab中以#開頭,且后面跟一個(gè)或多個(gè)空白字符,而后又跟了任意非空白字符的行;
21芯侥、顯示/etc/inittab中包含了:一個(gè)數(shù)字:(即兩個(gè)冒號(hào)中間一個(gè)數(shù)字)的行;
22、怎么把自己寫的腳本添加到服務(wù)里面,即可以使用service命令來調(diào)用
23柱查、寫一個(gè)腳本廓俭,實(shí)現(xiàn)批量添加20個(gè)用戶,用戶名為user1-20唉工,密碼為user后面跟5個(gè)隨機(jī)字符
24研乒、寫一個(gè)腳本,實(shí)現(xiàn)判斷192.168.1.0/24網(wǎng)絡(luò)里淋硝,當(dāng)前在線的IP有哪些雹熬,能ping通則認(rèn)為在線
25、寫一個(gè)腳本谣膳,判斷一個(gè)指定的腳本是否是語(yǔ)法錯(cuò)誤竿报;如果有錯(cuò)誤,則提醒用戶鍵入Q或者q無視錯(cuò)誤并退出其它任何鍵可以通過vim打開這個(gè)指定的腳本继谚;
26仰楚、寫一個(gè)腳本:
1、創(chuàng)建一個(gè)函數(shù)犬庇,能接受兩個(gè)參數(shù):
1)第一個(gè)參數(shù)為URL僧界,即可下載的文件;第二個(gè)參數(shù)為目錄臭挽,即下載后保存的位置捂襟;
2)如果用戶給的目錄不存在,則提示用戶是否創(chuàng)建欢峰;如果創(chuàng)建就繼續(xù)執(zhí)行葬荷,否則,函數(shù)返回一個(gè)51的錯(cuò)誤值給調(diào)用腳本纽帖;
3)如果給的目錄存在宠漩,則下載文件;下載命令執(zhí)行結(jié)束后測(cè)試文件下載成功與否懊直;如果成功扒吁,則返回0給調(diào)用腳本,否則室囊,返回52給調(diào)用腳本雕崩;
27、寫一個(gè)腳本:
1融撞、創(chuàng)建一個(gè)函數(shù)盼铁,可以接受一個(gè)磁盤設(shè)備路徑(如/dev/sdb)作為參數(shù);在真正開始后面步驟之前提醒用戶有危險(xiǎn),并讓用戶選擇是否繼續(xù)尝偎;
? 而后將此磁盤設(shè)備上的所有分區(qū)清空(提示饶火,使用命令dd if=/dev/zero of=/dev/sdb bs=512 count=1實(shí)現(xiàn)鹏控,注意其中的設(shè)備路徑不要寫錯(cuò)了
? ;如果此步驟失敗肤寝,返回67給主程序牧挣;
? 接著在此磁盤設(shè)備上創(chuàng)建兩個(gè)主分區(qū),一個(gè)大小為100M醒陆,一個(gè)大小為1G瀑构;如果此步驟失敗,返回68給主程序刨摩;
? 格式化此兩分區(qū)寺晌,文件系統(tǒng)類型為ext3;如果此步驟失敗澡刹,返回69給主程序呻征;
? 如果上述過程都正常,返回0給主程序罢浇;
2陆赋、調(diào)用此函數(shù);并通過接收函數(shù)執(zhí)行的返回值來判斷其執(zhí)行情況嚷闭,并將信息顯示出來
----==========*************** 答案公布 *************** ==========----?
1-17題答案
1攒岛、Linux掛載Winodws共享文件夾
# mount -t cifs //1.1.1.254/ok /var/tmp/share/ -o username=administrator,password=yourpass
2、查看http的并發(fā)請(qǐng)求數(shù)及其TCP連接狀態(tài):
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
3.用tcpdump嗅探80端口的訪問看看誰(shuí)最高
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -20
4胞锰、統(tǒng)計(jì)指定目錄的文件個(gè)數(shù)
find / -type f | wc -l
5灾锯、查看IP連接數(shù)
netstat -n | awk '/^tcp/ {print $5}'| awk -F: '{print $1}' | sort | uniq -c | sort -rn
6、【shell下32位隨機(jī)密碼生成】
tr -dc ~`!@#$%^&*()-_+=|\?/.>,
7嗅榕、統(tǒng)計(jì)出apache的access.log中訪問量最多的5個(gè)IP
cat access_log_2011_06_26.log |awk '{print $1}'|uniq -c|sort -rn |head -n 5
8顺饮、如何查看二進(jìn)制文件的內(nèi)容
? [root@new55 ~]# echo /etc/passwd | hexdump -C? ? ? <== 規(guī)范的十六進(jìn)制和ASCII碼顯示(Canonical hex+ASCII display )
9、ps aux 中VSZ代表什么意思 RSS代表什么?
? ? aux
? ? a 顯示所有與終端相關(guān)的進(jìn)程,由終端發(fā)起的.
? ? x 顯示所有與終端無關(guān)的進(jìn)程.
? ? u 顯示用戶導(dǎo)向的用戶列表.
VSZ 虛擬內(nèi)存集,進(jìn)程占用的虛擬內(nèi)存空間
RSS? ? 物理內(nèi)存集,進(jìn)程戰(zhàn)用實(shí)際物理內(nèi)存空間.
S 可中斷的睡眠態(tài)
R 運(yùn)行態(tài)
D 不可中斷的睡眠態(tài)
T 停止態(tài)
Z 僵死態(tài)
10凌那、檢測(cè)并修復(fù)/dev/hda5
e2fsck -p /dev/hda5
11兼雄、Linux開機(jī)啟動(dòng)順序
啟動(dòng)順序:
POST(加電自檢)-->由BIOS決定啟動(dòng)設(shè)備次序-->MBR(bootloader)-->解壓kernel,加載Kernel到內(nèi)存-->加載init進(jìn)程(/etc/inittab)
12、符號(hào)鏈接和硬鏈接的區(qū)別
硬鏈接:不同路徑的文件指定的是同一個(gè)inode
? ? 硬鏈接不能跨分區(qū)存在
? ? 硬鏈接不能鏈接到目錄(要避免循環(huán)引用)
? ? 刪除硬鏈接只會(huì)減少文件被硬鏈接的次數(shù),源文件不會(huì)動(dòng).
軟鏈接:是一個(gè)獨(dú)立的文件,有自己獨(dú)立的inode
? ? 引用的是路徑本身,不是inode
? ? 刪除軟鏈接,跟源文件沒任何關(guān)系
? ? 軟鏈接沒有存儲(chǔ)任何數(shù)據(jù),只是存儲(chǔ)了訪問文件的另一種路徑.
? ? 軟鏈接可以對(duì)目錄創(chuàng)建,也可以跨分區(qū)
? ? 源文件被刪除,軟連接將不可用.
13帽蝶、保存當(dāng)前磁盤分區(qū)的分區(qū)表
# sfdisk -d /dev/sdb >/etc/sdbpar.bak 保存分區(qū)表
# sfdisk /dev/sdb
14赦肋、檢測(cè)并自動(dòng)修復(fù)文件系統(tǒng)
e2fsck - check a Linux ext2/ext3 file system
? ? -B? ? 指定塊大小
? ? -f? ? 強(qiáng)制檢測(cè).
? ? -p? ? 自動(dòng)修復(fù)文件系統(tǒng)
15、手動(dòng)安裝grub
手動(dòng)安裝grub
# grub-install --root-directory=(指定boot目錄) DEVICE
或者
grub
grub>root (hd0,0)
grub>setup (hd0)
16嘲碱、改內(nèi)核參數(shù)
# sysctl
? ? -p? ? 不用重啟系統(tǒng),讓內(nèi)核重讀/etc/sysctl.conf文件
? ? -a? ? 顯示所有內(nèi)核參數(shù)及其正在使用的值.
? ? -w? ? 臨時(shí)設(shè)置/etc/sysctl.conf參數(shù)? ? sysctl -w net.ipv4.ip_froward=0
17金砍、在指定范圍內(nèi)取隨機(jī)數(shù)
在指定范圍內(nèi)取隨機(jī)
echo $[$RANDOM%39] 對(duì)39進(jìn)行取余,余數(shù)肯定是39以內(nèi)的數(shù)字.
18-22題答案
18、限定apache每秒鐘連接數(shù)為1,峰值為3
# iptables -A INPUT -d 172.16.100.1 -p tcp --dport 80 -m limit --limit 1/second --limit-burst 3 -j ACCEPT
19麦锯、FTP主動(dòng)與被動(dòng)模式
主動(dòng)模式
? ? 1. 任何大于1024的端口到FTP服務(wù)器的21端口。(客戶端初始化的連接)
? ? 2. FTP服務(wù)器的21端口到大于1024的端口琅绅。 (服務(wù)器響應(yīng)客戶端的控制端口)
? ? 3. FTP服務(wù)器的20端口到大于1024的端口扶欣。(服務(wù)器端初始化數(shù)據(jù)連接到客戶端的數(shù)據(jù)端口)
? ? 4. 大于1024端口到FTP服務(wù)器的20端口(客戶端發(fā)送ACK響應(yīng)到服務(wù)器的數(shù)據(jù)端口)
被動(dòng)模式
? ? 1. 從任何大于1024的端口到服務(wù)器的21端口(客戶端初始化的連接)
? ? 2. 服務(wù)器的21端口到任何大于1024的端口(服務(wù)器響應(yīng)到客戶端的控制端口的連接)
? ? 3. 從任何大于1024端口到服務(wù)器的大于1024端口(客戶端初始化數(shù)據(jù)連接到服務(wù)器指定的任意端口)
? ? 4. 服務(wù)器的大于1024端口到遠(yuǎn)程的大于1024的端口(服務(wù)器發(fā)送ACK響應(yīng)和數(shù)據(jù)到客戶端的數(shù)據(jù)端口)
客戶端與服務(wù)端建立連接,經(jīng)過TCP三次握手,連接建立完成之后料祠,客戶端就可以通過建立的連接通道向服務(wù)器發(fā)送命令了骆捧,服務(wù)器根據(jù)客戶端的命令,
向客戶端發(fā)送數(shù)據(jù)髓绽,發(fā)送數(shù)據(jù)的時(shí)候敛苇,服務(wù)端會(huì)再跟客戶端建立一個(gè)TCP連接,用于專門的傳輸數(shù)據(jù)顺呕,這個(gè)連接就是數(shù)據(jù)連接枫攀。
數(shù)據(jù)連接有兩種工作模式:主動(dòng)模式和被動(dòng)模式
主動(dòng)模式指的是服務(wù)器是主動(dòng)的
被動(dòng)模式指的是服務(wù)器是被動(dòng)的
主動(dòng)模式:
服務(wù)器端自動(dòng)打開20號(hào)端口,即數(shù)據(jù)傳輸端口株茶。主動(dòng)的去連接客戶端的命令端口+1的端口来涨。當(dāng)數(shù)據(jù)傳輸完成后,數(shù)據(jù)連接自動(dòng)斷開启盛。
被動(dòng)模式:
服務(wù)器端向客戶端通知自己打開的端口蹦掐,通知客戶端來連接自己的數(shù)據(jù)端口,客戶端使用命令端口+1的端口僵闯,去連接服務(wù)器端的數(shù)據(jù)端口卧抗。
被動(dòng)模式下,服務(wù)器的數(shù)據(jù)連接端口使用的是一個(gè)隨機(jī)端口鳖粟。主動(dòng)模式服務(wù)端使用的是20端口颗味。
20、顯示/etc/inittab中以#開頭,且后面跟一個(gè)或多個(gè)空白字符,而后又跟了任意非空白字符的行;
# grep "^#[[:space:]]{1,}.{1,}" /etc/inittab
21牺弹、顯示/etc/inittab中包含了:一個(gè)數(shù)字:(即兩個(gè)冒號(hào)中間一個(gè)數(shù)字)的行;
# grep ":[0-9]{1}:" /etc/inittab
22浦马、怎么把自己寫的腳本添加到服務(wù)里面,即可以使用service命令來調(diào)用
#!/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? ? ? ? //可以看到Hello,start表示成功
23-24腳本答案
23张漂、寫一個(gè)腳本晶默,實(shí)現(xiàn)批量添加20個(gè)用戶,用戶名為user1-20航攒,密碼為user后面跟5個(gè)隨機(jī)字符
#!/bin/bash
for i in {1..20}; do
? ? pass=$(tr -dc ~`!@#$%^&*()-_+=|\?/.>,? ? useradd user${i}
? ? echo $pass | passwd user${i} --stdin
? ? echo "user${i} <=============> $pass" >> ./userlist.out
done
echo 'Sucess,passwd is in userlist.out'
24磺陡、寫一個(gè)腳本,實(shí)現(xiàn)判斷192.168.1.0/24網(wǎng)絡(luò)里漠畜,當(dāng)前在線的IP有哪些币他,能ping通則認(rèn)為在線
#!/bin/bash
ips="192.168.1."
for i in {1..254}; do
? ? ping -W 1 -c 1 ${ips}${i} &>/dev/null && echo "${ips}${i} is up" | tee -a uplog || echo "${ips}${i} is down"
done
echo "Please read uplog to know which host is online. "