Microsoft открыла исходный код PowerShell

  • Новость


Расширяемое средство автоматизации и конфигурирования PowerShell, состоящее из оболочки с интерфейсом командной строки и сопутствующего языка сценариев на базе .NET Framework, теперь доступно под Linux и OS X. Сегодня компания Microsoft открыла репозиторий на Github, в котором опубликовала исходный код PowerShell.

Для начала опубликованы пакеты PowerShell для Ubuntu, Centos и Red Hat.

Инструкции для настройки рабочего окружения:


Установка PowerShell в Ubuntu 16.04 осуществляется следующей командой:

sudo apt-get install libunwind8 libicu55
sudo dpkg -i powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb

Установка в OS X 10.11:

sudo installer -pkg powershell-6.0.0-alpha.9-osx.10.11-x64.pkg -target /

Вдобавок Microsoft выпустила библиотеку PowerShell Editor Services, чтобы PowerShell работал с любым сторонним редактором кода (например, VS Code или Sublime).

Microsoft также обещает доработать протокол PowerShell Remoting Protocol (MS-PSRP) для использования OpenSSH как нативного транспортного протокола. У пользователей будет выбор между SSH и WINRM.

В официальном блоге написано, что на такой шаг компания пошла в рамках общей стратегии "Microsoft loves Linux". Компания старается придерживаться этого принципа во всём: почти треть виртуальных машин в облаке Azure работают под Linux, ранее компания уже выпустила SQL Server под Linux, а также открыла исходный код .NET. Microsoft также активно участвует в различных Open Source проектах, в том числе OpenSSH, FreeBSD, Mesos, Docker, Linux и других.

