Bye Bye Moore

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

linux

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"オプションが使えるかもしれません。 実際のところ こ…

nkfコマンドで半角を全角に

$ echo カタカナ | nkf カタカナ$ echo ハンカクカタカナ34マジムリ12…… | nkf -wxZ4 ハンカクカタカナ34マジムリ12…… $ echo ハンカクカタカナ34マジムリ12…… | nkf -w ハンカクカタカナ34マジムリ12……$ echo ハンカクカタカナ34マジムリ12…… | nkf -wxZ4 | nkf --hiragana はんかくかたか…

sed $'s/regexp/\\\n/g'という記法はANSI-Cのバックスラッシュ記法を適用するbash独自実装である

前の記事で使った sed $'s/発注済/\\\n/g'なる奇怪な実装ですが……こちら、GNUの資料をみると 3.1.2.4 ANSI-C Quoting Words of the form $'string' are treated specially. The word expands to string, with backslash-escaped characters replaced as spec…

RasPiのeth0が見当たらず、代わりにenxXXXみたいな名前になってるとき

一般にLinux系では有線LANのポートはeth0です。 ところが、最近のRasPiではこれが見当たらず、代わりにenxXXXみたいな名前になってます。 これは装置のmacアドレスから決められてるのですが……ポータビリティという観点ではありがた迷惑ですね……。 というわけ…

bashでプログレスバーを実装してみる その2:プログレスバーの文字列を変数代入でやる

shuzo-kino.hateblo.jp の派生です。 実際のところ 以前はプログレスバーの文字列はyesコマンドを中心としたパイプ処理にて行いました。 今回は、より泥臭く変数代入でやってみます。 #!/bin/sh for i in `seq 20 20 100` do COUNT=$i STR="${STR}##" printf…

grepの--line-bufferedオプションで行ごとに出力

標準入力をうけとって処理するgrepコマンドの場合、行ごとに出力できた方がいい場合があります。 そういうときは"line-bufferd"オプションです。 実際のところ $ netcat -ul -p 5000 | grep --line-buffered sender 参考もと hogem.hatenablog.com man grep

netcat/ncコマンドでUDPパケットを受ける/送る

極々少量のデータを送りたいだけ……なんて時はUDPを使ってみるのも手かなと思い調べてみました。 UDPは音声や、設定ファイルの内部むけブロードキャスト通信で使ったりします。 上手につくると、スプラトゥーンのような展開の激しいゲームでもP2Pめいたデータ…

ffmpegコマンドでMOV形式の動画をmp4にする

iPhoneでとった動画はMOV形式になります。 お客に展開する際、windows環境だとマトモに出なかったりしますね。 恥ずかしながらオンラインツールでやってたのですが……ffmpegコマンドをつかえば、一発でいけます。 実際のところ デフォ設定でinputfile.MOVをou…

シェルでtty端末を初期化する

シェルでtty端末を初期化する場合、sttyコマンドをつかいます。 実際のところ ttyUSB0を115200で初期化する場合 $ stty -F /dev/ttyUSB0 115200 参考もと unix.stackexchange.com Man page of STTY

シェル経由でtty端末と情報の読み書き

実際のところ あらかじめ設定済みの/dev/ttyUSB0を対象とします。 読む $ tail -f /dev/ttyUSB0または $ cat /dev/ttyUSB0 書く 一行書く。 $ echo "val=123" > /dev/ttyUSB0改行不要なら"-n"で。 $ echo -n "val=123" > /dev/ttyUSB0printfでもいけます。お…

curlコマンドで標準入力の結果を受け取る

curlコマンドはPOSTアクションを実行できます。 これを使って簡易な投稿のシステムを作る時、標準入力の結果を受け取る事ができると便利ですよね。 今回はその方法について。 実際のこころ 文字列"SOMETHING"をcurlでYOUR_DISTに送る場合、以下のようにしま…

XWindow環境(i3など)で"Fatal server error: could not open default font 'fixed'"と出たら……フォントの入れ忘れかも

XWindow環境(i3など)で"Fatal server error: could not open default font 'fixed'"と出たら……フォントの入れ忘れかもしれません。 実際おtころ 環境を再構築していた時のこと……。 $ vncserver :1 -geometry 1280x800 -depth 24 Couldn't start Xtightvnc; t…

scpコマンドでUNIX系システム間ファイル送信

