青岛网站建设专业的网站建设

东莞市瑞域塑胶制品有限公司 2026/09/09 17:34:23

Shell脚本入门:让重复工作自动化

每天登服务器敲一堆重复的命令?

写成脚本,一键执行,省时省力。今天教你Shell脚本入门,看完就能写。

最简单的脚本

创建一个文件hello.sh

#!/bin/bashecho"Hello World"

第一行#!/bin/bash是固定的,告诉系统用bash来执行。

运行脚本:

# 先加执行权限chmod+x hello.sh# 运行./hello.sh

就这么简单,你已经写了第一个脚本!

变量

#!/bin/bashname="张三"echo"你好,$name"

注意:等号两边不能有空格!

使用命令结果作为变量:

today=$(date+%Y-%m-%d)echo"今天是$today"

接收参数

#!/bin/bashecho"第一个参数:$1"echo"第二个参数:$2"echo"所有参数:$@"echo"参数个数:$#"

运行时传参:

./test.sh 参数1 参数2

判断语句

#!/bin/bashif[-f"/etc/passwd"];thenecho"文件存在"elseecho"文件不存在"fi

常用判断:

  • -f 文件文件存在
  • -d 目录目录存在
  • -z "$变量"变量为空
  • -n "$变量"变量不为空
  • "$a" == "$b"字符串相等
  • $a -eq $b数字相等
  • $a -gt $b大于
  • $a -lt $b小于

循环

for循环:

#!/bin/bashforiin12345;doecho"数字:$i"done
# 遍历文件forfilein*.log;doecho"处理文件:$file"done

while循环:

#!/bin/bashcount=1while[$count-le5];doecho"第$count次"count=$((count+1))done

实用脚本1:服务器巡检

#!/bin/bashecho"===== 服务器巡检 ====="echo"时间:$(date)"echo""echo"--- 负载 ---"uptimeecho""echo"--- 内存 ---"free-hecho""echo"--- 磁盘 ---"df-h|grep-v tmpfsecho""echo"--- CPU占用TOP5 ---"psaux --sort=-%cpu|head-6

每天跑一遍,一分钟掌握服务器状态。

实用脚本2:日志清理

#!/bin/bashLOG_DIR="/var/log/app"DAYS=7echo"清理$DAYS天前的日志..."find"$LOG_DIR"-name"*.log"-mtime +$DAYS-deleteecho"清理完成"

加到定时任务自动执行:

# 编辑定时任务crontab-e# 每天凌晨2点执行02* * * /root/scripts/clean_log.sh

实用脚本3:备份脚本

#!/bin/bashSOURCE="/data/app"BACKUP="/data/backup"DATE=$(date+%Y%m%d)echo"开始备份..."tar-czf"$BACKUP/app_$DATE.tar.gz""$SOURCE"echo"备份完成:$BACKUP/app_$DATE.tar.gz"# 删除7天前的备份find"$BACKUP"-name"*.tar.gz"-mtime +7 -delete

实用脚本4:批量操作

#!/bin/bashSERVERS="192.168.1.101 192.168.1.102 192.168.1.103"forserverin$SERVERS;doecho"=====$server====="sshroot@$server"uptime"done

一次性查看多台服务器的负载。

实用脚本5:服务监控

#!/bin/bashSERVICE="nginx"ifsystemctl is-active --quiet$SERVICE;thenecho"$SERVICE正在运行"elseecho"$SERVICE未运行,正在重启..."systemctl start$SERVICEfi

小技巧

1. 遇到错误就退出:

#!/bin/bashset-e# 遇到错误立即退出

2. 调试脚本:

bash-x script.sh# 显示每一步执行的命令

3. 读取用户输入:

read-p"请输入名字: "nameecho"你好,$name"

4. 函数:

#!/bin/bashsay_hello(){echo"你好,$1"}say_hello"张三"say_hello"李四"

定时任务

写好的脚本可以定时自动执行:

# 编辑定时任务crontab-e

格式:分 时 日 月 周 命令

# 每天凌晨2点执行02* * * /root/scripts/backup.sh# 每5分钟执行一次*/5 * * * * /root/scripts/check.sh# 每周一早上9点执行09* *1/root/scripts/weekly.sh

远程管理脚本

我经常需要把脚本同步到多台服务器,用星空组网把服务器都连起来后,直接rsync同步:

# 同步脚本到所有服务器foripin10.26.1.{10..15};dorsync-avz ~/scripts/ root@$ip:/root/scripts/done

改完脚本同步过去就能用,不用一台台手动操作。

小结

Shell脚本的核心就是把命令行操作写成文件:

  • 变量:name="值"
  • 判断:if [ 条件 ]; then ... fi
  • 循环:for ... do ... done
  • 参数:$1 $2 $@

先从简单的开始,把日常重复的操作写成脚本,慢慢就熟练了。

有问题评论区交流~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

甘肃网站建设网站建设需要

2025 年对 Node.js 来说,绝对是“封神”的一年。如果说过去几年 Node.js 只是在稳步小跑,那么今年简直就是开了“加速器”。从年初的原生 TypeScrip

2026/06/30 11:20:24

免费建设网站国家建设部网站

还在为Zotero文献库中堆积如山的重复条目而头痛吗?当你从不同数据库导入文献时,同一篇文章经常被重复收录多次,这不仅浪费存储空间,还严重影响文

2026/06/30 10:14:49

苏州网站建设海口网站建设

核心概念向量数据库是专门设计用于高效存储、索引和搜索高维向量数据的系统。它的核心能力是处理以 “多维向量” 形式存在的数据 —— 这些向量可以是文本、图像、音频等非结构化数据的 “数字指纹”ÿ

2026/06/30 13:37:36

郑州网站建设网站建设维护

快速体验打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容:创建一个快速部署Web服务的CentOS7镜像方案,要求&#x

2026/06/30 11:50:27

广东网站建设泰州网站建设

概率理论与量子系统:从概率到量子力学的重构在量子物理学的研究中,概率理论扮演着至关重要的角色。它不仅为我们理解量子系统的行为提供了数学基础,还在量子信息和量子计算等领域有着广泛的应用。本文将深入探讨概

2026/06/30 10:29:20

昆明网站建设网站制作建设

Windows 10 使用指南:网络、账户、桌面操作全解析一、网络连接与飞行模式操作(一)断开网络连接通常情况下,计算机保持网络连接状态。当关闭计算机或者将其移至远离网络信号源的位置时,网络会自动断开

2026/06/30 13:06:04

天津网站建设旅游网站建设

智能 Agent 的概念建模与系统特征分析-从传统程序到自主智能体的范式演进一、引言:为什么「Agent」成为 AI 工程的新关键词?随着大模型能力的快速跃迁,

2026/06/30 14:14:39

深圳网站建设商务网站建设

继续后端设计与开发:魔盒项目是一个基于物联网技术的智能设备管理系统,后端采用 Go 语言和 Beego 框架开发,提供了完整的设备管理、用户认证、OTA 固件

2026/06/30 14:05:08

怎样建设网站东莞南城网站建设

教育创新:如何用预置镜像快速构建AI教学实验室作为一名计算机课程教授,你是否遇到过这样的困境:想让学生体验最前沿的物体识别技术,但学校机房没有G

2026/06/30 13:43:07