Соответствие команд MS-DOS командам Linux

Dragokas

Angry & Scary Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
8,002
Решения
11
Реакции
6,776
[table=head]Команда MS-DOS|Аналог в Windows*|Команда Linux|Описание
ATTRIB|ATTRIB|chmod|Изменение атрибутов файла
BACKUP|нет|cpio, tar|Архивирование данных
CD|CD|cd|Переход в другой каталог
CLS|CLS|clear, reset|Очистка экрана
COMMAND|CMD|bash, csh, sh| Вызов командного интерпретатора (оболочки)
COPY|COPY, XCOPY, ROBOCOPY|cp, cat|Копирование файлов
CTTY, MODE|MODE|stty|Настройка параметров терминала
DATE|DATE|date|Изменение системной даты
DEL|DEL|rm|Удаление файла
DIR|DIR|dir, ls|Отображение списка файлов
ECHO|ECHO|echo|Вывод дубликата данных на экран
EDIT|нет|vi|Вызов текстового редактора
EXIT|EXIT|exit|Закрытие окна командной строки
FC|FC, COMP|cmp, diff, diff3, sdiff|Сравнение содержимого двух файлов
FDISK|DISKPART|fdisk|Создание разделов на винчестере
FIND|DIR|find|Поиск файла
FORMAT|FORMAT, DISKPART|mformat, mkfs|Форматирование диска, создание файловой системы
HELP|HELP, /?|apropos, man, whatis|Вызов справочной системы
MEM|SYSTEMINFO|free|Вывод информации об использовании оперативной памяти
MKDIR|MD, MKDIR|mkdir|Создание каталога
MORE, TYPE|MORE, TYPE|cat, less, more, xmore|Просмотр содержимого файла
MOVE|MOVE|mv|Перемещение файлов
PATH, SET|PATH, SET|env|Установка значений переменных окружения (указание путей к каталогам)
PAUSE|PAUSE|sleep|Пауза в работе
PRINT|PRINT, file.txt >PRN|Ipr|Вывод содержимого файла на печать
RENAME|REN, RENAME, MOVE|mv|Переименование файла
RMDIR|RD, RMDIR|rmdir|Удаление каталога
SORT|SORT|sort|Сортировка строк в текстовом файле
TIME|TIME, DATE|date|Изменение системного времени[/table]

* Аналог в Windows - подразумевается cmd.exe (интерпретатор командной строки Windows).

Примечание.
Если посмотреть внимательно, то можно заметить, что многие команды в Linux носят такое же имя, как и в MS DOS. Это следствие того, что у обеих операционных систем был общий предок — операционная система UNIX, да и в дальнейшем влияние на Linux оказывали новые идеи, применяемые в MS DOS/Windows.

Часть материала взята с источника.
 
Последнее редактирование:
А много ли таких команд которые неприменимы к противоположным версиям ОС?
Понятно,конечно,что sfc для Windows из под Linux не выполнить.

Но все таки есть ли команды несовместимые или даже противопоказанные для совместного использования в ОС?
А может есть наоборот полезные команды в Linux которых нет в Windows?
Преимущества?
 
Но все таки есть ли команды несовместимые или даже противопоказанные для совместного использования в ОС?
Не понимаю, о чем речь.
Понятно,конечно,что sfc для Windows из под Linux не выполнить.
sfc - это утилита, а не команда.
На самом деле половина приведенных здесь названий - это утилиты из %windir%\system32:
fc.exe, comp.exe, cmd.exe, attrib.exe, xcopy.exe, robocopy.exe, diskpart.exe, sort.exe, systeminfo.exe, print.exe, find.exe

При этом оболочка bash в Linux зачастую имеет гораздо больший функционал аналогов этих команд.
И отличный внутренний хелп по каждой. Именно поэтому есть народные умельцы, которые портировали утилиты из линукс в Windows:
1) UnxUtils (sourceForge - коллективная разработка)
2) UnixUtils (от Алексея Курякина) - почитайте обзор и примеры, скачать инсталлятор.

Я не большой знаток Linux, но в следующем обзоре я конкретизирую и расширю перечень, какие из команд cmd.exe являются внутренними, какие внешними утилитами.
 
