1、用
sed修改
test.txt的23
行test
為tset;
sed–i 『23s/test/tset/g』 test.txt 2
、檢視/web.log第25
行第三列的內容。
sed–n 『25p』 /web.log | cut –d 「 」 –f3
head–n25 /web.log | tail –n1 | cut –d 「 」 –f3
awk–f 「 」 『nr==23』 /web.log 3
、刪除每個臨時檔案的最初三行。
sed–i 『1,3d』 /tmp/*.tmp 4
、指令碼程式設計:求
100內的質數。
#!/bin/bash
i=1while[ $i -le 100 ];do
ret=1
for(( j=2;j<$i;j++ ));do
if [ $(($i%$j))-eq 0 ];then
ret=0
break fi
done
if[ $ret -eq 1 ];then
echo-n "$i " fi
i=$((i+1 ))
done 5
、晚上11點到早上
8點之間每兩個小時檢視一次系統日期與時間,寫出具體配置命令
echo1 23,1-8/2 * * * root /tmp/walldate.sh >> /etc/crontab 6
、編寫個
shell
指令碼將當前目錄下大於
10k的檔案轉移到
/tmp
目錄下
#!/bin/bash
fileinfo=($(du./*))
length=$
for((i=0;i<$length;i=$((i+2 ))));do
if[ $ -le 10 ];then
mv $ /tmp fi
done 7
、如何將本地
80埠的請求**到
8080
埠,當前主機ip為
192.168.2.1
/sbin/iptables-t nat -a prerouting -p tcp --dport 80 -j dnat --to 192.168.2.1:8080
/sbin/iptables-t nat -a prerouting -p tcp --dport 80 -j redirect --to 8080 8
、在11月份內,每天的早上6點到
12點中,每隔
2小時執行一次
怎麼實現
、在shell
環境如何殺死乙個程序?
psaux | grep | cut -f?
得到pid
cat/proc/pid
killpid 10
、在shell
環境如何查詢乙個檔案?
find/ -name abc.txt 11
、在shell
裡如何新建乙個檔案?
touch~/newfile.txt 12
、linux
下面的sed
和awk
的編寫 1)
如何顯示文字
file.txt
中第二大列大於
56789
的行?
awk -f "," '}' file.txt 2
)顯示file.txt
的1,3,5,7,10,15行?
sed -n "1p;3p;5p;7p;10p;15p" file.txt
awk 'nr==1||nr==3||nr==5||…||nr=15' file.txt 3
)將file.txt
的製表符,即
tab,全部替換成
"|"
sed-i "s#\t#\|#g" file.txt 13
、把當前目錄(包含子目錄)下所有字尾為
「.sh」
的檔案字尾變更為
「.shell」
#!/bin/bash
str=`find./ -name \*.sh`
fori in $str do
mv$i $shell
done 14
、編寫shell
實現自動刪除
50個賬號功能,賬號名為
stud1
至stud50
#!/bin/bash
for((i=1;i<=50;i++));do
userdel stud$i
done 15
、請用iptables
寫出只允許
10.1.8.179
訪問本伺服器的
22埠。
/sbin/iptables -a input -p tcp -dport 22 -s 10.1.8.179 -j accept
/sbin/iptables -a input -p udp -dport 22 -s 10.1.8.179 -j accept
/sbin/iptables -p input -j drop 16
、在shell
中變數的賦值有四種方法,其中,採用
name=12
的方法稱(
a )。
a直接賦值b使用
read命令
c使用命令列引數
d使用命令的輸出 17
、有檔案
file1 1)
查詢file1
裡面空行的所在行號
grep -n ^$ file1 2)
查詢file1
以abc
結尾的行
grep abc$ file1 3)
列印出file1
檔案第1
到第三行
head -n3 file1
sed "3q" file1
sed -n "1,3p" file1 18
、假設有乙個指令碼
scan.sh
,裡面有
1000
行**,並在
vim模式下面,請按照如下要求寫入對應的指令 1
)將shutdown
字串全部替換成
reboot
:%s/shutdown/reboot/g 2
)清空所有字元
:%d 3
)不儲存退出 q!
19、1
到10數字相加,寫出
shell指令碼
#!/bin/bash
j=0for((i=1;i<=10;i++));do
j=$[j+i ]
done
echo $j 20
、常見shell
有哪些?預設的是哪個?
/bin/sh
/bin/bash
/bin/ash /bin/bsh /bin/csh /bin/tcsh /sbin/nologin 21
、shell
迴圈語句有哪些?
for while until 22
、用shell
模擬lvs
,指令碼怎麼寫
/sbin/iptable -t nat -a prerouting -p tcp --dport 80 -j dnat --to192.168.1.11-192.168.1.12 23
、找出系統內大於
50k,小於
100k
的檔案,並刪除它們。
#!/bin/bash
file=`find / -size +50k -size -100k`
for i in $file;do
rm -rf $i
done 24
、指令碼(如:目錄
dir1
、dir2
、dir3
下分別有
file1
、file2
、file2
,請使用指令碼將檔案改為
dir1_file1
、dir2_file2
、dir3_file3)
#!/bin/bash
file=`ls dir[123]/file[123]`
for i in $file;do
mv $i $/$_$
done 25
、將a 、
b、c目錄下的檔案a1、
a2、a3檔案,改名為
aa1、
aa2、
aa3.
使用shell
指令碼實現。
#!/bin/bash
file=`ls [abc]/a[123]`
for i in $file;do
mv $i $/a$
done
三道面試題
一 給定乙個n個整數元素的陣列,元素分別為a1,a2,a3.an,每個元素分別對應乙個權重w1 小於1的float w2,w3.wn,其和為1,找出其中乙個元素ak,使所有小於ak的元素的權重之和小於1 2,所有大於ak的元素的權重之和 1 2。思路 首先將該陣列按元素值的大小進行公升序排列,同樣的...
面試題 五道面試題五
判斷出棧順序的正確性 假設每個相同元素只出現一次 include include include include using namespace std class istruesack istruesack if str2 null public bool istrue const char pu...
25期 MySQL三道常見的面試題
mysql查詢字段區不區分大小寫?答案 不區分。如何解決需要區分英文大小寫的場景 解決方案一 mysql預設的字元檢索策略 utf8 general ci,表示不區分大小寫。可以使用utf8 general cs,表示區分大小寫,也可以使用utf8 bin,表示二進位制比較,同樣也區分大小寫 注意 ...