WindowsのPowerShellをLinuxのBashっぽく操作

powershell_bashGit Shell(GitHub Windowsと一緒にインストールされる)を叩いていて、Ctrl-AやCtrl-Pの操作が出来なくてイラッとしたときの覚書。

cmd用のClinkみたいなものが欲しい。

環境: Windows 8.1, PowerShell 4.0

 


< 2016/05/08 追記 >
Windows 10になってモジュール形式で簡単にインストールできるようになった。

参考サイト: PowerShellGet を触ってみよう - tech.guitarrapc.cóm

まずはどんなモジュールがあるか検索
PS> Find-Module

使い方が分からないのでヘルプを使えるようにする
PS> Get-Help Find-Module

他にどんなコマンドがあるか確認
PS> Get-Command -Module PowerShellGet

PSReadLineをインストール
PS> Install-Module -Name PSReadLine

Install-Module : Administrator rights are required to install modules in 'C:\Program Files\WindowsPowerShell\Modules'.
Log on to the computer with an account that has Administrator rights, and then try again, or install 'D:\Documents\Wind
owsPowerShell\Modules' by adding "-Scope CurrentUser" to your command. You can also try running the Windows PowerShell
session with elevated rights (Run as Administrator).

言われたとおりオプションを付けてみる
PS> Install-Module -Name PSReadLine -Scope CurrentUser

既にモジュールがあると言われた場合はフォルダごと削除する。

確認
PS> Get-InstalledModule

あとは下の手順にあるようにMicrosoft.PowerShell_profile.ps1を作る。

Git ShellでエラーになったのでGit Shell上でも同じようにインストールする。
PS> Install-Module -Name PSReadLine -Scope CurrentUser

早くBashが使えるようになってほしい。。。


 

PowerShellはモジュールという機能で拡張できるみたい

インストール手順

  1. README.mdに書いてあるようにコンパイル済みファイルをダウンロード。
  2. 解凍して、C:\Users\[User]\Documents\WindowsPowerShell\modules\PSReadlineに置く(モジュール用PATHが通っているから)
  3. C:\Users\[User]\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1を作成。下記のように記述

Import-Module PSReadLine
Set-PSReadlineOption -EditMode Emacs

これでGit Shellを起動し直せばキーバインドが使えるはず

あー、快適。。。

 

Git Bashよりコピー(Enter)、ペースト(右クリック)、スクロールが便利。

TortoiseGitよりGit Shellを使うようになった。Google Cloud SDK Shellを起動するよりGit Shellでgcloudを叩いた方が便利。

 

今度は普通にPowerShellを起動するとエラー

. : File D:\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 cannot be loaded because running scripts is di
sabled on this system. For more information, see about_Execution_Policies at http://go.microsoft.com/fwlink/?LinkID=135
170.
At line:1 char:3
+ . 'D:\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1'
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

 

下記サイトを参考に

PowerShellを管理者権限で起動
C:> Set-ExecutionPolicy RemoteSigned

「Y」を入力して有効に。

 

< Related Posts >