mcpField
B
btop

btop

公式おすすめ
github.com開発ツール35.2kbtop今日更新
リポジトリ公式サイト

btop について

btop はシステムとプロセスメトリクスを明確なグラフィカルインターフェースで表示する機能豊富な監視ツールです。CPU、メモリ、ディスク、ネットワーク、プロセス情報の表示をサポートし、キーボード操作とカスタマイズが可能です。

主な機能

  1. 01CPU、メモリ、ディスク、ネットワークリソースをリアルタイム監視
  2. 02履歴データとトレンドをグラフ形式で可視化
  3. 03キーボードでプロセスを素早く参照・フィルタリング

活用シーン

  1. 01開発環境と本番環境でシステムパフォーマンスを監視
  2. 02リソース消費の多いプロセスを特定して対応
  3. 03システムリソース使用状況の長期的なトレンドを観察

インストール

OS またはパッケージマネージャーを選び、コマンドをターミナルで実行します。

$
brew install btop

インストール後にbtop --versionを実行して確認します。

コマンド例

よく使うコマンドを使う順に並べています。

01
btop

詳細

btop++

パッケージ状況

Linux macOS FreeBSD NetBSD OpenBSD Usage c++23 latest_release 寄付 スポンサー コーヒー btop Linux 継続ビルド macOS 継続ビルド FreeBSD 継続ビルド NetBSD 継続ビルド OpenBSD 継続ビルド

目次

寄付をご検討の場合は、まず以下への寄付をご検討ください。

README の画像 README の画像

ニュース

2026年3月22日

AI 生成コードに関する貢献ガイドラインを更新しました。

  • コードの一部でも AI によって生成された場合、投稿に [AI generated] を付ける必要があります。

    (LLM に直接プロンプトを入力した場合も、「コメントによるプロンプト」を通じて生成した場合も含みます。)

  • ボイラープレートコードやその他の反復的なコードに対して、「オートコンプリート」モードで AI の提案を使用した場合は、明記する必要はありません。

  • PR で AI の使用を開示しなかった場合、その PR はクローズされます。また、AI の使用を意図的に隠そうとした場合、今後の貢献を禁止するためにアカウントがブロックされます。

  • 投稿者が生成されたコードを理解していないように見える「バイブコーディング」による PR は却下されます。

2025年12月4日

AI によって生成/支援された PR が増えているため、以下のガイドラインを CONTRIBUTING.md に追加しました。

  • コードの大部分が AI によって生成された場合、投稿に [AI generated] を付ける必要があります。

  • 投稿者が生成されたコードを理解していないように見える「バイブコーディング」による PR は却下されます。

2024年9月22日

Btop v1.4.0 をリリースしました。

Intel GPU のサポートを追加しました。監視できるのは GPU 使用率、電力使用量、クロック速度のみです。貢献してくださった @bjia56 に感謝します。

NetBSD のサポートを追加しました。貢献してくださった @fraggerfox に感謝します。

新機能、バグ修正、新しいテーマの詳細な一覧については、CHANGELOG.md と最新のリリースをご覧ください。

2024年1月7日

Btop v1.3.0 をリリースしました。

Linux の GPU サポートと、OpenBSD のプラットフォームサポートを追加した大型リリースです。貢献してくださった @romner-set(GPU サポート)と @joske(OpenBSD サポート)に心より感謝します。 また、多数のバグ修正と小さな変更も行いました。詳細な一覧と貢献者については、CHANGELOG.md と最新のリリースをご覧ください。

GPU サポートの詳細については、以下のニュースをご覧ください。

2023年11月25日

Linux に GPU モニタリングを追加しました!

試すには、git の main ブランチからコンパイルしてください。

キー 5、6、7、0 を使って GPU モニタリングボックスの表示/非表示を切り替えます。5 = GPU 1、6 = GPU 2 などです。

GPU の統計情報/グラフは「Cpu box」にも表示できます(情報量は少なめです)。設定と詳細については、CPU オプションメニューをご覧ください。

リリースページで提供されるバイナリ(リリース時)と継続的ビルドでは、GPU サポートが有効にならない点にご注意ください。

GPU サポートは動的 GPU ライブラリの読み込みに依存するため、静的リンクも行う場合は機能しません。

GPU モニタリングを有効にしてコンパイルする方法については、Compilation Linuxをご覧ください。

GPU サポートの実装の大部分を担ってくださった @romner-set に心より感謝します。

バージョンを 1.3 に上げる大型アップデートを近日中に予定しています。

2022年8月28日

btop4win

btop4win の初回リリースを https://github.com/aristocratos/btop4win で公開しました。

続きを読む...
2022年1月16日

FreeBSD をサポートした v1.2.0 をリリースしました。現時点では FreeBSD 向けのリリースバイナリは提供していません。

移植作業に取り組んでくださった @joske に、改めて心より感謝します!

Linux、macOS、FreeBSD との互換性が確保できたため、今後は GPU モニタリングなどの新機能に注力します。

2021年11月13日

macOS をサポートした v1.1.0 をリリースしました。continuous-build-macos のバイナリは、現時点では x86 のみです。 リリースには、x86 と ARM64(Apple Silicon)の両方に対応した macOS バイナリとインストーラーが含まれています。

実装の大部分を担ってくださった @joske に心より感謝します!

2021年10月30日

@joske が開始し、主に開発を進めている OSX [macOS] ブランチと FreeBSD ブランチは、今後数週間で完成する見込みです。 OSX [macOS] ブランチには解決が必要なメモリーリークがいくつかあり、どちらのブランチにもプロセスの CPU 使用率の計算に関する問題や、修正が必要な小さな問題がいくつかあります。

