パスワードを忘れた? アカウント作成
12883506 story
マイクロソフト

PowerShellがオープンソースに、LinuxおよびMac OS X版も提供へ 81

ストーリー by hylom
まさかLinuxでPowerShellが使えるようになるとは 部門より

Microsoftのコマンドラインシェルおよびスクリプト言語「PowerShell」がオープンソース化された。Windowsだけでなく、LinuxおよびMac OS Xにも対応する(ITmediaOSDN Magazine)。

ソースコードはGitHubで公開されている。また、コンパイル済みバイナリファイルも用意されている。バージョンは「v6.0.0-alpha.9」となっている。

PowerShellの各コンポーネントは.NET技術をベースとしているが、.NETのオープンソース化およびLinuxおよびMac OS Xへの移植によってPowerShellのオープンソース化が実現されたようだ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • いまだにfind -lsもできないんですが。
    それができるだけで喜んで使うのに。

    • いまだにfind -lsもできないんですが。

      それって、

      gci -r

      じゃダメなの?

      パッと見、ACLが解りにくいかもしれないけど、Get-ACLを通せばいい。
      それでもACLは解りにくいかもしれないけど、それはそもそもNTFSが高機能だからなので、仕方ない。

      親コメント
      • >gci -r
        試してみたら、すごく気持ちよかったです。これだよこれ。
        ありがとうございました。喜んで使うようにします。

        親コメント
    • by Anonymous Coward
      find -ls そのものは出来ないけど powershell だと find と同じことして情報出したいとか、より高度なことしたいっていうのは最も基本的な使い方なので、チュートリアルとかpowershell の紹介記事見ればいくらでもサンプルがあると思いますよ。
      • by Anonymous Coward
        いろいろ頑張ってfind相当のことができるようになったと思ったら
        出力が勝手に80カラムで改行されててもう二度と使わんと決めた
  • by Anonymous Coward on 2016年08月19日 18時49分 (#3066276)

    シームレスに.NET Frameworkも (やりたくないが) COMも叩けるから今までのスクリプティング環境から世界が変わる。
    調子こいて長大なバッチ処理書いたりするとめちゃくちゃ遅くて悶絶するが…

    • by Anonymous Coward

      実行速度はなんとかならんものかと思いますね。

      楽しい言語なので、何でもかんでもPowerShellでやりたくなりますが、
      ちょっと取り扱うデータ量が大きくなると、遅くてかなわんです。

      オープンソース化で、実行速度向上しないかなあ(他力本願)。

    • by Anonymous Coward

      PowerShellだととにかくスクリプトが長くなる。

      ぱっと書くにはめんどくさいし
      かっちり長々と書くと他の言語で書くより圧倒的に遅くなる

      既存の言語から乗り換える人いるのかなーというのが正直な感想。
      PythonやBashやPHPやJavaScriptで事足りてる人に何かアピールできるところって有りますか?

      マルチプラットフォームってことなら他の言語のほうが実績も資産もあるし、何より早い。
      例えば、下記のようなキメラな処理でもPowerShellより圧倒的に早い上に書くのも簡単。
      grep "hoge*" hoge.txt | gawk 'BEGIN{FS=";"}{print $3}' |

      • by meamcarrier (41359) on 2016年08月20日 14時02分 (#3066728)
        PowerShellは、コレクションを戻り値にしたときの扱いによく嵌まる。
        http://www.pine4.net/Memo/Article/Archives/203/ [pine4.net]
        大抵はObject[]だろうがArrayListだろうがどちらでも良いのだが、要素数が1つの場合に解かれて、ListのListみたいなものを扱うとわかりづらいバグになった。
        親コメント
      • by Ryo.F (3896) on 2016年08月20日 2時34分 (#3066532) 日記

        ぱっと書くにはめんどくさいし

        入力補完が賢いので、それほど面倒とも思わないけど。
        オブジェクトのメソッド・プロパティまで補完が効いたりするしね。

        かっちり長々と書くと他の言語で書くより圧倒的に遅くなる

        スピードを気にするようなところに使うもんじゃないんじゃないかな。

        PythonやBashやPHPやJavaScriptで事足りてる人に何かアピールできるところって有りますか?

        Windowsなら別ですが、Unix系OS上で、という話なら、特に無い、というのが正直なところですかね。

        ただ、パイプにオブジェクト列が流れていく様は、おもしろいと思います。

        ちょっと凝って、Pythonで書くとやや長くなるけど、PowerShellほどにはならないような

        長くなるのは、cmdletが長かったり、オプションが長かったりするせいだと思うけど、それも入力補完があれば気にならないけどな。

        いまどき、IDEとかの入力補完があるのが前提ですよね。
        Bashを対話的に使ってても入力補完はあるわけだし。

        そんなことより、.Netのライブラリが微妙に不親切なのが気に食わないです。
        ちょっとしたあったら便利なメソッドが存在してないので、いちいちちょっとづつ実装しなきゃいけない。
        # スニペット使え?

        親コメント
        • by Anonymous Coward

          元コメじゃないんですが、入力補完は気持ち悪いので完全オフにしています。
          あっ、PowerShellそのものはチマチマ使ったりしてますよ。

          • by Ryo.F (3896) on 2016年08月20日 11時34分 (#3066663) 日記

            入力補完は気持ち悪いので完全オフにしています。

            参考までに、なにが「気持ち悪い」のか聞かせてくれない?
            Bashと感触が違うからとか?

            親コメント
      • by Anonymous Coward

        COM以外にも.NETのアセンブリも同じように扱えなかったっけ?

        • by Anonymous Coward

          使えるよ。というより、そっちがメインじゃないかと思う。
          黒い画面で文字入力とか今時しないだろ。

          VisualStudio使わずSystem.Windows.Forms使ってアプリ作れるのがいいんじゃないのかね。
          ただし、IDEの支援なしにFormsのオブジェクトあれこれ作るのはかなりつらい。
          細かなフォーム作っているとやっぱりXAMLが欲しくなる。

          つまり、MSの罠

      • by Anonymous Coward

        帯襷ではあるけど久々に読むと古文書みたいになってるbashやらのシェルスクリプトが綺麗に書き換えられると思うんすよね。
        ちゃんとした構造化プログラミングもできつつ*NIXの文化圏に沿ってパイプやリダイレクトでお繋ぎできるスクリプト言語なんで。
        とはいえ.NETやCOMやOCXを手軽かつ安全にブッ叩けるのが一番パワフルな使い方なんでそういった裾野が無いとうま味も無いか…

        • by Anonymous Coward

          WindowsのパイプやリダイレクトがUnixのそれと同等と思える時点でお察し案件。

          • by Anonymous Coward on 2016年08月20日 0時53分 (#3066506)
            PowerShellのパイプやリダイレクトが、Unixのそれと同程度のものでしかないと思ってる時点でお察し案件。
            親コメント
            • by Anonymous Coward

              ぶっちゃけ、何がリダイレクトされるかがよりシンプルなUnixのほうが、インタフェースとして優れてると思うよ。
              PowerShellは、高機能なんだが直感的ではない感じ。

              • by Ryo.F (3896) on 2016年08月20日 18時24分 (#3066860) 日記

                同感だな。
                UNIXのやり方が、環境も含めて仕事をこなすのに十分、とは言えるけど、インターフェースとしては古臭い。

                もっとも、PowerShellはまだまだ不十分で、Windowsを管理するのに十分とは言い難いのも事実。

                親コメント
      • by Anonymous Coward

        > PythonやBashやPHPやJavaScriptで事足りてる人に何かアピールできるところって有りますか?
        PythonやPHPやJavaScript…JavaScript!? はともかく、Bashに比べたらプログラムは遙かに書きやすいからなぁ
        UNIXの哲学()とか言ってShellScriptでなんでもかんでもやろうとする人いるけど、あんなの黒魔術以外の何物でも無いよ

  • by Anonymous Coward on 2016年08月19日 18時53分 (#3066279)
    WSMan に相当するものがあるわけでもなく、COM でOSを操作できるわけでもない。
    設定ファイル類が レジストリみたいな一連のDB内にあるわけでもない。
    Remote-PsSession も使えない。
    Windows みたいに、これだけあればリモートもローカルも Windows の管理はなんでもOK な世界にはならん。

    ローカルに閉じたとしても PowerShell に閉じてる範囲なら フィルタやパイプの恩恵はあるけど、Unix系のパイプにベタなテキストを流すものが絡むと PowerShell の強力な機構は何一つ使えない。

    Linux で動いても嬉しさないんだよなぁ。
    • 最近、TeraTermとかCygwin関連のトラブルを
      Linuxカテゴリーで質問している人が多くて笑えます。
      問題がおきているのはWindowsの中なのに
      Windowsを使わない人に質問しようだなんて…

      PowerShellのLinux版が出てきたら、当然出てきますよ
      「ubuntuにPowerShellを入れたのですが、chkdskコマンドが実行されません」
      みたいな質問、もうね、釣りじゃなきゃ何なんだろうって…

      親コメント
    • by Ryo.F (3896) on 2016年08月20日 2時40分 (#3066535) 日記

      Remote-PsSession も使えない。

      Enter-PSSession?
      使えないの?

      そーいえば、WindowsにSSHを実装するって言ってたけど、それも使えないのかな?

      Unix系のパイプにベタなテキストを流すものが絡むと PowerShell の強力な機構は何一つ使えない。

      Windows上でも、cmdletでない普通のexeなんかが絡むと同じだね。
      「何一つ」は言い過ぎだと思うけど、確かにメリット大幅ダウンだね。

      親コメント
    • by Anonymous Coward

      Perl,Python,Ruby並のことができるなら、クロスプラットフォームなインタプリタ環境が一つ増えるのかなと思うけど、できないよね?

      • バックエンド的にMono/.NET Coreであるなら、クロスプラットフォームインタプリタ環境、まではなんとか達成してるんじゃない?

        # 十分その環境独自のことができるか、ってと微妙かもしれんけど。

        --
        M-FalconSky (暑いか寒い)
        親コメント
      • by Anonymous Coward on 2016年08月19日 20時07分 (#3066342)
        出来る出来無いでいえば、.NET フレームワークは全部使えるので、出来ることは多いよ。

        PowerShell の良いところは、Unix 系のスクリプトが阿呆みたいに 何カラム目だとか、何文字目だとかいうクソみたいなインターフェースで情報をやりとりせずに、Name だとか Size だとかの意味のある名前でやりとりが出来ること。
        親コメント
        • by Anonymous Coward

          (テキストでデータをやりとりする話)
          くそではあるが、何も考えずに/調べずに使えるところが利点でもあります(そして保守するときの欠点でもある)。

          コマンドラインのパイプにJSONデータを流せば名前でデータアクセスできてよさそう(たぶん違う)。

      • by Anonymous Coward

        (開発低調だけど) RubyやPythonは.NETで書かれた処理系があるから後で保守引き継いだ子が泣くような悪いものを作れるぞ

    • by Anonymous Coward

      Monoだと System.Windows.Forms のできそこないすらあるから割と邪悪な使い方ができる気がするぞ。
      テキストボックスに日本語入れたら爆発するけど気にするな。

    • by Anonymous Coward

      0を1にするという最大の難関が解決されたのですからあなたが1を10にすればいいのですよ

      オープンソースの良さってそういうものでしょ
      最初から完全無欠なもの以外を否定して文句を公の場で言うのに、自分は使うだけなんて乞食以下です

  • by Anonymous Coward on 2016年08月19日 18時54分 (#3066282)

    これで XP 最新のPowerShellが手軽に使えるね

    • by Anonymous Coward

      でもPerlのほうが実用的なのはここだけの話。

  • by Anonymous Coward on 2016年08月19日 19時01分 (#3066291)

    slって入力しても汽車が走らない、アレね。
    Macで動かして何か嬉しいことがあるかな。

  • by Anonymous Coward on 2016年08月19日 20時02分 (#3066340)
typodupeerror

UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie

読み込み中...