Starship on Ubuntu — Rustベースの超高速カスタマイズ可能プロンプト

開発環境

Ubuntu のターミナルをもっとかっこよく、使いやすくしたいと思ったことはありませんか?

Starship はRustで書かれた超高速のシェルプロンプトです。bash・zsh・fish など主要シェルに対応しており、インストールは1コマンドで完了します。本記事では Ubuntu 24.04 LTS の Docker 環境で実際に動かして検証した結果を載せます。

Gitブランチ名・Pythonバージョン・AWS プロファイルなど、プロンプトに表示できる情報は豊富です。それでいて starship prompt の生成は実測で数ミリ秒(後述の計測では8ms以下)という軽さでした。

Starship 公式サイト(starship.rs)トップページ
Starship 公式サイト(starship.rs)トップページ

この記事のポイント

  • Starship 1.25.1 を Ubuntu 24.04 の Docker コンテナで実測インストール済み
  • インストールは curl -sS https://starship.rs/install.sh | sh の1行だけ。単一バイナリ(実測 9.8MB)で依存パッケージ不要
  • bash・zsh どちらも設定ファイル(~/.config/starship.toml)を共有できる
  • 12種類の内蔵プリセットで、TOML編集なしに見た目を一括変更できる
  • プロンプト生成は実測 8ms / 4ms / 4ms(3回計測)と体感ゼロの軽さ
  • Ubuntu 22.04 でも同じ手順で同じバージョン(1.25.1)がインストールできる(実測で確認)

注意

本記事のコマンドは Ubuntu 24.04 LTS(Docker公式イメージ ubuntu:24.04)で検証しています。検証環境は arm64(aarch64)ですが、x86_64 のVPSでも同じコマンドで動作します(インストーラが自動で CPU を判別します)。Ubuntu 22.04 でも同様に動作することを確認済みですが、バージョンが異なると挙動が変わる場合があります。

目次

  1. Starshipとは
  2. 前提環境
  3. Starshipのインストール手順
  4. シェルへの設定(bash / zsh)
  5. プロンプト生成速度を実測する
  6. Nerd Fontの準備(任意)
  7. カスタマイズ — プリセットとstarship.toml
  8. よくあるエラーと解決策
  9. まとめ

Starshipとは

Starship は、シェルのプロンプト部分を置き換えるツールです。デフォルトでは user@host ~/projects ❯ のようなシンプルな表示ですが、Git リポジトリの中では自動的にブランチ名・変更数・stash 数などが追記されます。

特徴をまとめると:

  • 高速:Rust 製の単一バイナリのため、プロンプト生成のオーバーヘッドが体感できないほど小さい(実測で8ms以下)
  • マルチシェル対応:bash・zsh・fish・Nushell・PowerShell など幅広く対応
  • 設定ファイル共有~/.config/starship.toml ひとつで全シェルの見た目を統一できる
  • プリセット搭載:1.25.1 時点で12種類のプリセットを内蔵。1コマンドで適用可能
  • インストール不要な依存関係:バイナリひとつ(実測 9.8MB)で動く。pip・npm・cargo は不要
Starship 公式インストールガイドページ(starship.rs/guide/)
Starship 公式インストールガイドページ(starship.rs/guide/)

前提環境

今回の検証環境は以下の通りです:

  • OS:Ubuntu 24.04.4 LTS(Noble Numbat)— Docker公式イメージ ubuntu:24.04 で実測
  • curl:8.5.0(apt でインストール)
  • bash:5.2.21
  • CPUアーキテクチャ:aarch64(arm64)

Ubuntu 22.04 LTS(Jammy Jellyfish)でも同じ手順で Starship 1.25.1 がインストールできることを確認しています(後述の比較表参照)。

Starshipのインストール手順

手順1:apt を更新して curl をインストールする

Starship のインストールスクリプトは curl を使って GitHub から最新バイナリを取得します。まずは curl を用意します。




ubuntu@vps: ~
$ sudo apt update
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Reading package lists… Done

$ sudo apt install -y curl
Setting up curl (8.5.0-2ubuntu10.9) …

$ curl –version
curl 8.5.0 (aarch64-unknown-linux-gnu) libcurl/8.5.0 OpenSSL/3.0.13 …

curl 8.5.0 がインストールされました(Ubuntu 24.04 の場合)。

手順2:Starship をインストールする

公式インストールスクリプトを使います。標準では | sh の途中でインストール先の確認を求められますが、-s -- --yes を付けると対話確認をスキップできます。




ubuntu@vps: ~ (ubuntu:24.04)
$ curl -sS https://starship.rs/install.sh | sh -s — –yes
> Bin directory: /usr/local/bin
> Platform: unknown-linux-musl
> Arch: aarch64
> Tarball URL: https://github.com/starship/starship/releases/latest/download/starship-aarch64-unknown-linux-musl.tar.gz
> Installing Starship, please wait…
✓ Starship latest installed

$ starship –version
starship 1.25.1

