command line – matoken's blog https://matoken.org/blog Is there no plan B? Mon, 08 Dec 2025 08:37:06 +0000 ja hourly 1 https://wordpress.org/?v=6.9 https://matoken.org/blog/wp-content/uploads/2025/03/cropped-1865f695c4eecc844385acef2f078255036adccd42c254580ea3844543ab56d9-32x32.jpeg command line – matoken's blog https://matoken.org/blog 32 32 コマンドラインシステム観察,情報表示,ベンチマークツールのsot https://matoken.org/blog/2025/12/08/sot/ https://matoken.org/blog/2025/12/08/sot/#respond Sun, 07 Dec 2025 15:02:11 +0000 https://matoken.org/blog/?p=4819

sot logo

top みたいなシステム観察の他にscreenfetch のようなシステム情報,更にベンチマーク機能のあるsot というツールを試してみました.

sot 導入

sot はいくつかの導入方法があります. curl | bash が最初にお勧めとして紹介されていますが個人的にこれは好きではないのでuv で導入しました.

$ uv tool install sot
$ which sot
/home/matoken/.local/bin/sot
$ sot --version
╭──────────────────── System Observation Tool ────────────────────╮
│                                                                 │
│        ▄▀▀  ▄▀▀▄  ▀█▀                                           │
│        ▀▀▄  █  █   █                                            │
│        ▄▄▀  ▀▄▄▀   █                                            │
│                                                                 │
│  System Observation Tool                                        │
│                                                                 │
╰─────────────────────────────────────────────────────────────────╯

╭──────────────────── 📋 Version Information ─────────────────────╮
│                                                                 │
│   Version:      5.0.0                                           │
│   Python:       3.13.11                                         │
│   Platform:     Linux (Debian GNU/Linux n/a)                    │
│   Architectur…  x86_64                                          │
│                                                                 │
╰─────────────────────────────────────────────────────────────────╯

╭─────────────────────────────────────────────────────────────────╮
│  MIT License © 2024-2025 Kumar Anirudha                         │
│  🔗 https://github.com/anistark/sot | 📖 sot --help | 🚀 sot    │
╰─────────────────────────────────────────────────────────────────╯

sot version

Note

sot 4.4.2 で試したときはuv 及びpipx での導入時にシステム情報表示機能の info option や
benchmark 機能の bench option が出てこず使えませんでした.source から導入したらok.

sot: error: unrecognized arguments: info
sot: error: unrecognized arguments: bench

sot 実行

まずはオプション無しでsot 実行.top のような動きです.
o key で並べ替えモードになり矢印キーで設定,Enter で総巡航順変更, q で並べ替えモードから抜けます.
Ctrl+q で終了です.
カラフルで楽しいです.

sot top

sot システム情報表示(info)

次にシステム情報表示の info オプションを試します.

$ sot info
       _,met$$$$$gg.            Host        -  matoken@tp-l13
    ,g$$$$$$$$$$$$$$$P.
  ,g$$P"     """Y$$."`.         OS          -  Debian GNU/Linux n/a
 ,$$P'              `$$$.       Kernel      -  6.17.10+deb14-amd64
',$$P       ,ggs.     `$$b:     DE          -  i3
`d$$'     ,$P"'   .    $$$      WM          -  x11
 $$P      d$'     ,    $$P      Shell       -  bash
 $$:      $$.   -    ,d$$'      Terminal    -  xterm-kitty
 $$;      Y$b._   _,d$P'
 Y$$.    `.`"Y$$$$P"'           Memory      -  9 GiB / 15 GiB
 `$$b      "-.__
  `Y$$
   `Y$$.                        Uptime      -  8h 53m
     `$$b.                      Battery     -  100% & Discharging
       `Y$$b.

Battery があるのは珍しいですね.でも値は間違っていそう?
logoの種類は以下の通り.少し少なめ.

macOS: Apple logo

Linux Distributions:

Ubuntu
Debian
Fedora
Red Hat / RHEL
Arch Linux
Manjaro
Pop!_OS
CentOS
Generic Linux/Tux (fallback)

Windows: Windows logo

sot ベンチマーク(bench)

次にベンチマークの bench オプション.
実行時にシステム内のディスクが表示されるのでベンチ対象をカーソルで選択しベンチマークを実行します.

