📜  Shell脚本案例(1)

📅  最后修改于: 2023-12-03 15:05:12.402000             🧑  作者: Mango

Shell脚本案例

Shell脚本是一种用于自动化系统任务的脚本语言。它使用Shell解释器执行一系列的命令,可以帮助程序员简化工作、提高工作效率和避免繁琐的重复操作。下面是一些常见的Shell脚本案例,涵盖了不同的用途和场景。

1. Hello World
#!/bin/bash

echo "Hello World"

这是一个最简单的Shell脚本示例。它使用echo命令输出"Hello World"。通过#!/bin/bash声明解释器类型为bash,告诉系统使用bash解释器来执行脚本。

2. 文件操作
查找文件
#!/bin/bash

find /path/to/directory -name "*.txt"

这个脚本用于在指定目录下查找以.txt为后缀的文件。find命令是一个强大的文件查找工具,通过-name参数指定文件名模式。

备份文件
#!/bin/bash

cp /path/to/source /path/to/backup/source_backup_$(date +%Y%m%d).txt

这个脚本用于备份源文件。它使用cp命令将源文件复制到备份目录,并在备份文件名中加入当前日期。

文件批量重命名
#!/bin/bash

for file in /path/to/directory/*
do
    mv "$file" "${file}_backup"
done

这个脚本用于将指定目录下的所有文件批量重命名。它使用for循环遍历目录中的文件,并使用mv命令将文件重命名为原文件名加上"_backup"后缀。

3. 系统管理
获取系统信息
#!/bin/bash

echo "Operating System: $(uname -a)"
echo "CPU Usage: $(top -bn1 | grep Cpu | awk '{print $2}')"
echo "Memory Usage: $(free -m | awk 'NR==2{print $3/$2*100}')%"

这个脚本用于获取系统的基本信息。它使用uname -a命令获取操作系统信息,top命令获取CPU使用率,free命令获取内存使用率。

清理系统日志
#!/bin/bash

echo "" > /var/log/syslog

这个脚本用于清空系统日志文件。它使用重定向将空字符串输出到/var/log/syslog文件,达到清空日志的目的。

4. 网络操作
测试网络连通性
#!/bin/bash

ping -c 1 google.com
if [ $? -eq 0 ]; then
    echo "Network is reachable"
else
    echo "Network is unreachable"
fi

这个脚本用于测试是否能够连接到互联网。它使用ping命令向google.com发送一个数据包,并通过$?变量获取命令的退出状态码,如果状态码为0表示网络连通,否则表示网络不可达。

扫描端口
#!/bin/bash

nc -zv 127.0.0.1 80
if [ $? -eq 0 ]; then
    echo "Port 80 is open"
else
    echo "Port 80 is closed"
fi

这个脚本用于扫描本地主机的80端口是否开放。它使用nc命令连接到127.0.0.1的80端口,并通过$?变量获取命令的退出状态码,如果状态码为0表示端口开放,否则表示端口关闭。

以上是一些常见的Shell脚本案例,涵盖了文件操作、系统管理和网络操作等方面。希望对程序员在日常工作中使用Shell脚本有所帮助。