バグのテストや修正、またはブランチを試してみたい方は、ぜひご協力ください。

macOS / OSX

# Install and use Homebrew or MacPorts package managers for easy dependency installation
brew install coreutils make gcc@11 lowdown
git clone https://github.com/aristocratos/btop.git
cd btop
git checkout OSX
gmake

FreeBSD

sudo pkg install gmake gcc11 coreutils git lowdown
git clone https://github.com/aristocratos/btop.git
cd btop
git checkout freebsd
gmake

macOS/OSX では GNU make(gmake)の使用を推奨しますが、必須ではありません。一方、FreeBSD では必須です。

2021年10月6日

@joske による macOS の開発が始まりました。大きな感謝を :) 現在の進捗については、OSX ブランチをご覧ください。

2021年9月18日

btop++ の Linux 版が完成しました。バージョン 1.0.0 としてリリースしました。

コンパイルに問題がある方のために、各リリースでさまざまなアーキテクチャ向けの静的コンパイル済みバイナリを提供する予定です。

コンパイルには GCC 11 が必要です。

バグは Issues ページで報告してください。

現在の開発計画:

  • 1.1.0 macOS [OSX] サポート
  • 1.2.0 FreeBSD サポート
  • 1.3.0 GPU モニタリングのサポート
  • 1.X.0 その他のプラットフォームと機能...

現時点では Windows のサポートは計画にありませんが、取り組んでくださる方がいれば、できる限り支援します。

2021年5月5日

このプロジェクトが bpytop と同等の機能をすべて備えるには、しばらく時間がかかります。システム情報の収集機能をすべて、外部ライブラリを使わずに一から作成する必要があるためです。 また、BSD と macOS/OSX を完全にサポートするには、コードへの貢献という形でのご協力が必要です。

ドキュメント

CHANGELOG.md

CONTRIBUTING.md

CODE_OF_CONDUCT.md

概要

プロセッサー、メモリー、ディスク、ネットワーク、プロセスの使用状況と統計情報を表示するリソースモニターです。

C++ 版であり、bashtop と bpytop の後継です。

機能

  • ゲームに着想を得たメニューシステムで、簡単に操作できます。
  • マウスを全面的にサポートします。キーがハイライト表示されたボタンはすべてクリックでき、プロセスリストやメニューボックスではマウススクロールを使用できます。
  • 上下キーでプロセスを選択できる、高速で応答性に優れた UI。
  • 選択したプロセスの詳細な統計情報を表示する機能。
  • プロセスをフィルタリングできます。
  • 並べ替えオプションを簡単に切り替えられます。
  • プロセスのツリービュー。
  • 選択したプロセスに任意のシグナルを送信できます。
  • プロセスリストを一時停止できます。
  • すべての設定ファイルのオプションを変更できる UI メニュー。
  • ネットワーク使用状況グラフの自動スケーリング。
  • ディスクの IO アクティビティと速度を表示します。
  • バッテリーメーター
  • グラフに使用するシンボルを選択できます。
  • カスタムプリセット
  • その他にもさまざまな機能があります...

テーマ

Btop++ は bpytop および bashtop と同じテーマファイルを使用します(bashtop のテーマでは一部の色の値が不足しています)。

利用可能なテーマについては、themes フォルダーをご覧ください。

Btop は、システムテーマを次のディレクトリから検索します。

  • ../share/btop/themes(このパスは btop 実行ファイルからの相対パスです)
  • /usr/local/share/btop/themes
  • /usr/share/btop/themes

最初に見つかった、存在し、空ではないディレクトリがシステムテーマディレクトリとして使用されます。

ユーザーテーマディレクトリは、設定されている環境変数によって異なります。

  • $XDG_CONFIG_HOME が設定されている場合、ユーザーテーマディレクトリは $XDG_CONFIG_HOME/btop/themes です
  • それ以外で $HOME が設定されている場合、ユーザーテーマディレクトリは $HOME/.config/btop/themes です
  • それ以外の場合、ユーザーテーマディレクトリは ~/.config/btop/themes です

make install コマンドは、デフォルトのテーマを [$PREFIX or /usr/local]/share/btop/themes に配置します。 ユーザーが作成したテーマは、ユーザーテーマディレクトリに配置してください。

カスタムテーマディレクトリを指定するには、コマンドラインオプション --themes-dir を使用します。 指定すると、このディレクトリがデフォルトの検索パスより優先されます。

新しいテーマの提供に関心があれば、お知らせください。

新しいプロセスリストの一時停止機能とプロセス追跡機能により、いくつかの新しいテーマ属性が追加されました。 これらの属性は、既存のすべてのテーマ(デフォルトテーマを除く)にまだ追加する必要があります。

プロセスリストのバナー属性:

  • proc_pause_bg:リストが一時停止されているときのバナーの背景色。
  • proc_follow_bg:プロセス追跡機能が有効なときのバナーの背景色。
  • proc_banner_bg:プロセス追跡機能が有効で、かつリストが一時停止されているときのバナーの背景色。
  • proc_banner_fg:バナーの前景色(テキスト色)

プロセス追跡属性:

  • followed_bg:リスト内の追跡中のプロセスの背景色。
  • followed_fg:リスト内の追跡中のプロセスの前景色。

サポートと資金提供

GitHub を通じてこのプロジェクトをスポンサーできます。選択肢については、私のスポンサー向けページをご覧ください。

または、PayPal や ko-fi から寄付できます。

あらゆるご支援に心から感謝します!

前提条件