Use arrow keys (↑↓) to navigate, Enter to select, or 'q' to quit:

  ❯ 0: System - 450.9 GiB total, 4.6 GiB free
    1: efi - 511.0 MiB total, 501.9 MiB free
    2: boot - 455.1 MiB total, 338.7 MiB free
    3: 068d2d0a-235d-4c86-839e-4d37081979a2 - 457.4 GiB total, 197.5 MiB free

✓ Selected: System
  Using partition: /dev/mapper/tp--l13--vg-root (/)

Running benchmarks on System...

Per-benchmark duration: 10.0s

Benchmarking... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 00:01:31.39


╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────── System ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────│ Disk ID: /dev/mapper/tp--l13--vg-root (System)                                                                                                                                                                                              │
│ Total Capacity: 450.9 GiB                                                                                                                                                                                                                   │
│ Free Space: 4.6 GiB                                                                                                                                                                                                                         │
│ Cache Directory: /home/matoken/.sot/bench                                                                                                                                                                                                   │
│                                                                                                                                                                                                                                             │
│ Partitions:                                                                                                                                                                                                                                 │
│   • /dev/mapper/tp--l13--vg-root → /                                                                                                                                                                                                       │   • /dev/mapper/tp--l13--vg-root → /run/schroot/mount/bookworm-i386-53c15ea2-b9a4-4693-b02b-be7786ca929f                                                                                                                                   │   • /dev/mapper/tp--l13--vg-root → /run/schroot/mount/bookworm-i386-53c15ea2-b9a4-4693-b02b-be7786ca929f/home                                                                                                                              ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────                                     Benchmark Results
┏━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Test              ┃ Throughput/IOPS ┃ Avg Latency ┃ p95 Latency ┃ p99 Latency ┃ Duration ┃
┡━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ Sequential Read   │ 245.9 MB/s      │ 4.06 ms     │ 11.76 ms    │ 24.01 ms    │ 10.00 s  │
│ Sequential Write  │ 177.7 MB/s      │ 5.59 ms     │ 9.13 ms     │ 12.46 ms    │ 10.00 s  │
│ Random Read IOPS  │ 40.61 KIO/s     │ 20.43 µs    │ 107.53 µs   │ 211.48 µs   │ 10.00 s  │
│ Random Write IOPS │ 834.60 IO/s     │ 1.18 ms     │ 2.59 ms     │ 5.12 ms     │ 10.00 s  │
└───────────────────┴─────────────────┴─────────────┴─────────────┴─────────────┴──────────┘

✓ Benchmarking completed successfully

簡易的なベンチに良さそうです.

sot ディスク情報(disk)

もう一つdisk オプション.これは最近追加されたオプションのようでディスク情報をインタラクティブに表示するもののようです.
カーソルでディスクを選択してEnter で情報が見れます.

$ sot disk

sot disk

]]>
https://matoken.org/blog/2025/12/08/sot/feed/ 0
コマンドライン標準入力からあいまい検索が出来る「pick」 https://matoken.org/blog/2021/03/28/pick-which-allows-fuzzy-search-from-standard-command-line-input/ https://matoken.org/blog/2021/03/28/pick-which-allows-fuzzy-search-from-standard-command-line-input/#comments Sun, 28 Mar 2021 13:31:23 +0000 http://matoken.org/blog/?p=3152

コマンドラインの標準入力をあいまい検索してその結果を主治力出来るpickというコマンドを知ったので試してみました.

たくさんの環境パッケージがあります.今回はDebian sid amd64とRaspberry Pi OS buster armhfで pick パッケージを導入しました.

$ sudo apt install pick (1)
$ ls ~/Downloads/*.pdf | wc -l (2)
181
$ ls ~/Downloads/*.pdf | pick | xargs -I{} xpdf "{}" (3)
rpi (4)
/home/matoken/Downloads/rpi_DATA_CM_3p0.pdf
/home/matoken/Downloads/rpi_MECH_3b_1p2.pdf
/home/matoken/Downloads/RPi-Camera-User-Manual.pdf
/home/matoken/Downloads/rpi_SCH_3b_1p2_reduced.pdf
/home/matoken/Downloads/rpi_SCH_4b_4p0_reduced.pdf
/home/matoken/Downloads/rpi_SCH_ZeroW_1p1_reduced.pdf
/home/matoken/Downloads/RPi_Pi Pico_Digital Edition.pdf
  1. pick パッケージ導入
  2. pdfファイルがたくさんある
  3. lsの結果をpickを挟んでxpdfに渡す
  4. 「rpi」とキーワードを入力することで絞り込まれる

pick 01

上下カーソル入力で結果を選択,Enterで確定.確定された行はSTDOUTに出力され,今回の例では xpdf で開かれる.

コマンド結果が多くて grep を繋いでいくみたいなときに pick を使うとインタラクティブに絞り込まれたりしてわかりやすいです.

似たものに sysboxchoose-stdin というものもあります.

環境1
$ dpkg-query -W pick
pick    2.0.2-1.1
$ lsb_release -dr
Description:    Debian GNU/Linux bullseye/sid
Release:        unstable
$ uname -m
x86_64
環境2
$ dpkg-query -W pick
pick    2.0.2-1
$ lsb_release -dr
Description:    Raspbian GNU/Linux 10 (buster)
Release:        10
$ uname -m
armv7l
$ cat /proc/device-tree/model ;echo
Raspberry Pi 3 Model B Rev 1.2
]]>
https://matoken.org/blog/2021/03/28/pick-which-allows-fuzzy-search-from-standard-command-line-input/feed/ 1
Flickrにコマンドラインから画像をアップロードするFlickr-Uploadを試す https://matoken.org/blog/2018/06/25/upload-an-image-from-the-command-line-to-flickr-try-flickr-upload/ https://matoken.org/blog/2018/06/25/upload-an-image-from-the-command-line-to-flickr-try-flickr-upload/#respond Sun, 24 Jun 2018 21:43:44 +0000 http://matoken.org/blog/?p=1960 何時もはflickcurlを利用しているのですが,複数のアカウントに対応していないようなので別のツールを探してFlickr-Uploadを見つけました.

const char* config_filename = ".flickcurl.conf";

Install

$ sudo apt install libflickr-upload-perl

認証

  • URLを開くと認証画面になるので許可する
  • リダイレクトでダミーURLに飛ばされるのでそのURLをURL:のところに貼り付ける
$ flickr_upload --oauth
Please open this URL in your browser and follow the instructions:

https://api.flickr.com/services/oauth/authorize?oauth_token=72157697799378834-ad02ea9a475eac80&perms=write

When you authorize this app, you'll be directed to a dummy URL
that contains a confirmation code. Paste that URL here.

URL: https://127.0.0.1/?oauth_token=999999999999999999-deadbeefdeadbeef&oauth_verifier=123456bdeadbeef
Saving OAuth credentials to /home/mk/.flickroauth.st
Uploading /home/mk/.flickrrc...Can't read photo '/home/mk/.flickrrc' at /usr/share/perl5/Flickr/Upload.pm line 128, <STDIN> line 1.
  • ~/.flickroauth.st に認証ファイルが作られる
$ ls -l /home/mk/.flickroauth.st
-rw-r--r-- 1 mk mk 673  6月 24 08:47 /home/mk/.flickroauth.st

アップロード

$ flickr_upload --public 1 ~/Pictures/20180624_06:06:55-8334.jpg
Uploading /home/mk/Pictures/20180624_06:06:55-8334.jpg...
Waiting for upload results (ctrl-C if you don't care)...
/home/mk/Pictures/20180624_06:06:55-8334.jpg is at https://www.flickr.com/tools/uploader_edit.gne?ids=12345678902

10分毎に自動アップロード

2,12,22,32,42,52 * * * *    D=`date +\%m\%d\%H\%M.\%S` ; find ~/Pictures -newer ${HOME}/Pictures/.flickr_time \( -iname "*.jpg" -o -iname "*.png" \) -type f -print0 | xargs -0 -r -n1 flickr_upload --public 0 --tag 'autoupload' && touch -t ${D} ${HOME}/Pictures/.flickr_time

*/10+2とかできればいいのに

環境

$ dpkg-query -W libflickr-upload-perl
libflickr-upload-perl   1.60-1
$ lsb_release -d
Description:    Debian GNU/Linux unstable (sid)
$ uname -m
x86_64
]]>
https://matoken.org/blog/2018/06/25/upload-an-image-from-the-command-line-to-flickr-try-flickr-upload/feed/ 0