DOS2UNIX Windows 安装教程:Windows 下换行符转换工具怎么装、怎么用
一、问题分析
很多人第一次接触 dos2unix,通常都是在这些场景里:
- 从 Linux 服务器拷贝脚本到 Windows,发现执行报错;
- 用记事本编辑过的配置文件上传到 Linux 后,出现奇怪的换行符问题;
- Git 拉下来的
.sh、.conf、.txt文件在 Linux 下显示异常; - 想把 Windows 的
CRLF换成 Linux 常用的LF。
dos2unix 的作用很简单,就是把 Windows 风格的换行符转换成 Linux/Unix 风格,反过来它也能处理 unix2dos 转换。
在 Windows 上使用它,常见有两种需求:
- 直接安装可执行程序使用
- 通过 Git Bash、WSL、Cygwin、MSYS2 等环境调用
如果你只是想在 Windows 上快速转换文件,最省事的是直接下载安装 dos2unix 的 Windows 版本。
二、dos2unix 是什么,为什么 Windows 上也需要它
Windows 和 Linux 的文本换行符不一样:
- Windows:
CRLF,也就是\r\n - Linux / Unix:
LF,也就是\n
如果一个脚本本来是给 Linux 用的,但被 Windows 记事本改过,文件末尾可能会混入 CRLF。这时在 Linux 上运行,常见报错包括:
bad interpreter: /bin/bash^M: no such file or directory- 配置文件格式错误
- shell 脚本执行失败
- 某些程序读取文本时出现异常
所以,dos2unix 本质上不是“Windows 专属软件”,而是一个跨平台文本换行符转换工具。Windows 用户也常常需要它来处理脚本、配置文件、源码文件。
三、Windows 下安装 dos2unix 的几种方式
方案一:直接下载 Windows 版可执行文件
这是最简单、最适合新手的方法。
步骤 1:下载工具
去 dos2unix 官方发布页或可信软件镜像下载 Windows 版本,一般会得到以下几类文件:
dos2unix.exeunix2dos.exe- 可能还有压缩包形式的完整工具集
建议下载已经编译好的 Windows 版本,不用自己编译。
步骤 2:解压到固定目录
比如放到:
C:\Tools\dos2unix\
里面有:
C:\Tools\dos2unix\dos2unix.exe
C:\Tools\dos2unix\unix2dos.exe
步骤 3:配置环境变量(可选但推荐)
如果你想在任意命令行窗口直接输入 dos2unix,就把它加入系统 Path。
操作方法:
- 右键“此电脑” → “属性”
- 进入“高级系统设置”
- 点击“环境变量”
- 在“系统变量”里找到
Path - 点击“编辑”
- 新增:
C:\Tools\dos2unix\ - 一路确定保存
步骤 4:验证是否安装成功
打开 cmd 或 PowerShell,输入:
dos2unix -h
如果显示帮助信息,说明可用了。
方案二:通过 WSL 安装
如果你电脑上装了 WSL,这也是很实用的方式。
安装命令
在 Ubuntu / Debian 环境里执行:
sudo apt update
sudo apt install dos2unix
使用方式
在 WSL 里直接运行:
dos2unix test.sh
适合人群
- 经常写 Linux 脚本
- 需要同时操作 Windows 和 Linux 文件
- 已经在用 WSL 做开发
注意
WSL 里的工具是 Linux 版本,不是原生 .exe。
如果你要处理的是 Windows 盘里的文件,也可以直接访问:
/mnt/c/Users/你的用户名/Desktop/test.sh
方案三:通过 Git Bash 使用
如果你装了 Git for Windows,很多情况下已经自带一些 Unix 工具环境。
不过要注意,Git Bash 不一定自带完整的 dos2unix,不同版本不完全一致。
你可以先在 Git Bash 里输入:
dos2unix -h
如果能执行,就说明已经有了;如果提示找不到命令,再考虑单独安装 Windows 版。
方案四:使用 Cygwin / MSYS2
这类环境更适合开发者,功能完整,但对新手来说不如直接下 .exe 简单。
Cygwin 安装
安装时搜索并勾选 dos2unix 包即可。
MSYS2 安装
在 MSYS2 终端中执行:
pacman -S dos2unix
适合:
- 需要大量 Unix 工具链
- 有编译、脚本、开发需求
- 想在 Windows 上模拟 Linux 命令行环境
四、Windows 上怎么用 dos2unix
1. 转换单个文件
命令:
dos2unix test.sh
这个命令会把 test.sh 从 Windows 换行转换为 Unix 换行。
转换后文件会直接覆盖原文件。
2. 指定输出文件
如果你不想覆盖原文件,可以这样做:
dos2unix -n input.txt output.txt
含义:
input.txt:原文件output.txt:转换后的新文件
3. 反向转换:unix2dos
如果你要把 Linux 格式文件转回 Windows 格式,可以用:
unix2dos test.txt
4. 批量转换文件
如果你有很多 .sh、.txt 文件要处理,可以批量执行。
在 cmd 中批量转换当前目录下的 txt 文件:
for %i in (*.txt) do dos2unix "%i"
如果是在批处理文件 .bat 里,要写成:
for %%i in (*.txt) do dos2unix "%%i"
5. 递归转换整个目录
如果你想把某个文件夹及子文件夹中的文件都转换掉,可以结合 PowerShell 或脚本来做。
PowerShell 示例:
Get-ChildItem -Path C:\scripts -Recurse -File | ForEach-Object {
dos2unix $_.FullName
}
如果只处理某种后缀,比如 .sh:
Get-ChildItem -Path C:\scripts -Recurse -Filter *.sh -File | ForEach-Object {
dos2unix $_.FullName
}
五、常见使用场景
场景 1:Linux 脚本在 Windows 上编辑后无法运行
很多新手会用 Windows 记事本编辑脚本,保存后上传到 Linux,结果运行失败。
这时可以在 Windows 本地先执行:
dos2unix script.sh
再上传到服务器。
场景 2:配置文件在 Linux 上解析异常
比如:
.env.conf.yml.sh
如果这些文件被 Windows 编辑过,建议统一转换为 Unix 格式。
场景 3:Git 提交前清理换行符
开发中经常遇到换行符混乱,建议搭配 Git 配置一起使用,比如:
git config --global core.autocrlf input
这个配置可以减少 Windows 和 Linux 之间换行符来回污染的问题。
六、怎么判断文件是不是 Windows 换行
方法 1:用 dos2unix 自己检查
dos2unix -ic test.sh
有些版本可以显示文件的换行情况。
方法 2:用编辑器查看
推荐用这些工具查看:
- Notepad++
- VS Code
- Sublime Text
在 VS Code 右下角能直接看到 CRLF 或 LF,点击即可切换。
七、常见问题与解决办法
1. 提示“dos2unix 不是内部或外部命令”
原因通常有两个:
- 没有安装
- 没有把程序目录加入
Path
解决办法:
- 确认
dos2unix.exe是否存在 - 把它所在目录加到环境变量
- 重新打开命令行窗口
2. 转换后文件乱码
dos2unix 主要处理的是换行符,不是编码。
如果文件本身是编码问题,比如:
- UTF-8
- GBK
- ANSI
那要用编码转换工具处理,dos2unix 不能解决字符乱码。
3. 文件权限丢失
在 Windows 上转换文件时,一般不会像 Linux 那样严格保留权限。
如果你处理的是 Linux 脚本,上传后还要确认执行权限:
chmod +x script.sh
4. 中文文件名处理异常
如果是旧环境或特殊终端,中文路径可能出现兼容问题。
建议:
- 尽量使用英文路径
- 文件名避免特殊符号
- 用 PowerShell 或 WSL 处理更稳妥
八、推荐的实用安装方案
新手最推荐
直接下载 Windows 版 dos2unix.exe,放到固定目录,再加到 Path。
优点:
- 简单
- 快速
- 不依赖复杂环境
开发者推荐
用 WSL 安装:
sudo apt install dos2unix
优点:
- 跟 Linux 环境一致
- 更适合脚本开发
- 后续还能顺带用很多 Linux 工具
进阶用户推荐
配合 Git、VS Code、WSL 一起用,统一管理换行符。
九、日常使用建议和避坑技巧
1. 不要用记事本随便改 Linux 脚本
Windows 记事本很容易把换行变成 CRLF。
建议改用:
- VS Code
- Notepad++
- Sublime Text
并把默认换行符设为 LF。
2. 项目里统一换行规范
如果你是开发者,最好在项目里明确规则:
- Linux 项目统一
LF - Windows 脚本统一
CRLF
可以通过 .editorconfig 统一控制。
3. 不要把“换行符问题”和“编码问题”混为一谈
dos2unix 只能解决换行,不负责字符集转换。
如果文件打开全是乱码,要检查编码,而不是只靠 dos2unix。
4. 批量处理前先备份
批量转换文件前,最好先备份一份原文件,避免误操作导致内容不可回退。
十、总结
如果你在 Windows 上想用 dos2unix,最实用的方法就是:
- 下载 Windows 版
dos2unix.exe - 放到固定目录
- 配置环境变量
- 用命令行执行转换
核心命令也很简单:
dos2unix 文件名
unix2dos 文件名
如果你本身就在做 Linux 开发,或者经常处理脚本文件,建议直接上 WSL + dos2unix,体验会更稳定。
如果只是偶尔转换几个文件,直接装 Windows 版可执行文件就够了。
在 Windows 和 Linux 混合开发环境里,dos2unix 属于那种看起来不起眼,但实际非常常用的小工具。掌握它之后,很多脚本报错、配置异常、换行混乱的问题,都会少很多。

还没有评论,来说两句吧...