最適な環境で使用するには、次の機能をサポートするターミナルで実行してください。

  • 24 ビットのトゥルーカラー(トゥルーカラーをサポートするターミナルの一覧はこちら)
  • オプションで「truecolor」を False に設定するか、「-lc/--low-color」引数を指定すると、24 ビットから 256 色への変換によって 256 色ターミナルをサポートします。
  • 実際の TTY デバイスが検出されると、16 色の TTY モードが有効になります。「-t/--tty」引数で強制的に有効にできます。
  • 全角文字(ウェブベースのターミナルでは問題が発生する場合があります)

また、UTF8 ロケールと、次の文字を含むフォントも必要です。

  • Unicode ブロック「Braille Patterns」U+2800 - U+28FF(TTY モード、またはグラフの種類を block もしくは tty に設定した場合は不要です。)
  • Unicode ブロック「Geometric Shapes」U+25A0 - U+25FF
  • Unicode ブロック「Box Drawing」および「Block Elements」U+2500 - U+259F
オプションの依存関係(GPU モニタリングに必要)

GPU モニタリングは、Linux と Apple Silicon GPU 搭載の macOS でサポートされています。

GPU モニタリングには、GPU サポートを有効にしてビルドされた btop バイナリ(GPU_SUPPORT=true フラグ)も必要です。

GPU サポートを有効にしたコンパイルの詳細については、GPU 互換性のセクションをご覧ください。

  • NVIDIA

    NVIDIA GPU を使用している場合は、公式の NVIDIA ドライバーを使用する必要があります。プロプライエタリ版とオープンソース版の両方で動作が確認されています。

    さらに、nvidia-ml 動的ライブラリもインストールする必要があります。このライブラリは通常、お使いのディストリビューションのドライバーパッケージに含まれています。

  • AMD

    AMD GPU を使用している場合は、rocm_smi_lib が必要です。お使いのディストリビューションのパッケージに含まれているかどうかは異なります。

  • INTEL

    ソースからコンパイルする場合は、動作する C コンパイラーが必要です。

    また、SYSFS の読み取り権限が必要です。

    make setcap(推奨)または make setuid で設定するか、sudo または同等の方法で btop を実行してください。

注意(テキストの描画に関する問題)
  • グラフ内の文字がスクリーンショットと同じように表示されない場合、システムに設定されている代替フォントが点字文字に対応していない可能性があります。

  • 点字記号を含むフォントの例については、Terminess Powerlineをご覧ください。

  • 解決策については、issue #100 にある @sgleizes のコメント リンクと @XenHat のコメント リンクをご覧ください。

  • テキストの位置がずれていて、Konsole または Yakuake を使用している場合は、「Bi-Directional text rendering」をオフにすると解決することがあります。

  • 文字が互いに重なったり、テキストや枠線の位置がずれたりするのは、btop に起因するバグではありません。ほとんどの場合、グラフを構成する点字文字が正しく描画されない fontconfig またはターミナルの問題です。

  • 前述の解決策で問題が解決しない場合は、お使いのターミナルエミュレーターの開発元にお問い合わせください。

スクリーンショット

選択したプロセスの詳細を表示するメイン UI

スクリーンショット 1

TTY モードのメイン UI

スクリーンショット 2

カスタムオプションを適用したメイン UI

スクリーンショット 3

メインメニュー

スクリーンショット 3

オプションメニュー

スクリーンショット 4

ヘルプメニュー

スクリーンショット 5

インストール

Linux 用バイナリは musl で静的コンパイルされており、カーネルリリース 2.6.39 以降で動作します

  1. 最新リリースから btop-(VERSION)-(ARCH)-(PLATFORM).tbz をダウンロードし、新しいフォルダーに展開します

    注意!64 ビット x86 システムでは x86_64 を使用してください。i486 と i686 は 32 ビットです!

  2. インストール(作成したフォルダーから実行)

    • 次を実行します:
    # use "make install PREFIX=/target/dir" to set target, default: /usr/local
    # only use "sudo" when installing to a NON user owned directory
    sudo make install
    
  3. (任意/Intel GPU と CPU のワット数の監視には必須)btop に拡張機能または suid ビットを設定します

    sudo で起動せずに任意のプロセスへシグナルを送信できるようになり、一部のシステムで発生する /proc の読み取り権限の問題を防げることがあります。

    Intel GPU のサポートと CPU のワット数の監視には必須です。

    • 次を実行します:
    # run after make install and use same PREFIX if any was used at install
    sudo make setcap
    
    • または
    # run after make install and use same PREFIX if any was used at install
    # set SU_USER and SU_GROUP to select user and group, default is root:root
    sudo make setuid
    
  • アンインストール

    • 次を実行します:
    sudo make uninstall
    
  • ヘルプを表示

    make help
    

バイナリリリース(ネイティブ OS リポジトリから)

  • openSUSE
    • Tumbleweed:
      sudo zypper in btop
      
    • その他すべてのバージョンについては、openSUSE Software: btopを参照してください
  • Fedora
    sudo dnf install btop
    
  • RHEL/Rocky/AlmaLinux 8 以降
    sudo dnf install epel-release
    sudo dnf install btop
    
  • FreeBSD
    pkg install btop
    
  • NetBSD
    pkg_add btop
    

Homebrew でのバイナリリリース(macOS(x86_64 および ARM64)/Linux(x86_64))

Linux でのコンパイル

GCC 14 以降、または Clang 19 以降が必要です。

Makefile には GNU coreutils と sed も必要です(最新のディストリビューションでは、通常すでにインストールされています)。

GPU の互換性

Btop++ は、適切なドライバーとライブラリがインストールされていれば、Linux x86_64 で Nvidia および AMD の GPU と Intel IGPUs を標準でサポートします。

glibc(または musl など)を静的リンクした場合、Nvidia または AMD の GPU サポートは動作しません!