$ ls -lh /usr/local/bin/starship
-rwxr-xr-x 1 root root 9.8M Apr 30 19:38 /usr/local/bin/starship

Starship 1.25.1 が /usr/local/bin/starship にインストールされました。バイナリサイズは実測で 9.8MB で、Python・Node.js・Go などの追加インストールは不要です。インストーラは Arch: aarch64 のように CPU を自動判別するので、x86_64 のVPSでも同じコマンドがそのまま使えます。

Starship インストール実行ログ(Ubuntu 24.04 実測)
Starship インストール実行ログ(Ubuntu 24.04 実測)
著者アイコン
著者アイコン

apt でインストールするツールと違って、Starship は公式スクリプトが GitHub Releases から直接バイナリを取得します。そのため apt リポジトリの更新状況に関係なく、常に最新版が入るのが便利なポイントです。

シェルへの設定(bash / zsh)

インストールしただけでは Starship はまだ有効になりません。シェルの設定ファイルに1行追加する必要があります。

①bash の場合(~/.bashrc に追記)




ubuntu@vps: ~
$ echo ‘eval “$(starship init bash)”‘ >> ~/.bashrc
$ source ~/.bashrc
# → Starship プロンプトが有効になります

実際に starship init bash を実行すると、次のように ~/.bashrc に書く eval 行の中身が出力されます:




ubuntu@vps: ~
$ starship init bash
eval — “$(/usr/local/bin/starship init bash –print-full-init)”

②zsh の場合(~/.zshrc に追記)




ubuntu@vps: ~
$ echo ‘eval “$(starship init zsh)”‘ >> ~/.zshrc
$ source ~/.zshrc
# → zsh でも Starship が有効になります

bash と zsh で設定ファイル ~/.config/starship.toml は共通です。1つのファイルを編集するだけで両シェルの見た目を変えられます。

bash/zsh 初期化コマンド出力と設定手順(実測)
bash/zsh 初期化コマンド出力と設定手順(実測)

③fish・その他シェルの場合




ubuntu@vps: ~
# fish: ~/.config/fish/config.fish に追記
$ echo ‘starship init fish | source’ >> ~/.config/fish/config.fish

# Nushell: ~/.config/nushell/config.nu に追記
$ starship init nu | save -f ~/.config/starship-init.nu

プロンプト生成速度を実測する

「プロンプトに色々表示すると重くなるのでは?」と心配になるかもしれません。そこで starship prompt の生成にかかる時間を Ubuntu 24.04 コンテナで実際に計測してみました。




ubuntu@vps: ~ (ubuntu:24.04)
$ for i in 1 2 3; do time starship prompt –terminal-width=80 >/dev/null; done
Run 1:
real 0m0.008s
Run 2:
real 0m0.004s
Run 3:
real 0m0.004s

$ starship timings
Here are the timings of modules in your prompt (>=1ms or output):
username – <1ms – “root in “
directory – <1ms – “/ “
container – <1ms – “⬢ [Docker] “
character – <1ms – “❯ “

3回計測で 8ms / 4ms / 4ms。各モジュールの処理時間も starship timings で見るとすべて <1ms でした。Rust 製の単一バイナリなので、プロンプト表示のもたつきはまず体感しません。

面白いのは container モジュールで、Docker コンテナ内で実行したため自動的に ⬢ [Docker] という表示が付きました。このように Starship は「今どこで作業しているか」を勝手に検出して教えてくれます。

Starship プロンプト生成速度の実測(Ubuntu 24.04)
Starship プロンプト生成速度の実測(Ubuntu 24.04)

Nerd Fontの準備(任意)

Starship のデフォルト表示は通常の UTF-8 文字のみで動作しますが、Nerd Font をインストールすると Git ブランチのマークやファイルタイプアイコンが使えます

Ubuntu VPS でターミナルをリモート接続する場合は、接続元PC側(ローカルのターミナルアプリ)に Nerd Font をインストールします。VPS 本体へのインストールは不要です。フォントを描画するのは手元のターミナルだからです。

Nerd Fontがまだない場合は no-nerd-font プリセットを使う

  • 12種類の内蔵プリセットのうち、no-nerd-fontplain-text-symbols は Nerd Font 不要
  • まずはこちらで動作確認してから、後でフォントを導入するのがおすすめです

カスタマイズ — プリセットとstarship.toml

①プリセットで一括テーマ変更

Starship 1.25.1 には12種類のプリセットが内蔵されています。starship preset --list で一覧表示でき、適用は1コマンドです。以下は実際にコンテナで starship preset --list を実行した結果です。




ubuntu@vps: ~ (ubuntu:24.04)
$ starship preset –list
bracketed-segments
catppuccin-powerline
gruvbox-rainbow
jetpack
nerd-font-symbols
no-empty-icons
no-nerd-font
no-runtime-versions
pastel-powerline
plain-text-symbols
pure-preset
tokyo-night

