Linux--shell練習題


1、判斷/etc/inittab文件是否大於100行,如果大於,則顯示”/etc/inittab is a big file.”否者顯示”/etc/inittab is a small file.”

#!/bin/bash
#判斷/etc/inittab文件是否大於100行,如果大於,則顯示“/etc/initabb is a big file." 否則顯示”/etc/inittab is a small file."
Line=`wc -l /etc/inittab |cut -d" " -f1`
if [ $Line -gt 100 ];then
echo "/etc/initabb is a big file."
else
echo "/etc/inittab is a small file."
fi

2、給定一個用戶,來判斷這個用戶是什么用戶,如果是管理員用戶,則顯示“該用戶為管理員”,否則顯示“該用戶為普通用戶”

#!/bin/bash
#給定一個用戶,來判斷這個用戶是什么用戶,如果是管理員用戶,則顯示“該用戶為管理員”,否則顯示“該用戶為普通>用戶”
a=`whoami`
str="root"
if [ $a = $str ];then
echo "該用戶為管理員"
else
echo "該用戶為普通用戶"
fi

3、判斷某個文件是否存在

#!/bin/bash
#判斷某個文件是否存在
read -p "你要查找的文件" var
find $var &> NULL
if [ $? -eq 0 ];then
echo "這個文件存在"
else
echo "這個文件不存在"
fi

4、判斷當前系統上是否有用戶的默認shell程序是否為bash程序,如果有,就顯示有多個這類用戶,否則就顯示沒有這類用戶;【並且顯示出那些用戶是bash】

#!/bin/bash
#判斷當前系統上是否有用戶的默認shell程序是否為bash程序,如果有,就顯示有多個這類用戶,否則就顯示沒有這類用戶;>【並且顯示出那些用戶是bash】
grep "bash" /etc/passwd &> /dev/null
if [ $? -eq 0 ];then
echo "有多個這個類用戶"
else
echo "沒有這類用戶"
fi
grep "bash" /etc/passwd |cut -d":" -f1

5、寫出一個腳本程序,給定一個文件,比如:/etc/inittab a、判斷這個文件中是否有空白行? b、如果有,則顯示其空白行的行號,否則顯示沒有空白行

#!/bin/bash
#寫出一個腳本程序,給定一個文件,比如:/etc/inittab a、判斷這個文件中是否有空白行? b、如果有,則顯示其空白行的
行號,否則顯示沒有空白行
a=`grep "^$" /etc/inittab |wc -l`
if [ $a -gt 0 ];then
echo "含有空白行"
grep -n ^$ /etc/inittab
else
echo "沒有空白行"
fi

6、寫一個腳本程序,給定一個用戶,判斷其UID與GID是否一樣,如果一樣,就顯示該用戶為“good guy”,否則顯示為“bad guy”

#!/bin/bash
#寫一個腳本程序,給定一個用戶,判斷其UID與GID是否一樣,如果一樣,就顯示該用戶為“good guy”,否則顯示為“bad guy”
read -p "請輸入一個要查詢的用戶:" user
uid=`grep "$user" /etc/passwd | cut -d":" -f3`
gid=`grep "$user" /etc/passwd | cut -d":" -f4`
if [ $uid -eq $gid ];then
echo "good guy"
else
echo "bad guy"
fi

7、寫一個腳本程序,給定一個用戶,獲取其密碼警告期限7;然后判斷用戶最近一次修改密碼的時間距離今天是否已經小於警告期限;

#!/bin/bash
#寫一個腳本程序,給定一個用戶,獲取其密碼警告期限;然后判斷用戶最近一次修改密碼的時間距離今天是否已經小
於警告期限;
read -p "請輸入一個用戶:" user
W=`grep $user /etc/shadow | cut -d: -f6`
S=`date +%s`
T=`expr $S/86400`
L=`grep $user /etc/shadow | cut -d":" -f5`
N=`grep $user /etc/shadow | cut -d":" -f3`
SY=$[$L-$[$T-$N]]
if [ $SY -lt $W ];then
echo 'Warning'
else
echo 'OK'
fi

8、判斷命令歷史中歷史命令的總條目是否大於1000,如果大於,則顯示“some command will gone”,否則顯示OK

#!/bin/bash
#判斷命令歷史中歷史命令的總條目是否大於1000,如果大於,則顯示“some command will gone”,否則顯示OK
num=`history | wc -l`
if [ $num -gt 1000 ];then
echo "some command will gone"
else
echo "OK"
fi

9、給定一個文件,如果是普通文件,就顯示出來,如果是目錄文件,也顯示出來,否則就顯示“無法識別”

#!/bin/bash
#給定一個文件,如果是普通文件,就顯示出來,如果是目錄文件,也顯示出來,否則就顯示“無法識別”
read -p "請輸入一個文件:" file
if [ -f $file ];then
echo "普通文件"
elif [ -d $file ];then
echo "目錄文件"
else
echo "無法識別"
fi

10、寫一個腳本,能接受一個參數(文件路徑),判斷這個參數如果是一個存在的文件就顯示“ok”,否則顯示“No such file”

#!/bin/bash
#寫一個腳本,能接受一個參數(文件路徑),判斷這個參數如果是一個存在的文件就顯示“ok”,否則顯示“No such file”
read -p "請輸入一個路徑:" route
if [ -f $route ];then
echo "ok"
else
echo "No such file"
fi

11、寫一個腳本,給腳本傳遞兩個參數,顯示兩則之和和兩者之積

#!/bin/bash
#寫一個腳本,給腳本傳遞兩個參數,顯示兩則之和和兩者之積
read -p "請輸入第一個數:" num1
read -p "請輸入第二個數:" num2
sum=$[$num1+$num2]
product=$[$num1*$num2]
echo "$num1+$num2=$sum"
echo "$num1"x"$num2=$product"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM