Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

linux

X Window利用の画像ビュワー imv

RasPiとカメラを組み合わせて使うアプリの開発中にいちいち絵をみるためにVNCをつかうのが馬鹿らしくなってきました。 でX window(X11)の画像ビュワーがないか探したところ……やはりありましたよ。 実際のところ $ sudo apt install imv起動はそれなりに時間…

何らかの事情でapt install/upgradeを中断したとき

実際のところ $ sudo apt upgrade E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.dpkg を直接叩いてゴミを片付けないといけません。 $sudo dpkg --configure -a Setting up libmono-system-servicemod…

stringsコマンドで条件一致時のオフセット値も表示する

stringsコマンドで条件一致時のオフセット値も表示する場合”-o”オプションで数値がでてきます。 が……どういうわけか、デフォでは8進数です。 $ strings -o /usr/bin/make | head 1070 /lib64/ld-linux-x86-64.so.2 1533 ha@&M 3732 =Yg- 4117 }(>v 4277 DuM&

findコマンドで複数タイプの拡張子を対象にサーチする

実際のところ $ find /path/to/source/package -regex ".*\.\(svg\|png\|xpm\|gif\|ico\)$" 参考もと デスクトップエントリ - ArchWiki

xdotoolでGUIツールの操作をする その1:導入

一時、ネットゲームでボット行為といって自動的にモンスターを倒し続け寝てる間にレベルアップ~なんてのが流行った事があります。 xdotoolは業務でもそういったアレができるようになるツールです。ソコソコ歴史のあるツールで、ネットを探すと古いサイトな…

systemdで前回起動してから間が開いた場合に実行するスクリプトを書く

OnUnitInactiveSecオプションを使えば、前回起動してから間が開いた場合に実行するスクリプトを用意することができます。 実際のところ [Timer] OnUnitInactiveSec=1h 参考もと systemd.timer(5) — Arch manual pages Talk:Systemd/Timers - ArchWiki

ISO 8601形式の文字列をdateコマンドで加工する/出力する

時刻同期標準のISO 8601形式で記述された文字列を dateコマンドでよろしく扱う方法です。他の時刻構文と同様、"-d"オプションでよろしく判定してくれます。 タイムゾーンは、使用中のシェルの設定が反映されます。 私のはJSTなので、よろしくやってくれます…

systemdで指定時間ごとに稼働するスクリプトを書く

定期実行はcrontabと習いましたが、 イマドキのナウなヤングはsystemdでやるそうです。 実際のところ 60分ごとに実行 [Unit] Description=Runs mytimer every hour [Service] ExecStart=/bin/bash /path/to/action [Timer] OnUnitActiveSec=1h [Install] Wan…

opensslの暗号文生成にてパディングをなくす

OpenSSLで暗号化する際、ブロック暗号だと一定単位未満だった場合、パディングが行われます。 何らかの事情でこのパディングが邪魔な場合、"-nopad"オプションでなしにする事が可能です。 nopadオプションを使う場合は復号する際の長さに注意してください。…

openssl randでhexな乱数を生成する

$ openssl rand -hex 12 ea8fe2a0267f3405adec4dff $ openssl rand -hex 12 74f10baf6b97f77d9004670c $ openssl rand -hex 12 819b03c9ce4c695592f2943c

高速圧縮/解凍ができるlzop

gzipより10倍早いらしい圧縮方法。 netcatのようなコマンドと合わせると威力を発揮しそう。 実際のところ $ cat hoge.file | lzop-c > hoge.lzop ファイルが大きくなるケースもある!? compression - Algorithm for compressing small files (345 Bytes) - …

pvコマンドでパイプ処理の進捗をみる

pvコマンドはPipeViewerの略で、名前の通りパイプ処理の進捗状態を監視するコマンドです。 pv - monitor the progress of data through a pipe 感じはaptでパッケージ導入したときに出るアレです。 実際のところ debian系ではデフォでは入ってないので、apt…

ncコマンドのUDP受信状態から結果を送り返す

二つのRasPiをUDPで繋いで通信するアプリを書いていた時 netcatで導通試験をする場合、送信と受信を毎回入れ替えて書いてました。 なんとなく不毛な気がして、調べたところ……ちゃんとありました。 実際のところ guestとhostのraspberry Piがある想定で、host…

netcat/ncでポートが空いてるかしらべる

接続先のポート番号が解放されているか確認するときはnetcat が使えるかも 実際のところ pingコマンドはレイヤーが違ってダメなのでnetcat $ nc -vz 192.168.0.251 9600 Connection to 192.168.0.251 9600 port [tcp/*] succeeded!udp通信の場合"-u"オプショ…

rfkillで無線インターフェイスを止める

以前、raspberry piのbluetoothやwifiを無効化するコマンドを紹介しました。 rfkillはもう少し普遍的なコマンドで、linux系のコマンドとして色んなボードに適用可能となっています。 実際のところ 無線のリストを出す $ sudo rfkill list 通し番号0番の無線…

Linux系ボードでi2cで通信しないならi2cdetectでアドレスを調べなおすのも手

それまで使っていたRasPi用I2CPythonスクリプトを違うデバイスで転用したところ IOError: [Errno 121] Remote I/O error などと怒られたのですが、全く検討がつかず。入れ替えこそしたものの、中の石も周辺回路もほぼ同じなのに一体なぜ……?あれこれ調べてい…

nmcliで接続情報を消したいとき

手違いで同盟の接続先を登録してしまったとします。 たとえば、こんな感じ。 $ nmcli con NAME UUID TYPE DEVICE enxb827ebaaa 1841d147-zzz ethernet enxb827eb2aaa gsm-4gpi-interlink 9c74f8c4-xxx gsm cdc-wdm0 gsm-4gpi-interlink db17694a-yyy gsm -- …

スクショをとるscrotコマンド

発表は2000年と、わりと新しい?ツールみたいです。 実際のところ $ sudo apt install scrotいわゆるstrftime記法でタイムスタンプの記述、 画像サイズを指定する独自記法をつかってファイル名を指定できるので $ scrot '%Y-%m-%d_$wx$h.png'これは"2020-02-…

時刻フォーマットISO 8601について

いままで時刻というと 2013-09-01 06:52:14といった読みやすいフォーマットを勝手に作ってましたが GPSと連動する仕事が多くなってきてスペースが邪魔だったり色々あったので 調べ直してみました。すると、当然というか何というか、世界基準のタイムスタンプ…

opensslのサブコマンドで特定の16進数が素数かどうか判定する

$ openssl prime -hex ABAB is not primeなんやこれ生活便利ツールか(今更— 木野修造@零細事業主 (@shuzo_kino) September 27, 2019 特定の16進数が素数かどうか即出てくる人は少ないと思います。 OpenSSLのサブコマンドprimeは16進数でも、それが素数かど…

dateコマンドで日時の文字列をN時間進める

実際のところ 協定世界時を日本標準時に変更するのは以下の通り $ date -d '2013-09-01 06:52:41 9 hours' '+%Y-%m-%d %H:%M:%S' 2013-09-01 15:52:41

opensslのサブコマンドでpen特定の16進数が素数かどうか判定する

$ openssl prime -hex ABAB is not primeなんやこれ生活便利ツールか(今更— 木野修造@零細事業主 (@shuzo_kino) September 27, 2019 $ openssl prime -hex AB AB is not prime $ openssl prime -hex D D is prime

Ubuntuのユーザーに紐づいたパスワードを変更

実際のところ デフォではパスワード設定のあるなしに関わらず、上書きされます。 入力が表示されない状態で、二回入力します。 $ sudo passwd user1 新しい UNIX パスワードを入力してください: 新しい UNIX パスワードを再入力してください: passwd: パスワ…

ユーザーのデフォルトのホームディレクトリを変更する

実際のところ $ useradd -d /etc/ userA 参考もと 【 useradd 】 ユーザーを追加する | 日経 xTECH(クロステック)

usermodコマンドで端末のユーザー管理を行う

yourgropというグループを作成し、ユーザーuser-nameを登録する手順は以下の通り。 sudo usermod -a -G <yourgroup> <user-name>他にも、時限式のユーザーを作成したり、特定のユーザーのパスワードを無効化してログインできなくしたりする能力があります。 参考もと man usermod</user-name></yourgroup>

X WindowはUbuntuでも使える

shuzo-kino.hateblo.jp ではRasPiでやっていましたが、VirtualBox上のUbuntuでも当然同じことができます。 実際のところ $ ssh -X -C user@localhost -p 2222 encrobot@localhost's password: Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 5.0.0-36-generic x8…

PermissionError: [Errno 13] Permission denied: '/dev/ttyACM0'とか怒られたら

Pythonでシリアルポートを開こうとしたところ、以下のようなエラーが。 >>> ser = serial.Serial('/dev/ttyACM0', 57600) Traceback (most recent call last): File "/home/hoge/anaconda3/lib/python3.7/site-packages/serial/serialposix.py", line 265, i…

diffの"-r"オプションでディレクトリ単位でのdiffをだすことができる

diffの"-r"オプションでディレクトリ単位でのdiffを出力できます。 用途としては 何らかの事情でGit管理外で更新したネタ*1の差分チェック 似た作業だけど途中から過程が違うログファイルの比較*2 なんかがあります。manの解説はこんな風になってますね。 -r…

Linux系のシェルでi2cを扱う

i2cのインターフェイスが出ているLinux系環境でシェル経由でi2cデバイスを扱うコマンドがあります。 実際のところ 導入 $ sudo apt-get install i2c-tools つかいかた i2cset "-y"は対話モードを無効化。パイプでつなぐなら必須。 i2cset [-f] [-y] [-m mask…

シェルスクリプト だけで数値が格納されたファイルの数値を加減算する

実際のところ 数値が一行分格納されてるだけの以下のようなファイルがあったとします。 $ cat basedata.txt 14こいつの値を1追加して上書きするにはexprをつかって以下のような感じで実装します $ expr $(cat basedata.txt) + 1 > basedata.txt $ cat baseda…