PowerShellの最低限のキーバインドとコマンド
Linuxでよく使っていたキーバインドとコマンドについて、PowerShellで対応するものを最低限まとめた。
他のものについては、忘れたら検索する方針で、とりあえず事足りている。
まずはキーバインド。
Tabで補完、↑で履歴を辿る、Ctrl + Cでプロセスの終了など、Linuxと共通のものは除外した。
仕事でWindows使っていて、PowerShellもよく使うが、最低限これで結構事足りている。
Ctrl + Wに対応するキーバインドはわからなかった。めっちゃ便利なんだけどな。
スクリーンをクリアーする場合は、コマンドプロンプトのclsで代替している。
スクリーンをクリアーする場合は、コマンドプロンプトの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だしね。
コメント
コメントを投稿