/darallium/です!ご覧いただきありがとうございます. 😊
「CLI初心者でも感動するような,それでいて汎用性・拡張性の高いCLIツール」を紹介する7日間の3日目の記事です 🙇
本日は「コンピュータ管理の強化」をテーマに,bottom, diskを紹介します
bottom
topとかその辺を統合してUIを最強にしたようなツールである.
install
dependencies
- rust cargo
windows
winget install --id Clement.bottom
linux/mac
# nixos, mac, snap, pacmanのみ
$ <brew/port/nix-env/snap/pacman> install
#otherwise
$ cargo install bottom --locked
チュートリアル
bottomであるが,実行ファイル名はbtmであることに注意.
大枠の四角で囲まれた部分をwidgetと呼ぶ.ショートカットキーはwidgetごとに独立している.
全体
- <H/J/K/L>: widget間を上下左右に移動;シフト押しながらであることに注意
赤矢印のwidget
- <+/-/=>:横メモリの拡大/縮小/縮尺のリセット
process
- : 上下移動
- <c/m/p/n/M/C>: cpu/memory/pid/プロセス名/GPU-ram/GPUでソート
: ソート項目選択画面を出す
- <gg\G>: 上/下の端まで移動
- </>: 検索;下に出るショートカット通りに打つと検索に縛りがかかる
- <dd>: プロセスを殺す
disk
- <d/m/u/n/t/p/r/w>: 名前/マウンテッド/使用量/空き容量/総使用量/使用率/使用率
- : 上下移動
- <gg\G>: 上/下の端まで移動
コンフィグいじり
bottomは起動時にコンフィグファイルが自動生成される.デフォルトでは,windowsは%appdata%/bottom/bottom.yaml
,linux/macOSでは~/.config/bottom/bottom.yaml
に生成される.
bottom.yamlでは,カラースキームから表示レイアウト,オプションまですべてを設定できる.デフォルト値を反転してコメントアウトされているので,必要なものをコメントアウトするのが良いだろう.
参考までに,筆者のコンフィグをいかに掲示する.
筆者のコンフィグ
[flags] rate = "1s" current_usage = true unnormalized_cpu = true group_processes = false case_sensitive = false whole_word = false regex = false hide_time = false default_widget_type = "proc" hide_table_gap = true battery = true color = "nord" mem_as_value = true tree = true process_command = true[[row]]
ratio=30
[[row.child]]
type="cpu"
[[row]]
ratio=80
[[row.child]]
ratio=4
type="mem"
[[row.child]]
ratio=3
[[row.child.child]]
type="process"
[[row]]
ratio=30
[[row.child]]
type="net"
[[row.child]]
type="disk"
default=true
[mount_filter]
is_list_ignored = true
list = ["/mnt/.*", "/boot"]
regex = true
case_sensitive = false
whole_word = false
※battery項目は,自力ビルド&ビルド時にbatteryオプションをつけないと利用できないため注意.
diskonaut
ディスクの使用領域を視覚的に割合で表示し,ディスクの整理のお供になるツールである.余談だが筆者はこれを用いてこのLinuxPCのディスクの6割をクリーンアップした.
installation
dependencies
- rust / cargo
windows
> cargo install diskonaut
macOS
$ brew install diskonaut
Linux
#dnf yay nixos
$ <dnf/yay/nix-env> install diskonaut
#otherwise
$ cargo install diskonaut
チュートリアル
$ diskonaut /
- <h/j/k/l>: 項目の移動
- <-/+>: 拡大縮小
- <Backspace>: 選択した項目の削除
topgrade
手元の環境のエコシステムをいい感じに検出していい感じにアップグレードしてくれる良い感じのツールである.
anyenvを更新して,pyenvを更新して,apt updateして,cargo updateして,...という煩雑な作業から解放される.
installation
dependencies
- cargo / rust
macOS
$ brew install topgrade
windows
> scoop install
linux
# <nix-env/pacman>
$ <nix-env/pacman> install
# otherwise
$ cargo install topgrade
チュートリアル
$ topgrade --dry-run
--dry-run
をつけて実行することで,実際にはアップデートせずに実行できる.
# neovimとpipとdenoを除外して動作
$ topgrade --disable nvim pipx deno
# neovimとdenoだけ動かす
% topgrade --only neovim deno
コンフィグいじる
topgradeの
Windowsの場合は%appdata%/topgrade.toml
%appdata%/topgrade/topgrade.toml
Linuxの場合は~/.config/topgrade.toml
~/.config/topgrade/topgrade.toml
のいずれかに配置すると機能する.デフォルトでは浅いほうに生成されるようだ.
ただし,[include]
節のpath
にファイルを置くか,topgrade.d
いかにファイルを分割できるようなので見やすいように配置するとよいだろう.個人的にはパッケージマネージャごとにファイルを作るって全部include
するのが良いのではないかと思っている.
大まかには,[misc]
で全体として,またはシステムレベルの設定,[マネージャ]
でそのパッケージマネージャの設定である.[commands]
で自分の好きな分を用意することもできる.
参考までに筆者のコンフィグも掲載する
[misc]
sudo_command = "sudo"
display_time = true
assume_yes = true
no_retry = true
disable = ["vim", "deno"]
[git]
max_concurrency = 5
pull_only_repos = [
# ぷらいばしー
]
pull_predefined = false
pull_arguments = "--rebase --autostash"
push_arguments = "--all"
[windows]
accept_all_updates = false
open_remotes_in_new_terminal = true
[firmware]
upgrade = true
あとがき
なんだかんだシステムの管理はめんどくさい.IaCとかいう概念が生まれるぐらいには多くなると人の手を離れやすい.1つのPCすら管理がめんどくさいのだから当然だろう.しかし,手元の開発環境ぐらいは最もきれいな状態にしておきたいと思ったことはないっだろうか?そんな欲望を手助けするようなソフトウェアを紹介した.
#references