系统学习 学习路径总入口:先选领域,再建立模型,最后用故障演练验证

Linux 与 Windows 对照:命令映射、路径权限服务差异和迁移坑

结论先行

两者的差异不只在命令名,而在三个底层模型:Linux 以文本流和 POSIX 权限位为中心,Windows 以对象管道和 ACL 为中心;Linux 的服务由 systemd 管理,Windows 的服务由 SCM 管理;Linux 路径区分大小写并用 /,Windows 默认不区分并用 \。

迁移时先换模型,再换命令。会 ls 不等于会用 dir:dir 在 CMD 里输出文本,在 PowerShell 里却是 Get-ChildItem 的别名,输出的是文件对象。先判断自己在 CMD、PowerShell 还是 WSL 里,再决定用哪套语义。

命令对照表

用途 Linux Windows
列目录 ls dir
查看文件 cat type
文本过滤 grep findstr
查找文件 find Get-ChildItem -Recurse
复制 cp copy
移动/改名 mv move
删除 rm del
查找命令 which where
进程列表 ps tasklist
结束进程 kill taskkill
磁盘空间 df Get-PSDrive -PSProvider FileSystem
服务管理 systemctl sc
日志 journalctl Get-WinEvent
定时任务 crontab schtasks
地址配置 ip ipconfig
端口连接 ss netstat
DNS 查询 dig nslookup
远程登录 ssh ssh
权限 chmod icacls
属主 chown takeown
环境变量 export setx

路径差异

权限差异

服务差异

常见迁移坑

相关条目

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. dir 在 CMD 和 PowerShell 里分别是什么?为什么这会影响脚本迁移?
  2. Linux 的 chmod 777 为什么不能直接对应 Windows 的 icacls 授权?
  3. 把 shell 脚本从 Linux 搬到 Windows 后报 bash\r 错误,原因和修复方式是什么?
答案
  1. CMD 的 dir 是独立命令并输出文本;PowerShell 的 dir 是 Get-ChildItem 的别名,输出文件对象。迁移时要按所在 shell 重写过滤和输出逻辑。
  2. Linux 用模式位和 ACL,Windows 用继承的 DACL、共享权限和令牌;777 没有单一等价物,给 Everyone 完全控制还会影响网络访问和后续继承。
  3. 文件使用 CRLF 换行,Linux 把 \r 当成命令名的一部分;用 dos2unix 或 .gitattributes 转成 LF,并在编辑器里固定换行符。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令