Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

linux

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…

シェルコマンドでifなしで前のコマンドが成立した時に次のコマンドを実行する

とある事情により、if文やtest([)を使わずにファイルが存在するか確認して次のコマンドを実行するという奇怪な処理を実装する必要がでてきました。 その時の調査メモです。 実際のところ 手っ取り早い方法としてlsで存在を確認し ファイルが存在しないとエラ…

diskutilのサブコマンドeraseDiskでSDカードを初期化

クソザコナメクジなので知らなかったのですが、diskUtilってフォーマット用の命令もあったんですね…… これを使えば、RasPI用カードの初期化が楽にできちゃいます。 実際のところ コマンドの説目いをみると、以下のようになってます。 $ diskutil eraseDisk -…

shellでTDDするshunit2 その5:Table Driven Testで似たテストを自動化

Table Driven Testをつかうと、似たデータのテストをブン回すときに便利です。 実際のところ ヒアドキュメントで while read desc arg want; do got=$(fn ${arg}) rtrn=$? assertTrue "${desc}: fn() unexpected error; return ${rtrn}" ${rtrn} assertEqual…

shcコマンドでシェルスクリプト を難読化(というかバイナリ化)する

まあ、ガチの人に狙われたら一たまりもないので……気休めかもしれません。 実際のところ myscript.shを加工したい場合、以下のコマンドで"myscript.sh.x"と"myscript.sh.x.c"というのができます。 構造としては、シェルスクリプトをC言語に変換し、そいつをビ…

seqとprintfでjotの16進数っぽい記法をつかう

shuzo-kino.hateblo.jp という記事を書きましたが……jotはopenBSD由来のコマンドで 多少遅くなっても seqとprintfの合わせ技の方が良さげ $ seq 0 10 100 | xargs printf "0x%04x\n" 0x0000 0x000a 0x0014 0x001e 0x0028 0x0032 0x003c 0x0046 0x0050 0x005a …

netcat/ncの送信データ改行をCRLFにする

改行の取り扱いはWindowsと*NIX系で違いますが、 何らかの事情でnetcatの出力をCRLF固定としたい場合もあるでしょう。 その場合、"-C"オプションを使うと、そこを固定できます。 "-C' Send CRLF as line-ending" 実際のところ $ echo "hoge" | nc -C localho…

Raspberry Pi 3 B+を WiFiアクセスポイントとして運用する

RasPiをWiFiアクセスポイントに設定すると、 機器の接続で楽できて便利ですね。 今回はそんな話。 実際のところ 参考もと様にスクリプト例が置いてありましたので、 こちらを参考に……。 #!/bin/bash # # This version uses September 2017 august stretch im…

cuコマンドで簡単にシリアル通信をやる

実際のところ $ cu -s 9600 -l /dev/ttyUSB0やめるときは "~"の後に"." 参考もと 【入門】Linux機にUSB-シリアル変換ボードをつなげてみる【備忘録】 | 團長の小部屋 https://linuxjf.osdn.jp/JFdocs/Remote-Serial-Console-HOWTO/index.html ttyについて tt…

netcatで擬似的なWEB鯖をつくる

実際のところ 鯖 whileでブンまわしつつ、ncにcloseで毎回切るように。 $ while true; do ( echo "HTTP/1.0 200 Ok"; echo; cat -u ./sample.html ) | nc -l -p 8080; done ファイルはこんなもんをつかいました。 $ cat sample.html <body> here!! </body> 送信 $ nc loca…

netcat/ncの受信モードで実行後にコマンドを実行しておくる

-e, --exec=PROGRAM program to exec after connect 実際のところ 受け側 $ nc -l -p 5000 -e "echo 123" 送り側 $ echo yeah! | nc localhost 5000 実行結果 受け側 $ nc -l -p 5000 -e "echo 123" $ 送り側 $ echo yeah! | nc localhost 5000 123 read(net…

netcat/ncの受信モードで連続して受け取るようにする

netcat/ncの受信モードだと一個パケットをつかむと止まったりします。 これを継続するには-kオプションです。 ……例のごとく、なぜかmacOS環境ではmanやhelpには載ってません。 どういうこっちゃ……?? k' Forces nc to stay listening for another connectio…

netcatの-cオプションで送って閉じる

netcatで送信を行うとき、うまくコマンドが閉じないケースがあります。 とくにUDPだとそのまんまです。 このとき、-cオプションを使うとうまく閉じる事ができます。 実際のところ パイプに繋げたUDP通信で、送ったきり閉じてしまいたい時は以下のようにしま…

スペース文字が入ったファイル名をxargsを使って一括変換したいとき、-0オプションを使うといいかも

シェルスクリプトでファイル名を一括変換したり、ファイル移動したりしたいが 該当ファイルにスペースが入っていてxargsがうまく動かない場合があります。 そんな時は、ヌル文字をデリミターにつかう"-0"オプションが使えるかもしれません。 実際のところ こ…