らくがきちょう

なんとなく ~所属組織/団体とは無関係であり、個人の見解です~

Python が実行出来るシェル「xonsh」をインストールする

xonshPython の機能が使えるシェルです。 xonsh のインストール手順をメモしておきます。

インストール

pip でインストールします。

pip install xonsh

今回のテスト環境は pyenv をグローバルにインストールしている為、xonsh は下記にインストールされました。

# which xonsh
/usr/local/pyenv/shims/xonsh

ログインシェルを変更する

ログインシェルを変更するには lshch が使えますが、使い勝手が良くないので従来からある chsh を使います。 CentOS8 最小構成では chsh がインストールされていなかった為、dnf でインストールします。

dnf -y install util-linux-user

そのまま chsh しようとしても /etc/shellsxonsh が未登録な為、エラーになり、シェルが変更出来ません。

# chsh -s /usr/local/pyenv/shims/xonsh user
Changing shell for user.
chsh: Warning: "/usr/local/pyenv/shims/xonsh" is not listed in /etc/shells.
Shell changed.

xonsh/etc/shells へ追加します。

echo '/usr/local/pyenv/shims/xonsh' >> /etc/shells

これで用意出来ました。 user という名前のユーザのログインシェルを xonsh へ変更します。

chsh -s /usr/local/pyenv/shims/xonsh user

xonsh を利用する

xonsh 上から Python を実行することが出来ます。

$ print('Hello, World!')
Hello, World!

通常の Linux コマンドを利用することも出来ます。

$ ls /
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr