上一篇
在使用CentOS或其它Linux系统进行日常运维、脚本编写或日志分析时,输入输出重定向是一项非常基础但极其重要的技能。它能帮助你将命令的输出保存到文件、忽略错误信息、合并标准输出与错误输出等。本文将用通俗易懂的方式,手把手教你掌握Centos输入输出重定向的核心用法,即使是Linux小白也能轻松上手!
在Linux中,每个程序运行时默认有三个数据流:
通过重定向,我们可以改变这些数据流的默认方向,比如把输出写入文件,而不是显示在屏幕上。
> 表示覆盖写入,>> 表示追加写入。
# 覆盖写入文件ls -l /home > file_list.txt# 追加写入文件echo "新内容" >> log.txt 将文件内容作为命令的输入。
# 从文件读取内容作为 wc 命令的输入wc -l < file_list.txt 只重定向错误信息(stderr)。
# 将错误信息写入 error.logls /nonexistent_dir 2> error.log 在实际运维中,我们经常希望把正常输出和错误信息都记录到同一个日志文件中。
# 方法一:使用 &>command &> all_output.log# 方法二:先重定向 stdout,再将 stderr 重定向到 stdoutcommand > output.log 2>&1 假设你要每天备份一个目录,并记录成功或失败信息:
#!/bin/bashDATE=$(date +%Y%m%d)BACKUP_DIR="/backup"SOURCE_DIR="/var/www"LOG_FILE="/var/log/backup_$DATE.log"# 执行备份,并将所有输出(包括错误)写入日志tar -czf $BACKUP_DIR/backup_$DATE.tar.gz $SOURCE_DIR &> $LOG_FILEif [ $? -eq 0 ]; then echo "[$(date)] 备份成功!" >> $LOG_FILEelse echo "[$(date)] 备份失败!请检查日志。" >> $LOG_FILEfi command > file 2>&1 正确,但 command 2>&1 > file 会出错。/dev/null:command > /dev/null 2>&1tee 命令可同时输出到屏幕和文件:ls | tee output.txt通过本教程,你应该已经掌握了Centos输入输出重定向的基本语法和实用技巧。无论你是系统管理员、开发人员,还是正在学习Linux重定向命令的新手,这些知识都能极大提升你的工作效率。记住,多练习是掌握shell重定向教程的关键!在日常的Centos文件操作中灵活运用这些方法,你会事半功倍。
祝你在Linux的世界里游刃有余!
本文由主机测评网于2025-12-11发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025126232.html