Linux Shell 脚本 7 大高频操作实战:从文件处理到用户管理,覆盖 90% 期末考点

发布时间:2026/7/7 23:45:38

Linux Shell 脚本 7 大高频操作实战:从文件处理到用户管理,覆盖 90% 期末考点 Linux Shell 脚本 7 大高频操作实战从文件处理到用户管理覆盖 90% 期末考点1. 文件查找与内容追加高效数据管理三板斧在Linux系统管理中文件查找与内容追加是最基础却最常考的操作组合。掌握以下三个核心技巧可以解决80%的文件操作需求# 1. 按扩展名查找XML文件并记录路径 find / -name *.xml -type f | grep usr work1.txt # 2. 获取系统时间并格式化追加 date %Y-%m-%d %H:%M:%S work1.txt # 3. 提取/etc/passwd特定行内容 tail -5 /etc/passwd work1.txt关键参数解析-type f限定只查找普通文件追加写入区别于覆盖写入的%Y-%m-%d日期格式化符号需用单引号包裹注意使用find搜索系统根目录时建议添加2/dev/null过滤权限错误提示例如find / -name *.conf -type f 2/dev/null2. 用户权限管理从创建到权限设置的完整流程用户管理是Shell脚本考核的重点模块以下是一个包含UID指定、权限修改的完整示例# 创建指定UID用户 useradd -u 1024 testuser # 修改文件所有权 chown -R testuser:mail /target_directory # 设置复杂权限组合 chmod urwx,grx,o /sensitive_file权限数字表示法对照表权限字符表示数字值读r4写w6执行x1全权rwx7典型应用场景755所有者可读写执行其他用户只读执行600仅所有者可读写777开放所有权限慎用3. 定时任务自动化系统管理的核心技能crontab是运维自动化的利器下面通过具体案例演示三种典型配置# 每天8:30启动服务 30 8 * * * /usr/sbin/service vsftpd start /var/log/ftp.log 21 # 每小时测试网络连通性 0 */1 * * * ping -c 4 baidu.com /var/log/network.log # 每周三、六备份 0 21 * * 3,6 tar -zcf /backups/web_$(date \%Y\%m\%d).tar.gz /var/www特殊符号说明*任意值,多个值分隔-范围值/步长值重要提示crontab中%需要转义为\%否则会被解析为换行符4. 文本处理四剑客grep/sed/awk/cut组合应用这组命令是处理日志和配置文件的瑞士军刀看一个综合案例# 提取IP访问频次实验六案例 awk {print $1} access.log | sort | uniq -c | sort -nr # 批量修改配置实验三案例 sed -i s/anonymous_enableYES/anonymous_enableNO/ /etc/vsftpd/vsftpd.conf # 提取特定列数据 cut -d: -f1,3 /etc/passwd users.txt常用参数对比命令核心参数典型应用场景grep-i忽略大小写日志过滤sed-i直接修改文件批量替换awk-F指定分隔符列式处理cut-d分隔符提取固定列5. 压缩归档实战从基础操作到自动备份压缩操作在系统维护中频率极高需要掌握这些关键命令# 创建压缩包实验一案例 tar zcvf log_$(date %Y%m%d).tar.gz /var/log # 排除特定目录 tar --exclude*.tmp -zcf backup.tar.gz /home # 分卷压缩适用于大文件 tar zcvf - bigfile | split -b 500M - bigfile_part_压缩格式性能对比格式压缩率速度典型命令.gz中快gzip/gunzip.bz2高慢bzip2/bunzip2.xz最高最慢xz/unxz6. 流程控制结构Shell脚本的逻辑骨架这是Shell编程的必考重点通过实例掌握三种核心结构if-else判断成绩等级#!/bin/bash read -p 输入分数: score if [ $score -lt 60 ]; then echo 不及格 elif [ $score -lt 80 ]; then echo 良好 else echo 优秀 fifor循环处理文件for file in $(ls *.log); do gzip $file mv $file.gz /backups/ donewhile读取用户输入while true; do read -p 输入命令(q退出): cmd [ $cmd q ] break eval $cmd done7. 网络服务管理FTP与防火墙配置网络服务配置常出现在实验题中重点掌握以下操作# FTP服务管理实验三案例 service vsftpd restart chkconfig vsftpd on # 防火墙配置 iptables -A INPUT -p tcp --dport 21 -j ACCEPT iptables-save /etc/sysconfig/iptables # 网络测试组合命令 telnet 192.168.1.100 21 netstat -tulnp | grep vsftpd服务状态检查命令对比命令作用输出特点service --status-all查看所有服务状态简单状态标识systemctl list-units显示系统所有单元包含详细描述信息ps auxgrep [服务名]检查进程是否存在实战技巧避免常见Shell脚本陷阱变量引用问题始终用${var}代替$var特别是拼接字符串时dir/tmp file${dir}/work.log # 正确 file$dir/work.log # 可能有歧义权限检查技巧关键操作前添加验证[ $(id -u) -ne 0 ] echo 需要root权限 exit 1错误处理机制使用set -e让脚本遇错即停#!/bin/bash set -e critical_command1 critical_command2日志记录规范重要操作记录执行日志log(){ echo [$(date %Y-%m-%d %H:%M:%S)] $ /var/log/operation.log } log 开始备份数据库兼容性处理不同Linux发行版的命令差异# 检测系统类型 if [ -f /etc/redhat-release ]; then # CentOS/RHEL系统 installeryum elif [ -f /etc/debian_version ]; then # Debian/Ubuntu系统 installerapt-get fi

相关新闻