# 例:pure-preset を適用する
$ starship preset pure-preset -o ~/.config/starship.toml
# → ~/.config/starship.toml が生成・更新されます(既存設定は上書き)
Starship 1.25.1 内蔵プリセット一覧(実測)
Starship 1.25.1 内蔵プリセット一覧(実測)

黄色で示した no-nerd-fontplain-text-symbolspure-preset は Nerd Font なしで使えるプリセットです。試してみて気に入らなければ、rm ~/.config/starship.toml でデフォルト設定に戻せます。

Starship 公式プリセット一覧ページ(starship.rs/presets/)
Starship 公式プリセット一覧ページ(starship.rs/presets/)

②starship.toml で細かく調整

設定ファイルは ~/.config/starship.toml です。インストール直後はこのファイルは存在せず、すべてデフォルト設定で動きます。実際にコンテナで確認すると、設定ファイルがない状態では次のように表示されました。




ubuntu@vps: ~ (ubuntu:24.04)
$ starship config
no config file (using defaults)

カスタマイズしたいときは、自分で ~/.config/starship.toml を作成します。たとえば次のような内容です(これは設定例であって、自動生成されるものではありません)。




~/.config/starship.toml(設定例)
# エディタ補完を効かせるためのスキーマ指定
“$schema” = ‘https://starship.rs/config-schema.json’

# プロンプトの前に空行を入れる
add_newline = true

# 500ms以上かかるモジュールは表示しない
command_timeout = 500

# Python バージョン表示を無効化する例
[python]
disabled = true

主要な設定オプション:

  • add_newline = false :プロンプトの前の空行をなくすとすっきりします
  • command_timeout = 1000 :遅いネットワークドライブがある場合は増やすと良いです(デフォルトは500ms)
  • scan_timeout = 30 :ファイルスキャンのタイムアウト(ms)
  • [git_branch] disabled = true :特定モジュールを無効化できます
Starship 公式設定リファレンスページ(starship.rs/config/)
Starship 公式設定リファレンスページ(starship.rs/config/)

よくあるエラーと解決策

①プリセット適用後に文字化けする

原因:Nerd Font 未インストール

nerd-font-symbols など Nerd Font が必要なプリセットを、通常のフォントを使っているターミナルで適用すると記号が「□」や「?」になります。no-nerd-font プリセットに切り替えるか、Nerd Font(FiraCode Nerd Font など)をローカルのターミナルアプリに設定してください。

②starship コマンドが見つからない

command not found と出る場合は、インストール先の /usr/local/bin が PATH に含まれているかを確認します。




ubuntu@vps: ~
$ starship –version
bash: starship: command not found

# /usr/local/bin が PATH に含まれているか確認
$ echo $PATH
/usr/local/bin:/usr/bin:/bin

# バイナリが存在するか確認
$ ls /usr/local/bin/starship
/usr/local/bin/starship

/usr/local/bin が PATH に含まれていれば正常に動くはずです。含まれていない場合は export PATH=$PATH:/usr/local/bin~/.bashrc に追記してください。

③eval 行を追記したのにプロンプトが変わらない

source ~/.bashrc(bash の場合)を実行するか、新しいターミナルを開く必要があります。設定変更は現在のセッションには即座には反映されません。

④プロンプト生成が遅く感じる

本記事の実測ではプロンプト生成は8ms以下でしたが、Git の大きなリポジトリやネットワーク越しのファイルを扱うと特定のモジュールが遅くなることがあります。starship timings コマンドで各モジュールの処理時間を確認できます。遅いモジュールが特定できたら disabled = true で無効化するか、command_timeout を短くするとよいです。

まとめ

Starshipのまとめ(Ubuntu 24.04 実測)

  • Starship 1.25.1 を curl -sS https://starship.rs/install.sh | sh でインストール
  • バイナリは /usr/local/bin/starship(実測 9.8MB)。pip・npm・cargo は不要
  • bash は ~/.bashrc、zsh は ~/.zshrc に eval 行を1行追記するだけ
  • プロンプト生成は実測 8ms / 4ms / 4ms(3回計測)と非常に高速
  • 12種類の内蔵プリセットで即座にテーマ変更。Nerd Font 不要なプリセットもある
  • Ubuntu 22.04 / 24.04 どちらでも同一バージョン(1.25.1)・同一手順でインストール可能(実測)
Ubuntu 22.04 vs 24.04 Starshipインストール比較(実測)
Ubuntu 22.04 vs 24.04 Starshipインストール比較(実測)

Starship を入れると毎日使うターミナルが格段に使いやすくなります。正直、一度慣れると素の bash プロンプトには戻れなくなります。まず no-nerd-font プリセットで試してみて、気に入ったら Nerd Font を導入してみてください。

自分の VPS を持っていれば、Starship を入れたサーバーにいつでも SSH でアクセスできます。VPS をまだお持ちでない方は、東京リージョンがある Vultr がLinuxの学習環境としておすすめです。

VPS 各社の比較・価格・東京リージョン対応状況については、以下の記事にまとめています。

コメント

タイトルとURLをコピーしました