CLI AI

Windows 命令在 Linux 里对应什么

2026-07-13

dir 就是 ls -l,type 是 cat,findstr 是 grep,ipconfig 是 ip addr,tasklist 是 ps aux,netstat -ano 是 ss -tulpn。完整对照表在下面,但对照只是简单的部分:真正让第一周难受的是大小写敏感、没有回收站,以及 CRLF 换行。

Windows Linux
dir ls -l
cd cd,再加 pwd 看自己在哪
type cat
findstr grep
copy / move / del cp / mv / rm
md / rd mkdir / rmdir
cls clear
tasklist / taskkill ps aux / kill
ipconfig ip addr
netstat -ano ss -tulpn
where command -v
systeminfo uname -a、/etc/os-release
shutdown /r reboot

1. dir → ls -l

clai
$ clai 列出这里的文件和大小→ ls -ltotal 12-rw-r--r--    1 root     root            23 Aug 27 15:38 hosts.csvdrwxr-xr-x    2 root     root          4096 Aug 27 15:38 logs-rw-r--r--    1 root     root            17 Aug 27 15:38 notes.txt

第一列是权限,开头的 d 表示目录。不带参数的 ls 只打印名字,-l 补上大小和日期,-a 显示以点开头的文件——这就是这里所谓的"隐藏文件"。

2. type → cat

clai
$ clai 显示 notes.txt 的内容→ cat notes.txtalphabetagamma

cat 会把整个文件倒出来。文件很长就用 less(按 q 退出),只要头尾就用 head 和 tail。

3. findstr → grep

clai
$ clai 在这个文件夹的所有文件里找 ERROR 这个词→ grep -rn "ERROR" ../logs/app.log:1:ERROR timeout after 30s

-r 会进入子目录,-n 打印行号。大小写是有区别的:ERROR 和 error 是两个词,不在乎的话加 -i。

4. ipconfig → ip addr

clai
$ clai 显示我的网卡 ip 地址→ ip addr show eth0122: eth0@if123: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP     link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0       valid_lft forever preferred_lft forever

inet 是 IPv4 地址,link/ether 是 MAC。网卡不一定叫 eth0:真机上可能是 enp5s0 或 wlan0,不带参数的 ip addr 会把它们全列出来。

5. tasklist → ps

clai
$ clai 显示正在运行的进程和它们的编号→ ps -o pid,commPID   COMMAND    1 sh   13 sleep   14 ps

裸的 ps 只显示你自己这个会话。完整列表是 ps aux,而 taskkill /PID 对应 kill <pid>。

6. netstat -ano → ss -tulpn

clai
$ clai 看看谁在监听 8099 端口→ ss -tulpn 'sport = :8099'Netid State  Recv-Q Send-Q Local Address:Port Peer Address:PortProcess                              tcp   LISTEN 0      5          127.0.0.1:8099      0.0.0.0:*    users:(("python3",pid=1027487,fd=3))

ss 取代了 netstat,新发行版已经不再自带后者。参数这样读:-t tcp,-u udp,-l 只看监听,-p 进程,-n 不做域名解析。Process 这一列就相当于 netstat -ano 里的 PID。

Gotchas

  • 哪里都区分大小写。 Notes.txt 和 notes.txt 是两个文件,LS 也不是命令。脚本"在我机器上是好的"的头号原因就是这个。
  • 没有回收站。 rm 立刻永久删除,del 至少还有个去处。执行 rm -r 之前,先用同样的通配符跑一次 ls 看看名单。
  • 在 Windows 上写的脚本跑不起来。 CRLF 换行会得到 bash: ./crlf.sh: /bin/sh^M: bad interpreter: No such file or directory,退出码 126。用 sed -i 's/\r$//' script.sh 修好,并把编辑器换成 LF。

Related questions

我用的是哪个版本? cat /etc/os-release 给出发行版和版本号,uname -srm 给出内核和架构。两者合起来相当于 systeminfo。

Program Files 在哪? 可执行文件在 /usr/bin,数据在 /usr/share,配置在 /etc,第三方软件常在 /opt。没有统一的程序文件夹。

资源管理器用什么代替? mc 在终端里提供双栏文件管理器,记得 Far 或 Norton Commander 的人会觉得亲切。

See also

CliAI 让你按原来的思路描述任务,并在执行前把 Linux 命令显示出来。一行安装。