(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

StarshipをLinuxにインストールする

スポンサーリンク

はじめに

プロンプトをカスタマイズする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に上記コマンドを書きこむようですがテスト的に使うのであれば逐次実行するのがよさそうです。

終わりに

特に追加パッケージ等を入れずとも動くことは確認できたので、別途遊んでみようと思います。