x86_64 Linux では GPU_SUPPORT フラグが自動的に true に設定されます。GPU サポートを手動で無効にするには、次のようにフラグを false に設定します。

make GPU_SUPPORT=false(CMake の場合は cmake -DBTOP_GPU=false)

  • NVIDIA

    クローズドソース版とオープンソース版の両方で動作が確認されている、公式の NVIDIA ドライバーを使用する必要があります。

    さらに、nvidia-ml 動的ライブラリもインストールする必要があります。このライブラリは通常、ディストリビューションのドライバーパッケージに含まれています。

  • AMD

    AMDGPU のデータは ROCm SMI ライブラリを使用して取得します。このライブラリがディストリビューションのパッケージとして提供されているかどうかは、ディストリビューションによって異なります。パッケージが提供されていない場合、btop++ は RSMI_STATIC=true make フラグを使用して ROCm SMI を静的リンクします。

    このフラグを使用するには、ROCm SMI のソースコードが lib/rocm_smi_lib にある必要があります。ない場合、コンパイルは失敗します。最新のテスト済みバージョンは 5.6.x です。次のコマンドで取得できます。

    git clone https://github.com/rocm/rocm_smi_lib.git --depth 1 -b rocm-5.6.x lib/rocm_smi_lib
    
### Make を使用する場合
  1. 依存関係をインストールする(Ubuntu 24.04 Noble の例)

    sudo apt install coreutils sed git build-essential lowdown
    
  2. リポジトリをクローンする

    git clone https://github.com/aristocratos/btop.git
    cd btop
    
  3. コンパイルする

    make
    

    make のオプション:

    フラグ説明
    VERBOSE=trueコンパイラー/リンカーのコマンド全体を表示します
    STATIC=true静的コンパイルを行います
    QUIET=true出力を抑えます
    STRIP=trueデバッグシンボルを強制的に削除します(リンカーフラグ -s を追加)
    DEBUG=trueOPTFLAGS を -O0 -g に設定し、より詳細なデバッグログを有効にします
    ARCH=<architecture>ターゲットアーキテクチャを手動で設定します
    GPU_SUPPORT=<true|false>GPU サポートを有効/無効にします(X86_64 Linux ではデフォルトで有効)
    RSMI_STATIC=trueAMDGPU の照会に使用する ROCm SMI ライブラリを静的リンクします
    ADDFLAGS=<flags>コンパイラーとリンカーの両方にフラグを追加します
    CXX=<compiler>使用するコンパイラーを手動で設定します

    例:make ADDFLAGS=-march=native を指定すると、自分のシステム専用にコンパイルする場合にパフォーマンスが向上することがあります。

    注意!LDAP 認証を使用していて、glibc を使って静的コンパイルすると、LDAP ユーザーのユーザー名は UID 番号として表示されます。

  4. インストールする

    sudo make install
    

    インストール先を設定するには PREFIX=/target/dir を追加します。デフォルトは /usr/local です。

    注意!ユーザーが所有していないディレクトリにインストールする場合に限り、「sudo」を使用してください。

  5. (任意/Intel GPU サポートおよび CPU の電力監視には必須)btop に拡張機能または suid ビットを設定する

    プロセスへのシグナル送信を有効にする場合や、一部のシステムで発生する /proc の読み取り権限の問題を防ぐ場合、sudo は不要です。

    Intel GPU の監視および CPU の電力監視にも必要です。

    make install の実行後に、インストール時に使用した場合は同じ PREFIX を指定して実行してください。

    sudo make setcap
    

    または

    SU_USER と SU_GROUP を設定してユーザーとグループを選択します。デフォルトは root と root です。

    sudo make setuid
    
  • アンインストール

    sudo make uninstall
    
  • ソースディレクトリからオブジェクトファイルを削除する

    make clean
    
  • ソースディレクトリ内のすべてのオブジェクトファイル、バイナリ、作成されたディレクトリを削除する

    make distclean
    
  • ヘルプを表示する

    make help
    
### CMake を使用する(コミュニティによるメンテナンス)
  1. ビルド依存関係をインストールする

    Clang または GCC、CMake、Ninja、Lowdown、Git が必要です。

    たとえば、Debian Bookworm の場合:

    sudo apt install cmake git g++ ninja-build lowdown
    
  2. リポジトリをクローンする

    git clone https://github.com/aristocratos/btop.git && cd btop
    
  3. コンパイルする

    # Configure
    cmake -B build -G Ninja
    # Build
    cmake --build build
    

    これにより、btop のリリース版が自動的にビルドされます。

    configure ステップに渡せる便利なオプションを以下に示します。

    configure フラグ説明
    -DBTOP_STATIC=<ON|OFF>静的リンクを有効にします(デフォルトは OFF)
    -DBTOP_LTO=<ON|OFF>リンク時最適化を有効にします(デフォルトは ON)
    -DBTOP_GPU=<ON|OFF>GPU サポートを有効にします(デフォルトは ON)
    -DBTOP_RSMI_STATIC=<ON|OFF>ROCm SMI ライブラリを静的にビルドしてリンクします(デフォルトは OFF)
    -DCMAKE_INSTALL_PREFIX=<path>インストール先のプレフィックス(デフォルトは「/usr/local」)

    ほかのコンパイラを強制的に使用するには、CXX=<compiler> cmake -B build -G Ninja を実行します。

  4. インストールする

    cmake --install build
    

    root 権限が必要な場合があります。

  5. アンインストールする

    CMake はデフォルトではアンインストール用のターゲットを生成しません。インストール済みファイルを削除するには、次を実行します。

    cat build/install_manifest.txt | xargs rm -irv
    
  6. ビルドディレクトリをクリーンアップする

    cmake --build build -t clean
    