scpコマンドをつかうと、UNIX系システム間ファイル送信できます。 たとえば、macOS上でセコセコ作っていたC++のコードをRasPiに転送したり……。manの解説によると以下の通りなので……sshコマンドの仕組みを使ってるようです。 scp copies files between hosts …

同一LAN内のIP addressをしらべる

タイトルまんまで、同一のLAN内(同一サブネット内)につながっている機体のIPアドレスを調べる方法について。 実際のところ $ echo 192.168.0.{1..254} | xargs -P256 -n1 ping -s1 -c1 -W1 | grep ttl | cut -d" " -f 4 | tr -d : 192.168.0.3 192.168.0.1…

Raspbian環境にて無線LAN + 固定IP設定(内部)

Raspbian環境にて無線LAN + 固定IPを設定する方法です。 私の用途ではルーターから外には出るものの、 ルーター外部からアクセスするケースは考えていない構成です。 実際のところ ターゲットはRaspbianで 固定IPはローカルネットの中だけで使用する、"192.1…

tightVNC環境をRaspberry Pi 3 B+/ Tinker Board Sにつくる

debian側 sudo apt install tightvncserver初回起動ではパスワード指定。 閲覧用のパスもあるが、今回はなしで。 $ vncserver You will require a password to access your desktops. Password:******** Verify:******** Would you like to enter a view-onl…

軽量なアプリランチャーdmenu

i3環境は軽量ですが、とはいえアプリランチャーみたいなのが無いと若干不便なのも事実。 そういう時にはdmenuが使いやすいです。 ……まぁ、こう文字で説明するより動画で見た方が威力がわかるかも……。 www.youtube.com 実際のところ i3環境の場合 タイル型デ…

i3環境にてワークスペースを特定のディスプレイに割り当てる

実際のとこ HDMI1にディスプレイが繋がっている状態で、 ワークスペース2をchromium用に割り当てるには以下の様にします。 workspace "2: chromium" output HDMI1デュアルディスプレイ環境なら、お客さん向きには動画を再生しつつ、 自分はコーディングみた…

i3環境にてスタートアップ時の挙動を指定

i3環境にてスタートアップ時の挙動を指定する場合、 設定ファイルに"exec"を記述します。 これでサイネージモドキを実装するとき捗りますね。 実際のところ i3の設定ファイルに以下のように記述します。 オプションもつける事ができて便利。 exec chromium -…

i3環境にて特定アプリを常に全画面起動

i3環境にてGUI主体の特定のアプリを全画面で起動したい時はfor_windowの設定をします。 今回はChromiumを起動した場合、全画面モードになるようにしましょう。 実際のところ 公式の手順通りなら、設定ファイル"~/.config/i3/config"にあります。 なければ "~…

タイル型デスクトップ環境 i3をDebian/Raspbian上に構築

公式より引用 https://i3wm.org/screenshots/# なんかこう、まさに映画やドラマでみたハッカーな雰囲気しません? 私ももういい歳ですが、こういうの大好きです。ただの厨二病的需要だけでなく、表示に制約がある環境などでは非常に重宝します。 例えば、こ…

Debian系OSに日本語環境を

今回はターゲットボードとして Tinker Board S、OSはdebian系統のTinker OSをつかいました。注: TinkerOSのデフォルトユーザ名は "linaro"、デフォルトパスワードは "linaro"Tinker-Configとかいうツールも出回ってるそうですが……gitリポジトリのURLを打つの…

RasPiのデモシステムの画面が消えないようにする

Rasbianのデスクトップ環境はLXDE系であるため、 画面スリープの防止などの設定はlxsessionの中に記述します。 実際のところ Rasbianの場合、設定ファイル"~/.config/lxsession/LXDE-pi/autostart"の中にあります。エディタで開いて…… sudo vi ~/.config/lxs…

unarでCLI上でrarをひらく

unarはでCLI上で動くrar解凍・圧縮ツールです 実際のところ Ubuntu16.04LTS $ sudo apt install unar NAME unar - extract archive file contentsSYNOPSIS unar [OPTION]... ARCHIVE [FILE]...DESCRIPTION Extract FILEs or the contents of ARCHIVE. 参考も…

リダイレクト先ページをcurlで導入したい

たとえばgithubにあるバイナリファイルの場合、URLをとってきてもリダイレクトページが出てくるだけだったりします。 ブラウザならよろしくダウンロードしてくれますが、Curlはそうはいきません。 こういう場合、"-L"オプションをつかいます。 実際のところ …