そんなコマンドがあることすら知らなかったのですが、lsを実行したつもりが突然画面が真っ黒になり機関車が走りだしました。
slコマンド。機関車が出現するジョークプログラムのようです。
lsを含めLinux(Unix)コマンドは、連打するものではなく考えて入力するべきですが、仕事で煽られるとその焦りから頭より先に手を動かしてしまい……、いや、むしろ頭は止まっていると言った方が良いでしょう。とにかくcdとlsの連打をするばかりになることって多々あると思います。
早くコマンド入力を終えねば、コミットの時間に間に合いません。
周囲から心配されて、プレッシャーにしかならない要らない応援が、頭をオーバーヒートさせます。ミスを誘発し仕事が進まないが指だけがキーボードを連打している状態。
そんな折、機関車が走り出したのです。
ぽっぽーー
たった今まで真剣に真っ黒コンソールにコマンド入力していたはずなのに、機関車が画面内を通り過ぎたんです。
突然の機関車出現に圧倒され自分を取り戻した私は、lsの連打を止めることができました。意味のないls連打への戒めでしょうか。slコマンドを作られた人の頭の良さに脱帽します。
ちなみに、slを実行してこんな風に出てしまう場合は、残念ながらslコマンドがインストールされていません。
takk~$ sl bash: sl: command not found takk~$
どうしてもslが見たい人は
takk~$ sudo apt install sl
さて、連打が原因にせよ、なぜタッチミスがあったのでしょう。
lsは、右手薬指でl、左手薬指でs、次に右手でENTERという順でタッチするので、より早くタッチしようとした時に、左手が右手を飛び越えることがあるようです。
一方cdコマンドは、こちらもlsと同じく2文字でlsよりもよく使いますが、左手のみでタッチします。しかも中指を連続して使いますので、タッチミスしにくいコマンドと言えます。
lsと同じように2文字でタッチミスのしやすいコマンドがあるか探してみましょう。
探すディレクトリは以下とします。
/bin
/sbin
/usr/bin
/usr/sbin
/usr/local/bin
/usr/local/sbin
~$ find -P /bin /sbin /usr/bin /usr/sbin \ > /usr/local/bin /usr/local/sbin | > rev | cut -d\/ -f1 | rev | > sed -n '/^..$/p' | > sort | uniq > 2cmd.txt ~$ pr -t5 2cmd.txt | expand 7z df iw mv sg ab dh js nc sh al du lc nl sn ar ed ld nm ss as ex ln od su at fp lp pc tc bc gs ls pg tr cc hd lv pr ul cp id m4 ps vi dc io mc ri wc dd ip mt rm xz ~$
2文字のコマンドは結構多いのですね。
上記コマンドの解説です。findに探したいディレクトリを並べて、結果を取得します。
次に、結果をcutで列抽出しますが、cutコマンドで指定するフィールドの一番目を指定するため(つまりコマンド本体の名前)にrevを使っています。そうです。あまり使われないrevが可哀想なので無理やり使っています。
最後にsedで2文字のコマンドを選出しています。uniqは重複があった時の念の為に実施しています。
では、左手のキーを1、右手のキーを2に置換して、12または21でタッチするコマンドを抽出してみます。
~$ perl -ne 'chop;print;s/[qwertasdfgzxcvb]/1/g;s/[yuiophjklnm]/2/g;printf" %s\n",$_' 2cmd.txt | grep '12\|21' al 12 cp 12 dh 12 du 12 fp 12 hd 21 id 21 iw 21 js 21 lc 21 ld 21 ls 21 lv 21 mc 21 mt 21 mv 21 nc 21 od 21 pc 21 pg 21 pr 21 ps 21 ri 12 rm 12 sh 12 sn 12 su 12 vi 12 ~$
左右コンボのコマンド(左右の手を交互に使うコマンド)を並べてみました。当然lsも一覧の中にいますね。(どんなコマンドが一覧になるかは、何をインストールしているか次第です。)
こうして見てみると、ls以外のコマンドに関して、タッチミスはしたことがないかもしれません。lsのように引数なしで使うコマンドが少ないってのもありますが、lsほど使っていないってことが一番の理由だと思います。
つまり、lsコマンドは偉大です。考えて使わせていただきましょう。
コメント