Shell脚本编程100例:掌握Linux系统管理的利器129


Shell脚本,作为Linux系统管理员和程序员的得力助手,能够自动化完成许多重复性的任务,提高工作效率。掌握Shell脚本编程,不仅能简化日常操作,还能提升系统管理水平,甚至用于构建复杂的自动化流程。本文将通过100个典型的Shell脚本示例,涵盖基础语法、文件操作、系统管理、网络管理等方面,帮助读者快速入门并提升Shell脚本编程技能。

一、基础语法篇 (约20例)

这一部分将介绍Shell脚本的基础语法,包括变量定义、运算符、流程控制语句(if、for、while、case)、函数定义与调用等。掌握这些基础语法是编写任何Shell脚本的前提。

示例:
变量赋值与输出:#!/bin/bash; name="Hello World"; echo $name
简单的if语句:#!/bin/bash; num=10; if [ $num -gt 5 ]; then echo "大于5"; fi
for循环遍历数字:#!/bin/bash; for i in {1..10}; do echo $i; done
while循环:#!/bin/bash; count=0; while [ $count -lt 5 ]; do echo $count; count=$((count+1)); done
函数定义与调用:#!/bin/bash; myfunc() { echo "This is a function"; }; myfunc

二、文件与目录操作篇 (约30例)

Shell脚本中经常需要进行文件和目录的操作,例如创建、删除、复制、移动文件,查看文件属性等。本部分将介绍常用的文件与目录操作命令以及相关的Shell脚本示例。

示例:
创建目录:#!/bin/bash; mkdir -p /tmp/mydir
复制文件:#!/bin/bash; cp
移动文件:#!/bin/bash; mv /tmp/
删除文件:#!/bin/bash; rm
查找文件:#!/bin/bash; find /tmp -name "*.txt"
查看文件大小:#!/bin/bash; ls -lh
遍历目录:#!/bin/bash; for file in /tmp/*; do echo $file; done


三、系统管理篇 (约20例)

Shell脚本在系统管理中扮演着至关重要的角色,可以用于监控系统资源、管理用户和组、备份数据等。本部分将介绍一些常用的系统管理脚本示例。

示例:
查看CPU使用率:#!/bin/bash; top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1"%"}'
查看内存使用率:#!/bin/bash; free -m | awk 'NR==2{printf "Memory Usage: %.2f%% ", $3*100/$2 }'
查看磁盘空间:#!/bin/bash; df -h
创建用户:#!/bin/bash; useradd username
修改用户密码:#!/bin/bash; echo "password" | passwd --stdin username

四、网络管理篇 (约10例)

Shell脚本也能用于网络管理,例如检查网络连接状态、ping主机、查看网络配置等。

示例:
ping主机:#!/bin/bash; ping -c 3
查看网络接口信息:#!/bin/bash; ifconfig
查看网络连接:#!/bin/bash; netstat -tulnp


五、高级应用篇 (约20例)

这部分将涵盖一些更高级的应用,例如正则表达式、文本处理、日志分析、定时任务等。

示例:
使用正则表达式查找文本:#!/bin/bash; grep "error"
文本处理:#!/bin/bash; sed 's/old/new/g'
日志分析:#!/bin/bash; awk '{print $1, $4}' | sort | uniq -c | sort -nr
定时任务:crontab -e (编辑crontab文件添加定时任务)


这100个例子只是Shell脚本编程的冰山一角,但它们涵盖了大部分常用的场景。通过学习和实践这些例子,读者可以掌握Shell脚本编程的基础知识,并能够将其应用于实际的系统管理和自动化任务中。建议读者在学习过程中积极实践,并根据实际需求修改和扩展这些脚本,从而更好地理解和掌握Shell脚本编程的精髓。

记住,熟能生巧。多练习,多思考,才能真正掌握Shell脚本的强大功能。

2025-04-30


上一篇:零基础自学编程写脚本:从入门到实践的完整指南

下一篇:脚本编程技术书籍推荐:从入门到精通,选择适合你的那本