Menu Close

常用的 Shell 脚本功能

Shell 脚本在系统管理、自动化任务和数据处理等方面非常强大。以下是一些常用的 Shell 脚本功能,帮助你更高效地进行任务处理:

1. 文件与目录操作

1.1 创建、删除文件和目录

  • 创建文件
touch filename.txt
  • 创建目录
mkdir dirname
  • 删除文件
rm filename.txt
  • 删除目录
rm -r dirname

1.2 复制和移动文件

  • 复制文件
cp source.txt destination.txt
  • 移动文件
mv source.txt destination.txt

1.3 查找文件和目录

  • 查找文件
find /path/to/search -name "filename.txt"
  • 查找包含特定文本的文件
grep -r "search_term" /path/to/search/

2. 文本处理

2.1 查看文件内容

  • 显示文件内容
cat filename.txt
  • 分页显示文件内容
less filename.txt
  • 按行查看文件
head -n 10 filename.txt  # 查看前10行
tail -n 10 filename.txt  # 查看后10行

2.2 文本替换和编辑

  • 替换文件中的文本
sed -i 's/old_text/new_text/g' filename.txt
  • 删除空行
sed '/^$/d' filename.txt

2.3 排序和去重

  • 对文件内容排序
sort filename.txt
  • 删除重复行
sort filename.txt | uniq

3. 系统管理

3.1 查看系统状态

  • 查看磁盘使用情况
df -h
  • 查看内存使用情况
free -h
  • 查看当前运行的进程
ps aux

3.2 用户管理

  • 添加用户
sudo useradd username
  • 删除用户
sudo userdel username

3.3 权限管理

  • 更改文件权限
chmod 755 filename.txt
  • 更改文件所有者
sudo chown user:group filename.txt

4. 网络管理

4.1 查看网络配置

  • 查看 IP 地址
ifconfig  # 或者 ip addr show
  • 查看网络连接
netstat -tuln

4.2 测试网络连接

  • Ping 一个地址
ping google.com
  • 检查端口是否开放
nc -zv hostname port

5. 自动化任务

5.1 定时任务 (Cron Jobs)

使用 crontab 来设置定时任务:

  • 编辑 crontab
crontab -e

例子:每天凌晨 2 点执行脚本

0 2 * * * /path/to/script.sh

5.2 批处理操作

  • 批量重命名文件
for file in *.jpg; do mv "$file" "${file%.jpg}.png"; done
  • 批量执行命令
for dir in */; do (cd "$dir" && git pull); done

6. 条件与循环控制

6.1 条件判断

  • 检查文件是否存在
if [ -f filename.txt ]; then
    echo "File exists"
else
    echo "File does not exist"
fi

6.2 循环处理

  • 遍历目录中的所有文件
for file in /path/to/dir/*; do
    echo "Processing $file"
done

7. 实用工具

7.1 生成随机数

echo $RANDOM

7.2 获取当前日期和时间

date

7.3 备份和归档

  • 创建压缩包
tar -czvf archive.tar.gz /path/to/dir
  • 解压缩文件
tar -xzvf archive.tar.gz

8. 函数与脚本模块化

8.1 定义函数

my_function() {
    echo "Hello from function"
}

my_function

8.2 模块化脚本

可以将常用的函数或配置放在单独的脚本中,然后通过 source 命令加载:

source /path/to/script.sh

9. 调试与错误处理

9.1 启用调试模式

在脚本顶部加上 -x,可以输出每条命令的执行过程:

#!/bin/bash -x

9.2 错误处理

使用 set -e 可以在脚本遇到错误时自动退出:

set -e

这些是 Shell 脚本中常用的一些功能。掌握这些功能可以帮助你更高效地编写和维护脚本,自动化日常任务,处理文件、文本,管理系统和网络。

除教程外,本网站大部分文章来自互联网,如果有内容冒犯到你,请联系我们删除!

2 Comments

  1. Shell 脚本

    shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson的sh是第一种Unix Shell,Windows Explorer是一个典型的图形界面Shell。

    shell脚本(shell script),是一种为shell编写的脚本程序。业界所说的shell通常都是指shell脚本,但读者朋友要知道,shell和shell script是两个不同的概念。由于习惯的原因,简洁起见,本文出现的“shell编程”都是指shell脚本编程,不是指开发shell自身(如Windows Explorer扩展开发)

  2. Shell 脚本

    shell只定义了一个非常简单的编程语言,所以,如果你的脚本程序复杂度较高,或者要操作的数据结构比较复杂,那么还是应该使用Python、Perl这样的脚本语言,或者是你本来就已经很擅长的高级语言。因为sh和bash在这方面很弱,比如说:

    它的函数只能返回字串,无法返回数组
    它不支持面向对象,你无法实现一些优雅的设计模式

    它是解释型的,一边解释一边执行,连PHP那种预编译都不是,如果你的脚本包含错误(例如调用了不存在的函数),只要没执行到这一行,就不会报错
    #

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Leave the field below empty!

Posted in 外壳脚本

Related Posts