Dos команды для linux

Обновлено: 07.07.2024

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

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

Часть материала взята с источника.

Кирилл

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

Но все таки есть ли команды несовместимые или даже противопоказанные для совместного использования в ОС?
А может есть наоборот полезные команды в Linux которых нет в Windows?
Преимущества?

Dragokas

Very kind Developer
Но все таки есть ли команды несовместимые или даже противопоказанные для совместного использования в ОС? Понятно,конечно,что 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). несовместимые или даже противопоказанные для совместного использования в ОС Не совместимых полно. Главное отличие в ключах. В windows ключи начинаются со слеша, в POSIX-системах с тире (короткие ключи) или с двух тире (длинные ключи), например -h и --help. Если хочется большей совместимости по командам, то лучше использовать PowerShell-скрипты. Многие команды перекочевали в PowerShell из Linux. И формат ключей тоже. Но писать совместимые скрипты не получится, т.к. скрипты в Linux дают на выходе строку, которую нужно парсить, а команды PowerShell дают объекты, свойства которых можно смотреть и даже вызывать методы объектов.
Подход, когда программа на входе ждёт строку и отдаёт строку на выходе называется unix-way. Многие программы в Linux не делают всю работу сами, а просят сделать часть работы другие программы. Большинство GUI программ ни делают ни чего. Они позволяют пользователю ввести данные, потом передают эти данных на вход какой-нибудь программе (например в ping), а потом оформляют и показывают пользователю результат полученный на выходе программы. И таких программ которые ожидают, что они находятся в стандартном Linux-окружении не мало. Специально под них в windows придумали Сygwin. Cygwin - это набор программ и библиотек, позволяющий запускать Linux-скрипты под Windows. Недостаток CygWin это избыточность. Для простых задач вполне хватит и GnuWin32.

Dragokas

Very kind Developer

Да я все крутил-крутил как по-короче, чтоб в таблицу вставить . В итоге докрутил. (исправлю).

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

Здесь выполняется команда1, после завершения работы которой будет выполнена команда2.

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

Структура каталогов и файлов в Linux очень сходна с той, которая используется в DOSWin. Фалы имеют имена, которые подчиняются специальным правилам и хранятся в каталогах, некоторые из файлов являются исполнимыми и у некоторых из них существуют ключи командной строки. Более того, вы можете использовать символы шаблонов, перенаправление и конвейеризацию. Есть только несколько небольших отличий:

  • в DOS, имена файлов хранятся в так называемом формате 8.3; например NOTENOUG.TXT . В Linux мы можем делать лучше. Если вы установили Linux, используя файловую систему, подобную ext2 или umsdos, то вы можете использовать более длинные имена файлов (до 255 символов), и с более чем одной точкой в имени: например, This_is.a.VERY_long.filename . Пожалуйста заметьте, что я использовал символы и верхнего и нижнего регистра: в действительности.
  • символы верхнего и нижнего регистра в именах файлов отличаются друг от друга. Поэтому FILENAME.tar.gz и filename.tar.gz являются разными файлами. ls является командой, а LS является ошибкой;
  • пользователи Windows, будьте осторожны при использовании длинных имен в Linux. Если имя файла содержит пробелы (не рекомендуется, но возможно), то вы должны заключить имя файла в двойные кавычки при обращении к нему. Например:

