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 编程虽然入门门槛较低,但在日常工作中却发挥着重要的作用,帮助我们提高工作效率,实现更加自动化的系统管理操作。