Могу ли я запустить bash внутри Windows и PowerShell в Linux?
пьютерах, вы, вероятно, слышали о Linux Bash и Microsoft PowerShell. Оба эти явления повсеместно встречаются в жизни профессионалов, специализирующихся на любой операционной системе. Однако, если вы не проживаете свою повседневную жизнь перед приглашением оболочки, вы, вероятно, не задумывались о том, как они будут сравниваться. В таком случае сейчас лучшее время для обучения!Что такое PowerShell
Microsoft представила Powershell в 2006 году как интерфейс командной строки, работающий поверх универсальной и мощной среды сценариев. Он был разработан, чтобы помочь администраторам Windows создавать небольшие приложения, использующие «командлеты» (официально известные как «командлеты») для автоматизации знач
Contents
Что такое PowerShell
/p>Что еще более важно, его структура команд и возможность создания сценариев представляют собой полную переработку старой MS-DOS, на основе которой изначально была создана Windows. Он имеет более единообразный синтаксис и способ представления информации, к которому легко привыкнуть и использовать код.
Это не предназначено для замены командной строки Windows, к которой привыкло большинство людей, а вместо этого дополняет ее собственными функциями автоматизации и настройки. Например, если вы пытаетесь управлять службой Microsoft Azure в облаке, теперь вы можете сделать это с помощью команды Connect-AzAccount
вместо использования сеанса удаленного рабочего стола.
Как и Bash, PowerShell полностью проверяем, что позволяет использовать его в очень чувствительных средах, где крайне важно знать все, что происходит внутри системы.
Совет. Если вам интересно, командная строка и Powershell — это не одно и то же. Вот различия между командной строкой и Powershell .
Что такое Bash
Bash — это дедушка 1989 года, который остается актуальным в средах Linux, несмотря на все причудливые ракушки , которые пытались его затмить. Как и PowerShell, Bash предоставляет среду, с помощью которой можно гораздо проще писать сценарии для автоматизации администрирования.
Поскольку структура и синтаксис команд широко распространены в различных дистрибутивах Linux, БСД и даже в macOS, многие разработчики привыкли использовать Bash в качестве инструмента для организации своих проектов.
Хотя Bash содержит базовый набор операций, позволяющих писать сценарии и передавать информацию через терминал, почти каждая команда, которую вы вводите в терминал с помощью этой оболочки, представляет собой отдельную программу. Например, Bash не включает команды ls
(список файлов) или cat
(объединить или показать выходные данные файла), а вместо этого ищет исполняемые файлы одного и того же файла. имя в указанных путях.
Powershell и Bash: различия
PowerShell и Bash могут показаться похожими, когда вы впервые научитесь их использовать, но по сути это совершенно разные звери с философией дизайна, которая иногда
Что такое Bash
орые очень важные особенности, которые отличают их:1. Контроль доступа пользователей
Если вы когда-нибудь захотите сделать что-то административное с помощью Bash, все, что вам нужно сделать, это предшествуйте вашей команде с помощью sudo . Как только команда будет выполнена, вы сразу же вернетесь в оболочку пользователя. Выполнение корневой команды оставляет меньше места для ошибок и заставляет вас проверять, что вы делаете.
С другой стороны, PowerShell может работать только в административном или пользовательском режиме. Если вы хотите переключиться между ними, вам придется открыть новый сеанс. Чтобы открыть PowerShell в административном режиме, необходимо щелкнуть правой кнопкой мыши значок программы и выбрать «Запуск от имени администратора». Альтернативно, в рамках одного сеанса терминала вы можете просто ввести Start-Process powershell -verb runAs
, и откроется второй сеанс с правами администратора.
2. Вывод
Когда вы вводите команду в Bash, вы по сути запускаете отдельную программу, и этот исполняемый файл даст вам желаемый результат. Форматирование вывода зависит от того, как разработчик конкретной программы хотел его отформатировать.
Здесь много гибкости, и это здорово, но недостатком является отсутствие единообразия.
Вывод команды в PowerShell обычно форматируется в соответствии с одним унифицированным стандартом. Текст, который вы видите на экране, представляет собой удобочитаемую версию данных, которую можно интерпретировать другими программами.
Это позволяет людям, пишущим сценарии и приложения, просто использовать собственные функции и команды PowerShell для получения всей необходимой информации.
3. Синтаксис
Bash использует уникальный синтаксис (например, if [condition]; then code here; fi
), который обычно не встречается
Powershell и Bash: различия
к уж сложно использовать, но он может показаться немного необычным для тех, кто только начинает учиться писать сценарии.Что касается пользовательских команд, то здесь нет четкого единообразия. Каждая программа имеет свой собственный синтаксис команд. Вы должны знать, как их использовать, прежде чем сможете интегрировать их в свой bash-скрипт.
Синтаксис сценариев PowerShell аналогичен синтаксису любого др
1. Контроль доступа пользователей
condition) { ...code here... }). Для людей, привыкших к разработке в рамках собственной экосистемы Microsoft, практически не требуется обучения.Пользователь команды имеют жесткую структуру : глагол, за которым следует тире, а затем существительное. Например, Get-ChildItem
выведет список всех файлов в текущем каталоге. Команды, не специфичные для PowerShell, по-прежнему могут иметь структуру, аналогичную Bash. Если вы используете его в Linux, вы все равно сможете выполнять любую команду Linux.
4: Гибкость
Если вы освоите Bash, вы будете знать, как работать с терминальными средами бесчисленных дистрибутивов Linux, экосистемой BSD и даже macOS. Это, безусловно, король универсальности. Хотя macOS перешла на зш в 2019 году, в ее основе все еще сохраняется дух Bash.
PowerShell может работать практически в любой операционной системе, но в первую очередь он предназначен для работы вместе с собственными продуктами Microsoft. Если вы его используете, скорее всего, вы делаете это в Windows.
Если все, что вы изучите, — это соглашения, специфичные для PowerShell, вы, по сути, застрянете на острове с продуктами Microsoft. Хотя это не обязательно так, нельзя избежать того факта, что оболочка по-настоящему блестит только в этой ситуации. Однако что касается недостатков, то на их долю приходится огромная доля мирового рынка настольных компьютеров.
Часто задаваемые вопросы
Чтобы запустить bash в Windows, просто установите Подсистема Windows для Linux , запустив командную строку от имени администратора и набрав wsl --install
. После завершения установки вы получите мгновенный доступ к командам bash.
PowerShell внутри Linux немного сложнее и зависит от дистрибутива. Microsoft включает инструкции на своем веб-сайте для установки PowerShell в самых популярных дистрибутивах. Вы можете заметить, что Arch Linux отсутствует в этом списке, но он существует в виде пакета powershell
в AUR.
Нужен ли мне Bash в Windows?
Не обязательно, но это вам очень поможет, если вы планируете использовать некоторые вещи, предназначенные больше для Linux (Python, Git и т. д.). Наличие этого не повредит. Использование подсистемы Windows для Linux для установки Bash также позволяет вам экспериментир
3. Синтаксис
кой Linux, что является отличным способом познакомиться с операционной средой, если вы с ней не знакомы.<раздел class="sc_fs_faq sc_card ">
Работают ли команды Windows DOS в PowerShell?
Обычно так и есть. PowerShell не является заменой исходной командной строки Windows. Вместо этого это слой, который работает поверх него, обеспечивая новые функциональные возможности. Вероятно, вы ничего не упустите, если просто будете использовать PowerShell вместо проверенного cmd.exe.