Shell脚本编程100例:从入门到实战的保姆级教程

shell脚本保姆级教程,附赠100个shell脚本案例! 无论是系统运维,还是应用运维,均可分为“**纯手工”—> “脚本化”—> “自动化”—>“智能化”**几个阶段,其中自动化阶段,主要是将一些重复性人工操作和运维经验封装为程序或脚本,一方面避免重复性操作及风险,另一方面提高执行效率。 在自动化运维的转变过程中,经常使用的可能就是shell脚本了。 很多人认为shell脚本简单,但其实Shell的小脚本却有大智慧。别小看几十行代码,它夹杂着系统设计、代码规范和操作经验等等细节,在建设自动化运维的工作中,还是很值得我们研究学习的。 为了帮助大. 阅读详情

一、为什么要学Shell脚本?(真香警告!)

各位老铁们(抱拳),今天咱们来聊聊这个看似老古董实则真香的技能——Shell脚本编程!你可能要问:现在都是Python/Go的天下了,学这玩意有啥用?

给你三个无法拒绝的理由:

  1. 服务器必备技能:99%的Linux服务器都预装了Bash(别杠,杠就是你对)
  2. 效率神器:30行脚本能搞定半天的手工操作(亲测有效!)
  3. 系统管理根基:看不懂脚本?怎么排查服务启动失败?

(偷偷告诉你)去年我用脚本自动处理日志,硬是把团队的工作效率提升了300%!!!老板看我的眼神都变慈祥了~

二、新手必看的10个入门案例

1. 文件批量重命名(新手村任务)

#!/bin/bash
# 给所有.txt文件加上日期后缀
for file in *.txt
do
    mv "$file" "${file%.txt}_$(date +%Y%m%d).txt"
done

(敲黑板)${file%.txt}这个参数扩展语法记下来!后面要考!!

2. 服务监控脚本(实用度MAX)

#!/bin/bash
if ! systemctl is-active --quiet nginx; then
    echo "警告!Nginx服务挂了!" | mail -s "服务异常" admin@example.com
    systemctl restart nginx
fi

配上crontab定时任务,直接变身运维小能手~

3. 自动备份脚本(打工人必备)

#!/bin/bash
backup_dir="/backup/$(date +%Y%m%d)"
mkdir -p $backup_dir
tar -czf "${backup_dir}/www_backup.tar.gz" /var/www/html
find /backup -type d -mtime +7 | xargs rm -rf 

这个find命令的用法绝了!自动删除7天前的备份,磁盘空间再也不爆炸!

(未完,后面还有7个案例…)

三、中级玩家进阶的30个实战技巧

1. 参数处理黑魔法

while [[ "$#" -gt 0 ]]; do
    case $1 in
        -u|--user) user="$2"; shift ;;
        -p|--port) port="$2"; shift ;;
        *) echo "未知参数: $1"; exit 1 ;;
    esac
    shift
done

看到这个case语句没?命令行参数处理瞬间高大上!

2. 防手抖确认机制