macOS OSX でのコンパイル

GCC 14 以降、または Clang 19 以降が必要です。

Makefile には GNU coreutils と sed も必要です。

依存関係を簡単にインストールするには、Homebrew または MacPorts のパッケージマネージャーをインストールして使用してください。

### Make を使用する
  1. 依存関係をインストールする(Homebrew の場合の例)

    brew install coreutils make gcc@15 lowdown
    
  2. リポジトリをクローンする

    git clone https://github.com/aristocratos/btop.git
    cd btop
    
  3. コンパイルする

    gmake
    

    make のオプション:

    フラグ説明
    VERBOSE=trueコンパイラー/リンカーのコマンドをすべて表示します
    STATIC=true静的コンパイルを行います(libgcc と libstdc++ のみ)
    QUIET=true出力を簡潔にします
    STRIP=trueデバッグシンボルの削除を強制します(リンカーフラグ -s を追加します)
    DEBUG=trueOPTFLAGS を -O0 -g に設定し、詳細なデバッグログを有効にします
    GPU_SUPPORT=<true|false>GPU サポートを有効/無効にします(macOS ではデフォルトで有効です)
    ARCH=<architecture>ターゲットアーキテクチャを手動で設定します
    ADDFLAGS=<flags>コンパイラーとリンカーの両方にフラグを追加します
    CXX=<compiler>使用するコンパイラーを手動で設定します

    例:自身のシステム向けにのみコンパイルする場合、gmake ADDFLAGS=-march=native を指定するとパフォーマンスが向上することがあります。

  4. インストールする

    sudo gmake install
    

    インストール先を設定するには PREFIX=/target/dir を追加します。デフォルトは /usr/local です。

    注意!「sudo」は、所有者がユーザーではないディレクトリにインストールする場合にのみ使用してください。

  5. (推奨)btop が常に root(または別のユーザー)として実行されるよう、suid ビットを設定する

    sudo gmake setuid
    

    ユーザーが所有していないプロセスの情報を確認したり、任意のプロセスにシグナルを送信したりするために、sudo は必要ありません。

    make install の後に実行してください。インストール時に PREFIX を指定した場合は、同じ値を使用してください。

    SU_USER と SU_GROUP を設定してユーザーとグループを指定します。デフォルトは root と wheel です。

  • アンインストール

    sudo gmake uninstall
    
  • ソースディレクトリからオブジェクトファイルを削除する

    gmake clean
    
  • ソースディレクトリ内のすべてのオブジェクトファイル、バイナリ、作成されたディレクトリを削除する

    gmake distclean
    
  • ヘルプを表示する

    gmake help
    
CMake を使用する(コミュニティによるメンテナンス)
  1. ビルド依存関係をインストールする

    Clang、CMake、Ninja、Lowdown、Git が必要です。

    brew update --quiet
    brew install cmake git llvm ninja lowdown
    
  2. リポジトリをクローンする

    git clone https://github.com/aristocratos/btop.git && cd btop
    
  3. コンパイルする

    # Configure
    export LLVM_PREFIX="$(brew --prefix llvm)"
    export CXX="$LLVM_PREFIX/bin/clang++"
    export CPPFLAGS="-I$LLVM_PREFIX/include"
    export LDFLAGS="-L$LLVM_PREFIX/lib -L$LLVM_PREFIX/lib/c++ -Wl,-rpath,$LLVM_PREFIX/lib/c++ -fuse-ld=$LLVM_PREFIX/bin/ld64.lld"
    cmake -B build -G Ninja
    # Build
    cmake --build build
    

    これにより、btop のリリース版が自動的にビルドされます。

    configure ステップに渡す便利なオプション:

    Configure フラグ説明
    -DBTOP_LTO=<ON|OFF>リンク時最適化を有効にします(デフォルトは ON)
    -DBTOP_GPU=<ON|OFF>GPU サポートを有効にします(デフォルトは ON)
    -DCMAKE_INSTALL_PREFIX=<path>インストール先のプレフィックスを設定します(デフォルトは「/usr/local」)

    特定のコンパイラーを指定するには、CXX=<compiler> cmake -B build -G Ninja を実行します。

  4. インストールする

    cmake --install build
    

    root 権限が必要な場合があります。

  5. アンインストール

    CMake はデフォルトではアンインストール用のターゲットを生成しません。インストールしたファイルを削除するには、次を実行します。

    cat build/install_manifest.txt | xargs rm -irv
    
  6. ビルドディレクトリをクリーンアップする

    cmake --build build -t clean
    

FreeBSD でのコンパイル

Clang 19(デフォルト)または GCC 14 以降が必要です。

FreeBSD でのコンパイルには GNU make(gmake)が必要です。

