范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

一些非常有用的shell脚本实例

  用户猜数字 #!/bin/bash     # 脚本生成一个 100 以内的随机数,提示用户猜数字,根据用户的输入,提示用户猜对了, # 猜小了或猜大了,直至用户猜对脚本结束。   # RANDOM 为系统自带的系统变量,值为 0‐32767的随机数 # 使用取余算法将随机数变为 1‐100 的随机数 num=$[RANDOM%100+1] echo "$num"   # 使用 read 提示用户猜数字 # 使用 if 判断用户猜数字的大小关系:‐eq(等于),‐ne(不等于),‐gt(大于),‐ge(大于等于), # ‐lt(小于),‐le(小于等于) while : do   read -p "计算机生成了一个 1‐100 的随机数,你猜: " cai     if [ $cai -eq $num ]     then         echo "恭喜,猜对了"         exit      elif [ $cai -gt $num ]      then             echo "Oops,猜大了"        else             echo "Oops,猜小了"   fi done查看有多少远程的 IP 在连接本机 #!/bin/bash   #!/bin/bash # 查看有多少远程的 IP 在连接本机(不管是通过 ssh 还是 web 还是 ftp 都统计)    # 使用 netstat ‐atn 可以查看本机所有连接的状态,‐a 查看所有, # -t仅显示 tcp 连接的信息,‐n 数字格式显示 # Local Address(第四列是本机的 IP 和端口信息) # Foreign Address(第五列是远程主机的 IP 和端口信息) # 使用 awk 命令仅显示第 5 列数据,再显示第 1 列 IP 地址的信息 # sort 可以按数字大小排序,最后使用 uniq 将多余重复的删除,并统计重复的次数 netstat -atn  |  awk  "{print $5}"  | awk  "{print $1}" | sort -nr  |  uniq -chell oworld #!/bin/bash   function example { echo "Hello world!" } example打印 tomcat 的 pid #!/bin/sh`   v1="Hello" v2="world" v3=${v1}${v2} echo $v3   pidlist=`ps -ef|grep apache-tomcat-7.0.75|grep -v "grep"|awk "{print $2}"` echo $pidlist echo "tomcat Id list :$pidlist"  //显示pid脚本编写剪刀、石头、布游戏 #!/bin/bash   game=(石头 剪刀 布) num=$[RANDOM%3] computer=${game[$sum]}     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  九九乘法表 #!/bin/bash   for i in `seq 9` do   for j in `seq $i`  do   echo -n "$j*$i=$[i*j] "  done     echo done脚本用源码来安装 memcached 服务器 #!/bin/bash # 一键部署 memcached    # 脚本用源码来安装 memcached 服务器 # 注意:如果软件的下载链接过期了,请更新 memcached 的下载链接 wget http://www.memcached.org/files/memcached-1.5.1.tar.gz yum -y install gcc tar -xf  memcached‐1.5.1.tar.gz cd memcached‐1.5.1 ./configure make make install检测本机当前用户是否为超级管理员 #!/bin/bash   # 检测本机当前用户是否为超级管理员,如果是管理员,则使用 yum 安装 vsftpd,如果不 # 是,则提示您非管理员(使用字串对比版本)  if [ $USER == "root" ]  then   yum -y install vsftpd else   echo "您不是管理员,没有权限安装软件" fiif 运算表达式 #!/bin/bash -xv   if [ $1 -eq 2 ] ;then  echo "wo ai wenmin" elif [ $1 -eq 3 ] ;then   echo "wo ai wenxing " elif [ $1 -eq 4 ] ;then   echo "wo de xin " elif [ $1 -eq 5 ] ;then  echo "wo de ai " fi脚本 杀掉 tomcat 进程并重新启动 #!/bin/bash   #kill tomcat pid   pidlist=`ps -ef|grep apache-tomcat-7.0.75|grep -v "grep"|awk "{print $2}"`  #找到tomcat的PID号   echo "tomcat Id list :$pidlist"  //显示pid   kill -9 $pidlist  #杀掉改进程   echo "KILL $pidlist:" //提示进程以及被杀掉   echo "service stop success"   echo "start tomcat"   cd /opt/apache-tomcat-7.0.75   pwd    rm -rf work/*   cd bin   ./startup.sh #;tail -f ../logs/catalina.out打印国际象棋棋盘 #!/bin/bash # 打印国际象棋棋盘 # 设置两个变量,i 和 j,一个代表行,一个代表列,国际象棋为 8*8 棋盘 # i=1 是代表准备打印第一行棋盘,第 1 行棋盘有灰色和蓝色间隔输出,总共为 8 列 # i=1,j=1 代表第 1 行的第 1 列;i=2,j=3 代表第 2 行的第 3 列 # 棋盘的规律是 i+j 如果是偶数,就打印蓝色色块,如果是奇数就打印灰色色块 # 使用 echo ‐ne 打印色块,并且打印完成色块后不自动换行,在同一行继续输出其他色块 for i in {1..8} do    for j in {1..8}    do     sum=$[i+j]   if [  $[sum%2] -eq 0 ];then     echo -ne "33[46m  33[0m"   else    echo -ne "33[47m  33[0m"   fi    done    echo done统计当前 Linux 系统中可以登录计算机的账户有多少个 #!/bin/bash   # 统计当前 Linux 系统中可以登录计算机的账户有多少个 #方法 1: grep "bash#34; /etc/passwd | wc -l #方法 2: awk -f : "/bash$/{x++}end{print x}" /etc/passwd备份mysql表数据 #!/bin/sh   source /etc/profile dbName=mysql tableName=db echo [`date +"%Y-%m-%d %H:%M:%S"`]" start loading data..." mysql -uroot -proot -P3306 ${dbName} -e "LOAD DATA LOCAL INFILE "# /home/wenmin/wenxing.txt" INTO TABLE ${tableName} FIELDS TERMINATED BY ";"" echo [`date +"%Y-%m-%d %H:%M:%S"`]" end loading data..." exit EOF使用死循环实时显示 eth0 网卡发送的数据包流量 #!/bin/bash   # 使用死循环实时显示 eth0 网卡发送的数据包流量    while : do   echo "本地网卡 ens33 流量信息如下: "  ifconfig ens33 | grep "RX pack" | awk "{print $5}"      ifconfig ens33 | grep "TX pack" | awk "{print $5}"  sleep 1 done编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机 #!/bin/bash   # 编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机 # 状态(for 版本) for i in {1..254} do   # 每隔0.3秒ping一次,一共ping2次,并以1毫秒为单位设置ping的超时时间  ping -c 2 -i 0.3 -W 1 192.168.1.$i &>/dev/null      if [ $? -eq 0 ];then  echo "192.168.1.$i is up"  else   echo "192.168.1.$i is down"  fi done编写脚本:提示用户输入用户名和密码,脚本自动创建相应的账户及配置密码。如果用户 #!/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"使用脚本对输入的三个整数进行排序 #!/bin/bash   # 依次提示用户输入 3 个整数,脚本根据数字大小依次排序输出 3 个数字 read -p " 请输入一个整数: " num1 read -p " 请输入一个整数: " num2 read -p " 请输入一个整数:  " num3   # 不管谁大谁小,最后都打印 echo "$num1,$num2,$num3" # num1 中永远存最小的值,num2 中永远存中间值,num3 永远存最大值 # 如果输入的不是这样的顺序,则改变数的存储顺序,如:可以将 num1 和 num2 的值对调 tmp=0 # 如果 num1 大于 num2,就把 num1 和和 num2 的值对调,确保 num1 变量中存的是最小值 if [ $num1 -gt $num2 ];then  tmp=$num1  num1=$num2  num2=tmp fi # 如果 num1 大于 num3,就把 num1 和 num3 对调,确保 num1 变量中存的是最小值 if [ $num1 -gt $num3 ];then  tmp=$num1  num1=$num3  num3=$tmp fi # 如果 num2 大于 num3,就把 num2 和 num3 对调,确保 num2 变量中存的是最小值 if [ $num2 -gt $num3 ];then  tmp=$num2  num2=$num3  num3=$tmp fi echo "排序后数据(从小到大)为:$num1,$num2,$num3"根据计算机当前时间,返回问候语,可以将该脚本设置为开机启动 #!/bin/bash # 根据计算机当前时间,返回问候语,可以将该脚本设置为开机启动    # 00‐12 点为早晨,12‐18 点为下午,18‐24 点为晚上 # 使用 date 命令获取时间后,if 判断时间的区间,确定问候语内容 tm=$(date +%H) if [ $tm -le 12 ];then  msg="Good Morning $USER" elif [ $tm -gt 12 -a $tm -le 18 ];then    msg="Good Afternoon $USER" else    msg="Good Night $USER" fi echo "当前时间是:$(date +"%Y‐%m‐%d %H:%M:%S")" echo -e "33[34m$msg33[0m" 将 I lov cls 写入到 txt 文件中 #!/bin/bash   cd /home/wenmin/ touch wenxing.txt echo "I lov cls" >>wenxing.txt脚本编写 for 循环判断 #!/bin/bash   s=0; for((i=1;i<100;i++)) do   s=$[$s+$i] done    echo $s   r=0; a=0; b=0; for((x=1;x<9;x++)) do   a=$[$a+$x]  echo $x done for((y=1;y<9;y++)) do   b=$[$b+$y] echo $y   done   echo $r=$[$a+$b]脚本编写 for 循环判断 #!/bin/bash   for i in "$*" do   echo "wenmin xihuan $i" done   for j in "$@" do   echo "wenmin xihuan $j" done脚本 每周 5 使用 tar 命令备份/var/log 下的所有日志文件 #!/bin/bash # 每周 5 使用 tar 命令备份/var/log 下的所有日志文件 # vim  /root/logbak.sh # 编写备份脚本,备份后的文件名包含日期标签,防止后面的备份将前面的备份数据覆盖 # 注意 date 命令需要使用反引号括起来,反引号在键盘键上面   tar -czf log-`date +%Y%m%d`.tar.gz /var/log    # crontab -e #编写计划任务,执行备份脚本 00 03 * * 5 /home/wenmin/datas/logbak.sh脚本编写 求和 函数运算 function xx() #!/bin/bash   function sum() {  s=0;  s=$[$1+$2]  echo $s } read -p "input your parameter " p1 read -p "input your parameter " p2   sum $p1 $p2     function multi() {  r=0;  r=$[$1/$2]  echo $r } read -p "input your parameter " x1 read -p "input your parameter " x2   multi $x1 $x2   v1=1 v2=2 let v3=$v1+$v2 echo $v3脚本编写 case -- esac 分支结构表达式 #!/bin/bash    case $1 in  1)   echo "wenmin " ;; 2)  echo "wenxing " ;;  3)    echo "wemchang " ;; 4)   echo "yijun" ;; 5)  echo "sinian" ;; 6)    echo "sikeng" ;; 7)   echo "yanna" ;; *)  echo "danlian" ;;  esac定义要监控的页面地址,对 tomcat 状态进行重启或维护 #!/bin/sh   # function:自动监控tomcat进程,挂了就执行重启操作   # author:huanghong   # DEFINE          # 获取tomcat PPID   TomcatID=$(ps -ef |grep tomcat |grep -w "apache-tomcat-7.0.75"|grep -v "grep"|awk "{print $2}")          # tomcat_startup   StartTomcat=/opt/apache-tomcat-7.0.75/bin/startup.sh                 #TomcatCache=/usr/apache-tomcat-5.5.23/work          # 定义要监控的页面地址   WebUrl=http://192.168.254.118:8080/        # 日志输出   GetPageInfo=/dev/null   TomcatMonitorLog=/tmp/TomcatMonitor.log          Monitor()     {      echo "[info]开始监控tomcat...[$(date +"%F %H:%M:%S")]"      if [ $TomcatID ]  then         echo "[info]tomcat进程ID为:$TomcatID."         # 获取返回状态码         TomcatServiceCode=$(curl -s -o $GetPageInfo -m 10 --connect-timeout 10 $WebUrl -w %{http_code})         if [ $TomcatServiceCode -eq 200 ];then             echo "[info]返回码为$TomcatServiceCode,tomcat启动成功,页面正常."         else             echo "[error]访问出错,状态码为$TomcatServiceCode,错误日志已输出到$GetPageInfo"             echo "[error]开始重启tomcat"             kill -9 $TomcatID  # 杀掉原tomcat进程             sleep 3             #rm -rf $TomcatCache # 清理tomcat缓存             $StartTomcat         fi         else         echo "[error]进程不存在!tomcat自动重启..."         echo "[info]$StartTomcat,请稍候......"         #rm -rf $TomcatCache         $StartTomcat       fi       echo "------------------------------"      }      Monitor>>$TomcatMonitorLog   通过位置变量创建Linux 系统账户及密码 #!/bin/bash   # 通过位置变量创建Linux 系统账户及密码   # $1 是执行脚本的第一个参数,$2  是执行脚本的第二个参数   useradd "$1" echo "$2" | passwd --stdin "$1" 对变量的传入与获取个数及打印 #!/bin/bash echo "$0 $1 $2 $3"  // 传入三个参数 echo $#    //获取传入参数的数量 echo $@    //打印获取传入参数 echo $*    //打印获取传入参数 实时监控本机内存和硬盘剩余空间,剩余内存小于 500M、根分区剩余空间小于 1000M 时,发送报警邮件给 root 管理员 #!/bin/bash   # 实时监控本机内存和硬盘剩余空间,剩余内存小于500M、根分区剩余空间小于1000M时,发送报警邮件给root管理员   # 提取根分区剩余空间 disk_size=$(df / | awk "///{print $4}")   # 提取内存剩余空空间 mem_size=$(free | awk "/Mem/{print $4}") while : do  # 注意内存和磁盘提取的空间大小都是以 Kb 为单位 if  [  $disk_size -le 512000 -a $mem_size -le 1024000  ] then     mail  ‐s  "Warning"  root  <