Файлы cjpg* и my_1st_script* являются исполнимыми, то есть ``программами''. В DOS, файлы резервных копий заканчиваются на .BAK , тогда как под Linux они заканчиваются на знак тильды `

Вы можете теперь перепрыгнуть к разделу Перевод команд из DOS в Linux, но я надеюсь, что вы будете читать дальше.

В UNIX имеется тип файлов, которых нет в DOS: символьные ссылки. Он может быть описан как ссылка на файл или каталог и может быть использован вместо файла или каталога, на который она указывает; они сходны с ярлыками в Windows. Примером символьный ссылки может быть /usr/X11 , которая указывает на каталог /usr/X11R6 , или /dev/modem , который указывает либо на /dev/ttyS0 либо на /dev/ttyS1 .

Для того, чтобы создать символьную ссылку, используется команда:

Теперь вы можете ссылаться на g77manual.txt вместо /usr/doc/g77/DOC . Ссылки показываются следующим образом в списке файлов каталога:

Файлы и каталоги DOS имеют следующие атрибуты: A (архивный), H (скрытый), R (только чтение) и S (системный). В Linux только H и R имеют значение: скрытые файлы начинаются с точки, а для того чтобы задать атрибут R, читайте дальше.

В UNIX файл имеет ``права доступа'' и ``владельца'', который относится к ``группе''. Посмотрите пример:

Первое поле содержит права доступа к файлу /bin/ls , который принадлежит пользователю root, группы bin. Опуская другую информацию, запомните, что означает -rwxr-xr-x , слева направо:

- это тип файла ( - = обычный файл, d = каталог, l = ссылка, и т.д.); rwx являются правами доступа для владельца файла (чтение, запись, выполнение); r-x являются правами доступа для группы, к которой относится владелец файла (чтение, выполнение); (Я не хочу делать обозрение концепции групп, вы можете выжить без нее, поскольку вы начинающий пользователь ;-) r-x являются правами доступа для всех остальных пользователей (чтение, выполнение).

Каталог /bin тоже имеет права доступа: смотрите раздел Права доступа к каталогам для дополнительной информации. Вот поэтому вы не можете удалить файл /bin/ls до тех пор, пока не станете пользователемroot: вы просто не имеете прав сделать это. Для изменения прав доступа к файлу используется команда:

где who---это u (пользователь, который является владельцем), g (группа), o (остальные), X---это либо + , либо - , perm---это r (чтение), w (запись), или x (выполнение). Вот общие примеры использования команды chmod :

устанавливает право на выполнения данного файла.

удаляет право на чтение и запись для всех, кроме владельца файла.

дает всем права на чтение, запись и выполнение.

делает так называемый ``setuid'' или ``suid'' файл---файл, который любой может выполнять с привилегиями владельца. Обычно, это применяется к файлам, владельцем которых является root; часто это важные системный файлы, такие как X-сервер.

Более коротким способом для ссылки на права доступа является использование цифрового обозначения: rwxr-xr-x может быть выражен как 755 (каждый символ соответствует биту: --- равен 0, --x равен 1, -w- равен 2, -wx равен 3. ). Это выглядит трудным, но, немного попрактиковавшись, вы поймете концепцию. root, будучи администратором, может изменять права доступа на файлы любого пользователя. RMP.

На левой стороне находятся команды DOS; справа их аналоги в Linux.

Операторы перенаправления и конвейеризации: < > >> |

устройство nul: /dev/null

Устройства prn, lpt1: /dev/lp0 or /dev/lp1; lpr

Примеры

Для запуска программы просто наберите ее имя, так как вы делали это в DOS. Если каталог (Раздел Использование каталогов), где находится программа, находится в переменной среды PATH (Раздел Файлы инициализации системы), то программа будут запущена. Исключение: в отличии от DOS, в Linux программа, расположенная в текущем каталоге, не будет запускаться до тех пор, пока вы не включите этот каталог в PATH. Предупреждение: если prog это ваша программа, то наберите ./prog для ее запуска из текущего каталога.

Типичная командная строка выглядит примерно так:

где -s1 , . -sn являются ключами программы, а par1 , . parn являются параметрами программы. Вы можете запустить несколько команд из одной командной строки:

Это все о запуске программ, но теперь легко сделать следующий шаг. Одна из основных причин использования Linux---это то, что она является многозадачной операционной системой---она может выполнять разные программы (с этого места мы будем называть их процессами) одновременно. Вы можете запускать процессы в фоновом режиме и продолжать работать. Более того, Linux позволяет вам иметь несколько сеансов работы: Это подобно наличию множества компьютеров на одном!

  • Для того,чтобы переключится в сеанс 1..6 на виртуальных консолях, нажмите <ALT-F1> . <ALT-F6>
  • Для запуска нового сеанса в той же самой виртуальной консоли без выхода из нее, наберите su - <loginname> . Пример: su - root . Это полезно, например, когда вам надо выполнить задачу, которую может выполнить только root.
  • Для окончания сеанса работы наберите exit . Если у вас есть приостановленные задания (смотрите дальше), то вас предупредят.
  • Для запуска процесса в фоновом режиме, добавьте знак амперсанда ' & ' в конец командной строки:

Используя эти команды вы можете форматировать диск, сжимать кучу файлов, компилировать программу и разжимать архив в одно и тоже время и все равно иметь командную строку для своих нужд. Попробуйте сделать это в Windows, просто чтобы посмотреть разницу в производительности (конечно, если он не рухнет).

Для запуска программы на удаленной машине, чьим именем является remote.machine.edu :

Если у вас есть X11, вы даже можете запустить приложение для X на удаленной машине, отображая его на вашем экране X Windows. Допустим, что remote.machine.edu > -- это удаленный компьютер с X и допустим, что local.linux.box -- это ваша машина с Linux. Для запуска с local.linux.box программы для X, которая расположена на remote.machine.edu , выполните следующее:

    запустите X11, запустите xterm или подобный эмулятор терминала, затем наберите:

Необходимость запуска DOS-приложений под Linux возникает нечасто, но случается. Вот как-то и со мной случилось, решил поделиться опытом, может, кому пригодится.

А нужно было запустить кем-то, когда-то написанное приложение для поликлиники, работающее на Foxpro под DOSом, в Linux, т.к. денег на покупку Windows лицензий не нашлось.

Исходные данные:
Suse Linux Enterprise Desktop 10.3 — рабочие станции.
Suse Linux Enterprise Server 10.3, на нем шара на Samba (я же до этого и расшаривал для работы с Windows рабочих станций, т.к. на лицензию для Win-сервака тоже денег не было), имя шары, как ни странно, — SHARE.
Происходило всё 2-3 года назад, поэтому версии SLED и SLES на момент установки были не такие уж и древние.

Т.к. сервер уже настроен, то все нижеописанные манипуляции производим на десктопе.
Ставим из репозитория, или отдельно скачиваем dosemu-xxx.rpm.

Ещё нам понадобятся кириллические шрифты (далее по тексту папка XFonts), не помню уже где я их взял, приложу в архиве к статье.

Создаём папку, куда смонтируем шару, прописываем монтирование в fstab и монтируем:небольшое пояснение: 192.168.0.130 — IP сервера, user и userpassword берём из пользователей на сервере, которым разрешён доступ к Samba-шаре.

Дальше копируем шрифты:прописываем папку подобно остальным шрифтам в файле /etc/X11/xorg.conf, и добавляем их в систему командой:

В /etc/dosemu.conf добавляем или изменяем в соответствующих разделах следующие опции (у меня в итоге только эти опции и остались):

Делаем первый запуск, командем:получим фигвам, потому что нет файла lin.bat, исправляем созданием в домашней директории, в папке .dosemu/drive_c (папка создаётся при первом запуске эмулятора) этого файла с вышеприведённым содержанием.

Ещё раз запускаем dosemu и вуаля, наша досовская прога работает, показывает текст на русском языке и даже распечатывает под Linux.

Мои изыски относились к определённой программе, но, думаю, таким способом, с заменой путей и имён файлов, запустятся если не все, то многие приложения работающие под DOS.

Вы решили перейти к использованию операционной системы Linux? Хорошая идея, но хочу предупредить: она может оказаться бесполезной для Вас. Потому, что не существует "идеального компьютера" или "идеальной операционной системы" — все зависит от того, что Вы собираетесь делать с этим компьютером и этой операционной системой, какие задачи Вы решаете с их помощью. Вот почему я не верю, что Linux является идеальным решением для любого пользователя, даже если у него уже есть богатый опыт работы с другими платформами. Вы сразу оцените достоинства Linux, если Вы нуждаетесь в приложениях для разработки программ, работы в сети Интернет или хорошем редакторе, например, таком, как ТеХ.
Linux пока еще не так прост в использовании и настройке, как Windows или MacOs, так что приготовьтесь к роли хакера. Но не забывайте, что Linux и MS DOS с Windows могут мирно сосуществовать на одном компьютере.

Не отчаивайтесь. Вы уже почти готовы к тому, чтобы делать все то, что Вы делали с операционной системой MS DOS, плюс много чего еще. Когда Вы работали с DOS, Вы имели возможность выполнять следующие задачи:
— запуск программ, а также создание, копирование, просмотр, удаление, вывод на печать, переименование файлов.
— создание, удаление, просмотр содержимого и переключение между каталогами.
— форматирование дискет и перемещение файлов между носителями.
— редактирование файлов AUTOEXEC.BAT и CONFIG.SYS.
— создание своих.BAT файлов и простейших программ на Бэйсике.
— . ну и еще 1% всех оставшихся возможностей.

$ ls -F
letter_to_Joe
cindy.jpg
cjpg*
I_am_a_dir/
my_1st_script*
old

— Файлы cjpg* my_1st_script* являются выполнимыми — программами. В DOS файлы резервных копий имеют расширение.BAK, в Linux эти файлы заканчиваются символом "тильда" — "

". Файлы, имена которых начинаются с точки, воспринимаются системой как скрытые, они не отображаются в стандартных листингах содержимого каталогов, а только при использовании специального параметра команды "ls".
— В DOS программам могут передаваться параметры, отделяемые символом "слэш" — "/switch", в Linux подобную роль играют другие символы: -switch —switch. Например, команда "DIR /s" превращается в команду "ls -R". Некоторые DOS программы, такие, как PKZIP, ARJ, воспринимают аргументы в стиле UNIX.

Символьные ссылки
В UNIX есть тип файлов, который отсутствует в DOS: символьные ссылки. Они служат указателями на файлы или каталоги и могут использоваться вместо объектов, на которые они указывают. Это аналоги "ярлыков" (или shortcut) Windows95. Примерами таких ссылок служат файлы /usr/X11, указывающий на /usr/X11R6; /dev/modem, который указывает на файл /dev/cua0 или /dev/cua1.

Чтобы создать символьную ссылку, введите команду:
$ ls -s <file_or_dir> <linkname>
Пример:
$ ls -s /usr/doc/g77/DOC g77manual.txt
Теперь Вы можете работать с файлом g77manual.txt вместо файла /usr/doc/g77/DOC.
Атрибуты разрешения доступа и принадлежности владельцу файлов
Файлы и каталоги в MS DOS могут иметь следующие атрибуты: A (архивный), H (скрытый), R (доступ только по чтению) и S (системный). Только атрибуты H и R имеют свои аналоги в Linux: имена скрытых файлов начинаются с точки, а что касается режимов доступа к файлам, хочется рассказать о них подробнее.

В ОС Linux каждый файл имеет атрибуты "разрешения доступа" для владельца этого файла, для пользовательской группы, к которой относится владелец, и для "всех остальных пользователей". Рассмотрим пример:
$ ls -l /bin/ls
-rwxr-xr-x 1 root bin 27281 Aug 15 1995 /bin/ls*
Первое поле листинга содержит набор разрешений доступа к файлу /bin/ls, который принадлежит пользователю root, группе bin. Оставим без внимания всю информацию, кроме символов -rwxr-xr-x, которые обозначают слева направо:
"-" это тип файла ("-" = обычный файл, "d" = каталог, "l" = ссылка, и т.д.); "rwx" — это набор разрешений доступа для владельца файла (по чтению, записи и выполнению); "r-x" — набор разрешений доступа для группы владельца файла (по чтению и выполнению) и "r-x" — набор разрешений доступа для всех пользователей (по чтению и выполнению). Я не буду здесь описывать понятие пользовательских групп в UNIX, даже новичок может самостоятельно разобраться с этим, ознакомившись с документацией по системе. Вот почему Вы не сможете удалить файл /bin/ls, если Вы не являетесь пользователем root, у Вас нет разрешения на подобные действия. Для изменения атрибутов разрешений доступа файлов служит команда:
$ chmod <whoXperm> <file>
где who может означать: u (пользователь, являющийся владельцем файла), g (группа), o (остальные пользователи), X — заменяется на "+" или "-" (включить или отключить), а perm — это режим доступа: r (чтение), w (запись), x (выполнение). Например:
$ chmod u+x file
устанавливает разрешение на выполнение файла file для его владельца. Теперь этот файл может выполняться операционной системой.
$ chmod go-wx file
убирает разрешение по записи и выполнению для всех кроме владельца файла.
$ chmod ugo+rwx file
дает разрешение всем-всем-всем на чтение, запись и выполнение указанного файла, "зеленая улица".
$ chmod +s file
а вот это так называемый "setuid" или "suid", после установки этого атрибута каждый пользователь, запустивший на выполнение такую программу, получает все права и привилегии пользователя-владельца этого файла (даже системного администратора root. ) на время выполнения программы. Разумеется, этот атрибут устанавливается для исполняемых файлов — программ или скриптов. Атрибуты разрешений доступа могут быть представлены и в цифровом, восьмеричном формате, например, -"rwxr-xr-x" будет эквивалентно "755", на первый взгляд непривычно, но зато короче! Каждой букве соответствует определенный бит: "—-" = 0, "—х" = 1, "-w-" = 2, "-wx" = 3. и т.д. Немного практики — и Вы поймете основную концепцию. Не следует забывать, что только супервизор системы, пользователь root может менять атрибуты разрешений доступа у ВСЕХ файлов и каталогов на диске компьютера. Каждый отдельно взятый рядовой пользователь властен только над своими файлами.

Команды в DOS и Linux
В левой колонке — команды DOS, в правой — их аналоги в Linux:
COPY cp
DEL rm
MOVE mv
REN mv
TYPE more, less, cat
Операторы перенаправления и программные каналы: < > >> |
Маски для имен файлов: * ?
nul: /dev/null
prn, lpt1: /dev/lp0 или /dev/lp1; lpr
Примеры:

Компьютерная газета. Статья была опубликована в номере 04 за 1999 год в рубрике soft :: unix

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

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

Часть материала взята с источника.

Кирилл

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

Но все таки есть ли команды несовместимые или даже противопоказанные для совместного использования в ОС?
А может есть наоборот полезные команды в Linux которых нет в Windows?
Преимущества?

Dragokas

Very kind Developer
Но все таки есть ли команды несовместимые или даже противопоказанные для совместного использования в ОС? Понятно,конечно,что 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). несовместимые или даже противопоказанные для совместного использования в ОС Не совместимых полно. Главное отличие в ключах. В windows ключи начинаются со слеша, в POSIX-системах с тире (короткие ключи) или с двух тире (длинные ключи), например -h и --help. Если хочется большей совместимости по командам, то лучше использовать PowerShell-скрипты. Многие команды перекочевали в PowerShell из Linux. И формат ключей тоже. Но писать совместимые скрипты не получится, т.к. скрипты в Linux дают на выходе строку, которую нужно парсить, а команды PowerShell дают объекты, свойства которых можно смотреть и даже вызывать методы объектов.
Подход, когда программа на входе ждёт строку и отдаёт строку на выходе называется unix-way. Многие программы в Linux не делают всю работу сами, а просят сделать часть работы другие программы. Большинство GUI программ ни делают ни чего. Они позволяют пользователю ввести данные, потом передают эти данных на вход какой-нибудь программе (например в ping), а потом оформляют и показывают пользователю результат полученный на выходе программы. И таких программ которые ожидают, что они находятся в стандартном Linux-окружении не мало. Специально под них в windows придумали Сygwin. Cygwin - это набор программ и библиотек, позволяющий запускать Linux-скрипты под Windows. Недостаток CygWin это избыточность. Для простых задач вполне хватит и GnuWin32.

Dragokas

Very kind Developer

Да я все крутил-крутил как по-короче, чтоб в таблицу вставить . В итоге докрутил. (исправлю).

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

Здесь выполняется команда1, после завершения работы которой будет выполнена команда2.

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

Читайте также: