• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

powershell

date: 2022-02-20 excerpt: powershellの使い方

tag: shellwindowspowershellcoreutils


powershellの使い方

概要

  • コマンドプロンプトの代わりに作成されたwindowsのシェル
  • linuxやmacosxでも一応動くとされている
  • Foo-Barのようなキャメルケースでコマンドが定義されている
    • linuxのようなコマンドがいくつかエイリアスされている

インストール

> choco install powershell-core

基本的な使い方

GNU Linuxと似たコマンドをインストール

> scoop install 7zip curl sudo git openssh
> cargo install coreutils
  • rustで記述されたジェネリックなcoreutils

aliasの確認

> Get-Alias
CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           % -> ForEach-Object
Alias           ? -> Where-Object
Alias           ac -> Add-Content
Alias           cat -> Get-Content
Alias           cd -> Set-Location
Alias           CFS -> ConvertFrom-String                          3.1.0.0    Microsoft.PowerShell.Utility
Alias           chdir -> Set-Location
Alias           clc -> Clear-Content
Alias           clear -> Clear-Host
...

ページャー

  • インストールされたlessは日本語が正常に表示されない
  • 以下のコマンドで代替できる
> cat *.csv | Out-Host –Paging

シンボリックリンクの作成

  • シンボリックリンクはフルパスで記述されておく必要がある
  • -Target <実態があるパス>
  • -Path <作成するシンボリックリンクのパス>

具体例(OneDriveの中にあるデスクトップフォルダを, 英語の名前でシンボリックリンクを作成する)

> New-Item -ItemType Junction -Target "$PWD\OneDrive\デスクトップ" -Path "$PWD\Desktop"

NetIPConfiguration

  • ipアドレスの操作関連

IPアドレスとインターフェースインデックスの確認

> Get-NetIPConfiguration

IPアドレスをセットする

  • 192.168.40.16/24をインターフェースインデックス23に追加する例
> New-NetIPAddress -InterfaceIndex 23 -IPAddress 192.168.40.16 -PrefixLength 24

パッケージをpowershell経由でアンインストールする

アプリケーション一覧を得る

> Get-WmiObject -Class Win32_Product | Select-Object -Property Name
  • powershell経由で操作可能なパッケージ一覧が得られる

アプリケーション名を指定してアンインストール

> Get-Package  -Name "VNC Server 6.8.0" | Uninstall-Package
  • 参考
    • How to Uninstall Software Using PowerShell

powershellのバージョンの確認

> echo $PSversionTable
Name                           Value
----                           -----
PSVersion                      7.2.5
PSEdition                      Core
GitCommitId                    7.2.5
OS                             Microsoft Windows 10.0.22610
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

powershellのアップグレード

  • chocolateyなどを利用
    • > choco install pwsh
  • sshした際に起動するシェルはレジストリで定義されている
    • 単純に最新のpowershellを入れただけでは反映されない
  • 参考
    • OpenSSH : デフォルトシェルを変更する

ホストの再起動

> Restart-Computer

プロファイルをリロード

> . $PROFILE

発展

starshipをインストールしてprofileを設定

> scoop install starship neovim
> echo $PROFILE # .bashrc, .zshrcに相当するパスを確認
> nvim $PROFILE

以下の内容を書き込む

Invoke-Expression (&starship init powershell)

# Remove-Alias ls
Set-Alias ls lsd
Set-Alias b bat
Remove-Alias cp
function cp { coreutils cp $args }
function ll { coreutils ls $args }
function df { coreutils df $args }
function date { coreutils date $args }

参考

  • PowerShell入門
  • WindowsのTerminal環境を整えたい


shellwindowspowershellcoreutils Share Tweet