*nix OS 経験者で Powershell の使い始めに学びそうなことメモ
PowerShell 起動方法
CLI
Start->Powershell or Win-r -> powershell
GUI
Start -> ISE
基本的に PowerShell(以下 PS)はオブジェクトシェル設計。
# いつかどこかのSolaris の会社で作っててパフォーマンス糞でポシャってた系 (遠い目)
なんでもかんでも .Net のオブジェクト使えるし、書き方もそれっぽいのだが、まじ打ちしようとするとひたすら怠い。あり得んくらいダリィ、例えば
$ ls
PS> Get-ChildItem
$ cat $FILE | sort | uniq
PS> Get-Content $FILE | Sort-Object | Select-Object -unique
とかなんだぜ。だから alias 使えるんだが。
# 実際は Sort-Object は sort key 指定できるし、Select-Object -unique は事前 sort はいらないとかいうのはあるけれど、それはとりあえず置いておく
*nix 使い向け、知っておくといい Alias
とりあえず alias って打てばおk
cat = type = Get-Content
ls = dir = Get-ChildItem
pwd = Get-Location
gm = Get-Member
gmo = Get-Module
gp = Get-ItemProperty
history = h = Get-History
man = help
sal = Set-Alias
sort = Sort-Object
select = Select-Object
そして当然 man = help は多用すべし
man COMMNAD or ALIAS -examples
man COMMAND or ALIAS -dtailed
man COMMAND or ALIAS -full
のように使うとなお良い。
使い始めは特に凄く Alias 使いたくなるだろうから、Alias の追加と削除の方法はここで覚えておいて損はない。
PS> Set-Alias ls Get-ChildItem # Get-ChildItem の alias として ls
PS> sal pwd Get-Location # Get-Location の alias として pwd
PS> Remove-Item alias:ls # ls の alias を削除
PS> ri alias:pwd # pwd の alias を削除
また、それ以外にも Alias のコマンドは分かっているんだけれど、オリジナルのコマンドはなんだっけ?とか、逆にオリジナルコマンドにつけられている Alias(別名) のリストが欲しい、とか Alias に関する色々な操作をしたくなるはず。
PS> alias # alias とだけ入力すると全ての alias された(別名が作成されたコマンドのリストが出力される)
PS> alias ls # ls として Alias されている元のコマンド(Definition)を表示
PS> alias g* # gで始まる Alias されているコマンドを表示
PS> alias -definition get-location # Get-Location の Alias を表示
PS> alias -definition set* # set で始まるコマンドの alias を表示
よく使いそうな 1 liners (b?sh -> Powershell)
last
$ cat $FILE | last -1
PS > cat $FILE | select -last 1
PS> cat $FILE | select -index ((cat $FILE).Length -1) # これは酷い
PS > (cat $FILE)[-1]
head
$ cat $FILE | head -1
PS > cat $FILE | select -first 1
PS> cat $FILE | select -index 0
PS > (cat $FILE)[0]
次回
環境設定
grep など
Links
http://blogs.wankuma.com/mutaguchi/archive/2010/02/13/186034.aspx
http://blog.goo.ne.jp/lunatic-sol/c/1c7910443a5ca27fffc5af60dafff38a