当前位置:首页 > 技术文章 > 正文内容

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

douba317小时前技术文章4

作为一名 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++}end{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%免费领取



相关文章

在linux上怎么查看cpu信息(linux中如何查看cpu)

在 Linux 上,可以使用多种命令查看 CPU 信息。以下是最常用的几个命令:使用 lscpu 命令: 打开终端并输入以下命令:lscpu此命令将显示有关 CPU 的详细信息,包括核心数, 文章末尾...

05、Linux查看服务的进程-没有自己的Linux服务器网页端练习

大家好,我是Bigder~今天依然是网页端学习01、Linux怎么判断当前登陆用户(网页端学习linux),登录网页端练习。1、今天练习一个指令、查看服务的进程是否存在2、使用「ps -ef |gre...

如何查看linux后台运行的进程?如何查看后台运行进程的状态?

linux系统中挂在后台的进程,如何能够被运维人员知道呢?以及挂在后台的进程当前状态是怎样的?是否可以继续执行?如何杀死一个在后台挂起的进程?后台进程可以通过‘&’符号或nohup命令,让程序进入...

linux 查看磁盘信息的常用命令(linux中查看磁盘的命令)

在Linux系统中,排查磁盘问题是一个非常重要的任务,以下是一些常用的Linux排查磁盘问题的命令:df:查看磁盘分区的使用情况,可以查看磁盘分区的总容量、已用容量、可用容量等。du:查看文件或目录的...

Linux文件管理mv命令的20个实用示例

掌握Linux文件管理:mv命令的20个实用示例详解作为Linux系统中最基础且使用频率最高的命令之一,mv命令(move的缩写)是每个Linux用户必须熟练掌握的工具。本文全面介绍mv命令的各种使用...

linux解压文件命令有哪些(linux解压命令zxvf)

.tar解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!).gz解压1:gunzip FileName.gz解...