はじめに
プロンプトをカスタマイズするStarshipというツールが流行っていたのでとりあえずインストールしてみました。その際のログです。
環境情報
- Debian GNU/Linux 9 (stretch)
サーバに配置する
メディアは以下のリンクに配置されています。
記事執筆時では
starship-v0.16.0-x86_64-unknown-linux-gnu.tar.gz
というファイルでした。
こちらを適当にtarコマンドで解凍します。tmpディレクトリにtestディレクトリを作成し、そこを吐き出し先にしました。
$ tar -C /tmp/test -xzf starship-v0.16.0-x86_64-unknown-linux-gnu.tar.gz $ tree /tmp/test test └── x86_64-unknown-linux-gnu └── starship
starshipファイルを見てみると
$ file starship starship: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=54021a2a1e09fb5160c98e6870208695cd7844e0, not stripped
実行コマンドのようです。
starshipコマンドを利用する
コマンドをそのまま打てばバージョンとオプションが確認できます。
$ ./starship starship 0.16.0 Matan Kushner <hello@matchai.me> The cross-shell prompt for astronauts. ☄🌌️ USAGE: starship <SUBCOMMAND> FLAGS: -h, --help Prints help information -V, --version Prints version information SUBCOMMANDS: help Prints this message or the help of the given subcommand(s) init Prints the shell function used to execute starship module Prints a specific prompt module prompt Prints the full starship prompt https://github.com/starship/starship
利用法に書いてあったinit bash
を引数にするとスクリプト文が生成されます。
./starship init bash if [ "${BASH_VERSINFO[0]}" -gt 4 ] || ([ "${BASH_VERSINFO[0]}" -eq 4 ] && [ "${BASH_VERSINFO[1]}" -ge 1 ]) then source <("/tmp/test/x86_64-unknown-linux-gnu/starship" init bash --print-full-init) else source /dev/stdin <<<"$("/tmp/test/x86_64-unknown-linux-gnu/starship" init bash --print-full-init)"
これをevalコマンドで実行すれば利用ができます。
root@testserver:~# eval "$(/tmp/test/x86_64-unknown-linux-gnu/starship init bash)" root on testserver in root ❯
プロンプトのデザイン等が切り替わりました。in root の rootはカレントディレクトリを表しています。
恒久的に行いたい場合は.bashrcに上記コマンドを書きこむようですがテスト的に使うのであれば逐次実行するのがよさそうです。
終わりに
特に追加パッケージ等を入れずとも動くことは確認できたので、別途遊んでみようと思います。