Windows 命令和 Linux 命令到底有什么区别?

平时写代码、部署项目或者折腾服务器时,经常会同时接触 Windows 和 Linux。
虽然两边很多操作逻辑类似,但命令风格、目录结构、系统习惯其实差别挺大。刚开始切换环境的时候,经常会出现“这个命令怎么不能用”的情况。

这篇文章就把 Windows和 Linux里常见的命令差异整理一下,尽量用比较容易理解的方式说明。


一、终端环境的区别

Windows 和 Linux 最大的差别,其实是默认终端环境不同。

对比项WindowsLinux
默认终端CMD、PowerShellBash、Zsh
大小写是否敏感一般不敏感敏感
路径写法\/
是否有盘符有(C盘、D盘)没有,统一从 / 开始
脚本格式.bat、.ps1.sh 或无后缀

比如在 Windows 里:

cd D:\blog

而 Linux 一般是:

cd /home/user/blog

另外,Linux 对大小写是严格区分的。

README.md
readme.md

在 Linux 里,这两个会被认为是不同文件。


二、文件和目录操作

日常最常用的基本就是文件操作,两边命令其实能一一对应。

功能Windows(CMD)Linux(Bash)
查看文件dirls -la
进入目录cdcd
当前目录cdpwd
创建文件夹mkdirmkdir -p
删除文件delrm
删除目录rmdir /Srm -rf
复制文件copycp
移动文件movemv
查看文件内容typecat
清屏clsclear

例如删除一个目录:

Windows:

rmdir /S test

Linux:

rm -rf test

很多人刚接触 Linux 时,最容易记混的就是 rm -rf。
这个命令删除后一般不会进回收站,所以执行之前最好确认一下路径。


三、文本处理

Linux 在文本处理这方面会更强一些,尤其适合日志分析、批量处理文件。

功能WindowsLinux
查找内容findstrgrep
排序sortsort
统计行数find /V /C ""wc -l
重定向>、>>>、>>
管道````

比如查找日志里的 error:

Windows:

findstr error log.txt

Linux:

grep error log.txt

如果只是简单使用,其实差距不大。
但 Linux 的命令组合能力会更强,很多复杂操作都能直接在终端完成。


四、网络相关命令

做开发或者运维时,经常需要查看 IP、测试网络或者检查端口。

功能WindowsLinux
查看网络配置ipconfigip addr
测试网络pingping
路由追踪tracerttraceroute
DNS 查询nslookupdig / nslookup
查看端口netstat -anoss -tlnp
下载文件curlcurl / wget
SSH 连接sshssh

查看本机 IP:

Windows:

ipconfig

Linux:

ip addr

现在 Windows 其实也逐渐开始内置很多 Linux 常用工具了,比如 curl 和 ssh。


五、进程和服务管理

系统管理时,经常会用到查看进程、结束进程这些操作。

功能WindowsLinux
查看进程tasklistps aux
结束进程taskkillkill
强制结束taskkill /Fkill -9
查看服务sc querysystemctl list-units
启动服务net startsystemctl start
停止服务net stopsystemctl stop

比如结束一个进程:

Windows:

taskkill /PID 1234 /F

Linux:

kill -9 1234

Linux 里很多服务管理都会通过 systemctl 完成,这也是现代 Linux 比较常见的方式。


六、系统信息查看

想看磁盘、内存或者系统版本时,两边也有不同命令。

功能WindowsLinux
系统信息systeminfouname -a
磁盘空间wmic logicaldiskdf -h
文件夹大小dir /Sdu -sh
内存信息wmic memorychipfree -h
当前用户whoamiwhoami

Linux 下比较常见的一个命令是:

df -h

可以直接查看磁盘使用情况,而且会自动转换为更容易阅读的单位。


七、环境变量

环境变量也是开发环境里很常见的一部分,比如配置 Java、Node 或 Python。

操作WindowsLinux
查看全部变量setenv
查看 PATHecho %PATH%echo $PATH
设置变量set VAR=valueexport VAR=value
删除变量set VAR=unset VAR

例如:

Linux:

export JAVA_HOME=/usr/local/java

Windows:

set JAVA_HOME=C:\Java

不过 Windows 里很多时候还是会直接在“系统环境变量”界面里配置。


八、脚本语法差异

Windows 和 Linux 的脚本语法区别还是比较明显的。

Windows 批处理:

@echo off
set name=World
echo Hello %name%!

Linux Shell:

#!/bin/bash
name="World"
echo "Hello $name!"

几个比较明显的区别:

功能WindowsLinux
变量引用%VAR%$VAR
注释REM 或 ::#
条件判断ifif [ ]
循环for %%ifor i in

整体来说,Linux Shell 的灵活度会更高一些。


九、几个容易踩坑的地方

1. 路径分隔符

Windows 用的是:

\

Linux 用的是:

/

虽然现在很多 Windows 工具也兼容 /,但最好还是按系统习惯写。


2. 空格路径

路径带空格时,两边都容易出问题。

Windows:

cd "C:\Program Files"

Linux:

cd /home/user/My\ Files

3. 换行符不同

Windows 默认是:

CRLF

Linux 默认是:

LF

所以有时候脚本在 Windows 能运行,放到 Linux 就会报错。
Git 一般可以通过下面这个配置自动处理:

git config --global core.autocrlf true

十、最后总结

如果只是日常使用,其实 Windows 和 Linux 的很多命令都能找到对应关系。

但 Linux 更偏向命令组合和自动化处理,而 Windows 更偏向图形化和系统集成。

刚开始不用强行死记,多用几次以后,自然就会形成习惯。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