女子指导网约车司机,遇事故导致误机,千元改签费谁承担?哈哈,我朋友还真的碰到过,当然乘客自己承担最后恶果,最可恨的是乘客还投诉司机绕路导致误机!滴滴竟然还不调查,直接判司机绕路!我朋友只能把行车记录仪聊天记录截取,把送机过程中,改变行在M1Mac上安装Windows11Windows11正式版发布了。使用M1芯片Mac的小伙伴如果想尝鲜Windows11,需要在Mac上通过虚拟机软件安装Windows11ARM版。首先准备两个东西。虚拟机软件Pa2022考研管综写作热点素材积累话题四智能交通无人驾驶出租车在北京开放试乘,懂得识别红灯的公交车在长沙试运营,多地发布支持智能网联汽车发展的政策一段时间以来,各地各行业推动交通智能化的动作不断。智能化是建设交通强国的重要内容,像Linux一样安装软件(2)包管理器一锅炖什么是包管理器?简单来说,包管理器packagemanager是一种工具,它允许用户在操作系统上安装删除升级配置和管理软件包。软件包管理器可以是像软件中心这样的图形化应用,也可以是微软收购生产力工具创企Ally。io将引入Microsoft云中财经网科技10月8日讯,据新浪科技消息,微软宣布收购了Ally。io,这是一家开发仪表板和可定制工具的初创公司,可以帮助员工了解他们是否实现了目标。据透露,Ally。io的仪表板和加量不加价,新款ModelY长续航版续航突破600km,又在割韭菜?今年年初,借着Model3的势头,特斯拉推出了基于Model3所打造的纯电中型SUV国产版特斯拉ModelY,因为负面新闻和不断涌出实力强劲的同级竞品,并没有复制此前Model3的在后台反复读取用户相册?微信回应最新版本将取消10月8日,针对微信在后台反复读取用户相册一事,微信方面回应新浪科技称,iOS系统为App开发者提供相册更新通知标准能力,相册发生内容更新时会通知到App,提醒App可以提前做准备百元良品,静享乐声,魅蓝Blus主动降噪耳机体验作为一名老魅友,终于等来了魅蓝品牌的回归。魅蓝Blus主动降噪耳机作为魅蓝回归后发布的首款产品,处处充满惊喜,价格不足200元,而且还有主动降噪技术的加持,可谓百元良品,让很多小伙当内卷延伸到消费级锐可余音SG01试玩手记feat。SG03春风不度玉门关,又见才子伴乐谈。写下这段文字的时候,十一长假刚刚过去,斜靠在躺椅上,耳边响起的正是今天的主角,锐可余音SG01,离手边不远的地方还有一条它的大哥SG03。对这两款产广电总局十四五时期推进5G高新视频产业化北京商报讯(记者郑蕊)10月8日,国家广播电视总局官网正式发布广播电视和网络视听十四五发展规划(以下简称发展规划),并提出要实现5G高新视频产业化的推进。发展规划指出,要推进建设互欧盟要统一充电接口为USBC,苹果急了这是在扼杀创新兴坤发自凹非寺量子位报道公众号QbitAI你有苹果充电线吗?我用的是安卓。充电器不一样,实在是不方便。现在,欧洲要实现充电接口的统一了。欧盟一项最新提案要求电子行业统一使用USBC
国产厂商集体沉默后,华为上线新版系统,倪光南的话该重视了开天辟地之鸿蒙自2019年鸿蒙生态系统面世以来,关于鸿蒙的话题就一直没有断过,很多人对鸿蒙都抱有很高的期望,还有一些人对鸿蒙也持有怀疑的态度。不少人说鸿蒙生态系统是安卓套牌的系统,新版微信来了!终于更新了实用功能,建议升级使用微信更新8。0。16正式版,这次是安卓和IOS同步升级新版本。本次更新主要集中在功能的更新,看起来都很实用。接下来就给大家盘一盘,微信更新的5个大功能。其中有4个新增的功能在微信的华为Mate50Pro曝光鸿蒙3。0双环五摄,或将支持5G尽管华为受到了芯片限制,但华为依旧没有放弃发布新品手机,由于芯片的限制,华为发布的手机均不支持5G网络,比如华为P50系列Nova9系列等等。而近日网络中爆料出华为Mate50Pr大咖双城计伏羲智库建议成渝地区从数字经济一线城市的溢出效应中分蛋糕来源四川日报川观新闻智库名片伏羲智库是由中国互联网络信息中心(CNNIC)原主任李晓东教授倡议并牵头,联合产业界及学术界知名青年专家共同发起成立的非营利性互联网特色研究机构,旨在推她适合做华为小米OPPO魅族VIVO的哪款机型代言人?建议阅读3分钟手机现在基本上是人手一台,不知道大家喜欢哪个品牌的手机呢?或者您现在用的是哪个品牌的手机呢?今天麒麟艺术馆联合99穿耐克(鞋子性价比真的高)和丝家车栏目,舒芙内腰椎仪补习班停了,家长卷向兴趣班深燃(shenrancaijing)原创作者宛其黎明李秋涵邹帅唐亚华王敏编辑黎明过去一个月,双减(关于进一步减轻义务教育阶段学生作业负担和校外培训负担的意见)正式官宣落地后,整个校没有对比就没有伤害!同样遇到手机质量问题,小米比苹果良心多了由于每个人的需求不同,所以购买手机时看中的地方也是不相同的,但大多数情况下共有以下几点,分别是配置外观品牌和售后服务。说到售后服务,在手机上涉及的就比较多了,这包括了系统更新适配优2021年最佳智能手机评级当今可购买的顶级智能手机智能手机是现代世界的核心,它不仅是通讯的必需品,还是您的娱乐智能家居控制设备和您永远的伴侣。我们不断更新我们最好的智能手机指南,以反映最近的发布并识别价格变化。所有这些顶级旗舰手机宁德时代点赞转发!马斯克确认美版Model3换装磷酸铁锂电池日前,有美国网友在社交媒体上表示,近期收到特斯拉的邮件显示,新款Model3标准续航版的续航里程发生变化,从此前的263英里降低为253英里。马斯克随后证实,新版Model3采用的AI时代的来临,TWS翻译机到底是鸡肋还是必买品?如果说这几年最火的无线蓝牙产品是什么?那一定是真无线蓝牙耳机(TWS蓝牙耳机)。这耳机火到什么程度呢?毫不夸张地说出门在外,随处可见,每个人的耳朵处都戴着耳机。真的是应了那一句话耳小米新概念机曝光5000mAh大电池144Hz屏,还有12GB运存Tech分析狮8月28日消息,众所周知,现在很多旗舰手机都采用了矩阵式后置布局,或者采用浴霸造型设计。而这次曝光的小米新旗舰概念机,则回归了左上角竖形五摄设计。当然,虽然说该机回归