0
点赞
收藏
分享

微信扫一扫

shell脚本一

爪哇驿站 2022-03-11 阅读 62

Shell脚本一

一、打印可以能登录的用户

# 找出能登录的用户,并将对应在/etc/shadow 中第二列密码提出处理

user=$(awk -F: '/bash$/{print $1}' /etc/passwd)

for i in $user

do       

       awk -F: -v x=$i '$1==x{print $1,$2}' /etc/shadow

done

二、统计Linux进程相关数量信息

# 统计 Linux 进程相关数量信息 
running=0
sleeping=0
stoped=0
zombie=0
#  proc 目录下所有以数字开始的都是当前计算机正在运行的进程的进程 PID
# 每个 PID 编号的目录下记录有该进程相关的信息
for pid in /proc/[1‐9]*
do  
       procs=$[procs+1]  
       stat=$(awk '{print $3}' $pid/stat)
# 每个pid 目录下都有一个 stat 文件,该文件的第 3 列是该进程的状态信息    case $stat in    
       R)    
       running=$[running+1]    
       ;;    
       T)    
       stoped=$[stoped+1]    
       ;;    
       S)    
       sleeping=$[sleeping+1]    
       ;;    
       Z)     
       zombie=$[zombie+1]     
       ;;    
       esac
done
echo "进程统计信息如下"
echo "总进程数量为:$procs"
echo "Running 进程数为:$running"
echo "Stoped 进程数为:$stoped"
echo "Sleeping 进程数为:$sleeping"
echo "Zombie 进程数为:$zombie"

三、判断用户输入的数据类型

# 判断用户输入的数据类型(字母、数字或其他)
read -p "请输入一个字符:" KEY
case "$KEY" in        
       [a-z]|[A-Z])                
              echo "字母"                
              ;;        
       [0-9])                
              echo "数字"                
              ;;        
       *)                
              echo "空格、功能键或其他控制字符"
esac

四、判断用户输入的是Yes或NO

read -p  "Are you sure?[y/n]:"  sure
case  $sure  in        
       y|Y|Yes|YES)                
              echo "您的选择是 $sure"                
              ;;    
       n|N|NO|no)                
              echo "您的选择是 $sure"                
              ;;    
       *)                
              echo "输入有误"
              ;;
esac

五、判断文件或目录是否存在

# 判断文件或目录是否存在

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

六、打印各种时间格式

# 打印各种时间格式

echo "显示星期简称(:Sun)"
date +%a
echo "显示星期全称(:Sunday)"
date +%A
echo "显示月份简称(:Jan)"
date +%b
echo "显示月份全称(:January)"
date +%B
echo "显示数字月份(:12)"
date +%m
echo "显示数字日期(:01 )"
date +%d
echo "显示数字年(:01 )"
date +%Y 
echo "显示年"
date +%F
echo "显示小时(24 小时制)"
date +%H
echo "显示分钟(00..59)"
date +%M
echo "显示秒"
date +%S
echo "显示纳秒"
date +%N
echo "组合显示"
date +"%Y%m%d %H:%M:%S"

七、阶乘

read -p "请输入你想要的阶乘" p
jiecheng=1
for ((i=1;i<=$p;i++))
do  
       jiecheng=$[jiecheng*i]
done
echo $jiecheng

八、执行开机启动脚本

#下面两个注释不能少
#chkconfig: 35 80 90
#description:开机自动启动的脚本程序
date +%Y  >> /yhj/sh/kai.log



echo "设置开机自启" >> /yhj/sh/kai.log



echo "启动完毕" >> /yhj/sh/kai.log



echo "-------------------------------------------------"  >> /yhj/sh/kai.log

将写好的lu.sh脚本移动到/etc/init.d/目录下

cp lu.sh /etc/init.d/

#添加到开机启动中



chkconfig --add lu.sh



chkconfig lu.sh on
举报

相关推荐

0 条评论