単位変換
インターネットが普及して、Amazon や Google といった GAFA が席巻。
気づくと、昔使っていたコマンドは誰も使っていない。
正に失われた技術。今回は、 units(1) です。
例えば、cm と inch の変換をコマンドでやると、以下のようになる。
$ units 1cm inch Currency exchange rates from 2012-10-24 * 0.39370079 / 2.54
これは、1 cm は 0.39 inch 、逆に 1 inch は 2.54 cm を表す。
双方向の結果を表示されるので、親切なような分かりにくいような。
枝雀師匠の落語にある
「今日は降るよ~な天気じゃない」
な感じ(明日は降る!天気じゃない)と
(明日は降るような天気ではない。晴れでもないけど)
そんなモヤモヤ感をさらに盛り上げるのが 2012年のレートだと?
誰も為替聞いてないけど??
タネ明かしすると、テキストのDBがあって、作成時のレートの事。
/usr/share/units/definitions.units
昔は、Syaku とか Ken, Ri とか追記してたな。
dd ベンチマーク
dd はデータコピーするコマンド。
本当は Carbon Copy の略で、cc と名づけたかったが、 C compiler がすでにあったので、dd になったとの噂。
よくベンチマークで使ったりする。
$ dd if=/dev/random of=/tmp/data bs=1M count=1000 dd: warning: partial read (115 bytes); suggest iflag=fullblock
入力ファイルが /dev/zero の時はワーニングが出ないことに気づいた。
この iflag=fullblock は入力データが 1ブロックに満たない場合、「ブロックがいっぱいになるまで貯蓄する」。
ふむふむ。
で、fullblock オプション付けたら、データ待ちで止まりやがんの。
Windows sync
資料作成で、Excel や PowerPoint を使うので久しぶりに Windows PC を使う。
ただファイルの検索やら、ちょっとしたメモ書きなどが多いので、DOS プロンプトを開く。
いろいろ作業が進み、癖で「sync」コマンドを実行してしまう。
(Linuxがまだ不安定で、一息つくときに投入していた)
すると、
C:\>sync Sync v2.2 - Flush cached data to disk. Copyright (C) 2016 Mark Russinovich Sysinternals - www.sysinternals.com Flushing: C
なんか変なツールインストールしたんだろうか?
調べたら、いつものMS手口であった。
Sysinternalsツールをオンラインで使う− @IT
昨夜何時に寝た?
普段はMacBookを使っている。
仕事でOffice、特に Excel を使う必要があるのでASUSの安いWinPCも用意している。
でも、心安らかに過ごすために両PCに VirtualBox インストールしている。
学校のこともあるので、教材のCentOSを稼働させている。
必須じゃないけど、ちょっとしたテキスト処理とかは便利。
以前、1万行ぐらいのCSVをソートや抽出したりすると、Excelがハングする。
仕方なくCSVをCentOSに持っていって、コマンドで処理するとスイスイ行く。
正規表現でデータ抽出するのも、Excelだと面倒臭いが grep なら一発。
そんな状況なので、常時VBOXが稼働している。
朝、PCを開けるとVBOXは寝起き状態(スリープから復帰した状態)。
そこで、date コマンドを打つとPCがスリープした時点を示す。
つまり、昨夜PCを閉じた時のままなので、寝床に行った時間がわかる。
[root@cent79 student]# cat syncc #! /bin/bash # Sync clock forcibly if [ `whoami` = "root" ] ;then date systemctl stop ntpd ntpdate ntp.nict.go.jp ntp.jst.mfeed.ad.jp systemctl start ntpd date else echo "Must be root" fi [root@cent79 student]# syncc 2021年 6月 29日 火曜日 19:29:24 JST 30 Jun 05:39:33 ntpdate[3930]: step time server 133.243.238.244 offset 36601.505790 sec 2021年 6月 30日 水曜日 05:39:33 JST
シェルスクリプト =
暇つぶしというか、魔がさしたというか、とても簡単なスクリプトを作った。
ものすごく簡単なニャンコのアスキーアート表示。
後付けて、バックスラッシュが正しく表示できること(たまに ¥ に置き換わってしまうから)、BEEP(Ctl+G)が鳴ることの確認用スクリプトとした。
作るだけ作って、面白い事に気づく。
なんと = で始まるコマンドは、補完機能(綴りの書き始めをタイプしてから(TAB)を押すと続きが出るやつ)が効かない。
→ ドラえもんの「続きスプレー」的な。
上記のスクリプトを作って(当然動作確認済ですよ)、= の後に(TAB)を押しても反応しない。(TAB)(TAB)
なので、= で始まるファイルは、コマンド補完機能が動作しない模様。
bash のソースを眺めてみると、bashline.c のあたりで補完機能を実装している、
それらしい箇所を見つけるが、
static char **matches = (char **)NULL; : matches = rl_completion_matches (filename_text, command_word_completion_function);
倒れそうなぐらいポインタの山で、流石に諦める。