Последнее редактирование:
* Аналог в Windows - подразумевается cmd.exe (интерпретатор MS-DOS).
Какая-то не правильная формулировка.
Интерпретатор DOS - это COMMAND.COM (или COMMAND.EXE, не помню уже точно) из Windows 9x.
А CMD.EXE - это интерпретатор командной строки Windows.

несовместимые или даже противопоказанные для совместного использования в ОС
Не совместимых полно. Главное отличие в ключах. В windows ключи начинаются со слеша, в POSIX-системах с тире (короткие ключи) или с двух тире (длинные ключи), например -h и --help. Если хочется большей совместимости по командам, то лучше использовать PowerShell-скрипты. Многие команды перекочевали в PowerShell из Linux. И формат ключей тоже. Но писать совместимые скрипты не получится, т.к. скрипты в Linux дают на выходе строку, которую нужно парсить, а команды PowerShell дают объекты, свойства которых можно смотреть и даже вызывать методы объектов.
Подход, когда программа на входе ждёт строку и отдаёт строку на выходе называется unix-way. Многие программы в Linux не делают всю работу сами, а просят сделать часть работы другие программы. Большинство GUI программ ни делают ни чего. Они позволяют пользователю ввести данные, потом передают эти данных на вход какой-нибудь программе (например в ping), а потом оформляют и показывают пользователю результат полученный на выходе программы. И таких программ которые ожидают, что они находятся в стандартном Linux-окружении не мало. Специально под них в windows придумали Сygwin. Cygwin - это набор программ и библиотек, позволяющий запускать Linux-скрипты под Windows. Недостаток CygWin это избыточность. Для простых задач вполне хватит и GnuWin32.
 
Какая-то не правильная формулировка.
Интерпретатор DOS - это COMMAND.COM (или COMMAND.EXE, не помню уже точно) из Windows 9x.
А CMD.EXE - это интерпретатор командной строки Windows.
Да я все крутил-крутил как по-короче, чтоб в таблицу вставить :confused:. В итоге докрутил. (исправлю).

От себя добавлю, что по синтаксису из одинакового и в Linux, и в Windows есть знак:
> перенаправление стандартного вывода для записи в файл (создание нового файла, если не существует).
>> перенаправление стандартного вывода для дозаписи в файл
2> перенаправить только поток ошибок.
команда < файл1 - перенаправить содержимое файла1 на вход команды
2>&1 - соединить поток ошибок со стандартным потоком вывода.
| канал - перенаправление вывода одной команды на вход другой.
команда1 && команда2 - команда2 выполнится только, если команда1 выполнится успешно (код=0)
команда2 || команда2 - команда2 выполнится только, если команда1 выполнится с ошибкой (код возврата не равен 0)

Есть аналоги, к примеру, знак:
& (амперсанд) в Windows - это знак ; (точка с запятой) в Linux
Код:
Команда1 & Команда2
Здесь выполняется команда1, после завершения работы которой будет выполнена команда2.

А вот прямой замены знаку & (из Linux-a) нет. Этот знак позволяет выполнить команду1 в фоне, и не ожидая завершения ее работы сразу же начать выполнение команды2. Придется делать так:
- для Windows:
Код:
start "" программа1 & программа2
::или
start "" cmd /c команда1 & команда2
- для Linux:
Код:
программа1 & программа2
# или
команда1 & команда2

Различия при заключении текста в кавычки: в Linux используют:
"имя"
'имя'
Различие в использовании символов ' и " состоит в том, что внутри одинарных кавычек теряют специальное значение все символы, а внутри двойных кавычек - все специальные символы кроме $, ' и \ (знака доллара, одинарных кавычек и обратного слэша).

А вот такие фишки работать не будут:
cd..
Две точки нельзя писать слитно.
 
Последнее редактирование:
В итоге докрутил. (исправлю).
Тогда исправь ещё строку про dir.
Во-первых не Is, а ls
А во-вторых, не "создание" (сравни с созданием каталога), а "показ" (отображение, вывод и т.п.)
 
Назад
Сверху Снизу