shell Dグループ

4272 ワード

1、ユーザー名を入力し、パスワードを自由に設定
#!/bin/bash

#    :            ,                。          ,             ;         ,        123456      

read -p "      :" user
#  -z            ,    ,           ,   ,    2
#            ,  $?       2
if [ -z $user ];then
	echo "        "
	exit 2
fi
#  stty -echo   shell     
#  stty echo   shell     
stty -echo 
read -p "     :" pass
stty echo
pass=${pass:-123456}
useradd "$user"
echo "$pass" | passwd --stdin "$user"

 
2.ファイルまたはディレクトリが存在するかどうかを判断する
#!/bin/bash

#           
if [ $# -eq 0 ];then
	echo "       ,     "
	echo "  :$0[   ][   ]"
fi

if [ -f $1 ];then
	echo "     "
	ls -l $1
else
	echo "     "
fi

if [ -d $1 ];then
	echo "     "
	ls -ld $2
else
	echo "     "
fi

 
3、シナリオを作成し、ヒューマンマシンゲームを実現する
#!/bin/bash

#    ,      
game=(       )
num=$[RANDOM%3]
computer=${game[$num]}
#             
#              ,game[0],game[1],game[2]   3      

echo "              "
echo "1.  "
echo "2.  "
echo "3. "

read -p "   1-3:" person
case $person in
1)
    if [ $num -eq 0 ];then
	echo "  "
    elif [ $num -eq 1 ];then
	echo "  "
    else
	echo "    "
    fi;;
2)
    if [ $num -eq 0 ];then
	echo "    "
    elif [ $num -eq 1 ];then
	echo "  "
    else
	echo "  "
    fi;;
3)
    if [ $num -eq 0 ];then
	echo "  "
    elif [ $num -eq 1 ];then
	echo "    "
    else
	echo "  "
    fi;;
*)
echo "    1-3   "
esac

 
4、スクリプトループを使用して3桁のテキストファイル(111-999のファイル)を作成します.
#!/bin/bash

#                 (111-999   )
for i in {1..9}
do
	for j in {1..9}
	do
		for k in {1..9}
		do
			touch /tmp/$i$j$k.txt
		done
	done
done

 
5,linuxシステムの中でUIDが1000より大きい普通のユーザーをすべて削除します
#!/bin/bash

 linux   UID  1000        
#  awk    uid    1000       
#   for             
user=$(awk -F: '$3>=1000{print $1}' /etc/passwd)
for i in $user
do
	userdel -r $i
done

 
6、varnishソースパッケージソフトウェアの自動配置
#!/bin/bash

#     varnish     
#         varnish-3.0.6.tar.gz         ,               

yum -y install gcc readline-devel pcre-devel
useradd -s /sbin/nologin varnish
tar -xf varnish-3.0.6.tar.gz
cd varnish-3.0.6

#  configure,make,make install       
./configure --prefix=/usr/local/varnish
make && make install

#       ,           linux       
#       ,              linux  ,      cp      
#   uuidgen             

cp redhat/varnish.initrc /etc/init.d/varnish
cp redhat/varnish.sysconfig /etc/sysconfig/varnish
cp redhat/varnish_reload_vcl /usr/bin/
ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/
ln -s /usr/local/varnish/bin/* /usr/bin
mkdir /etc/varnish
cp /usr/local/varnish/etc/varnish/default.vcl /etc/varnish/
uuidgen >/etc/varnish/secret

 
7、統計/var/logはどれだけのファイルがあって、そしてこれらのファイル名を表示します
#!/bin/bash

#  /var/log      ,        
#  ls      ,        ,          1
cd /var/log
sum=0
for i in `ls -r *`
do
    if [ -f $i ];then
	let sum++
	echo "   :$i"
    fi
done
echo "      :$sum"

 
8ファイル内のすべての小文字を大文字に変換
#!/bin/bash

#                  
#$1     ,                
#    ,           ,                       

tr "[a-z]" "[A-Z]" < $1

 
9,コマンドライン送信メール
#!/bin/bash

#       
echo "    " |mailx -s Warning [email protected]

 
10,リモート実行サーバコマンドスクリプト
#!/bin/bash
#by lijunmin 2017124
#           

if [ ! -f ip.txt ];then
    echo -e "\033[32mPlease create ip.txt.The ip.txt contents as follows:\033[0m"
cat <>ip.txt.swp
IP=`awk -v I="$i" '{if(I==$1)print $2}' ip.txt.swp`
ssh -q -l root $IP "$*";echo -e "
The $IP exec command :$* success !" sleep 2 #rsync -aP --delete $1 root@${IP}:$2 done