ハトネコエ Web がくしゅうちょう

プログラミングやサーバー・Web制作、チームマネジメントなど得た技術のまとめ

コマンドプロンプトより、CygWinより、Git Bashより、Windows Power Shell だ!

WindowsPowerShell という選択肢

全部経験したんですが、最近になってWindowsPowerShellがアリなんじゃないかと思ってきました。

コマンドプロンプト⇒むり。lsコマンド使えないし、エイリアスファイル読み込むのもめんどくさいし無理。

CygWin⇒かなり良い。gnupackで使ってるけど、素晴らしい。
ただし、cocosコマンドやcordovaコマンドでプロジェクトを作成できなかったり、
git push後に完了の表示が出ず、いつpushが終わったかわからなく、
しょうがなく Ctrl+C で kill するんだけど、pushが完全に終わってない状態で kill しちゃうとめんどくさいことに。

そういうわけで、かなりいいんですが、対応されていなかったり微妙なバグがあったりで使えないことも。つらい。

Git Bash⇒悪くない。bashrcでエイリアス設定できるし。
ただ、コマンドプロンプトをベースに動くので、コマンドプロンプト特有の
日本語がちゃんと表示されないバグが起こったりする。
特に、□□□□□□と日本語がなってしまうバグ、直しても数日後にまたバグったりしてるから骨が折れる。

ちなみに直し方 : msysgit で日本語を使いたい - Qiita
フォント設定を選びなおすと直るという謎すぎるものですが、実際直るんだから困ります。

WindowsPowerShellWindowsのくせしてデフォルトでlsコマンドが使える。
デフォルトでいろいろエイリアスコマンドが入ってて便利。

Windowsネイティブなので、ちゃんと環境設定でPATHを通していれば
様々なコマンドがCygWinのようなエラーを起こすことなく実行できる。
(たいていのCygWinのエラーは、Windowsが外部アプリに柔軟な書き込み権限を与えていないためと思われる)

WindowsPowerShellエイリアス ( alias : 省略コマンド ) の作り方

公式で、エイリアスの作りかたが丁寧にユーモアあふれる形で説明されてる。
Windows PowerShell エイリアス

そして、以下の記事にあるようにプロファイルの設定で、起動時におこなうコマンドが指定できるので、
起動時にエイリアス設定を自動でおこなうことができる。
エイリアス設定をエクスポート、PowerShell起動時にインポートするやり方もあるけれど、
めんどうなので、起動時に自動で読み込んでくれるプロファイルを活用する方法がオススメ)
Windows PowerShellコマンド&スクリプティング入門:PowerShellスクリプティングの第一歩(後編) (4/5) - @IT

しかし、上の説明にあるままに
My Documentフォルダに「WindowsPowerShell」フォルダを作り、「profile.ps1」ファイルを作っても、
PowerShellを起動するとabout_Execution_Policiesエラーが出てしまうので、
以下を参照してWindowsPowerShellの設定を変更。
about_Execution_Policies

長く書かれているのでわかりにくいですが、
簡単に言うと
WindowsPowerShellを「管理者で実行」して、Set-ExecutionPolicyコマンドを実行
その後

コマンド パイプライン位置 1 のコマンドレット Set-ExecutionPolicy
次のパラメーターに値を指定してください:
ExecutionPolicy:

という文章が出てくるので、RemoteSignedと入力してEnter

これで profile.ps1 の内容を次回から読んでくれます。

たとえば、prodile.ps1 にはこのような内容を書くといいでしょう。

cd c:/  ## 例えばこうすることで、初期ディレクトリをc:/にできます。

sal g git
sal em emacs

function python3{py -3}
sal py3 python3

function toPro{cd C:\MyProgramming}
sal cdpro toPro

先ほどのエイリアス設定のページでも説明されている通り、

cd c:/ のような、空白で分かれたコマンドは、そのままエイリアスで設定できないので、
一度functionを作ってコマンドを作成してからのエイリアスづくり、となります。

ちなみに sal は、WindowsPowerShell がデフォルトで定義している、
Set-Aliasエイリアス名です。

デフォルトのエイリアスはけっこうありますので、かぶらないよう、
Get-Alias で一度エイリアス一覧を見ておくことをおすすめします。
Get-Aliasエイリアスgal 。ギャルだよ!うーさー!)

こうして、自分の使いやすいWindowsPowerShell環境を作り上げることが簡単にできますので、
WindowsPowerShell、なかなかおすすめです。

なお、Windows 8.1 および Windows 10 では、
タスクバーを右クリックして行けるタスクバーのプロパティの、
「ナビゲーション>画面隅でのナビゲーション>左下隅を右クリックするか、(中略)コマンドプロンプトWindows PowerShell に置き換える(C)」
のチェックをオンにすることで、WindowsPowerShellを起動しやすくなります。