shell基礎練習題的總結

2021-10-07 05:46:31 字數 3976 閱讀 7214

1、 統計/var/log下檔案的個數。

在#!/bin/bash

dir=/

var/log

count=0

for i in $/*

doif

[-e $i

] then

count=`expr $count

+ 1`

fidone

echo

$count

2、如何將f1.txt檔案的執行結果輸出到f2.txt裡?

#!/bin/bash

echo

''start

copy file ..''

find .

/-name "f1.txt"

|cat > f2.txt

echo

"done !"

#!/bin/bash

ip=1

while

[$ip

-le 255 ];do

ping -c 3 192.168.1.

$ip &>/dev/null

signal=$?if[

$signal

-eq 0 ]

then

echo

-e "192.168.1.$ip 可以ping通"

else

echo

-e "192.168.1.$ip 不能ping通"

filet ip=$ip

+1done

4、根據以下資訊:

ip_address mac_address inte***ce static

10.66.10.250 80:71:7a:33:ca:a7 br on

10.66.10.249 5c:50:15:7f:3b:f5 br on

將以上檔名稱test.txt檔案中ip_address,mac_address, inte***ce三項下的內容取出來,值以「:」分割,並呈格式顯示出來。注:10.66.10.250:80:71:7a:33:ca:a7:br

5、在shell中變數的賦值有四種方法,其中採用name=oupeng.com的方法稱"直接賦值

使用read命令

使用命令列傳參

使用命令輸出

6、編寫乙個指令碼,5分鐘檢查一次日誌,發現有暴力ssh破解現象的,提取此類ip位址,並去重,並按降序排序。要求:同乙個ip暴力破解超過10次,自動遮蔽ip位址,指定辦公室ip(192.168.100.100)為可信任ip位址,不受遮蔽規則限制,以下為日誌格式:

日誌樣式:

may 4 03:43:07 tz-monitor sshd: failed password for root from 124.232.135.84 port 25251 ssh2

myy 4 03:43:07 tz-monitor sshd: invalid user postgres from 124.232.135.84

#!/bin/bash

awk '/failed password/end}'

/var

/log/secure > /tmp/count_ip.txt

while read line

do ip=$(

echo

$line

|awk '')if

["$ip"

!= "192.168.100.100"

];then

if! grep -w $ip

/tmp/drop_ip.txt &> /dev/null;then

iptables -i input -s $ip

-j drop

echo

$ip >> /tmp/drop_ip.txt

fifi

done < /tmp/count_ip.txt

7、檢查ip位址合規,請用shell編寫**,列出不以199或200開頭的ip位址,如199.x.x.x 或200.x.x.x

inte***ce physical protocol ip adderss

eth1/0/1 up up 199.11.250.1

eth1/0/2 up up 200.11.250.5

loop0 up up(s) 199.11.250.1

vlan1 *down down unassigned

vlan500 down down 139.100.1.157

vlan900 up up 140.11.250.41

#!/bin/bash

while read line

do isnum=$(

echo

$line

| awk -f "[ .]+"'')

if[[$isnum =~ ^[0-9]

+$ ]

];then

if[$isnum

-ne 199 ] && [

$isnum

-ne 200 ]

;then

echo

$line

| awk ''

fifi

done < /tmp/config.txt

8、處理以下檔案內容,將網域名稱提取並進行計數排序,如處理:得到如下結果:

網域名稱的出現次數 網域名稱

9、在單台伺服器linux作業系統環境下,寫一行命令,將所有該機器的所有以「.log.bak「為字尾的檔案,打包壓縮並上傳到ftp上,ftp位址為123.234.25.130的/home/bak資料夾

cd /

find -

type f -name "*.log.bak"

|xargs tar zcf /tmp/all.tar.gz

ftp -i -n <.234.25.130>

user username_*** password_***

binpassive

hash

cd /home/bak

lcd /tmp

put all.tar.gz

quit

ftpit

10、linux指令碼:現在要刪除本機中若干檔案,/root/file.list中記錄了這些檔案的絕對路徑,請用指令碼實現。/root/file.list內容範例:/tmp/1.file

#!/bin/bash

while read line

dorm

$line

-fdone < /root/file.list

基礎總結 練習題

程式開始根據輸 內容判斷列印 師資訊還是學 資訊 定義 個年級類,來返回年級,定義 個班級類返回班級,定義 個 師類繼承年級和班級 類,在 師類中定義 個run 法,在調 時可以列印出 師所在的年級,班級,學科,姓名信 息,定義 個學 類繼承年級和班級類,在該類中定義 個run 法 來列印學 的姓名...

shell指令碼基礎練習題

1.設計乙個 shell 程式,新增乙個新組為 class1,然後新增屬於這個組的 30 個使用者,使用者名稱的形式為stuxx,其中 xx 從 01 到 30。在 tmp目錄下新建乙個shell指令碼std.sh root localhost tmp vim std.sh bin bash 新增乙...

練習題 基礎練習

第一題 需求 1 計算 5 個月的生活大概開銷 spending 比如 rent 房租 800.00 mealcost 吃飯 900.00 clothingcosts 買衣服 300.00 othercosts 其他費用 300.00 public class dome1 第二題 需求 2 計算 1...