### gmake を使用する場合
  1. 依存関係をインストールする

    sudo pkg install gmake coreutils git lowdown
    
  2. リポジトリをクローンする

    git clone https://github.com/aristocratos/btop.git
    cd btop
    
  3. コンパイルする

    gmake
    

    make のオプション:

    フラグ説明
    VERBOSE=trueコンパイラー/リンカーのコマンドをすべて表示します
    STATIC=true静的コンパイルを行います(libgcc と libstdc++ のみ)
    QUIET=true出力を簡潔にします
    STRIP=trueデバッグシンボルを強制的に削除します(リンカーフラグ -s を追加)
    DEBUG=trueOPTFLAGS を -O0 -g に設定し、より詳細なデバッグログを有効にします
    ARCH=<architecture>ターゲットアーキテクチャを手動で設定します
    ADDFLAGS=<flags>コンパイラーとリンカーの両方にフラグを追加します
    CXX=<compiler>使用するコンパイラーを手動で設定します

    例:gmake ADDFLAGS=-march=native を指定すると、自分のシステム専用にコンパイルする場合にパフォーマンスが向上する可能性があります。

  4. インストールする

    sudo gmake install
    

    PREFIX=/target/dir を追加してインストール先を設定します。デフォルトは /usr/local です。

    注意!ユーザーが所有していないディレクトリにインストールする場合にのみ「sudo」を使用してください。

  5. (推奨)suid ビットを設定し、btop を常に root(または別のユーザー)として実行する

    sudo gmake setuid
    

    ユーザーが所有していないプロセスの情報を表示したり、任意のプロセスへのシグナル送信を有効にしたりするために、sudo を使う必要がなくなります。

    make install の実行後に実行してください。インストール時に PREFIX を指定した場合は、同じ値を使用してください。

    SU_USER と SU_GROUP を設定してユーザーとグループを選択します。デフォルトは root と wheel です。

  • アンインストール

    sudo gmake uninstall
    
  • ソースディレクトリからオブジェクトファイルを削除する

    gmake clean
    
  • ソースディレクトリ内のすべてのオブジェクトファイル、バイナリ、作成されたディレクトリを削除する

    gmake distclean
    
  • ヘルプを表示する

    gmake help
    
CMake を使用する場合(コミュニティによるメンテナンス)
  1. ビルド依存関係をインストールする

    Clang/GCC、CMake、Ninja、Lowdown、Git が必要です。

    pkg install cmake ninja lowdown
    
  2. リポジトリをクローンする

    git clone https://github.com/aristocratos/btop.git && cd btop
    
  3. コンパイルする

    # Configure
    cmake -B build -G Ninja
    # Build
    cmake --build build
    

    これにより、btop のリリース版が自動的にビルドされます。

    configure の手順に渡す便利なオプション:

    Configure フラグ説明
    -DBTOP_STATIC=<ON|OFF>静的リンクを有効にします(デフォルトは OFF)
    -DBTOP_LTO=<ON|OFF>リンク時最適化を有効にします(デフォルトは ON)
    -DCMAKE_INSTALL_PREFIX=<path>インストール先のプレフィックス(デフォルトは「/usr/local」)

    注: GCC では静的リンクは機能しません。

    別のコンパイラーを強制的に使用するには、CXX=<compiler> cmake -B build -G Ninja を実行します。

  4. インストールする

    cmake --install build
    

    root 権限が必要な場合があります。

  5. アンインストールする

    CMake はデフォルトではアンインストールターゲットを生成しません。インストール済みファイルを削除するには、次を実行します。

    cat build/install_manifest.txt | xargs rm -irv
    
  6. ビルドディレクトリをクリーンアップする

    cmake --build build -t clean
    

NetBSD でのコンパイル

GCC 14 以降が必要です。

NetBSD でのコンパイルには GNU make(gmake)が必要です。

### gmake を使用する場合
  1. 依存関係をインストールする

    /usr/sbin/pkg_add pkgin
    pkgin install -y coregutils gcc14 git gmake
    
  2. リポジトリをクローンする

    git clone https://github.com/aristocratos/btop.git
    cd btop
    
  3. コンパイルする

    CXX=/usr/pkg/gcc14/bin/g++ gmake CXXFLAGS="-DNDEBUG"
    

    make のオプション:

    フラグ説明
    VERBOSE=trueコンパイラー/リンカーのコマンドをすべて表示します
    STATIC=true静的コンパイルを行います(libgcc と libstdc++ のみ)
    QUIET=true出力を簡潔にします
    STRIP=trueデバッグシンボルを強制的に削除します(リンカーフラグ -s を追加)
    DEBUG=trueOPTFLAGS を -O0 -g に設定し、詳細なデバッグログを有効にします
    ARCH=<architecture>ターゲットアーキテクチャを手動で設定します
    ADDFLAGS=<flags>コンパイラーとリンカーの両方にフラグを追加します
    CXX=<compiler>使用するコンパイラーを手動で設定します

    例:gmake ADDFLAGS=-march=native は、ご利用のシステム専用にコンパイルする場合、パフォーマンスを向上させる可能性があります。

  4. インストールする

    sudo gmake install
    

    インストール先を設定するには PREFIX=/target/dir を追加します。デフォルトは /usr/local です。

    注意!ユーザーが所有していないディレクトリにインストールする場合にのみ、「sudo」を使用してください。

  5. (推奨)suid ビットを設定し、btop を常に root(または別のユーザー)として実行する

    sudo gmake setuid
    

    ユーザーが所有していないプロセスの情報を表示したり、任意のプロセスにシグナルを送信したりする際に、sudo は不要です。

    make install の実行後に実行してください。インストール時に PREFIX を使用した場合は、同じ値を指定してください。

    ユーザーとグループを選択するには SU_USER と SU_GROUP を設定します。デフォルトは root と wheel です。

  • アンインストール

    sudo gmake uninstall
    
  • ソースディレクトリからオブジェクトファイルを削除する

    gmake clean
    
  • ソースディレクトリからすべてのオブジェクトファイル、バイナリ、作成されたディレクトリを削除する

    gmake distclean
    
  • ヘルプを表示する

    gmake help
    