read -p "确定要删除所有日志吗?(y/n)" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
    rm -rf /var/log/app/*.log
fi

加上这个,再也不怕误删文件被同事追杀!

3. 彩色输出装X技巧

RED='\033[0;31m'
NC='\033[0m' # No Color
echo -e "${RED}错误:文件不存在!${NC}"

终端瞬间变赛博朋克!运维日志也能玩出花~

(此处省略27个劲爆案例…)

四、高手专属的20个骚操作

1. 网络诊断一条龙

#!/bin/bash
ping -c1 google.com || \
curl -I https://google.com || \
traceroute google.com || \
echo "网络已断,告辞!"

这个||链式操作我给满分!层层递进的排查逻辑绝了!

2. 进程守护脚本

#!/bin/bash
until /usr/local/bin/my_service; do
    echo "服务崩溃于 $(date)" >> /var/log/crash.log
    sleep 10
done

这个until循环比while更合适!服务崩溃自动重启,稳如老狗~

3. 自动化压测神器

#!/bin/bash
for i in {1..100}
do
    ab -n 1000 -c 100 http://localhost/ >> results.log &
done
wait
echo "测试完成!开始分析..."

配合后台执行和wait命令,轻松实现并发压测!

(更多骚操作等你来解锁…)

五、避坑指南(血泪教训总结)

  1. 空格是魔鬼:if [ $a == $b ]会报错,正确是if [ "$a" == "$b" ]
  2. 路径含空格:永远用双引号包裹变量!rm -rf "$file"
  3. 权限陷阱:脚本开头不加#!/bin/bash?小心不同Shell解释差异!
  4. 中文编码:在脚本开头加export LANG=en_US.UTF-8保平安
  5. 超时控制:重要操作务必加timeout 30s your_command

(亲身经历)曾经有个脚本因为没处理空格,把整个/home目录删了…说多都是泪啊!!!

六、资源推荐(私藏干货)

  1. 在线练习场:https://www.shellcheck.net/(实时语法检查神器)
  2. 圣经级教材:《Linux命令行与Shell脚本编程大全》
  3. 进阶宝典:Bash官方文档(man bash看一天)
  4. GitHub宝藏:awesome-shell仓库(各种神仙脚本合集)

最后送大家一句话:脚本不是写出来的,是调试出来的!遇到报错别慌,set -x打开调试模式,逐行排查准没错~

(下课!)快去终端里试试今天学的技巧吧!记得做好备份再操作哦~

Shell脚本编程30分钟入门学习 Shell脚本编程30分钟入门学习转载 阅读详情

相关推荐

Shell脚本编程实战:从入门到精通(100个经典案例剖析)

(文末彩蛋)需要完整100案例代码包的,评论区留言"我要上车"!不过说真的,最好的学习方式是把这些案例自己重写一遍,调通的过程比看100遍都有用!后来才发现,原来这行被称为"shebang"的声明语句,是脚本的命门所在(超级重要)!后面的分号必须转义!我第一次写的时候漏了反斜杠,结果把整个目录都删了…(别问我是怎么知道的)(危险操作警告)虽然方便,但明文存储密码是大忌!这个语法是删除变量末尾匹配模式的部分,简直是字符串处理的神器!来捕获错误输出,否则打包失败你都不知道怎么回事!看到这里的都是真爱!

pixelpilot1的博客 1429

Shell脚本编程100例实战:从入门到精通(保姆级教程)

总是使用绝对路径(避免脚本在不同目录执行出错)Shell脚本就像瑞士军刀,看起来简单但能解决各种实际问题。多写多练(光看教程是学不会的)善用调试技巧(set -x是你的好朋友)注意安全(特别是处理rm命令时)保持代码可读性(你三个月后还要看得懂)(最后的忠告:永远不要在生产环境直接运行未经测试的脚本!!!

systemseer的博客 2494

linux shell 脚本 入门到实战详解[⭐建议收藏!!⭐]

文章目录shell 入门到实战详解[⭐建议收藏!!⭐]关于作者**作者介绍**一、shell 入门简介1.1 什么是shell1.2 shell 编程注意事项1.3 第一个shell 脚本 hello world二、shell 环境变量讲解2.1 shell 变量详解2.2 shell 系统变量 介绍2.3 shell 环境变量 介绍2.3.1 常见的系统环境变量2.4 shell 用户环境变量 介绍2.4.1 自定义shell环境变量2.4.2 echo 打印菜单栏2.4.3 shell 中彩色输出 h

心有鸿鹄天地,不敢妄坠人间 33万+

shell编程100例

1、编写hello world脚本 2、通过位置变量创建 Linux 系统账户及密码 3、备份日志 4、一键部署 LNMP(RPM 包版本) 5、监控内存和磁盘容量,小于给定值时报警 6、猜数字游戏 7、检测本机当前用户是否为超级管理员,如果是管理员,则使用 yum 安装 vsftpd,如果不是,则提示您非管理员(使用字串对比版本) 8、检测本机当前用户是否为超级管理员,如果是管理员,则使用 yum 安装 vsftpd,如果不是,则提示您非管理员(使用 UID 数字对比版本)

Admans的专栏 2万+

shell脚本100例

1、自定义rm linux系统的rm命令太危险,一不小心就会删除掉系统文件。 写一个shell脚本来替换系统的rm命令,要求当删除一个文件或者目录时,都要做一个备份,然后再删除。下面分两种情况,做练习: 简单 假设有一个大的分区/data/,每次删除文件或者目录之前,都要先在/data/下面创建一个隐藏目录,以日期/时间命名,比如/data/.201703271012/,然后把所有删除的文件同...

qq_40907977的博客 1万+

STM32H743 ADC校准失败排查:HAL_ADCEx_Calibration_Start()的正确调用时机

本文深入剖析了STM32H743 ADC校准失败的核心原因,即错误地在ADC使能状态下调用HAL_ADCEx_Calibration_Start()函数,导致读数漂移。文章详细解释了校准必须在ADC禁用状态下进行的硬件原理,列举了典型错误场景,并提供了上电初始化与周期性重校准的正确代码实践,帮助开发者彻底解决ADC精度问题。

ik678901的博客 1173

Shell 脚本编程保姆级教程(上)

本教程关注的是 Bash,也就是 Bourne Again Shell,由于易用和免费,Bash 在日常工作中被广泛使用。业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。由于习惯的原因,简洁起见,本文出现的 "shell编程" 都是指 shell 脚本编程,不是指开发 shell 自身。Shell 脚本(shell script),是一种为 shell 编写的脚本程序。另一种则是,直接运行解释器。

Flag少侠的博客 1万+

Unity类银河战士恶魔城学习总结(P162 Improve skeleton提升敌人的效果)

为敌人添加了快慢刀

suzh1qian的博客 568

shell脚本快速入门之-----shell脚本练习100例!!!

#!/bin/bash i=1 for i in {1..254} do ping -c 2 -w 3 -i 0.3 192.168.110.$i $> /dev/null if [ $? -eq 0 ] ;then echo "192.168.110.$i is yes" else echo "192.168.110.$i is no" fi let i++ done

weixin_47219935的博客 1万+

超详细 VMware Horizon 虚拟桌面VDI安装步骤

主要的目的是模拟生产环境中的共享存储。自动桌面相当于共享电脑,大家使用同一个虚拟机,对虚拟机的修改都放在用户的配置文件中,RDS桌面池相当于共享的服务器,可以多人同时连接到服务器上。1:之前已经建立好了NFS的存储,这部分配置好后,以后的虚拟机可以安装到NFS的存储中。2: 使用Composer发布系统可以解决SID,机器名冲突的问题,更重要的可以节约磁盘空间,发布的所有系统可以访问一块磁盘。26: 域选择我们之前建立的域,用户名我输入的是管理员,可以在AD域新建用户点击查找,我这里用的是管理员。

vv12345的博客 1万+

VS Code 配置 LaTeX 写作环境完全指南

本文详细介绍了如何在 VS Code 中配置 LaTeX 写作环境,涵盖了从安装必备组件到高级功能的全面指南。首先,用户需要安装 LaTeX 发行版(如 TeX Live 或 MiKTeX)和 VS Code 插件(如 LaTeX Workshop)。接着,通过修改 settings.json 和 keybindings.json 文件,用户可以自定义编译、查看快捷键等基础配置。文章还提供了高效写作技巧,如使用代码片段和多文件项目管理,并介绍了高级功能如反向同步、公式预览和参考文献管理。此外,针对常见问题(

weixin_70043030的博客 1979

【免费下载】 Shell脚本编程实战100例 - Linux学习必备资源

Shell脚本编程实战100例 - Linux学习必备资源 【下载地址】Shell脚本编程实战100例-Linux学习必备资源 Shell脚本编程实战100例 - Linux学习必备资源欢迎来到“Shell脚本编程实战100例”资源页面!对于每一位想要深入学习和掌握Linux系统的朋友们来说,Shell脚本是一项至关重要...

gitblog_06668的博客 1186

ADC INL&DNL测试方法和实例

本文介绍了一种可操作的ADC INL和DNL的测试方法--直方图法(也称码密度法)。并实际使用该方法测试了两款芯片的ADC INL和DNL

APTCHIP的博客 1万+

【亲测免费】 Shell脚本编程实战100例:Linux学习必备资源推荐

Shell脚本编程实战100例:Linux学习必备资源推荐 【下载地址】Shell脚本编程实战100例-Linux学习必备资源 Shell脚本编程实战100例 - Linux学习必备资源欢迎来到“Shell脚本编程实战100例”资源页面!对于每一位想要深入学习和掌握Linux系统的朋友们来说,Shell脚本是一项至关重要...

gitblog_06614的博客 871

全志V3S嵌入式驱动开发(编译器升级到7.5)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 看过我们文章的朋友都知道,前面为了做v3s的驱动,对linux kernel进行了两次升级。第一次升级时从4.10.y升级到4.14.y,另外一次升级是从4.14.y升级到5.2.y。这中间最主要的原因,就是为了驱动适配的需要,更新的内核可以对硬件驱动有更好的支持,架构也更合理。 如果说内核升级尚且可以理解,那为什么要对编译器升级呢?这里面,最重要的一点就是语言的升

嵌入式-老费,一个分享专业嵌入式知识的blog 1154

YOLOv8改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进

1️⃣本专栏已更新150多种不同的改进方法,所使用并改进的每一个模块均包含详细的模块分析、原理讲解、个人总结、多种改进方式以及完整的修改流程,所有改进100%可直接运行。2️⃣所有改进点均为近三年顶会,顶刊提出的先进算法,将其融入到中,紧跟学术热点,适应不同的任务场景。3️⃣团队内发表数篇SCI论文,熟悉完整的发表流程,订阅专栏即可进群享受模型训练、模型改进、论文写作、投稿选刊,从入门到论文的各种答疑内容。4️⃣专栏内容会持续更新,最近更新时间:2024-12-24。项目介绍在大家购买专栏后,加入学

Limiiiing的博客 1万+

Shell 脚本编程保姆级教程(下)

bin/bashdemoFun(){echo "这是我的第一个 shell 函数!echo "-----函数开始执行-----"demoFunecho "-----函数执行完毕-----"

Flag少侠的博客 9412

国科大学习资料--高级软件工程-复习题概念解释答案

国科大学习资料–高级软件工程(罗铁坚 魏峻 刘丹)-复习题概念解释答案 1. 敏捷开发方法与Scrum方法 a.敏捷是一种强调轻量的过程方法论,它强调拥抱变化而不是与之对抗,通过有效的沟通发挥群体的智慧。敏捷方法采用迭代/增量开发的过程模型。敏捷宣言是:个体和交互高于流程和工具;工作的软件高于详尽的文档;客户合作高于合同谈判;响应变化高于遵循计划。 虽然右边的也有价值,但是认为左边的更有价值。 b.Scrum(Schwaber和Beedle)是管理两个披萨规模(4-9人)的软件开发团队的方法,它高频率的短会

无名何许人的博客 1435

【脚本编程】Shell脚本零基础入门

Shell脚本零基础入门

互联网小阿祥 8659

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Shell脚本100例:助你成为脚本编程高手

Shell脚本100例:助你成为脚本编程高手 【下载地址】Shell脚本100例最新版-资源下载 本仓库提供了一个名为“Shell脚本100例(最新版).pdf”的资源文件下载。该文件是学习Shell脚本编程的绝佳资源,涵盖了Shell语言的基础知识、Linux命令的使用、脚本编写的实践练习以及运维脚本的总结 ...

gitblog_06691的博客 771

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Shell编程入门学习

文章目录Shell编程Shell脚本的执行方式Shell的变量Shell的变量的介绍shell变量的定义设置环境变量位置参数变量介绍基本语法预定义变量基本介绍基本语法运算符基本语法条件判断判断语句常用判断条件流程控制if 判断case语句for循环while循环read读取控制台输入基本语法函数函数介绍系统函数自定义函数 Shell编程 Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的 界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。 She

HKD的博客 2万+

Shell 脚本 100 例

这篇文章介绍了100个实用的Shell脚本案例,涵盖基础操作、系统管理、网络检测和游戏开发等多个方面。这些脚本展示了Shell编程的常见应用场景,适合Linux系统管理员和Shell初学者学习参考

边学边走 1592
上一篇: 手把手教你用VS Code搭建C++开发环境(保姆级教程)
下一篇: Python自动化办公:解放双手的5个实战脚本(打工人必看!)
「已注销」
博客等级 码龄2年 267粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值