2012年のアニメーション映画『009 RE:CYBORG』。サイボーグ達の中で子供の頃に好きだったのは、目が照準で、手から手裏剣、ナイフ、マシンガン。太腿からはミサイル、人間アーミーナイフのサイボーグ004でした。体内にいろんな武器が入っているヒーローに無性に憧れてたんです。スペース・コブラのサイコガンが欲しかったし、ヴァルヴァリンの爪もいつかニョキニョキと生えてこないかと思ってました。「009 RE:CYBORG」は最近レンタルビデオで見たのですが、今時の3Dアニメ映像の違和感のなさに肝を抜かれました。
今回はサイボーグ004のようにいろんな武器(コマンド)を詰め込んでいる、busyboxを使ってみます(Debianなら、apt-get install busyboxでインストール)。
~$ man busybox NAME BusyBox - The Swiss Army Knife of Embedded Linux
このコマンドにはどのぐらいのコマンドが内包されているでしょうか。
busybox –listで一覧表示できます。
~$ busybox --list | pr -t4 | expand [ free modinfo switch_root [[ freeramdisk modprobe sync acpid fstrim more sysctl adjtimex ftpget mount syslogd ar ftpput mt tac arp getopt mv tail arping getty nameif tar ash grep nc taskset awk groups netstat tee basename gunzip nslookup telnet (省略) dumpleases lzop sha512sum wget echo lzopcat sleep which egrep md5sum sort who env mdev start-stop-daemon whoami expand microcom stat xargs expr mkdir strings xz false mkfifo stty xzcat fgrep mknod swapoff yes find mkswap swapon zcat fold mktemp
多すぎてぱっと数えることができません。wcでカウントしましょう。
busybox --list | wc -l 206
manマニュアルの説明にあるように、基本的には以下のようにシンボリックリンクを貼って使用します。
ln -s /bin/busybox ln ./ls dir1 dir2 file1 file2 file3
こうすることで単品コマンドと同じように、コマンド名そのままで使うことができます。
使い分けするので、ここではbusyboxコマンドのまま使用していきます。まずはbusyboxのlsと、普通のls。
~$ busybox ls dir1 dir2 file1 file2 file3 ~$ ls dir1 dir2 file1 file2 file3 ~$
微妙に表示仕様が異なっているようです。-lオプションを見てみましょう。
~$ busybox ls -l total 8 drwxr-xr-x 3 takk takk 4096 May 30 20:50 dir1 drwxr-xr-x 3 takk takk 4096 May 30 20:50 dir2 -rw-r--r-- 1 takk takk 0 May 30 20:50 file1 -rw-r--r-- 1 takk takk 0 May 30 20:50 file2 -rw-r--r-- 1 takk takk 0 May 30 20:50 file3 ~$ ls -l 合計 8 drwxr-xr-x 3 takk takk 4096 5月 30 20:50 dir1 drwxr-xr-x 3 takk takk 4096 5月 30 20:50 dir2 -rw-r--r-- 1 takk takk 0 5月 30 20:50 file1 -rw-r--r-- 1 takk takk 0 5月 30 20:50 file2 -rw-r--r-- 1 takk takk 0 5月 30 20:50 file3 ~$
オプションを調べる場合は、–helpで確認することができます。
~$ busybox wc --help BusyBox v1.22.1 (Debian 1:1.22.0-9+deb8u1) multi-call binary. Usage: wc [-cmlwL] [FILE]... Count lines, words, and bytes for each FILE (or stdin) -c Count bytes -m Count characters -l Count newlines -w Count words -L Print longest line length ~$
以下は、busyboxコマンドの使い方一覧表示です。標準エラー出力で表示されるので、パイプできるようにしておかないとgrepできませんので注意が必要です。
~$ for i in `busybox --list`;do busybox $i --help 2>&1 | grep Usage;done
ソースコードを取得すれば、直接使い方(usage)をgrepできます。まとめてテキストに置いておけば全コマンドを通しで眺められます。
~$ apt-get source busybox ~$ cd busybox-1.22.0 ~/busybox-1.22.0$ grep -r '//usage' * | sed 's/\.c:\/\/usage//' > manual
コメント
I see you don’t monetize your website, i know how to earn some additional cash and get more visitors using one simple method, just
search in google for: ideas by Loocijano
I see interesting articles here. Your site can go viral easily, you need some initial traffic only.
How to get it? Search for: ricusso’s methods
massive traffic