CMake を使用する場合(コミュニティによるメンテナンス)
  1. ビルド依存関係をインストールする

    GCC、CMake、Ninja、Git が必要です。

    /usr/sbin/pkg_add pkgin
    pkgin install cmake ninja-build gcc14 git
    
  2. リポジトリをクローンする

    git clone https://github.com/aristocratos/btop.git && cd btop
    
  3. コンパイルする

    # Configure
    CXX="/usr/pkg/gcc14/bin/g++" cmake -B build -G Ninja
    # Build
    cmake --build build
    

    これにより、btop のリリース版が自動的にビルドされます。

    configure の手順で指定できる便利なオプション:

    Configure フラグ説明
    -DBTOP_LTO=<ON|OFF>リンク時最適化を有効にします(デフォルトは ON)
    -DCMAKE_INSTALL_PREFIX=<path>インストール先のプレフィックス(デフォルトは '/usr/local')

    別のコンパイラーを指定するには、CXX=<compiler> cmake -B build -G Ninja を実行します。

  4. インストールする

    cmake --install build
    

    root 権限が必要な場合があります。

  5. アンインストール

    CMake はデフォルトではアンインストール用のターゲットを生成しません。インストール済みファイルを削除するには、次を実行します。

    cat build/install_manifest.txt | xargs rm -irv
    
  6. ビルドディレクトリをクリーンアップする

    cmake --build build -t clean
    

OpenBSD でのコンパイル

OpenBSD でのコンパイルには GNU make(gmake)が必要です。

### gmake を使用する場合
  1. 依存関係をインストールする

    pkg_add coreutils git gmake lowdown
    
  2. リポジトリをクローンする

    git clone https://github.com/aristocratos/btop.git
    cd btop
    
  3. コンパイルする

    gmake
    

    make のオプション:

    フラグ説明
    VERBOSE=trueコンパイラー/リンカーのコマンド全体を表示します
    STATIC=true静的コンパイルを行います(libgcc と libstdc++ のみ)
    QUIET=true出力を抑えます
    STRIP=trueデバッグシンボルを強制的に削除します(リンカーフラグ -s を追加)
    DEBUG=trueOPTFLAGS を -O0 -g に設定し、デバッグログの詳細度を上げます
    ARCH=<architecture>ターゲットアーキテクチャを手動で設定します
    ADDFLAGS=<flags>コンパイラーとリンカーの両方にフラグを追加します
    CXX=<compiler>使用するコンパイラーを手動で設定します

    例:自分のシステム専用にコンパイルする場合、gmake ADDFLAGS=-march=native によってパフォーマンスが向上する可能性があります。

  4. インストールする

    sudo gmake install
    

    PREFIX=/target/dir を追加してインストール先を指定します。デフォルトは /usr/local です。

    注意!ユーザー所有ではないディレクトリにインストールする場合にのみ、「sudo」を使用してください。

  5. (推奨)suid ビットを設定し、btop を常に root(または別のユーザー)として実行する

    sudo gmake setuid
    

    ユーザーが所有していないプロセスの情報を表示したり、任意のプロセスにシグナルを送信したりするために、sudo を使う必要がなくなります。

    make install の実行後に実行してください。インストール時に PREFIX を使用した場合は、同じ値を使用してください。

    ユーザーとグループを選択するには SU_USER と SU_GROUP を設定します。デフォルトは root と wheel です。

  • アンインストールする

    sudo gmake uninstall
    
  • ソースディレクトリからオブジェクトファイルを削除する

    gmake clean
    
  • ソースディレクトリ内のすべてのオブジェクトファイル、バイナリ、作成されたディレクトリを削除する

    gmake distclean
    
  • ヘルプを表示する

    gmake help
    
CMake を使用する場合(コミュニティによるメンテナンス)
  1. ビルド依存関係をインストールする

    GCC、CMake、Ninja、Lowdown、Git が必要です。

    注: OpenBSD 7.4 に同梱されている LLVM の libc++ は古すぎるため、btop をコンパイルできません。

    pkg_add cmake git ninja lowdown
    
  2. リポジトリをクローンする

    git clone https://github.com/aristocratos/btop.git && cd btop
    
  3. コンパイルする

    # Configure
    cmake -B build -G Ninja
    # Build
    cmake --build build
    

    これにより、btop のリリース版が自動的にビルドされます。

    configure ステップに渡す便利なオプション:

    Configure フラグ説明
    -DBTOP_LTO=<ON|OFF>リンク時最適化を有効にします(デフォルトは ON)
    -DCMAKE_INSTALL_PREFIX=<path>インストール先のプレフィックス(デフォルトは '/usr/local')

    別のコンパイラーを指定するには、CXX=<compiler> cmake -B build -G Ninja を実行します。

  4. インストールする

    cmake --install build
    

    root 権限が必要な場合があります。

  5. アンインストールする

    CMake はデフォルトではアンインストールターゲットを生成しません。インストール済みファイルを削除するには、次を実行します。

    cat build/install_manifest.txt | xargs rm -irv
    
  6. ビルドディレクトリをクリーンアップする

    cmake --build build -t clean
    

テスト

テストには CMake が必要です。テストはデフォルトでビルドされ、ctest --test-dir <build> で実行できます。

テストのビルドを無効にするには、configure ステップに -DBUILD_TESTING=OFF を渡してください。

snap のインストール

btop

注:現在、btop と btop-desktop の2種類のSnapが利用できます。デスクトップ版は大幅にサイズが大きく、クリックして btop を起動できるようにするためのデスクトップエントリーが含まれています。
  • Snapをインストールする

    sudo snap install btop
    or
    sudo snap install btop-desktop
    
  • edgeチャンネルから最新のSnapをインストールする

    sudo snap install btop --edge
    or
    sudo snap install btop-desktop --edge
    
  • インターフェースを接続する

    sudo snap connect btop:removable-media
    or
    sudo snap connect btop-desktop:removable-media
    

設定

すべてのオプションはUIから変更できます。 設定ファイルとログファイルは、$XDG_CONFIG_HOME/btop または $HOME/.config/btop フォルダーに保存されます。

