2
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

LinuxでよくつかうコマンドをPowerShellでやってみる

Posted at

確認したPowerShell:Windows PowerShell ISE Host 5.1

curl -> Invoke-WebRequest

HTTPのGETの結果をファイルに出力する。

Invoke-WebRequest -Uri <URI> -OutFile <OutPut File>

実行例:

PS D:\work> Invoke-WebRequest -Uri https://www.yahoo.co.jp -OutFile yahoo.txt

ls、find -> Get-ChildItem

指定したディレクトリのファイルの一覧を取得する

Get-ChildItem -Path <Path>

実行例:

PS D:\work> Get-ChildItem -Path C:\HashiCorp

    ディレクトリ: C:\HashiCorp
    
Mode                LastWriteTime         Length Name
---                -------------         ------ ----
da----       2017/11/26      0:15                Vagrant 

ファイルの名前だけ取り出す

Get-ChildItem -Path <Path> -Name

実行例:

PS D:\work> Get-ChildItem -Path C:\HashiCorp -Name
Vagrant

ファイルの検索(find)

PS D:\work> Get-ChildItem -Recurse  -Path D:\  -include  *yahoo* 

    ディレクトリ: D:\work


Mode          LastWriteTime Length Name     
----          ------------- ------ ----     
-a---- 2019/10/26     14:37  21696 yahoo.txt

cat、head、tail -> Get-Content

ファイルの中身をみる(cat)

Get-Content -Path <Path>

実行例:

PS D:\work> Get-Content -Path .\test.text
test

ファイルの最初のx行をみる(head)

Get-Content -Path <Path> -TotalCount <Number>

実行例:

PS D:\work> Get-Content -Path .\LineNumbers.txt -TotalCount 5
This is line 1.
This is line 2.
This is line 3.
This is line 4.
This is line 5.

ファイルの最後のx行をみる(tail)

Get-Content -Path <Path> -tail <Number>

実行例:

PS D:\work> Get-Content -Path .\LineNumbers.txt -tail 5
This is line 96.
This is line 97.
This is line 98.
This is line 99.
This is line 100.

ファイルの監視(tail -f) をする

ファイルを開いたままにし、末尾に更新されたら表示する。CTRL+Cで閉じる。

Get-Content -Path <Path> -Wait -tail <Number>

実行例:あとで104行目を追加

PS D:\work> Get-Content .\LineNumbers.txt -Wait -Tail 1
This is line 103.

This is line 104.

ファイルのx行目~y行目をみる

(Get-Content -Path <Path>)[x-1..y-1]

実行例:10行目から20行目を見る

PS D:\work> (Get-Content -Path .\LineNumbers.txt)[9..19]
This is line 10.
This is line 11.
This is line 12.
This is line 13.
This is line 14.
This is line 15.
This is line 16.
This is line 17.
This is line 18.
This is line 19.
This is line 20.

ファイルのx行目をみる

(Get-Content -Path <Path> -TotalCount x)[-1]

実行例:20行目をみる

PS D:\work> (Get-Content -Path .\LineNumbers.txt -TotalCount 20)[-1]
This is line 20.

wc -l -> Get-Content

ファイルの行数をみる

(Get-Content -Path <Path>).Length

実行例:

PS D:\work> (Get-Content -Path .\LineNumbers.txt).Length
104

sort -> Sort-Object

昇順/降順で並び替える

Sort-Object -Property <項目>
Sort-Object -Property <項目>  -Descending

実行例:昇順

PS D:\work> Get-ChildItem -Path D:\Vagrant\ol121dg\database\stage\*.xml -FIle  |Sort-Object -Property Length

実行例:降順

PS D:\work> Get-ChildItem -Path D:\Vagrant\ol121dg\database\stage\*.xml -FIle  |Sort-Object -Property Length -Descending

実行例:CPU使用しているプロセスの上位10件を表示

PS D:\work> get-process  | Sort-Object -Property CPU  -Descending| Select-Object -first 5 | Format-Table -AutoSize

Handles NPM(K)  PM(K)  WS(K)    CPU(s)    Id SI ProcessName 
------- ------  -----  -----    ------    -- -- ----------- 
    638     65 182308 178116 13,120.11 10884  1 Amazon Music
    340     35  65688  70484    448.95 12192  1 chrome      
    360     41  86680 105996    430.75 11444  1 chrome      
    359     38  70972  71644    424.66 11956  1 chrome      
   1351     61 102576 115080    392.34 10500  1 Amazon Music

一意な一覧を取り出す(uniq)

Sort-Object -Property <項目>  -Unique 

実行例:一意なプロセス名を取り出す

PS D:\work> get-process | Sort-Object -Property ProcessName  -Unique | select-object ProcessName

ProcessName                                                   
-----------                                                   
Amazon Music                                                  
Amazon Music Helper                                           
AppleMobileDeviceProcess                                      
ApplicationFrameHost                   
<以下略>

または、Get-Uniqueを使用する。

PS D:\work> Get-Process | Sort-Object | Select-Object processname | Get-Unique -AsString

grep -> Select-String

ファイルから文字列を検索し表示する

Select-String -Path <パス> -Pattern '文字列'

実行例:ファイルからweatherを含む行を表示する

PS D:\work> Select-String -Path .\yahoo.txt -Pattern 'weather'

yahoo.txt:132:<td valign="top"><a href="https://weather.yahoo.co.jp/weather/">天気・災害</a></td>

history ->Get-History

過去に実行したコマンドを確認する

Get-History  

実行例:直近3つのコマンドを確認する

PS D:\work> Get-History -count 3 | format-table -AutoSize

 Id CommandLine         
 -- -----------         
169 alias               
170 Get-History         
171 Get-History -count 3

実行例:コマンドを実行したステータスを確認する

PS D:\work> Get-History -count 3 | format-list


Id                 : 170
CommandLine        : Get-History
ExecutionStatus    : Completed
StartExecutionTime : 2019/10/27 13:12:31
EndExecutionTime   : 2019/10/27 13:12:31

Id                 : 171
CommandLine        : Get-History -count 3
ExecutionStatus    : Completed
StartExecutionTime : 2019/10/27 13:13:59
EndExecutionTime   : 2019/10/27 13:13:59

Id                 : 172
CommandLine        : Get-History -count 3 | format-table -AutoSize
ExecutionStatus    : Completed
StartExecutionTime : 2019/10/27 13:14:23
EndExecutionTime   : 2019/10/27 13:14:23

diff -> Compare-Object

ファイルの文字列を比較する

Compare-Object  (Get-Content ファイル名1) (Get-Content ファイル名2)

実行例:aaa.txtとbbb.txtの差分を確認する

PS D:\work> Compare-Object (Get-Content .\aaa.txt) (Get-Content .\bbb.txt)

InputObject SideIndicator
----------- -------------
xxx         =>           
ccc         <=           

PS D:\work> Compare-Object (Get-Content .\aaa.txt) (Get-Content .\bbb.txt) -IncludeEqual

InputObject SideIndicator
----------- -------------
aaa         ==           
bbb         ==           
ddd         ==           
eee         ==           
xxx         =>           
ccc         <=           

2
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?