読者です 読者をやめる 読者になる 読者になる

座敷牢日誌

都落ちした元SEがソフトウェアやネット関連のことを書いています

PowerShellをLinuxで普段使いする試み

クロスプラットフォーム対応したPowerShellを, Linuxで普段使いしてみたい, という試みである.

PowerShellクロスプラットフォームで使えるようになっているけど, 現実的には世のLinuxディストリビューションPowerShellを公式サポートするのは, もう少し先の話になる.

それでも使ってみたくなるのが人情である. 今のところ方法は, MicrosoftGithubリポジトリで配布しているUbuntuCentOS向けパッケージを使うか, リポジトリで公開されているソースからビルドするかのどちらかしかない. archlinux向けにはその両方の手段をAURで実現することができるけど, 安心して使えるレベルではなかったというのが正直なところ.

Microsoftが配布しているDockerイメージをそのまま使うのが, いい感じかもしれないということで, その手順と設定について述べる.

PowerShellのDockerイメージを取得

とりあえず, PowerShellのDockerイメージを取得する.

$ docker pull microsoft/powershell:latest

PowerShellを起動してみる

起動するだけなら, docker run -it microsoft/powershell で良い. 試しに動かす程度であればこれでいいが, コンテナ内のファイルにしかアクセスできないため, 普段使いにはちょっと厳しい.

そこで次のように起動してみることにする.

$ docker run --rm -it \
    -e "HOME=$HOME" \
    -w $PWD \
    -v ${HOME/home/hosthome}:$HOME \
    microsoft/powershell

これで $HOME ディレクトリ配下のファイル/ディレクトリにアクセスできるPowerShellを起動できる. -v ${HOME/home/hosthome}:$HOME で現在のホームディレクトリをコンテナと共有させている. -e "HOME=$HOME"$HOME に, 現在のホームディレクトリを設定している. これを外すと, コンテナ内の $HOME/root である. -w $PWD で現在のディレクトリをカレントディレクトリとして起動するようにしている. --rm をつけておかないと, 実行するたびにコンテナが作られ続けてしまう.

エイリアスにしておくと, 普段使いのしやすさがもっと向上するかもしれない.

$ alias powershell='docker run --rm -it \
    -e "HOME=$HOME" \
    -w $PWD \
    -v ${HOME/home/hosthome}:$HOME \
    microsoft/powershell'
広告を非表示にする