プロセスの表示をカラフルにわかりやすくするprocs
はじめに
今回はps
コマンドの改良版で,プロセスの表示をカラフルにわかりやすくするprocsを使用してみました.
procsは表示をわかりやすくするだけでなく,プロセスの検索なども容易に行うことができ,非常に便利です.
procsの使い方や設定方法について,こちらにメモを残しておきます.
ターミナルで使用できる便利なツールについては,他にも記事を書いておりますので,良ければご参照ください.
procsとは
procsとは,Rust製のコマンドラインツールで,ps
コマンドの改良版です.
プロセスをカラフルに,わかりやすく表示することができます.
また,grep
を使わずとも,プロセスの検索を行なったり,プロセスのソートなども行うことが可能です.
procs
実行時に表示する項目についても設定できるので,カスタマイズ性が高いのも特徴です.
インストール方法
Homebrewやcargoなどからインストールが可能です.
その他のインストール方法については,こちらをご参照ください.
brew install procs
# or
cargo install procs
使い方
表示内容の設定
procs
コマンドでプロセスを可視化することが可能です.
procs
デフォルトの設定だとPID
, TTY
, CPU
, MEM
, CPU Time
, Command
の項目が表示されます.
表示する項目を変更する場合は,~/.config/procs/config.toml
に以下の設定を書き込みます.
▽
config.toml
の内容はこちらをクリックしてください.
[[columns]] kind = "Pid" style = "BrightYellow|Yellow" numeric_search = true nonnumeric_search = false align = "Left" [[columns]] kind = "User" style = "BrightGreen|Green" numeric_search = false nonnumeric_search = true align = "Left" [[columns]] kind = "Separator" style = "White|BrightBlack" numeric_search = false nonnumeric_search = false align = "Left" [[columns]] kind = "State" style = "ByState" numeric_search = false nonnumeric_search = false align = "Left" [[columns]] kind = "Nice" style = "BrightMagenta|Magenta" numeric_search = false nonnumeric_search = false align = "Right" [[columns]] kind = "Tty" style = "BrightWhite|Black" numeric_search = false nonnumeric_search = false align = "Left" [[columns]] kind = "UsageCpu" style = "ByPercentage" numeric_search = false nonnumeric_search = false align = "Right" [[columns]] kind = "UsageMem" style = "ByPercentage" numeric_search = false nonnumeric_search = false align = "Right" [[columns]] kind = "VmSize" style = "ByUnit" numeric_search = false nonnumeric_search = false align = "Right" [[columns]] kind = "VmRss" style = "ByUnit" numeric_search = false nonnumeric_search = false align = "Right" [[columns]] kind = "TcpPort" style = "BrightCyan|Cyan" numeric_search = true nonnumeric_search = false align = "Left" max_width = 20 [[columns]] kind = "UdpPort" style = "BrightCyan|Cyan" numeric_search = true nonnumeric_search = false align = "Left" max_width = 20 [[columns]] kind = "ReadBytes" style = "ByUnit" numeric_search = false nonnumeric_search = false align = "Right" [[columns]] kind = "WriteBytes" style = "ByUnit" numeric_search = false nonnumeric_search = false align = "Right" [[columns]] kind = "Slot" style = "ByUnit" numeric_search = false nonnumeric_search = false align = "Right" [[columns]] kind = "Separator" style = "White|BrightBlack" numeric_search = false nonnumeric_search = false align = "Left" [[columns]] kind = "CpuTime" style = "BrightCyan|Cyan" numeric_search = false nonnumeric_search = false align = "Left" [[columns]] kind = "StartTime" style = "BrightMagenta|Magenta" numeric_search = false nonnumeric_search = false align = "Left" [[columns]] kind = "Separator" style = "White|BrightBlack" numeric_search = false nonnumeric_search = false align = "Left" [[columns]] kind = "Command" style = "BrightWhite|Black" numeric_search = false nonnumeric_search = true align = "Left" [style] header = "BrightWhite|Black" unit = "BrightWhite|Black" tree = "BrightWhite|Black" [style.by_percentage] color_000 = "BrightBlue|Blue" color_025 = "BrightGreen|Green" color_050 = "BrightYellow|Yellow" color_075 = "BrightRed|Red" color_100 = "BrightRed|Red" [style.by_state] color_d = "BrightRed|Red" color_r = "BrightGreen|Green" color_s = "BrightBlue|Blue" color_t = "BrightCyan|Cyan" color_z = "BrightMagenta|Magenta" color_x = "BrightMagenta|Magenta" color_k = "BrightYellow|Yellow" color_w = "BrightYellow|Yellow" color_p = "BrightYellow|Yellow" [style.by_unit] color_k = "BrightBlue|Blue" color_m = "BrightGreen|Green" color_g = "BrightYellow|Yellow" color_t = "BrightRed|Red" color_p = "BrightRed|Red" color_x = "BrightBlue|Blue" [search] numeric_search = "Exact" nonnumeric_search = "Partial" logic = "And" [display] show_self = false cut_to_terminal = true cut_to_pager = false cut_to_pipe = false color_mode = "Auto" separator = "│" ascending = "▲" descending = "▼" tree_symbols = ["│", "─", "┬", "├", "└"] abbr_sid = true [sort] column = 0 order = "Ascending" [pager] mode = "Auto"
上記の設定は,公式で提供されているこちらの設定を使用しました.
ただし,Docker Desktop for Macではコンテナ内のプロセスをうまく取得できなかったので,dockerの項目だけ削除しております.
その他の細かい設定方法につきましては,こちらをご参照ください.
以上を設定してprocs
を実行すると以下のようになります.
数字以外の文字でプロセスを検索する (non-numeric keyword)
数字以外の文字でプロセスを検索したい場合は,procs
コマンドの後にキーワードを指定するだけです.
procs zsh
数字でプロセスを検索する (numeric keyword)
PIDなどの数字を検索する場合は,--or
/ --and
/ --nand
/ --nor
オプションの後にキーワードを指定します.
procs -or 6000 60000 60001 16723
--or
オプションは指定したキーワードのどれかにマッチしたら表示,
--and
オプションは指定したキーワード全てにマッチしたら表示,
--nand
オプションは指定した全てのキーワードにマッチしなければ表示,
--nor
オプションは指定したキーワードどれかに一致しなければ表示します.
これらのオプションを使用して検索するかどうかは,設定ファイル(~/.config/procs/config.toml
)のnumeric_search
オプションで設定できます.
watchモードを使用する
--watch
オプション,もしくは--watch-interval <secon>
を指定することで,プロセスを監視し続けることが可能です.
tree viewでプロセスを表示する
--tree
オプションを指定すると,プロセスの依存関係ごとに並び替えられて表示されます.
procs --tree
カラムをソートして表示する
昇順に表示する場合は--sorta
オプション,降順に表示する場合は--sortd
オプションを指定して,
その後にソートしたいカラム名を指定します.
procs --sortd cpu
まとめ
ps
コマンドの改良版で,プロセスの表示をカラフルにわかりやすくするprocsを使用してみました.
ps
コマンドよりも見やすく,検索やソートなども容易で非常に使いやすかったです.
他にも色々なツールが開発されているので,色々と試していきたいと思います.