У Ubuntu есть bash (Bourne Again SHell), тогда как у Windows есть собственная оболочка. Согласно моим исследованиям, в Windows / Ubuntu нет названия для языка, используемого для сценариев оболочки. Это просто называется сценариями оболочки.
Почему для Windows и Ubuntu оболочки понимают одни и те же команды , такие как: ls
, mkdir
, rmdir
, mount
и так далее?
Есть ли какая-то лингва франка для сценариев оболочки? Если да, пожалуйста, дайте мне больше деталей.
command-line
bash
windows
history-of-ubuntu
Shady Programmer
источник
источник
ls
поддерживается Powershell, а неcmd.exe
. И это потому, что создатели Powershell приложили некоторые усилия, чтобы добавить псевдонимы для общих команд Unix, чтобы пользователям Unix было удобнее. technet.microsoft.com/en-us/library/dd347739.aspxAction-Object
структурой, состоящей из набора также стандартизированных действий и объектов. Например, обаls
иdir
являются псевдонимами дляGet-ChildItem
(которые дополнительно имеют псевдонимgci
),mkdir
иmd
фактически являютсяNew-Item
(которые на самом деле могут создавать гораздо больше, чем просто каталоги, благодаря объектно-ориентированному подходу PowerShell) и так далее.Ответы:
Для Windows
cmd.exe
не поддерживаетls
,mount
и т.д., если вы не установили их сами и добавили их к%PATH%
(через Cygwin, MinGW, подсистема для Unix-приложений (SUA) или что - то еще). Powershell делает. И это потому, что Powershell использует их как псевдонимы стандартных команд Powershell, чтобы пользователи Unix могли чувствовать себя более комфортно. Смотрите список псевдонимов совместимости в Powershell . Окна действительно естьrmdir
,mkdir
и т.д. , но это, конечно, не поддерживают один и тот же вариант синтаксиса , который вы найдете на Ubuntu.В Ubuntu это не имеет ничего общего с Bash. Это все внешние команды. Есть стандарты для таких утилит. POSIX является наиболее заметным (см. Список утилит, предусмотренных POSIX ), а Linux Standard Base (LSB) - еще одна, важная для систем Linux (которая в основном основана на POSIX, но имеет некоторые дополнения ). Те, что в Ubuntu, в основном предоставляются GNU , а утилиты GNU часто имеют больше возможностей, чем база, необходимая для POSIX.
POSIX также определяет язык оболочки, который вы упомянули (который существенно отличается от языка в
cmd.exe
). Он получен из синтаксиса оболочки Bourne . Bash (теперь вы знаете, на что опять ссылается Bourne ), также из GNU, также добавляет функции сверху, но может вести себя POSIX-совместимым образом, когда это необходимо. Язык POSIX - это то, что вы ожидаете получитьsh
.bash
,ksh
,ash
,dash
,zsh
Любое использование , что язык, с улучшениями.csh
находится в (кошмарном) собственном мире иtcsh
усиливаетсяcsh
.Чтобы понять немного больше, загляните в историю Unix и Unix-подобных систем. Unix предшествует Windows более чем на десятилетие, и эти утилиты впервые появились в Unix.
Когда-то Windows была POSIX-совместимой, поскольку правительство США требовало ее для операционных систем, используемых правительственными учреждениями (именно тогда они добавили службы для Unix (SFU) , из которых вышло SUA, упомянутое в первом абзаце). Но это требование было отменено, и впоследствии SUA был отменен.
Связанный:
(Обратите внимание на общую часть этих постов - все они посвящены Unix & Linux и истории тегов - вы можете найти просмотр этого тега очень информативным.)
источник
rmdir
(наряду сmkdir
иcd / chdir
) являются встроеннымиcommand.com
встроенными функциями начиная с MS-DOS 2.0 (ранее в файловой системе DOS не было иерархии)rd
был ярлыкmd
тоже.sh
.bash
,ksh
,ash
,dash
,zsh
Любое использование , что язык, с улучшениями.csh
находится в (кошмарном) собственном мире иtcsh
усиливаетсяcsh
. В свое время Windows подчинялась POSIX, так как правительство США требовало ее для операционных систем, используемых правительственными учреждениями (отсюда и появился SUA). Но это требование было отменено, и впоследствии SUA был отменен.Просто:
Linux - это система, основанная на модели UNIX, изобретенная Деннисом Ритчи и Кеном Томпсоном.
Windows / DOS - это дешевая подделка системы CP / M, которая была популярна в 1970-х годах на тех старых компьютерах, которые вы подключили к телевизору. Эта система, в свою очередь, была дешевой подделкой ранних систем UNIX конца 60-х - начала 70-х годов. ,
источник