Windows用にビルドされたUnixツール
Interix / Gentoo Prefix / NetBSD pkgsrc/ Debian Interix Port の情報

[ Linux / Unix リファレンスガイド ] ⇒ [ Interix SFU/SUA ] ⇒ [ Windows用にビルドされたUnixツール ]


Windows用にビルドされたUnixツール

元々、SFU/SUA はWindow 用に Unixコマンドやシェルを移植した製品で、Unixライクな Windowsアプリケーションのパッケージとして販売されました。InterixというUnix 互換レイヤーが提供された現在は Unixのネイティブアプリケーションが動作するようになり、本物のUnix環境となりましたが、現在でも SFUインストール時には Windows 用に移植・ビルドされたUnixコマンド・ツール(MKS Toolkit)も以前と同様にインストールされます。これは interix サブシステム上で動作する ls コマンドの他に、Windows上で動作する ls.exe コマンドもインストールされると言うことです。

■コマンド比較 uname コマンドの結果

> C:\SFU\common\uname.exe -a
Windows pcxp 5.1 SP3 x86 Intel_x86_Family6_Model30_Stepping5


$ /bin/uname -a
Interix pcxp 3.5 SP-8.0.1969.1 x86 Intel_x86_Family6_Model30_Stepping5
※同じコマンドでもWindowsベースのモノとInterixベースのモノでは結果も多少異なる場合があるようです。

以上より、Windows用のバイナリもインストールされていることがわかりましたが、さらに調べてみたいと思います。コマンドサーチパスに追加されたパス C:\SFU\common を確認してみると、下記のWindowsコマンドがインストールされていました。

※ 下記の例ではWindows版Perlが含まれていません。(SFUインストール時にインストールすれば perl.exe も出ます)

◆移植されたコマンド [ C:\SFU\common\ ]


Nfsadmin.exe
basename.exe
cat.exe
chgrp.exe
chmod.exe
chown.exe
cp.exe
cron.exe
crontab.exe
cut.exe
date.exe
diff.exe
dirname.exe
dos2unix.exe
du.exe
egrep.exe
fgrep.exe
find.exe
grep.exe
head.exe
iconv.exe
kill.exe
ln.exe
ls.exe
mapadmin.exe
mkdir.exe
more.exe
mv.exe
nice.exe
nis2ad.exe
nisadmin.exe
nismap.exe
od.exe
paste.exe
printenv.exe
printf.exe
ps.exe
pwd.exe
renice.exe
rm.exe
rmdir.exe
rpcinfo.exe
scsetup.exe
sdiff.exe
sed.exe
sfuadmin.exe
sleep.exe
sort.exe
split.exe
strings.exe
su.exe
tail.exe
tee.exe
tnadmin.exe
top.exe
touch.exe
tr.exe
uname.exe
uniq.exe
unix2dos.exe
uudecode.exe
uuencode.exe
vi.exe
wait.exe
wc.exe
which.exe
xargs.exe
ypcat.exe
ypclear.exe
ypmatch.exe
yppush.exe

これらの中で、Windows用コマンドとして特に目を引くのが

◆ジョブ・プロセス管理系
cron.exe 
crontab.exe
top.exe 
nice.exe
kill.exe

◆文字列加工系
vi.exe 
diff.exe
sed.exe
grep.exe  
cut.exe
sort.exe 
uniq.exe

などではないでしょうか。これらのコマンドにより、コマンドプロンプトからより細かくジョブやプロセスの制御を行ったり、コマンドライン上でテキストの加工・編集が可能となることでしょう。Unixのシェルスクリプトと比べると機能面で弱かったWindowsバッチなどの機能もかなり強化されることと思います。
awkは見当たりませんが、SFUには ActivePerl も含まれていますので、Perlで代用するか、Window版 awk を別途インストールする必要がありそうです。

その他には、Windowsには more コマンドはありましたが、それに加えて

less.exe  
head.exe
tail.exe
xargs.exe

なども用意されていますので、Windowsコマンドから|(パイプ) で渡して連携できるので、 コマンドラインの利用環境も改善されることと思います。

■Windowsコマンドプロンプトの強化

whichで普段何気なく利用しているコマンドの実態を確認したり・・

C:\>which cmd
C:\WINDOWS\system32\cmd.exe

grepでほしい情報だけ取り出したり ・・
C:\>ipconfig /all | grep "Physical Address"
Physical Address. . . . . . . . . : 08-00-27-31-E6-06

psコマンドで固まっているプロセスを確認し、killコマンドで停止させたり・・
C:\>ps -f 
 USER    PID PPID C    STIME TTY   TIME COMMAND                  PAFF THRD
 admin      472    - -     9 02   -   0:00 notepad                     1    1
 admin      668    - - 02:54:05   -   0:04 avpui                       1   17
 admin      828    - -     9 02   -   0:00 cmd                         1    1
 admin     1164    - -     9 02   -   5:00 Dreamweaver                 1   10
 admin     1828    - -     9 02   -   0:00 conime                      1    1
 admin     2064    - -     9 02   -   0:00 rdpclip                     1    5
 admin     2100    - - 03:33:22   -   0:00 ps                          1    2
 admin     2472    - -     9 02   -   0:00 wscntfy                     1    1
 admin     2580    - -     9 02   -   0:02 explorer                    1   11
 admin     3284    - - 03:33:22   -   0:00 POSIX                       1    1
 admin     3684    - -     9 02   -   0:00 iTunesHelper                1    8
 admin     3732    - -     9 02   -   0:01 VBoxTray                    1    6
 admin     3808    - -     9 02   -   0:00 ctfmon                      1    1

と大変に利便性が向上します。これらのコマンドをバッチファイルで利用したり、crontabで登録して定期実行させたりも可能ですので、Unix互換環境なんか要らないという方でも十分にメリットがあることがわかります。