btop.conf:(見つからない場合は自動生成されます)
#? Config file for btop v.1.4.5

#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
color_theme = "Default"

#* If the theme set background should be shown, set to False if you want terminal background transparency.
theme_background = true

#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
truecolor = true

#* Set to true to force tty mode regardless if a real tty has been detected or not.
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
force_tty = false

#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
#* Use whitespace " " as separator between different presets.
#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"

#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
vim_keys = false

#* Rounded corners on boxes, is ignored if TTY mode is ON.
rounded_corners = true

#* Use terminal synchronized output sequences to reduce flickering on supported terminals.
terminal_sync = true

#* Default symbols to use for graph creation, "braille", "block" or "tty".
#* "braille" offers the highest resolution but might not be included in all fonts.
#* "block" has half the resolution of braille but uses more common characters.
#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
graph_symbol = "braille"

# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_cpu = "default"

# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_mem = "default"

# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_net = "default"

# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_proc = "default"

#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
shown_boxes = "cpu mem net proc"

#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
update_ms = 2000

#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
proc_sorting = "cpu lazy"

#* Reverse sorting order, True or False.
proc_reversed = false

#* Show processes as a tree.
proc_tree = false

#* Use the cpu graph colors in the process list.
proc_colors = true

#* Use a darkening gradient in the process list.
proc_gradient = true

#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
proc_per_core = false

#* Show process memory as bytes instead of percent.
proc_mem_bytes = true

#* Show cpu graph for each process.
proc_cpu_graphs = true

#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
proc_info_smaps = false

#* Show proc box on left side of screen instead of right.
proc_left = false

#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
proc_filter_kernel = false

#* Should the process list follow the selected process when detailed view is open.
proc_follow_detailed = true

#* In tree-view, always accumulate child process resources in the parent process.
proc_aggregate = false

#* In tree-view, auto-collapse processes with this many or more direct children when
#* entering tree mode. 0 to disable. Useful for collapsing multi-process apps like browsers.
proc_tree_auto_collapse = 0

#* Should cpu and memory usage display be preserved for dead processes when paused.
keep_dead_proc_usage = false

#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
#* Select from a list of detected attributes from the options menu.
cpu_graph_upper = "Auto"

#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
#* Select from a list of detected attributes from the options menu.
cpu_graph_lower = "Auto"

#* Toggles if the lower CPU graph should be inverted.
cpu_invert_lower = true

#* Set to True to completely disable the lower CPU graph.
cpu_single_graph = false

#* Show cpu box at bottom of screen instead of top.
cpu_bottom = false

#* Shows the system uptime in the CPU box.
show_uptime = true

#* Shows the CPU package current power consumption in watts. Requires running `make setcap` or `make setuid` or running with sudo.
show_cpu_watts = true

#* Show cpu temperature.
check_temp = true

#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
cpu_sensor = "Auto"

#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
show_coretemp = true

#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
#* Example: "4:0 5:1 6:3"
cpu_core_map = ""

#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
temp_scale = "celsius"

#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
base_10_sizes = false

#* Show CPU frequency.
show_cpu_freq = true

#* How to calculate CPU frequency, available values: "first", "range", "lowest", "highest" and "average".
freq_mode = "first"

#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
clock_format = "%X"

#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
background_update = true

#* Custom cpu model name, empty string to disable.
custom_cpu_name = ""

#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
#* Only disks matching the filter will be shown. Prepend exclude= to only show disks not matching the filter. Examples: disks_filter="/boot /home/user", disks_filter="exclude=/boot /home/user"
disks_filter = ""

#* Show graphs instead of meters for memory values.
mem_graphs = true

#* Show mem box below net box instead of above.
mem_below_net = false

#* Count ZFS ARC in cached and available memory.
zfs_arc_cached = true

#* If swap memory should be shown in memory box.
show_swap = true

#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
swap_disk = true

#* If mem box should be split to also show disks info.
show_disks = true

#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
only_physical = true

#* Read disks list from /etc/fstab. This also disables only_physical.
use_fstab = true

#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
zfs_hide_datasets = false

#* Set to true to show available disk space for privileged users.
disk_free_priv = false

#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
show_io_stat = true

#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
io_mode = false

#* Set to True to show combined read/write io graphs in io mode.
io_graph_combined = false

#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
#* Example: "/mnt/media:100 /:20 /boot:1".
io_graph_speeds = ""

#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
net_download = 100

net_upload = 100

#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
net_auto = true

#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
net_sync = true

#* Starts with the Network Interface specified here.
net_iface = ""

#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes.
base_10_bitrate = "Auto"

#* Show battery stats in top right if battery is present.
show_battery = true

#* Which battery to use if multiple are present. "Auto" for auto detection.
selected_battery = "Auto"

#* Show power stats of battery next to charge indicator.
show_battery_watts = true

#* Set loglevel for "~/.local/state/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
log_level = "WARNING"
コマンドラインオプション
Usage: btop [OPTIONS]

Options:
  -c, --config <file>     Path to a config file
  -d, --debug             Start in debug mode with additional logs and metrics
  -f, --filter <filter>   Set an initial process filter
      --force-utf         Override automatic UTF locale detection
  -l, --low-color         Disable true color, 256 colors only
  -p, --preset <id>       Start with a preset (0-9)
  -t, --tty               Force tty mode with ANSI graph symbols and 16 colors only
      --no-tty            Force disable tty mode
  -u, --update <ms>       Set an initial update rate in milliseconds
      --default-config    Print default config to standard output
  -h, --help              Show this help message and exit
  -V, --version           Show a version message and exit (more with --version)

ライセンス

Apache License 2.0

コメント