- 論壇徽章:
- 0
|
1、 1、Linux掛載Winodws共享文件夾
1)
在windows下建立一個共享文件夾。
2)
確認你的linux安裝了samba軟件包及其客戶端程序(smbclient),因為samba就是提供linux與windows互訪的程序。
3)
開始查看windows下的共享文件目錄:smbclient –L //192.168.1.1,如果連接正常,就可以看到windows下的共享目錄了(字符形式)。
4)
掛載共享目錄:mount –t cifs –ousername=“”,passwd=“”//192.168.1.1/共享文件夾/ /mnt/
2、查看http的并發(fā)請求數(shù)及其TCP連接狀態(tài):
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a,S[a]}'
1)
這句代碼暫時還沒弄清楚,還在找資料,弄清楚后,會再上傳。
3、用tcpdump嗅探80端口的訪問看看誰最高
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print$1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr|head -20
1)
tcpdump -i eth0 -tnn dst port 80 -c 1000:統(tǒng)計本機中目標端口為80的數(shù)據(jù)包,-tnn:直接以IP及port number顯示,而非主機名與服務名稱,并且不顯示時間戳。-c 1000:統(tǒng)計1000個數(shù)據(jù)包。
2)
awk -F"." '{print$1"."$2"."$3"."$4}':對tcpdump的輸出一行一行得進行處理,以.作為分隔域,將遠程主機IP依次打印出來。
3)
sort:對輸出的訪問端IP進行排序。
4)
uniq –c:將相同行合并,并統(tǒng)計相同行的數(shù)量。
5)
sort –nr:以相同行數(shù)量進行排序,反向排序,最大的放在最前面。
6)
head -20:提取前20行。
4、統(tǒng)計指定目錄的文件個數(shù)
find / -type f | wc –l
1)
find / -type f:找出根目錄下,一般文件。
2)
wc –l:統(tǒng)計行數(shù)。
5、查看IP連接數(shù)(訪問本機的遠程主機數(shù)量)
netstat -n | awk '/^tcp/ {print $5}'| awk -F: '{print $1}' |sort | uniq -c | sort –rn
1)
netstat –n:列出本機的所有網(wǎng)絡連接,包括TCP/UDP和Unix socket兩部分。
2)
awk '/^tcp/ {print $5}':/^tcp/:條件是以tcp開頭的行,^:在此處代表行首的意思。{print $5:將第5個字段打印出來,代表遠程主機的IP和port,默認是以tab作為分隔域。
3)
awk -F: '{print $1}':“-F:”:以:作為分隔域;打印第一個字段,將port去掉,只顯示IP。
4)
sort:將IP進行排序。
5)
uniq –c:將相同行合并,并統(tǒng)計相同行的數(shù)量。
6)
sort –nr:以相同行數(shù)量進行排序,反向排序,最大的放在最前面。
6、shell下32位隨機密碼生成(數(shù)字加字母)
1.
方法1:(有點問題)
cat /dev/urandom | sed –e ‘s/[^a-zA-Z0-9]//g’|strings –n 32|head –n 1
1)
/dev/urandom:產(chǎn)生隨機數(shù)的文件。
2)
sed –e ‘s/[^a-zA-Z0-9]//g’:將產(chǎn)生的數(shù)據(jù),一行一行進行處理,非字母數(shù)字內(nèi)容刪除掉。
3)
string –n 32:設置字符串的位數(shù)為32位,也是對每一行進行處理。
4)
head –n 1:提取第一行的內(nèi)容。
2.
方法2:
cat /proc/sys/kernel/random/uuid| md5sum| cut –c 1 -32
1)
cat /proc/sys/kernel/random/uuid:讀取UUID碼文件,每次獲得的數(shù)據(jù)都會不同,為8-4-4-4-12形式數(shù)字加字母的字符串。
2)
md5sum :將UUID碼轉(zhuǎn)換為MD5碼(有問題?);
3)
cut –c 1-32:選取每行中的1-32字符的內(nèi)容。
7、統(tǒng)計出apache的access.log中訪問量最多的5個IP
cat access_log_2011_06_26.log |awk '{print $1}'|uniq -c|sort -rn|head -n 5
1)
查看日志文件即可
8、如何查看二進制文件的內(nèi)容
hexdump -C [filename]:使用hexdump命令即可。
9、ps aux 中VSZ代表什么意思 ,RSS代表什么
1)
ps aux:查看系統(tǒng)正在運行的所有進程。
[1]
a:顯示所有與終端相關的進程,由終端發(fā)起的.
[2]
x:顯示所有與終端無關的進程.
[3]
u:顯示用戶導向的用戶列表.
1)
VSZ:虛擬內(nèi)存集,進程占用的虛擬內(nèi)存空間
2)
RSS :物理內(nèi)存集,進程占用實際物理內(nèi)存空間.
3)
S:可中斷的睡眠態(tài)
4)
R:運行態(tài)
5)
D:不可中斷的睡眠態(tài)
6)
T:停止態(tài)
7)
Z:僵死態(tài)
10、檢測并修復/dev/hda5
umount /dev/hda5 ; e2fsck -p /dev/hda5;mount /dev/hda5:卸載/dev/hda5;-p:不詢問使用者意見,便自動修復文件系統(tǒng);檢測并修復完畢后,記得再重新掛載/dev/hda5。
11、Linux開機啟動順序
開機順序:
1)
BIOS程序讀取CMOS上的信息到內(nèi)存中,取得各項硬件的參數(shù),對硬件進行檢測和初始化(POST,Power-on self-test,加電自檢),并決定啟動設備次序。
2)
BIOS讀取MBR中的引導裝載程序(boot loader)到內(nèi)存中。
3)
引導裝載程序?qū)?nèi)核文件讀入內(nèi)存,內(nèi)核加載后,重新檢測硬件并加載各硬件的驅(qū)動程序,使硬件準備就緒!
4)
運行第一個進程initrd,并逐步啟動各種服務。
5) 此外,如果是多系統(tǒng)主機,還包括引導加載程序和grub的內(nèi)容。每個分區(qū)也會有引導扇區(qū)(boot sector),用于完成多重引導功能。
12、符號鏈接和硬鏈接的區(qū)別
1)
硬連接(實際連接):在目錄的block中將多個文件名對應一個inode,可以理解為文件的別名,不需要占有額外的inode和block,只需要在目錄的block下添加點數(shù)據(jù)。只能對文件使用硬連接,對目錄不行。使用命令 ln filename1 filename2,將文件filename1產(chǎn)生一個硬連接(別名)filename2.
2)
符號連接(快捷方式):創(chuàng)建一個文件(inode+block),block記載需連接文件的目錄的inode及該文件的文件名,變形成了符號鏈接,可以理解為快捷方式。符號連接可以針對目錄。ln –s filename1 filename2
13、保存當前磁盤分區(qū)的分區(qū)表
sfdisk -d /dev/sdb >/etc/sdbpar.bak :保存分區(qū)表
1)
sfdisk –d /dev/sdb:查看整塊硬盤sdb的分區(qū)表。
14、檢測并自動修復文件系統(tǒng)
e2fsck - check [a Linux ext2/ext3 file system]
-B 指定塊大小
-f 強制檢測.
-p 自動修復文件系統(tǒng)
1)
與第10題一樣
15、手動安裝grub
手動安裝grub
1.
grub-install --boot-directory=[指定boot目錄]
DEVICE(文件系統(tǒng))
2.
grub
grub>root (hd0,0):第一個硬盤的第一個分區(qū)
grub>setup (hd0):
1)
grub為開機后系統(tǒng)的引導程序,提供開機時選擇進入哪個系統(tǒng)(多系統(tǒng)環(huán)境)。
16、改內(nèi)核參數(shù)
# sysctl
-p 不用重啟系統(tǒng),讓內(nèi)核重讀/etc/sysctl.conf文件
-a 顯示所有內(nèi)核參數(shù)及其正在使用的值.
-w 臨時設置/etc/sysctl.conf參數(shù)sysctl -w net.ipv4.ip_froward=0
1)
此題我也不懂…^_^
17、在指定范圍內(nèi)取隨機數(shù)
echo $[$RANDOM%39]:對39進行取余,余數(shù)肯定是39以內(nèi)的數(shù)字.
18、限定apache的HTTP服務器:每秒鐘連接數(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
1)
–A INPUT:新增加一條INPUT表格規(guī)則。
2)
–d 172.16.100.1:目標主機的IP即本機。此處也可換乘-i
eth0:eth0為HTTP的對外網(wǎng)卡,表示想要進入此網(wǎng)卡的數(shù)據(jù)包。
3)
–p tcp --dport 80:tcp協(xié)議,目標端口為80。
4)
–m limit --limit 1/second –limit-burst 3:限制每秒鐘連接數(shù)為1,峰值為3。
5)
–j ACCEPT:操作為接受。
19、FTP主動與被動模式
1.
主動模式
1)
客戶端隨機啟動一個大于1024的端口A,和FTP服務器端的命令端口21,經(jīng)過三次握手后,建立命令傳送通道。
2)
客戶端再啟動一個端口(端口號為:A+1),并通過命令傳送通道,告知服務器端。
3)
服務器端接受到端口后(A+1),就主動通過20端口和客戶端A+1端口進行三次握手連接,建立數(shù)據(jù)傳送通道。
4)
但是由于客戶端可能存在防火墻的原因,使得服務器端無法連接到客戶端的A+1端口,這就產(chǎn)生了被動連接模式了。
2.
被動模式
1)
客戶端隨機啟動一個大于1024的端口A,和FTP服務器端的端口21,經(jīng)過三次握手后,建立命令傳送通道。
2)
服務器端隨機啟動一個端口B,并通過命令傳送通道告知客戶端。
3)
客戶端接受到端口后(B),就啟動端口(A+1),和服務器端的B端口經(jīng)過三次握手連接,建立數(shù)據(jù)傳送通道
20、顯示/etc/inittab中以#開頭,且后面跟一個或多個空白字符,而后又跟了任意非空白字符的行;
grep
"^\#[[:space:]]\{1,\}.\{1,\}"/etc/inittab
1)
^:行首;\#:轉(zhuǎn)義字符;[[:space:]]\{1,\}:代表一個或多個空白字符。
2)
.\{1,\}:.:代表一定有一個任意字符。
21、顯示/etc/inittab中包含了:一個數(shù)字 即兩個冒號中間一個數(shù)字)的行;
grep "\:[0-9]\:" /etc/inittab
1)
\:轉(zhuǎn)義字符
2)
[0-9]:代表一定有0-9中的一個數(shù)字,
22、怎么把自己寫的腳本添加到服務里面,即可以使用service命令來調(diào)用
1)
編寫測試腳本test
!/bin/bash
chkconfig: - 90 10
description: just a test
echo "Hello,$1"
2)
使腳本能夠被service命令調(diào)用
[1]
mv test /etc/init.d/:將腳本放置到stand alone目錄下。
[2]
chmod +x /etc/init.d/test:對文件添加x權限,代表可執(zhí)行。
[3]
chkconfig --add test:增加所指定的系統(tǒng)服務,讓chkconfig指令得以管理它,并同時在系統(tǒng)啟動的敘述文件內(nèi)增加相關數(shù)據(jù)。
[4]
service test start
:開機系統(tǒng)服務“test”。
23、寫一個腳本,實現(xiàn)批量添加20個用戶,用戶名為user1-20,密碼為user后面跟5個隨機字符
#!/bin/bash
for i in {1..20};
do
pass=$( cat /proc/sys/kernel/random/uuid| md5sum | cut –c 1 -32):讀取uuid文件,生成一個包含5個數(shù)字或字母的隨機數(shù),${cmd}為取得命令的結(jié)果。
useradd user${i}:添加用戶user1-user20
echo $pass | passwd user${i} –stdin:給用戶設置密碼,--stdin:通過前一個管道輸出,來作為密碼輸入。
echo "user${i} <=============> $pass">> ./userlist.out:將用戶和密碼以累加的方式寫入到userlist.out文件中。
done
echo 'Sucess,passwd is in userlist.out':添加成功。
24、寫一個腳本,實現(xiàn)判斷192.168.1.0/24網(wǎng)絡里,當前在線的IP有哪些,能ping通則認為在線。
1)
方法1,使用ping命令:
#!/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.txt || echo "${ips}${i} isdown"
[1]
ping -W 1 -c 1 ${ips}${i}:向指定IP發(fā)送ICMP數(shù)據(jù)包,-W 1:等待1秒鐘;-c 1:ping一次。
[2]
&>/dev/null: &>等同2>1&:將錯誤信息和正確信息分開,輸入到/dev/null,此處只有錯誤信息,因此也可使用2>/dev/null。
[3]
&& echo "${ips}${i} is up":如果能夠ping通過,輸出IP在線的信息。
[4]
|tee -a uplog:以累加方式將在線IP記錄到文件uplog.txt。
[5]
|| echo "${ips}${i} is down":如果通過ping不通過,輸出IP不在線的信息。
done
echo " lease read uplog to know which host is online. ":在線用戶在文件uplog中。
2)方法2,使用nmap命令
nmap –sp 192.168.1.0/24:通過數(shù)據(jù)包檢測,分析局域網(wǎng)內(nèi)有幾臺主機是啟動的。
本文裝載于來吧程序員l8chengxuyuan.com |
|