在使用 RockyLinux 或其他 Linux 系统时,你是否曾遇到过从 Windows 编辑器复制或上传的脚本文件无法正常运行?这很可能是由于 换行符格式不兼容 所致。本文将手把手教你如何使用 dos2unix 命令解决这一问题,即使是 Linux 小白也能轻松上手!
什么是换行符?为什么需要转换?
不同操作系统对“换行”的表示方式不同:
Windows(DOS):使用\r\n(回车+换行) Unix/Linux(包括 RockyLinux):仅使用 \n(换行) 当你在 Windows 上编辑一个 Shell 脚本并上传到 RockyLinux 服务器时,多余的
\r
字符会导致脚本报错,比如出现 : command not found
的奇怪错误。
安装 dos2unix 工具
在 RockyLinux 中,
dos2unix
并非默认安装,但可以通过 DNF 包管理器轻松安装: sudo dnf install -y dos2unix
基本用法:将 DOS 格式转为 Unix 格式
假设你有一个名为
script.sh
的脚本文件,是从 Windows 上传过来的。使用以下命令即可转换: dos2unix script.sh
执行后,原文件会被直接修改(覆盖),所有
\r\n
都会被替换为 \n
。 保留原文件:输出到新文件
如果你不想修改原始文件,可以指定输出文件名:
dos2unix -n original_file.txt converted_file.txt
其中
-n
表示“新建文件”,original_file.txt
是源文件,converted_file.txt
是转换后的目标文件。 批量转换多个文件
你可以一次转换多个文件:
dos2unix *.sh *.txt
这会将当前目录下所有
.sh
和 .txt
文件从 DOS 格式转为 Unix 格式。 反向操作:unix2dos
如果你需要将 Unix 格式的文件转回 DOS 格式(例如要发给 Windows 用户),可以使用配套命令
unix2dos
: unix2dos my_script.sh
验证换行符是否已转换
你可以使用
file
命令查看文件格式: file script.sh
如果输出包含
with CRLF line terminators
,说明仍是 DOS 格式;若显示 ASCII text
或类似信息且无 CRLF,则说明已是 Unix 格式。 总结
通过
dos2unix
命令,你可以快速解决因 RockyLinux换行符转换 引起的脚本执行问题。掌握这个工具,不仅能提升工作效率,还能避免因格式问题导致的系统错误。无论是日常运维还是开发部署,Linux文本格式处理 都是一项必备技能。 记住,当你遇到奇怪的脚本错误时,不妨先检查一下 Unix与DOS换行符区别 —— 很可能就是它在“捣鬼”!而 dos2unix命令 就是你最可靠的解决方案。
