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 — прямой аналог PID из netstat -ano.

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 до запуска. Поставить одной строкой.