您的位置:

Shell 编程入门指南:从基础到实战

Shell 编程,是指在 Shell (壳层)中编写脚本程序,通过运行脚本程序来完成特定的任务。Shell 编程主要用于自动化系统管理工作,如批量操作文件、定时任务、系统监控、日志分析等。Shell 编程因其简单易学、强大实用而备受青睐。

一、 Shell 编程基础

1、 Shell 命令

echo "Hello World"
ls -l /home
cat /etc/passwd

2、 变量、注释

#!/bin/sh
# 这是一条注释
variable="Hello World"
echo $variable

3、 流程控制

#!/bin/sh
if [ $1 = "hello" ]; then
   echo "Hello World"
else
   echo "Input error!"
fi

4、 函数

#!/bin/sh
function wordCount {
   words=`cat $1`
   echo "Word count: `echo $words | wc -w`"
}
wordCount $1

二、 Shell 编程高级应用

1、 正则表达式

#!/bin/sh
if [[ $1 =~ "^([0-9]{3}-){2}[0-9]{4}$" ]]; then
   echo "Valid phone number."
else
   echo "Invalid phone number."
fi

2、 数组、循环

#!/bin/sh
array=("apple" "orange" "banana")
for fruit in ${array[@]}; do
   echo $fruit
done

3、 文件处理

#!/bin/sh
filename="sample.txt"
if [ -f $filename ]; then
   echo "The file exists."
   echo "File size: `ls -lh $filename | awk '{ print $5 }'`"
else
   echo "The file does not exist."
fi

三、 Shell 编程实战

1、 批量重命名文件

#!/bin/sh
for file in *.txt; do
   mv $file `echo $file | sed 's/.txt/.doc/g'`
done

2、 定时备份数据

#!/bin/sh
backup_path="/backup"
filename="backup-$(date +%Y%m%d).tar.gz"
tar -zcvf $backup_path/$filename /data

3、 监控系统进程

#!/bin/sh
while true; do
   if pgrep apache2 > /dev/null; then
      sleep 60
   else
      systemctl start apache2
      echo "Apache2 restarted."
   fi
done

四、 结语

通过以上 Shell 编程入门指南,我们可以掌握 Shell 编程的基本语法和常用技巧,以及如何运用 Shell 编程来完成实际的系统管理任务。Shell 编程虽然入门门槛较低,但在日常工作中却发挥着重要的作用,帮助我们提高工作效率,实现更加自动化的系统管理操作。