PowerShellの最低限のキーバインドとコマンド

Linuxでよく使っていたキーバインドとコマンドについて、PowerShellで対応するものを最低限まとめた。
他のものについては、忘れたら検索する方針で、とりあえず事足りている。

まずはキーバインド。

Tabで補完、↑で履歴を辿る、Ctrl + Cでプロセスの終了など、Linuxと共通のものは除外した。

キーバインド動作Bash
Homeカーソルを先頭に合わせるCtrl + A
Endカーソルを末尾に合わせるCtrl + E
Ctrl + →次の単語に進むAlt + F
Ctrl + ←前の単語に戻るAlt + B
Ctrl + Home先頭まで消すCtrl + U
Ctrl + End末尾まで消すCtrl + K
F7履歴を一覧する

仕事でWindows使っていて、PowerShellもよく使うが、最低限これで結構事足りている。

Ctrl + Wに対応するキーバインドはわからなかった。めっちゃ便利なんだけどな。

スクリーンをクリアーする場合は、コマンドプロンプトのclsで代替している。

Macだと、Home、Endとかないけど、bashコマンドが効くからOK。


次はコマンド。本当に最低限。

Get-ChildItem -Name | Select-String string

対応するLinuxコマンドは、

ls | grep string

結構使うと思うんですよね。指定したディレクトリーに含まれる、特定の名前のファイルを一覧するのって。

Get-ChildItemがデフォルトで返すのは、FileInfoまたはDirectoryInfoオブジェクトなので、単純に名前だけ返したい場合は、-Nameを指定する。(-Nameを指定しても、Stringオブジェクトが返るが)

Select-Stringはgrep。ただし、Select-Stringはデフォルトでegrep(正規表現のgrep)の動きなので、ちょっと注意か。

あと、やっぱりよく使うのは、

xargs

こちらは、

command | %{command $_}

のようにする。

|でコマンドを繋ぐと、変数$_に、|の左側のコマンドの結果が入る。
%はforeachの短縮形で、結果が複数の場合に、それぞれの結果を別個に処理できる。

ちょっとややこしいのは、PowerShellでコマンドから返るのは、オブジェクトだということだ。

例えば、指定したディレクトリー直下のファイルを全て削除するコマンド、

ls ./directory/* | xargs rm 

上記のコマンドに対応するPowerShellのコマンドは、下記のようになる。

Get-ChildItem directory | %{Remove-Item $_.FullName}

または、

Get-ChildItem directory | %{$_.Delete()}

前者は、FileInfoオブジェクトのプロパティー、FullNameを使っている。
これは名の通り、ファイルのフルパスだ。
Remove-Itemコマンドレットの引数に、ファイルのフルパスを指定して、消しているわけだ。

後者は、FileInfoオブジェクトのメソッド、Deleteを使っている。
名の通り、Do it myselfで、自分(ファイル)を消しているわけだ。


本当に最低限まとめたが、今のところ、あとは上記の応用で事足りている。

まあ、Widowsは基本GUIだしね。

コメント

このブログの人気の投稿

PowerShell 6で、Shift_JISのCSVをImport-Csvで読み込んだら文字化けした

Windowsで、特定のユーザーに特定のサービスの再起動を許可する

PowerShellでイベントログを取得する時、「指定した選択条件に一致するイベントが見つかりませんでした。」が煩わしいのでcatchする