Исходный код PowerShell опубликован под лицензией MIT.
Поделиться публикацией
Комментарии 365
    +40
    Наконец-то нормальный шелл! Прощай, bash!
      +4
      Почему прощай? Его же запилили в Windows 10. Уверен, будет и в Windows Server 2016.
      Рокировочка-многоходовочка.
      Такое чувство, что Майкрософт хочет из Windows сделать Linux и из Linux сделать Windows.
        0
        Microsoft хочет заманить не .Net разработчиков на свою платформу. Потому что ресурса своих для наполнения стора UWP-приложениями уже недостаточно.
          0
          Microsoft хочет заманить всех разработчиков в своё облако и стричь купоны
            0
            Не совсем понятно, при чем тут юайный стор к скриптам powershell?
              0
              Я говорил про платформу в целом. PS работает на .NET с ней так или иначе сталкиваются разработчики под винду. Вот сейчас можно познакомиться с ним в родном окружении.

              Ну и как ниже писали, nugget'ы часто используют PS для развёртки. Так что это нужно для разработки на .NETCore, ASP.Net Core. А там и до разработки для виндового магазина недалеко
            +2
            Если у вас нету в команде человека, который знает баш — вам конец. Если у вас нету человека, который знает шеллскрипт — он его за полчаса узнает.
              +5
              Смотря в какой команде. Я вот не знаю баш (хотя и пользуюсь когда вынуждает кривой UI) и как-то живу.
                +1
                Да, смотря в какой. Но если вы пишите миддлваре или еще что-нибудь. А у вас тонны баш-легаси. То потерять человека — смерть. А если тонны повершелл-легаси, то его выучит любой питонист.
                  0
                  ну, в этом смысле, похоже что да. Баш команды иногда такие, что мозг выносят и маны не помогают :(
                0
                ога, знаешь bash иди ibash
                  +3
                  Что является мощным таким плюсом в пользу шеллскрипта, не?)
                    0
                    Или в пользу — учи и пиши сложные тулзы на python, а не извращайся с bash, потому что не знаешь python.
                  0
                  У меня довольно давно на эту тему есть конспирологическая теория — в Майкрософт в какой-то момент осознали бесперспективность и бессмысленность дальнейшего развития ядра Windows, и планируют постепенно перетащить свои успешные продукты (desktop, Office, Sql Server, .Net и т.д.) на ядро Linux. Пойти, так сказать, по стопам Эппл.

                  Раньше все коллеги смеялись в голос, когда я эту мысль вбрасывал, но с каждой следующей подобной новостью смеха всё меньше. :)
                    0
                    Ну не совсем верно, десктопная версия никуда не денется — очень много бизнес-приложений написано под Windows и переделывать их никто не собирается. Другое дело с серверной частью. Есть вполне сформировавшееся ощущение что MS готовит переход к частному облаку как инфраструктуры на базе либо Docker (что вероятнее), либо вообще стека Euqalyptus, где будет совершенно не важно на чем работает нода, Linux или Windows. Скорее всего Серверная часть со всеми сервисами будет постепенно мигрирована на Linux контейнеры, включая такие вещи как AD и Exchange/Lync. Подвижки в этом направлении уже есть. Тем более зная кто сейчас рулит компанией, думаю стратегия угадана примерно правильно.
                      0
                      Так натянуть Win32 на ядро Linux для MS никакой проблемы нет. Как известно, это даже энтузиасты без доступа к исходникам смогли почти полностью сделать.
                        0
                        Так и обратное пилят.
                          0
                          А вы ссылкой не поделитесь? В гугле трешь, угар и содомия одна выходит по такому запросу…
                            0
                            Ссылку на Wine? Серьёзно?
                              –1
                              Я уж было подумал что что-то интересное есть… А тут вайн (:
                        0
                        Согласен.
                        По поводу офисных продуктов — очень надеюсь на выход OneNote для Linux
                          +2
                          Я иногда троллил красноглазиков, что если вендекапец и наступит, то ледоколом революции будет Microsoft Linux.
                          А они в ответ раньше издевались, а теперь бесятся.
                            0

                            Будет проприетарный Microsoft Linux и открытый ReactOS :)

                          0
                          Они хотят зарабатывать деньги. Все остальное — вторично.
                          +9
                          Напишите статью про сравнение shell, в том числе, bash и PowerShell, иначе ваше заявление голословно. А то вас плюсуют не за хер собачий.

                          И заминусуйте меня в пух и прах, но PowerShell в Linux как на корове седло. Осталось за малым, добавить в Linux немного AD'a и системный реестр, чтобы оптимизировать systemd.
                            +5
                            Не можете в курсив, да? Это стеб такой, если что :)
                              +3
                              Линуксоиды понимают, что это стёб, и плюсуют.
                              Виндовозники не считывают иронию, и тоже плюсуют.
                              win-win.
                              0
                              Просто вас задевает тот факт, что майкрософт, которые конкурируют с линуксом, выпускают туда рабочие продкуты. А вы не коммитили ни в один репозиторий, хотя кричите про открытое ПО.
                                +1
                                Очень уж толсто, даже для хабра.
                                0
                                PowerShell куда больше, чем просто Shell, это, по-сути, язык. Вы можете писать полноценные приложения, с GUI, на нем, с загрузкой DLL и вызовом функций из них.
                                  0
                                  Простите, а зачем? Для тех же целей есть гораздо более подходящие языки.
                                    +1
                                    Вполне удобный инструмент для кастомизируемой на полную катушку автоматизации. Можно, конечно и не использовать UI, но подгрузка DLL может выручить.
                              –8
                              ха ха ха
                                +3
                                Круто! А зачем?
                                  –2
                                  Уже просто не знают через какую дырку влезть в линукс
                                    +21
                                    Так говорите, будто это что-то плохое.
                                    .NET Core, ASP.NET Core и тёплый, ламповый C# на линуксах, ещё и open sourced — как по мне, одна из лучших штук, случавшихся с Microsoft.
                                      0
                                      МС очевидно хочет подтолкнуть девелоперов пишущих для линукса, посмотреть и подключиться/переключиться к девелопменту для МС. А хорошо ли это, и кому хорошо — покажет время.
                                        +2
                                        скорее наконец разрешила dotnet разработчикам работать с линукса
                                        –1
                                        Без WPF WCF workflow там много не нагреешься, будь эти лампы хоть горячими…
                                        Всё есть маркетинг
                                          +1
                                          WPF довольно нишевый. Сейчас тренд уходить в веб и облака. Только крупные коробочные продукты нуждаются в standalone desktop приложениях. Workflow тем более. WCF из вашего списка вроде как самый востребованный из всех перечислкенных.

                                          Но хочется надеятся, их потуги в сторону open source не накроются медным тазом, как это с мобилками случилось.
                                            0
                                            Клиентская часть WCF уже доступна под linux — https://github.com/dotnet/wcf
                                            Серверную часть обещают тоже.
                                            +1
                                            Без WPF
                                            Пилим
                                              0
                                              Может вам пригодится https://github.com/Appercode/Appercode.UIFramework
                                                0
                                                Ввиду того что является обёрткой над нативными контролами бесполезен при наличии живых Xamarin.Forms и eto.Forms
                                                  0
                                                  Ну да, писался когда XF ещё не имел своего имени и был закрытым от посторонних проектом :) Сейчас уже все преимущества пали перед последней версией XF. ну, кроме синтаксиса, наверное.
                                          +3
                                          А это был бы реально крутой план. Сначала в этом .deb пакете случайно оказывается телеметрия, котору «забыли выключить». А потом и GWX.
                                            +6
                                            Вы так говорите как будто в той же убунте нет телеметрии по умолчанию
                                              +2
                                              Уже нет. Сообщество кипешь подняло — отключили. С мелкомягкими такой фокус не пройдёт.
                                              Да и потом: на убунте, даже если она данные собирает, можно узнать какие.
                                              В вин. системе хз что течёт, помимо кода и номера моей кредитки. И это, только вершина айсберга.
                                              — А вообще, мне .Net нравиться :)
                                                0
                                                Следит. И ещё как. И c MS похоже повязана очень плотно — Зачем Ubuntu 16.04 незаметно соединяется с серверами Microsoft. Просто не хотелось бы видеть всего этого в своём любимом Debian.
                                                  +4
                                                  Вы меня, кончено, извините, но ссылочка-то ваша от 1.04. как бы Fool's Day.
                                                    0
                                                    Ок. Я повёлся, довольно правдоподобно было.
                                            +8
                                            В nuget-пакетах постоянно какие-то PowerShell-скрипты используются, да и в процессе билда часто мелькают.
                                              +1

                                              Да, но давольно часто эти пс скрипты лезут в DTE2 :-)

                                                –3

                                                Реализуйте уже это DTE у себя в Xamarin Studio, и старушку MSVS можно будет списывать.

                                                  0
                                                  В пользу XS вот вы сейчас серьёзно?
                                                    0

                                                    Не совсем так, как вы подумали. Просто я знаю, что Nagg замешан в разработке некоторых компонентов XS, и поэтому его изначальный выпад в сторону DTE2 делался именно с позиций XS.


                                                    Ну и давайте начистоту: я сейчас не пользуюсь XS, но считаю, что здравая конкуренция в сфере IDE для C# будет полезна всем — и MSVS, и VS Code, и XS, и Rider. Если они при этом будут совместимы друг с другом в плане работы нугетовых пакетов и проектной системы — я как пользователь IDE от этого выиграю.

                                                      0
                                                      Сомнительный выйгрышь, когда 3 из 4х IDE у одной фирмы )
                                                        +3
                                                        > выйгрышь

                                                        Убейте себя.
                                                          0
                                                          *killed*
                                                          0

                                                          Как пользователю мне абсолютно перпендикулярно, кто и как разрабатывает программы, которыми я пользуюсь — до тех пор, пока это не начинает сказываться на их видимой мне функциональности или стоимости.

                                                      +1
                                                      Вопрос — а что такое DTE в данном контексте? Гугл не помог.
                                                        +3

                                                        COM-объект автоматизации Visual Studio

                                                  0
                                                  Это просто инструмент. Как TypeScript. Он отдельно денег не приносит. Это как портануть Visual Studio Express или DirectX. +100500 пользователей.
                                                    +2
                                                    Это как портануть Visual Studio Express или DirectX

                                                    Нет, это даже близко не как портануть VSE или DX.
                                                      –3
                                                      Если портануть VSE и/или DX, то это -100500 пользователей в Windows
                                                        0
                                                        Для DirectX есть варианты трансляции в OpenGL и наоборот.
                                                        https://github.com/ValveSoftware/ToGL
                                                        Более полная поддержка есть в Wine, вплоть до уже запускающихся DX11 игр (поддержка все еще не полная).
                                                        Транслировать OpenGL в DX можно через ANGLE
                                                        https://github.com/Microsoft/angle
                                                        Портировать DX12 большого смысла нет, Vulkan ничуть не хуже (с точки зрения API, не реализации драйвера).
                                                          0
                                                          > Более полная поддержка
                                                          > поддержка все еще не полная
                                                          > назвал набор спецификаций
                                                          > ничуть не хуже
                                                          > сам в жизни ничего сложнее array.sort() не писал
                                                          весь хабр в одном коменте
                                                            0
                                                            Более полная чем в ToGL, ну не полная,, если сравнивать с реализацией Windows.а по поводу sort, твои предположение просто
                                                        +5
                                                        Простая стратегия, рассчитанная на бизнес.
                                                        МС показывает, что их продукт(ы) можно использовать везде, и что Linux в Azure — вполне себе такое «рядовое» явление.
                                                        Менеджеры не будут вникать в тонкости: они на МС-конференции услышали, что «можно Линукс», и в результате мы имеем зоопарк из PHP, NodeJS, MySQL в Azure.
                                                        Правда ежикам, которые потом собирают инфрастуктуру в Azure приходится плакать. Но кого это волнует? Все делают деньги.
                                                        Это и про PS, и вообще всю стратегию «MS love Linux».
                                                        Но я с трудом представляю себе UNIX/Linux-администратора, который по доброй воле пойдёт в Azure хостить сервера.
                                                          +1
                                                          Но я с трудом представляю себе UNIX/Linux-администратора, который по доброй воле пойдёт в Azure хостить сервера.

                                                          А можно более детально рассказать об этом моменте? Какие там подводные камни для UNIX/Linux-администратора, кроме того, что Azure — это «богомерзкий МС», их цен и разных «религиозных» заморочек.
                                                            0
                                                            Основная проблема для меня — не очень хорошая документация на REST API.

                                                            Вот сколько у вас времени займет найти, как сделать аналогичное вот этому:
                                                            https://azure.microsoft.com/en-us/documentation/articles/virtual-networks-reserved-private-ip/

                                                            через REST? :)
                                                              0
                                                              Минуты две-три: загуглил как это делает Terraform (признаюсь честно, до этого момента я уже знал о Terraform :) )

                                                              Не кажется ли Вам, что
                                                              не очень хорошая документация на REST API

                                                              как-то слишком мало, что бы обосновать
                                                              Но я с трудом представляю себе UNIX/Linux-администратора, который по доброй воле пойдёт в Azure хостить сервера.

                                                              ?
                                                              Маленьким фирмам REST API вообще не нужен, а для больших компаний идеальная документация по приоритету будет стоять, скорее всего, далеко не в начале списка при выборе IaaS-провайдера.
                                                                0
                                                                Я не то, чтобы обосновывал (это не я сказал), просто мои 5 копеек. Я вот сам себе маленькая фирма, мне нужен, я автоматизацию делаю. Когда искал, потратил минут 15. Про Terraform не знал :)
                                                                0
                                                                Она не просто «не очень хорошая» она местами неверная. библиотеки api для разных языков иногда не поддерживают все сценарии использования, приходится составлять руками полный рест-запрос.
                                                                Сценарии использования соответствуют определённому кругу представлений менеджмента облака, шаг вправо-шаг влево — начинается ад.
                                                                +1
                                                                Попробую. Мнение, конечно, субъективное и вполне допускаю, что в какой-то мере предвзято — никогда не понимал Windows 200{3,8,etc} на серверах.

                                                                Я работаю с Azure достаточно плотно где-то c марта месяца, пришёл один проект — и многие инструменты могу использовать неправильно или не знать об их возможностях. Тем не менее — расскажу немного о своём опыте.

                                                                Общее впечатление об Azure — это много достаточно хороших и интересных решений. Взять те же Deployment Slots — чрезвычайно удобно.

                                                                дальше
                                                                Проблемы начинаются, когда приходится строить инфрастуктуру более чем на пару виртуалок. Т.е. — по отдельности продукты неплохие (в целом). Но как только начинается процесс их «вязки» :-) — начинаются и сложности.

                                                                Пожалуй, начать стоит с документации. Это, на мой взгляд — самая главная проблема Azure.

                                                                Она разнородная, она неупорядочена, она пишется всеми подряд (да, blogs.msdn — это не оф. документация, но именно эти блоги попадают в первых результатах Google). Если для быстрой подсказки по AWS CLI — ответ *всегда* есть в первых 1-3 результатах поисковой выдачи, которые ведут на четкую, внятную, up-to-date и связанную друг с другом документацию, из которой порой можно просто копипастить — то для Azure приходится перебирать несколько страниц Google.

                                                                Ещё одна проблема (проблема ли — но тем не менее) — это то, что она написана во многом только под MS-решения. Буквально сегодня я матерился плохими словами, когда мне в Azure WebApp надо было поменять права доступа на файл — и все очень многие нагугленные решения начились слов «Open your Visual Studion and press button N [...]». Сидя под какой-нибудь Ubuntu, когда привыкаешь 90% задач решать/выполнять через консоль — такие «советы» дико бесят, особенно — когда вопрос простой, а на поиски ответа *как* — тратишь непозволительно долгое время.

                                                                Кстати, о консоли. Это ещё одна «особенность» Azure, которая дико напрягает. MS пилит решения типа PS под Linux — но сделать *нормальную* консоль в Azure Portal- они не хотят. Нельзя вставить текст. Нельзя переместить курсор по строке. Нет автоподстановки (по TAB), и т.д.

                                                                Если уже говорить о Portal — то к нему тоже много «претензий».

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

                                                                Смена цветовой схемы по дабл-клику, Карл!

                                                                Глюков и проблем при работе с панелью очень много. Зачем было делать «выплывающие» в сторону панельки? Кому это надо? Удобно? Может быть — кому-то, не спорю. Но была ли реальная необходимость в таком усложнении системы? Пусть даже и мелочном, типа каких-то JS-скриптов и что-там-ещё. Но у меня в Chromium под Ubuntu — перетаскивание панелей не работает, приходится использовать горизонтальный скрол. Да, на Mac — всё замечательно. Мне кажется — в погоне за эффектами и красотой — MS (как обычно, просто как обычно) жертвует простотой. Вспомните панельку AWS — никаких лишних плюшек. Всё очень строго, функционально, удобно и, главное — оно просто работает.

                                                                Ну и напоследок — это, конечно, глюки самого Azure, как IaaS/SaaS/ИтдS.

                                                                Мы деплоим через Git, и это иногда боль. Как-то я потратил целый день из-за того, что деплой в WebApp отваливался с какой-то ошибкой (которая ничего не говорила и гугление никаких результатов не принесло). Было предположение — что проблема из-за размера данных при деплое — 24.000 файлов, 1.5G, если не ошибаюсь.

                                                                Тем не менее, потратив целый день и так и не найдя решения — на следующий день, придя утром, я обнаружил что всё шикарно работает.

                                                                Недавно у нас на два часа упало приложение из-за проблем с MySQL. Ответ саппорта Azure был в духе «MySQL == ClearDB, котрая является thirdparty-сервисом, и мы ничем вам помочь не можем, пишите письма им». И даже дали ссылку. Возможно — спорный момент (но ведь платим мы не ClearDB?), но радости от работы с Azure не добавило.

                                                                Кстати, о саппорте. Если вы захотите спросить о чём-то (кроме вопросов оплаты) тех. поддержку — вы должны купить саппорт. план. За деньги. А уровень поддержки и их ответы… Это тема отдельной статьи, наверно.

                                                                Чего только стоят ответы в духе «Мы знаем об этом баге, но исправлять его не планируется». Честное слово — так ответили. Или когда пишешь со вставкой своих команд из консоли (to reproduce), в которых написано «ssh -p 2222», а в ответе пишут «Мы заметили, что у вас нестадартный порт демона SSH, попробуйте подключаться на порт 2222». Кроме мата, опять-таки — никаких других слов тут не находится.

                                                                Ух, накатал! Высказался. Очень меня достал Azure за эти полгода. С ним сложно работать. По крайней мере — мне. И да — я с трудом представляю, что бы человек, «выросший» *не* на использовании PowerShell, Win Server, MS SQL, .NET и прочей «кухни» MS — добровольно начнёт пользоваться ими.

                                                                Ну и напоследок — немного улыбательного:

                                                                > Hello %USERNAME%,
                                                                > Thank you for contacting Azure Subscription Management Support. My name is Stalin.

                                                                Такое вот получал :-)

                                                                Всех с Пятницой.

                                                                  0
                                                                  Да, во многом ваш гнев справедлив. Даже для меня иногда продукты от МС это очень много стресса и нецензурщины:) хотя я и «вырос» на Винде и сопутствующих ей продуктах :)

                                                                  На тему Win-серверов комментарий давать не буду, тут на вкус и цвет. Сам использую связки Win+Lin.

                                                                  Пожалуй, начать стоит с документации

                                                                  Да, документация у них далека от идеала! Хотя с упорядоченостью у меня проблем никогда не было, но вот «капитанский» стиль написания меня всегда раздражал. И тупые примеры туда же!
                                                                  С разнородностью иногда возникают проблемы, но не очень часто. Гугление дискомфорта не вызывает.

                                                                  Ещё одна проблема (проблема ли — но тем не менее) — это то, что она написана во многом только под MS-решения

                                                                  Ну, это прямое следствие из того факта, что до последнего времени НЕ MS-решений просто не было. Это как искать Gnome под Винду :) Если его нет, то искать бесполезно.
                                                                  Если курс не изменится (на что я очень надеюсь!), то через два-три года будут решения и под другие платформы. А с ними появятся и блоги, и статьи.

                                                                  с огромным удивлением узнал, что таким образом можно менять цветовую схему панели

                                                                  Вау! Я вообще первый раз о таком слышу О_о Надо будет опробовать!

                                                                  С оформлением портала они 100% перемудрили. И хотя панели немного раздражают, я бы не записывал их в список проблем платформы. Главное, что UI довольно однообразен и предсказуем, это сильно упрощает начальное обучение.

                                                                  Как-то я потратил целый день из-за того, что деплой в WebApp отваливался с какой-то ошибкой

                                                                  У меня так отвалилась настройка Network Adapter. И потом также чудесно всё начало работать.
                                                                  В некоторых случаях можно попробовать альтернативный путь. Например, если не работает в портале, то делать через скрипты или API.
                                                                  К сожалению, с вашей проблемой при деплое никаких конкретных решений на ум сейчас не приходит.

                                                                  Недавно у нас на два часа упало приложение из-за проблем с MySQL

                                                                  Нет, ну, это точно не к MS! :) Я даже не уверен сами ли они создавали виртуалки с MySQL :)

                                                                  Кстати, о саппорте. Если вы захотите спросить о чём-то (кроме вопросов оплаты) тех. поддержку — вы должны купить саппорт. план. За деньги. А уровень поддержки и их ответы… Это тема отдельной статьи, наверно.

                                                                  Поделюсь хаком: надо написать вопрос или на SO, или на MSDN Answers, а потом затвитить линк на вопрос с референсом аккаунта службы поддержки Azure (@AzureSupport). Отвечают в течении часа и абсолютно бесплатно :)
                                                                    0
                                                                    > до последнего времени НЕ MS-решений просто не было

                                                                    На самом деле — да, вы совершенно правы. Но в духе вопроса «Почему Linux админ *не ...» — на сегодня вполне актуальная сложность.

                                                                    > Поделюсь хаком

                                                                    Ух, спасибо! Жаль — не могу плюсовать. Попробую. Хотя от периодической тупости глупости ответов их саппорта такой хак всё-же не спасёт. Он даже на премиум саппорт плане не помогает :-(
                                                                      0
                                                                      Это как искать Gnome под Винду

                                                                      Кстати, вот: Вышел KDE 4.7 для Windows
                                                                  0

                                                                  Ребята из проекта xgu.ru на своем канале в youtube вполне активно используют azure, хотя казалось бы?
                                                                  Тоже не вижу ничего плохого в том что бы использовать облако от ms, инструменты для работы с облаком у них кроссплатформенные, довольно удобные и если не ошибаюсь вполне опенсорсные.

                                                                  +1
                                                                  Я, как .NET разработчик, уважающий и любящий Linux, давно этого ждал. Несмотря на необходимость разрабатывать для Windows, все равно не перестаю держать в уме кроссплатформенную разработку на .NET. Но для сборки проектов использую Psake (и очень им доволен), и очень удручала бессмысленность пытаться разрабатывать кросс-платформенный проект, используя windows-only инструмент. Наконец-то и эта проблема решена! Осталось дождаться релиза IDE Rider от JetBrains, и однажды смогу перевести рабочее место под Linux… Эх, мечты =)) Еще бы WPF открыли и под Mono портировали, и настанет светлое будущее (для меня, ИМХО) =)))
                                                                    0
                                                                    С появлением UWP WPF становится потихоньку legacy для старых ос.
                                                                      0
                                                                      Ну, на корпоративном рынке оно живет. UWP это, на мой взгляд, в первую очередь для массовых (ориентированных на отдельных пользователей) приложений.

                                                                      Ну, надежда (на порт WPF) умирает последней :)
                                                                        0
                                                                        UWP — это ещё и новая система дистрибьюции пакетов, чем-то похожая на Mac OS, когда вы можете полностью удалить приложение не боясь, что что-то сломается в каком-то другом. Это нацелено и на корпоративный рынок тоже.

                                                                        А там уже начинается по-мелочи, вроде хотите использовать Windows Hello — конвертируйте в appx или мучайтесь с костылями. Хотите нормальную поддержку HDPI — что-то поправим в WPF, WinForms пошлем лесом, полноценно — только в UWP. Хотите встроится в системный поисковик (то бишь в Cortana) — конвертируйте в appx. И так далее.
                                                                          +1

                                                                          Про систему дистрибьюции нам то же самое говорили про ClickOnce. И где оно? Наверняка некоторые до сих пор используют, но как массовая система — не выстрелило.

                                                                            0
                                                                            Хром же, нет?

                                                                            А appx — единственный способ дистрибьюции через стор
                                                                              0

                                                                              Ну, вроде бы да, хром. И из распространённых приложений больше, пожалуй, никто. Даже Microsoft больше ничего не стал заворачивать (впрочем, я не уверен, и с интересом выслушаю поправки к этому утверждению).

                                                                      0

                                                                      Посмотрим, что с кроссплатформенным WPF Avalonia станет. Может выстрелит.

                                                                        0

                                                                        Кроме Psake, посмотрите ещё на Invoke-Build. Оно во многом лучше — особенно когда вам хочется пересобрать из группы файлов только те, которые надо. Например, мне надо было только новые SVG сконвертить в PNG. Это очень просто делается на Make или Invoke-Build, но со скрипом шло на Psake и FAKE.

                                                                        0
                                                                        Как вариант — админить Nano Server 2016 из под линукса/мак ос.
                                                                          0
                                                                          WinWM.
                                                                          Сидим на линуксовой машине, сервера админим не слезая. Так себе случай, но право на жизнь имеет. Хотя мне всё же логичным выглядит админить win-сервера с виндовых же машины, а никсовые сервера — с никсовых станций.
                                                                            0
                                                                            В чём тут «логика»-то? Скажите уже, что просто привычнее. :)
                                                                            И потом, удалённый рабочий стол же…
                                                                          0
                                                                          Ссылки на инструкции битые (в них домен github.com не указан, только относительный путь)
                                                                            +1
                                                                            Виноват, исправил.
                                                                            +23
                                                                            Теперь можно будет под виндой запустить баш, а в нем запустить повершелл!
                                                                              –1
                                                                              Уже было в симпсонах cygwin-е.
                                                                                0

                                                                                А уж как он умильно жаловался на отсутствие /usr/bin/perl.exe, такая была милота :)

                                                                                +1
                                                                                dicaprio_inception.jpg
                                                                                  +10
                                                                                  Сделано.
                                                                                  –17
                                                                                  Как и все прочие любезные жесты MS 2 Linux — слишком поздно.
                                                                                    +4
                                                                                    Почему же? Как по мне то одним и вторым удобно
                                                                                    0
                                                                                    Если бы еще мне кто кейс использования под Мак рассказал…
                                                                                      +6
                                                                                      Я работаю фрилансером, админю много виндовых серваков. Есть много домен контроллеров в версии Core. Зачастую клиенты дают ВПН канал для управления серверами. Так что я со своего мака с удовольствием буду писать скрипты для администрирования клиентских Active Directory.
                                                                                        0
                                                                                        Выше kekekeks привел пример: разворачивание пакетов из nugget.
                                                                                          +1
                                                                                          А каков юзкейс разворачивания каких-то девелоперских пакетов (я ведь правильно понял его назначение) на маке?
                                                                                          Не сочтите это каким-то издевательством, я правда слишком далёк от девелоперской инфраструктуры мс, да ещё и на маках. Чистое незамутнёной любопытство.
                                                                                            +1

                                                                                            Побилдить проект

                                                                                              0
                                                                                              Имеется в виду — побилдить на маке виндовый проект?
                                                                                                0
                                                                                                Друг мой, NuGet-пакеты содержат скрипты для добавления библиотек в текущий проект.
                                                                                                Нужна тебе обработка JSON — ты пишешь в Dev-консоли
                                                                                                Install-Package NewtonSoft.JSON

                                                                                                Можно и без этого обойтись, но так удобнее.
                                                                                                  0
                                                                                                  Давайте ещё раз, я с первого раза так и не понял юзкейса — нужно добавлять виндовые девелоперские пакеты в текущий проект на маке? Рречь о разработке на маке под винду? Или что-то хитрое кроссплатформенное? Я пытался делать кроссплатформенность с помощью cmake, но на маке он генерит крайне странные проекты для xcode, пришлось пилить руками. Вот эта балалайка мне поможет?
                                                                                                    0
                                                                                                    Для сборки проектов использую Psake. Теперь, его можно будет использовать и на Mac (теоретически; к сожалению, пока сам попробовать не могу). Сам долго перебирал системы сборки для .NET, и остановился на Psake (он моим требованиям полностью удовлетворил, а теперь и кроссплатформенность подъехала). Попробуйте, может и вам поможет.
                                                                                                      0

                                                                                                      Стоит также упомянуть, что в состав Mono входит утилита xbuild, которая умеет собирать "виндовые" солюшены и проекты. Мы этим пользуемся в нескольких случаях. Собранные бинарники работают и на винде, и на линуксе.

                                                                                                        0
                                                                                                        xbuild\msbuild использую только для сборки самих visual studo — проектов. Но кроме сборки есть еще очень много дополнительных телодвижений, которые я предпочитаю выполнять из скриптового языка (а не xml). После долгих метаний (ruby, python, f#) окончательно остановился на Powershell + Psake
                                                                                                  0

                                                                                                  Побилдить или создать на маке кросс-платформенный проект на .Net Core

                                                                                                    0
                                                                                                    А, вон оно что! Спасибо. А IDE на маке при этом какое используют? Или в виме пишут?
                                                                                                      0

                                                                                                      Не все сразу. Когда-то и фраза "кросс-платформенный проект на .Net " считалась смешной шуткой.


                                                                                                      Кстати, для простого билда IDE не нужна. А вот powershell может пригодиться.

                                                                                                        0
                                                                                                        Попробуйте посмотреть сюда IDE Rider. Пока что early access, но проекты уже собирать можно. Да и вроде в этом году релиз обещали (это без пруфов).
                                                                                                          +1
                                                                                                          VSCode, Xamarin Studio, JetBrains Rider
                                                                                                  +1
                                                                                                  Xamarin, ASP.net Core. .Net Core
                                                                                                  0
                                                                                                  Там вроде своих пакетов хватает, благо пакетный менеджер есть давно.
                                                                                                    0

                                                                                                    Не путайте системные пакеты и те, которые ставятся в проект.

                                                                                                  0
                                                                                                  У меня был случай, надо было написать скрипт по развертыванию небольшой системы, что бы он работал у заказчика. На питоне я не хотел писать по религиозным соображениям. На bash — решил, что у завазчика винда и ставить cygwin он не захочет.
                                                                                                  Написал на PowerShell, а у заказчика оказался Мак… Я был бы рад, tсли бы тогда под Мак был портирован PowerShell…
                                                                                                  –16
                                                                                                  Довольно комичная ситуация, их шел не нужен никому кроме майкрософт, а если подумать, то и им не нужен.
                                                                                                    +12
                                                                                                    повершелл имеет огромное количество инструментов для работы с АД и устройствами в виндовс. Будет отлично писать скрипт на баше, который вызывает готовые повершелловские скрипты без извратов. или даже скрипт на повершелле запускать по крону линукса.
                                                                                                    А АД контроллеры в мелких фирмах на базе самбы, с повершелловскими скриптами?

                                                                                                    Про МС я скажу так: Вот это поворот.
                                                                                                      0
                                                                                                      Вот эффекта «вот это поворот» у меня не было, на фоне открытия кроссплатформенного .Net Core было скорее ожидание «скоро тут появится PowerShell»
                                                                                                      +23
                                                                                                      «Мне не нужен, значит, никому не нужен». Прекрасно.
                                                                                                        –23
                                                                                                        Вообще то я многократно сертифицированный специалист в области серверных ОС майкрософт, выражаю, так сказать некую общую точку зрения с высоты моего личного опыта и моих коллег.
                                                                                                          0
                                                                                                          По-моему они явно показывают, что стремятся организовать множество инструментов, совместимых с другими операционками.

                                                                                                          А потом, когда все Линуксовое будет работать под виндой, а виндовое, как обычно, не будет нормально работать под Линуксом, внезапно что-нибудь случится.
                                                                                                            +4
                                                                                                            И что же, мышкой и драг-н-дропом сервера админите?
                                                                                                              –4
                                                                                                              Вы так говорите, как будто это плохо. Я тоже админю мышкой сервера и прекрасно себя чувствую. Коммандлайн остался в прошлом с выходом win95
                                                                                                                +7
                                                                                                                Вот они какие неленивые админы…
                                                                                                                  –3
                                                                                                                  Я очень ленивый. По мне так лучше тыкать в чекбоксики и радиобаттоны, чем запоминать кучу ключей с параметрами
                                                                                                                    +6
                                                                                                                    Да нет, человек, которому не лень при каждой необходимости тыкать в чекбоксики и радиобаттоны, чем один раз написать скрипт для повторяющихся действий, очень даже трудолюбивый…
                                                                                                                      –1
                                                                                                                      Что то я не очень понимаю, зачем администрить одно и тоже несколько раз? С первого раза не работает?
                                                                                                                        +2

                                                                                                                        Если у вас 1 сервер — пожалуйста, продолжайте админить его мышкой.

                                                                                                                          0
                                                                                                                          Сервера приложений, сервера баз данных, сервера администрирования и сервера вспомогательных файловых хранилищ настраиваются абсолютно разним способом, никакой волшебный скрипт тут не поможет
                                                                                                                            0
                                                                                                                            Хотите сказать, что ко всему есть GUI?
                                                                                                                            Например, к Exchange 2013 (да, там есть ecp, но там не всё)?
                                                                                                                            Мне как-то поставили задачу сбора статистики по количеству входящих и исходящих писем для определённого списка сотрудников. Как думаете, решается она мышкой?
                                                                                                                            Это далеко не единственный пример, и совершенно не уникальный. Уверен, у других похожих задач полно встречалось.

                                                                                                                            Ещё пример: сможете мышкой разрешить пользователям пользоваться командой msg на осях старше Windows 7\2008? И не только разрешить, но и пользоваться. И не самописными\сторонними средствами (ибо скрипты уже и утилиты), а встроенными.
                                                                                                                      0
                                                                                                                      /? -h --help спасает
                                                                                                                      И да, я очень ленивый, мне лень каждый раз тыкать чекбоксы, когда можно один раз сделать скрипт. С параметрами. И да, с превого раза не работает — серверов много, рабочих станций — ещё больше, обезьян^Wэникеев учить сложно — напутают со своей мышиной возьнёй, а так дал скрипт — он отработал и всё хорошо.

                                                                                                                      >> никакой волшебный скрипт тут не поможет
                                                                                                                      А когда серверов баз данных пара сотен — очень помогает, и про клиентов уже упоминал.
                                                                                                                        0
                                                                                                                        А у сисов не работает отмазка: «настройка это 1% рабочего времени, 99% мы думаем над задачей, потому автоматизация не нужна, мы будем конфигурировать сервера с помощью г**на и палок!» — ? У нас вон в среде редакторов так постоянно говорят и считают это аргументом.
                                                                                                                          0
                                                                                                                          Админ спит — служба идёт. Сейчас я администрирование занимаюсь постольку-поскольку, но скрипты для сопровождения продуктов приходится делать — это проще, чем объяснять что и как настроить руками (когда нужны единичные настройки — да, но массовые так вносить слишком сложно). PS в этом плане отличная вещь, т.к. альтернатива — cmd. Ещё перловые использую, но он не везде есть (речь о виндах). С никсами проще — [ba]sh всяко лучше cmd.
                                                                                                                          0
                                                                                                                          Group Policy полностью прекрасно управляется мышкой
                                                                                                                            0
                                                                                                                            GP — это не единственное что требуется. Тем более большинство много серверов находится в изолированных сегментах и не имеют доступа к консоли/шеллу снаружи. Собрать логи с управляемого оборудования проще скриптом(и обработать тоже), чем рассказывать где взять, как упаковать и что надо, а что — нет.
                                                                                                                            PS. На самом деле спасибо — я как раз благодаря этому вспомнил что в понедельник надо будет написать скрипт для анализа параметров нетипичного поведения железа (вылетело совсем из головы) и мышкой там тыкать абсолютно бесполезно.
                                                                                                                          0

                                                                                                                          Мне кажется, иногда для однократных задач коммандлайн удобнее.


                                                                                                                          Например в винде — посмотреть на состояние всех сервисов для sql server


                                                                                                                              gsv *sql*
                                                                                                                          

                                                                                                                          А для того, чтобы сделать это из гуя надо открыть приложения сервисов сортировать там по имени и искать глазами

                                                                                                                            0
                                                                                                                            Это неправильная команда, так как инстансы совсем необязательно должны содержать sql в названии
                                                                                                                              0

                                                                                                                              А какой сервис не содержит этого в имени?

                                                                                                                                0
                                                                                                                                Имя любого windows сервиса может быть изменено. Каких либо атрибутов принадлежности нет, DisplayName вообще используется только в косметических целях. Можно конечно позапрещать юзерам админские права, но в реальной жизни Get-Service *sql* отнюдь не гарантирует ничего
                                                                                                                                  0

                                                                                                                                  Дык мы говорим про администрирование, а не про программирование. Нам нет нужды делать так, чтобы эта строчка гарантированно работала на любом окружении. Та же самая проблема будет при поиске сервиса глазом

                                                                                                                                    +2
                                                                                                                                    Имя любого Linux сервиса тоже может быть изменено. Но зачем?

                                                                                                                                    Давайте переименуем explorer.exe в проводник.исп, чтобы никто не догадался?
                                                                                                                                      –2
                                                                                                                                      Я утверждаю, что графические инструменты управления компьютером гораздо более удобны и комфортны в использовании. Мой собеседник утверждает, что ему коммандлайн удобнее для выполнения однократных задач. Он запускает программу PowerShell для выполнения комманд, вспоминает команду для получения списка сервисов Get-Service, затем вспоминает что у неё существует короткое имя, затем приступает к вспоминанию параметров этой команды, набирает ёё и затем анализирует многострочный текстовый результат выполнения. Запуская графическую программу Services, я сразу получаю удобное окно со списком сервисов с описаниями, состояниями, аккаунтами с возможностью сортировки, скроллингом и управлением сервисом. Кому что удобнее — дело субъективное. Я просто не понимаю критику отчаянных коммандлайнеров, которые неприемлют графические 'драг-н-дроп' интерфейсы и утверждают что жизнь в коммандной строке лучше. Нет, не лучше — я видел этот мир до выхода win95, это безумие параметров команд которое нужно держать в голове или на листиках перез глазами и очень рад что сейчас все могу сделать мышкой.
                                                                                                                                        +1
                                                                                                                                        Всему свое. Я давеча был горячим поклонником интерфейса. Теперь у меня пачка батников и .sh-шников на многие случаи жизни. Некоторые из команд я помню наизусть, банально по тому что zsh, когда я стал админить сервера, постоянно перед глазами и из нее можно быстро получить результат. Конечно я себя все еще ощущаю скованно, нежели под RDP к хиперви, или когда я использую оснастку стандартную, но админить именно сервер мне стало удобнее.

                                                                                                                                        Для меня это был нелегкий путь в 7 лет, от знакомства с убунтой-сервер и ее немедленным удалением, до вполне комфортной работой в freebsd через терминал.
                                                                                                                                          0

                                                                                                                                          Мне кажется, вы перешли в режим спора для победы


                                                                                                                                          Он запускает программу PowerShell для выполнения комманд,

                                                                                                                                          ISE у меня как правило открыт и комп я перегружаю редко


                                                                                                                                          вспоминает команду для получения списка сервисов Get-Service, затем вспоминает что у неё существует короткое имя,

                                                                                                                                          Не, я просто пишу gsv — для меня gsv это уже непосредственно команда получения статуса сервиса, а вот длинный алиас придется вспоминать


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

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


                                                                                                                                          Да, когда надо отредактировать я иду в gui. Я не говорю, что command line или gui всегда удобнее или неудобнее. Я говорю, что часто даже для выполнения однократной задачи удобнее cli

                                                                                                                    +3
                                                                                                                    Мне нужен.
                                                                                                                    Я по работе вынужден был использовать винду, и подсел на PowerShell, что теперь под Linux нейдобно жить стало.
                                                                                                                    +10

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

                                                                                                                      +3
                                                                                                                      Тем, кому оно надо — те bash знают хорошо, к его сомнительным моментам давным-давно привыкли, и везде есть из коробки.

                                                                                                                      А powershell изучать надо, зачем? Там, где bash-скрипт становится слишком монстроузным, проще написать нужное на python/ruby.

                                                                                                                      Единственный кейс, который я вижу, — запуск какого-нибудь шарп-приложения с powershell-обвязками на линуксе.
                                                                                                                        +1
                                                                                                                        А powershell изучать надо, зачем?

                                                                                                                        Почему именно изучать? Для тех, кто работает на обеих платформах, будет проще иметь один и тот же инструмент.
                                                                                                                          +2
                                                                                                                          Скорее, для тех, кто работает в основном на Windows. :) Ну, мне как старому юниксоиду так кажется. Хотя, честно говоря, и среди Windows-разработчиков/админов не видел, чтобы его активно использовали.

                                                                                                                          Баш с coreutils, при всех исторически сложившихся неконсистентностях, имеет одно большое преимущество — команды короткие и компактные, можно написать довольно сложный однострочник одним взмахом руки над клавиатурой, становясь таким образом инструментом, который испольуется не то, что ежедневно, а ежечасно. Таким образом это все изучается до уровня «пишу спинным мозгом».

                                                                                                                          Powershell, при всей его концептуальной красоте, по факту слишком многословен для такого применения — я ж однострочник одноразовый пишу, а не программу на века.
                                                                                                                            +1
                                                                                                                            У многих комманд PowerShell вроде псевдонимы повторяющие команды в «привычном нам с вами», разве нет?
                                                                                                                              0
                                                                                                                              Для простейших случаев — да. А аналоги из реальной жизни с наворотами sed-ов, grep-ов и прочих wc и sort/uniq становятся все же сильно длиннее.
                                                                                                                                0

                                                                                                                                Ну, можно же и sed из powershell вызвать...

                                                                                                                                  +1
                                                                                                                                  идея powershell как раз в том, что никакие sed, grep и прочие wc там не нужны, т.к. команды возвращают не простые строки, а объекты
                                                                                                                                  +1

                                                                                                                                  Кстати, на текущий момент эти псевдонимы под Linux отключены — чтобы, как говорят в MS, не лишать пользователей нативных утилит нативного же опыта работы с ними.

                                                                                                                                    +1
                                                                                                                                    И это правильно, семантика несколько разная.
                                                                                                                                    Надо бы у себя алиас curl и wget отключить, спасибо за идею…
                                                                                                                                      0

                                                                                                                                      Ох уж эти алиасы, в первую очередь убиваю их из профиля. Эта парочка действительно сильно мешается :(

                                                                                                                                  0

                                                                                                                                  Как юниксойд использую powershell для автоматизации развертывания и настройки Windows в облаках.
                                                                                                                                  Скажу честно, работать с ним намного приятнее, чем с cmd и другими устаревшими консольными виндовыми утилитами.
                                                                                                                                  Но на linux вполне устраивает и bash, честно говоря даже не представляю жизни без него.
                                                                                                                                  Считаю, что powershell хорош, но для винды. Под linux он нужен в первую очередь для решения виндовых задач.
                                                                                                                                  Полностью заменять им bash думаю, что никто пока не собирается. Скажем так, концепция у них разная. :)

                                                                                                                                    0
                                                                                                                                    В PS есть возможность задавать свои алиасы (сокращения для команд). И, если не ошибаюсь, настроить их на постоянную работу вместо сессионной.
                                                                                                                                    Кстати, есть мнение, что реюзабельные однострочники — зло. Ибо читаемость для неопытного коллеги на порядок хуже. Хотя для единичных запросов однострочники гораздо удобнее, да.
                                                                                                                                      0
                                                                                                                                      Для однострочников есть комплетишен. Хоть в PowerShell он и хуже следан, чем в bash, но мне хватает, что бы от многословности не страдать.
                                                                                                                                        0

                                                                                                                                        Интересу ради — а расскажите, где (в чём) комплишен хуже сделан в PowerShell, чем в баше? Просто начиная с Windows 10, по-моему, в повершелле из коробки подключается PSReadline с подсветкой и семантическим автодополнением. Если честно, я такого изкоробочного опыта ни в одном линуксе не припомню (хотя я положительно уверен, что его можно добиться в баше и в альтернативных шеллах тоже).

                                                                                                                                          0
                                                                                                                                          Он плохо себя ведет, если в директории присутствует файл и именем как у другого файла с добавленой точной в начало. Даже с PSReadline.
                                                                                                                                          Еще поиск по истории как-то у меня плохо работал, но скорее всего это я не разобрался, — сравнительно редкая операция, лень было.
                                                                                                                                            0

                                                                                                                                            Пока что по вашему описанию звучит, как парочка не слишком назойливых багов, а не концептуальная проблема. В любом случае, спасибо за ответ.

                                                                                                                                              0
                                                                                                                                              Ну если пользоваться еще и vim, который такие файлы любит создавать, эта фича становится несколько назойливой.
                                                                                                                                              Да и про PSReadline я не так давно узнал, без него плохо было.
                                                                                                                                    +1

                                                                                                                                    Нужное на python/ruby проще написать только тому кто знает python/ruby. А тому, кто знает C#/VB.Net — проще писать на powershell, ведь у этих языков общая стандартная библиотека.

                                                                                                                                      0
                                                                                                                                      В универе нас пытались посвятить в C#, я не проникся. А вот в работе админа PS теперь использую. Не сказать, что похоже как-то сильно. Хотя может сейчас и поменялось что-то в шарпе по сравнению с 2005 годом.
                                                                                                                                        +1

                                                                                                                                        Я и не говорил, что языки похожи. Я говорил, что у них общая стандартная библиотека.

                                                                                                                                          +1
                                                                                                                                          Хотя может сейчас и поменялось что-то в шарпе по сравнению с 2005 годом.

                                                                                                                                          Посмотрите на LINQ


                                                                                                                                          Не сказать, что похоже как-то сильно

                                                                                                                                          Система типов, .NET FW в качестве основы

                                                                                                                                        0
                                                                                                                                        Новое изучить обычно очень приятно.
                                                                                                                                        Да и как язык PowerShell удобнее питона для простых приложений.
                                                                                                                                        –2
                                                                                                                                        А я бы выбрал python ;)
                                                                                                                                          +1
                                                                                                                                          до сих пор не представляю, как нормальным способом сделать в винде что-то типа:
                                                                                                                                          VAR=`ls -1 | grep bin`
                                                                                                                                            +6

                                                                                                                                            Все предельно просто:


                                                                                                                                            $VAR = (Get-ChildItem | Where-Object {$_.Name -like "*bin*"})
                                                                                                                                              +6
                                                                                                                                              Чуть попроще:
                                                                                                                                              $VAR = Get-ChildItem *bin*
                                                                                                                                                0

                                                                                                                                                Ну, не забывая, что у Get-ChildItem есть нескольо алиасов а-ля dir, gci, ls (последний, впрочем, пока что отключен на линуксе).

                                                                                                                                                  0
                                                                                                                                                  Ну алиасы — это личное дело каждого, я их стараюсь избегать. В скриптах они вообще противопоказаны.
                                                                                                                                                    +1

                                                                                                                                                    Да, это верно. Лично я никогда не использую алиасы в скриптах (за исключением % и ?), но в 90% случаев использую их в командной строке.

                                                                                                                                                +3
                                                                                                                                                предельно%)
                                                                                                                                                  –3
                                                                                                                                                  Это просто? Это как Hello World на Java.
                                                                                                                                                    +1
                                                                                                                                                    Ну ничего себе, на Power-Shell это выглядит намного понятнее, чем на bash.
                                                                                                                                                      0
                                                                                                                                                      понятнее — да, но в повседневной деятельности башевый вариант гораздо удобнее из-за компактности, а команды стандартные
                                                                                                                                                        0
                                                                                                                                                        Там же выше привели вариант на PS:
                                                                                                                                                        ls *bin*
                                                                                                                                                        

                                                                                                                                                        Он и короче, и функциональнее.
                                                                                                                                                          0
                                                                                                                                                          В чем именно удобность компактности? Если набивать строку, то есть IntelliSence. Или что-то ещё?
                                                                                                                                                            0

                                                                                                                                                            Никто не мешает писать повершелльные команды сокращенно. Существует масса алиасов и никто не запрещает создавать свои. Кроме того, Powershell разрешает использовать короткие версии ключей, написав несколько первых символов, однозначно их определяющих. Например, у того же ls есть длинный ключ LiteralPath, но его смело можно сократить до -l или -L, а ключи -Recurse или -ReadOnly можно сократить до -rec или -rea соответственно.
                                                                                                                                                            Это если помнишь и часто используешь команду, помнишь ключи и набираешь ее "на автомате". А если не помнишь — Tab или Ctrl+пробел переберут/покажут все возможные варианты.

                                                                                                                                                              0
                                                                                                                                                              Powershell больше похож на язык программирования типа перла или питона, а баш — это именно клей для самых разных утилит. Например, на PowerShell вы не сделаете:
                                                                                                                                                              # dd if=/dev/sda1 | ssh user@host sudo dd of=/dev/sdb2
                                                                                                                                                              (передача образа диска по сети без промежуточного сохранения в локальный файл).
                                                                                                                                                              Не вижу, как баш и PowerShell мешают друг другу, наоборот дополняют.
                                                                                                                                                                +2
                                                                                                                                                                Например, на PowerShell вы не сделаете:
                                                                                                                                                                dd if=/dev/sda1 | ssh user@host sudo dd of=/dev/sdb2

                                                                                                                                                                Вы пробовали это на PSh под Linux — если dd это что-то внешнее — а не встроенная команда, почему бы нет?

                                                                                                                                                                  +1

                                                                                                                                                                  На Powershell это превосходно можно сделать — никто не мешает использовать внешние утилиты и отправлять их вывод по конвейеру.


                                                                                                                                                                  А кто вообще пишет, что они мешают друг другу? Я продвигаю мысль, что Posh — это еще один инструмент, появившийся в руках юникс-админов, и им не нужно пренебрегать; наоборот — нужно использовать.

                                                                                                                                                                    0

                                                                                                                                                                    Тут вопрос в другом — соединит ли PowerShell выход одного процесса с входом другого — или будет работать промежуточным буфером? Во втором случае в процессе выполнения конкретно этой команды будет большая нагрузка на сборщик мусора; плюс возможны проблемы с кодировками.

                                                                                                                                                                      0

                                                                                                                                                                      На этот вопрос я прямо сейчас ответить не готов :-) Проверить на практике не очень сложно, так как Powershell уже можно установить в линуксах.
                                                                                                                                                                      В конце концов, не исключено, что в данном конкретном случае и разумнее использовать bash. Однако, по моему представлению, гораздо чаще возникает необходимсть "склеить" bash-eм вывод несколько утилит, анализируя и обрабатывая текстовый вывод одной утилиты перед отправкой его по конвейеру на вход другой. И вот тут, возможно, Powershell может оказаться в преимущественном положении ввиду тех причин, о которых я говорил уже неоднократно: многие вещи на нем "заскриптовать" и отладить проще и быстрее.

                                                                                                                                                          0
                                                                                                                                                          но это только в повершелл, а не в обычном .bat?
                                                                                                                                                            0
                                                                                                                                                            setlocal /ENABLEDELAYEDEXPANSION
                                                                                                                                                            
                                                                                                                                                            set var=
                                                                                                                                                            for %%i in (*bin*) do set var=!var! %%i

                                                                                                                                                            Если ничего не напутал, то вот так.

                                                                                                                                                              0
                                                                                                                                                              это вроде не совсем то. Я имел ввиду как в переменную присвоить значение ЛЮБОЙ команды или связки, а не конкретно ls
                                                                                                                                                                +2
                                                                                                                                                                for /F %%i in ('команда') do ...
                                                                                                                                                                  +1
                                                                                                                                                                  спасибо… но как это криво и нелогично выглядит…
                                                                                                                                                          +5
                                                                                                                                                          Выше написали, но можно короче:
                                                                                                                                                          $var = ls | ? { $_ -match 'bin' }
                                                                                                                                                          


                                                                                                                                                          И в результате будут объекты, т.е. например можно
                                                                                                                                                          $var.FullName # вывести полные имена
                                                                                                                                                          $var.CreationTime # даты создания
                                                                                                                                                          

                                                                                                                                                            +5

                                                                                                                                                            А насколько читаемым и естественно выглядящим в bash-е будет аналог следующего PoSh-однострочника?


                                                                                                                                                            ls | where { $_.CreationTime -gt (Get-Date).AddDays(-222)  -and $_.LastWriteTime -lt "2016-07-07"  -and $_.Length -lt 2GB  -or $_.Name -match 'bak' }

                                                                                                                                                            Спойлер для начинающих

                                                                                                                                                            Отобрать все файлы, созданные не раньше 222 дней назад, запись в которые осуществлялась до 7 июля 2016 года, размер которых меньше 2ГБ, плюс к ним те, которые содержат в своем имени шаблон "bak".


                                                                                                                                                            Обратите внимание: для написания такого однострочника (равно как и подавляющего большинства других powershell-скриптов) не нужно использовать сторонние утилиты (типа grep, sed, awk, find..., каждая из которых, к тому же, обладает своим собственным заковыристым неинтуитивным синтаксисом). Кроме того, Powershell подсказывает возможные ключи при наборе команды привычным нажатием на клавишу Tab. Man-ы Help-ы по нему тоже внятные и понятные. Ну, и комплектование PoSh-a полноценным отладчиком — это тема, которую очень сложно переоценить. Нужно ли говорить о том, что posh-скрипты еще и самодокументированные благодаря хорошо проработанному синтаксису? При этом гибкость проявляется еще и в том, что для быстрого запуска одной-двух команд можно использовать алиасы и сокращения, а когда отлаженный и полезный скрипт захочется отлить в граните, то можно использовать полный "рассказывающий" синтаксис.


                                                                                                                                                            Упаси боже, это не попытка раздуть "холивар", а просто демонстрация изящности и мощности инструмента, который отныне появился в руках *никсоидов. Powershell — вовсе не bash-киллер, но дополнительная и не самая "отстойная" возможность улучшить качество жизни системного администратора. Потратьте день (ну, хорошо, неделю) на освоение этого продукта от ненавистного MS — полагаю, и у вас возникнут ситуации, когда вы предпочтете Powershell bash-y или Python-y. И уж точно — не пожалеете о потраченном времени.

                                                                                                                                                              +4
                                                                                                                                                              find . -maxdepth 0 -ctime  -222 ! -newermt "2016-07-07" -size +2G -name "*bak*"
                                                                                                                                                                +1
                                                                                                                                                                Я не знаю синтаксиса, честно говоря, где тут логическое ИЛИ?
                                                                                                                                                                  +1

                                                                                                                                                                  Прошу прощения не совсем понял условие задачи, тогда может быть так?


                                                                                                                                                                  find . -maxdepth 0 -ctime  -222 ! -newermt "2016-07-07" -size +2G -o -name "*bak*"
                                                                                                                                                                    –8
                                                                                                                                                                    В условии нельзя использовать find.
                                                                                                                                                                      +14
                                                                                                                                                                      Компьютером-то хоть можно пользоваться?
                                                                                                                                                                        –6
                                                                                                                                                                        А как вы хотите показать преимущество баша над повер шеллом, запуская стороннюю утилиту, которую с таким же успехом можно будет запустить и из повер шелла?