最強のコマンドって何だろう?と、最強のなんとかっていう見出しのある本を見かけて疑問に思ったので考えてみました。
まずは出場選手について考えてみたいと思います。
出場選手 ~ いかにも強そうなコマンド ~
どういうコマンドが強いんですかね。\
いかにも強そうな感じのするコマンドたちはこちら。
kill
殺し屋ですね。強そうです。
以下のオプションが特に強いです。実際に使うときは最後にpidを指定します。
kill -KILL
pid を調べるのが面倒という方のための killall というコマンドもあります。
rm
消しちゃうのでこれも強そうです。
以下のオプションが基本ですが、今どきのGNUの rm
コマンドだと消せないことも多いです。
rm -rf /
そんなときはこちら。これでも消せないという噂もありますが、試していません。
rm -rf --no-preserve-root /
poweroff
電源落としちゃうので有無を言わせない感じですね。
shutdown コマンドも同じです。shutdown
コマンドの場合は以下のような感じになります。
shutdown -h now
出場選手 ~ なんでもできちゃうコマンド ~
なんでもできちゃうコマンドはなんでもできちゃうから強いよね?
bash
シェルだけどコマンドでもあるのでこれはコマンド。
引数次第で何でも実行できちゃうので、いかにも強そうなコマンドたちも実行できちゃいます。
以下のような感じで使います。
bash -c 'poweroff'
perl
プログラミング言語のインタプリタも引数次第で何でもできちゃいます。
以下のような感じで使います。
perl -e "system('poweroff');"
他にもたくさんあります。
find
findコマンドはファイルを探すだけじゃありません。\
コマンドも実行できちゃいます。
以下のような感じで使います。
find -exec poweroff \;
su
使い勝手は bash に似ています。
以下のような感じで使います。
su -c poweroff
sudo
/etc/sudoers の設定次第では何でもできます。
以下のような感じで使います。
sudo poweroff
出場選手 ~ エディタ ~
vim
エディタは便利です。外部コマンド実行機能があるので任意のコマンドを実行できちゃいます。
vim '+!poweroff'
出場選手 ~ bash ビルトインコマンド ~
echo
echoは厳密にはコマンドではないけれど、コマンドとして実装されているものもあります。\
/proc/sysrq-triggerに出力することでOSシャットダウンもできちゃいます。\
ただし、SysRq Keyが有効になっていないとこれは機能しません。
以下のようにしてシャットダウンします。
echo o > /proc/sysrq-trigger
まとめ
いかにも強そうなkill、rm、poweroffコマンドですが、これらのコマンドを自由自在に操れるシェルやプログラミング言語系のコマンドもありました。エディタも実はなんでもできました。これらは最終的にいかにも強そうなコマンドを実行できるのでほぼ互角。echoはできることが限られているものの、シャットダウンができるのでpoweroffと互角。
killもできるので、killとも互角。それどころかすべてのプロセスにシグナル送信できるのでkillコマンドより強そうです。ただし、ファイル削除はできません。
しかしながら、ビルトインコマンドのechoは実行時にプロセス生成しません。そのためメモリに余裕がない場合でも実行できます。OOM
Killerによるプロセス停止の可能性が低いため、コマンド実行できる可能性が高いです。
ということで、どんな場合でも力を発揮できるechoは安定力で一番。killもpoweroffもできるので強いです。しかしながら、これらはOS起動により復旧できてしまう可能性があり、持続性はありません。
持続性が高いのはやはり rm
です。しかしバックアップがあれば致命傷を与えることはできないかもしれません。
コマンドにおける最強ってなんでしょうね。