249个Linux Shell脚本经典案例,拿来即用(附PDF)

网站UI设计

  作为一名 Linux 运维工程师,会写好的脚本不仅能提高工作效率,还能有更多的时间做自己的事。最近在网上冲浪的时候,发现大家对Shell脚本都有“心结”,要么觉得自己写出来不好看,要么根本无从下手。

  下面分享249个真实Shell脚本案例,多看、多练、多学,相信你一定能写出满意的脚本。

  除此之外,还准备了一些Shell脚本的编写规范、入门手册、编写指南等资源,今天一并分享给大家。

  由于脚本案例太多,在此仅展示部分,完整版领取方式请见文末

  249个拿来即用的shell脚本!

  这249个Shell脚本共147页,目录清楚,一键搜索定位,代码清晰可复制,电子版可以随时拿来练习提升,是学习、提升、面试必备精品。

  1、通过位置变量创建Linux系统账户及密码

  #!/bin/bash

  # 通过位置变量创建 Linux 系统账户及密码

  #$1 是执行脚本的第一个参数,$2 是执行脚本的第二个参数

  useradd "$1"

  echo "$2"

   passwd ‐‐stdin "$1"

  2、备份日志

  #!/bin/bash

  # 每周 5 使用 tar 命令备份/var/log 下的所有日志文件

  # vim /root/logbak.sh

  # 编写备份脚本,备份后的文件名包含日期标签,防止后面的备份将前面的备份数据覆盖

  # 注意 date 命令需要使用反引号括起来,反引号在键盘<tab>键上面

  tar -czf log-`date +%Y%m%d`.tar.gz /var/log

  # crontab ‐e #编写计划任务,执行备份脚本

  00 03 * * 5 /root/logbak.sh

  3、输入三个数并进行升序排序

  #!/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"

  4、点名器脚本

  #!/bin/bash

  # 编写一个点名器脚本

  # 该脚本,需要提前准备一个 user.txt 文件

  # 该文件中需要包含所有姓名的信息,一行一个姓名,脚本每次随机显示一个姓名

  while :

  do

  #统计 user 文件中有多少用户

  line=`cat user.txt

  wc ‐l`

  num=$[RANDOM%line+1]

  sed -n "${num}p" user.txt

  sleep 0.2

  clear

  done

  5、对100以内的所有正整数相加求和(1+2+3.....+100)

  #!/bin/bash

  # 对 100 以内的所有正整数相加求和(1+2+3+4...+100)

  #seq 100 可以快速自动生成 100 个整数

  sum=0

  for i in `seq 100`

  do

  sum=$[sum+i]

  done

  echo "总和是:$sum"

  6、统计当前Linux系统中可以登录计算机的账户有多少个

  #!/bin/bash

  # 统计当前 Linux 系统中可以登录计算机的账户有多少个

  #方法 1:

  grep "bash$" /etc/passwd

   wc -l

  #方法 2:

  awk -f: /bash$/{x++}{print x} /etc/passwd

  8、打印各种格式的时间

  #!/bin/bash

  # 打印各种时间格式

  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"

  上下滚动查看更多,仅展示部分内容

  Shell脚本是自动化运维的关键组成部分,虽然简简单单几十行代码,但可是蕴藏着巨大的能量和智慧,还是很值得运维朋友学习的。

  所有资料已经打包好了,想要提升的同学请务必拿走学习!

  资料整理自网络,仅作免费交流分享,侵删

  领取方式如下:

  备注【249个shell脚本】

  即可100%免费领取

标签: 网站UI设计