CLI 大好きな wtnabe です。もう何回も書いているような気がしますが、CLI のよいところは
- 補完が利く
- 履歴から同じ作業をくり返しやすい
- 履歴から以前の作業を呼び出し、これを編集してちょっと違う作業をくり返しやすい
- ほぼそのまま sh スクリプト化して定型作業として切り出しやすい
などです。これだけでも十分強力なのですが、さらに一歩進めて作業の標準化を図るために shlauncher を作りました。しかし Windows の場合、このベースとなるコマンドライン環境がとても貧弱で困ります。
- コマンドを検索してくれない
- コマンドの対象となるファイル名を保管してくれない
- 履歴を辿れない
- Windowsで共同作業する際にまず必要となるであろう UNC に対応していない
などです。本当に悲しくなるくらいダメです。この問題に対するソリューションは昔からいくつかありましたが、cygwin は大げさなうえにファイルアクセスが遅い、NYACUS は UNC に対応していないなど、意外に普通の人の作業を普通に支援してくれるものがありません。
しかしついに出ました! PowerShell v2 が!
12:28:15 >wtnabe< おっ! Power Shell v2 は外部のコマンドも補完できるぞ!
12:28:51 >wtnabe< おっ! UNC のパスに cd できたぞ!
12:38:12 >wtnabe< あとはExplorerで開いてるフォルダをカレントに開ければ
無問題か?
v1 は外部コマンドの補完は利きません。v2 じゃないとダメです。
多少インストールも動作も重いけど、素の cmd.exe ではやはり不便なので、
- .NET Framework 3.5
- PowerShell v2
- Ruby
- shlauncher
を用意して Windows 上の作業を標準化&支援していくのがいいんじゃないかなぁと思い始めたところです。
※ Un*x 系の人間が管理しやすい環境としては期待していません :-P
最近すっかり yum 使いに。たまに portinstall とか、手が不思議な動きをするのは内緒。それにしても yum はなんか遅くないですか。apt にした方がいいのかなぁ。でも運用始まったらこんなの頻繁に使わないだろうしなぁ。
えー基本的には /etc/yum.repos.d/ 以下でリポジトリごとに .repo ファイルを置いてあるものとする。
そのファイルの中で
exclude=除外パッケージ名のカンマ区切りリスト
or
includepkgs=利用するパッケージ名のカンマ区切りリスト
という形で特定する1。ともに *, ? の glob が利用できる。
この指定があれば search などの際に該当するパッケージ、あるいは該当するパッケージ以外だけがリストアップされる。試しに以下のように
[fedora-extras]
name=Fedora6 - Extras
baseurl=http://ftp.riken.jp/Linux/fedora/extras/6/i386/
gpgcheck=1
enabled=1
gpgkey=http://ftp.riken.jp/Linux/fedora/extras/RPM-GPG-KEY-Fedora-Extras
priority=2
protect=1
includepkgs=namazu*,kakasi*
fedora extras の riken mirror を指定してやると、
$ yum list all | awk '$3 ~ /fedora/'
kakasi.i386 2.3.4-22.fc6 fedora-extras
kakasi-devel.i386 2.3.4-22.fc6 fedora-extras
kakasi-dict.i386 2.3.4-22.fc6 fedora-extras
namazu.i386 2.0.16-1.fc6 fedora-extras
namazu-cgi.i386 2.0.16-1.fc6 fedora-extras
namazu-devel.i386 2.0.16-1.fc6 fedora-extras
てな感じで fedora-extras の中で利用できるパッケージは kakasi と namazu 関係のものだけになる。2
ま、man 5 yum.conf の劣化コピーなんですが自分のためにメモ。
※ 出ました「今さら」シリーズ。
こういう話はすでにあちこちで挙がってると思うけど、自分の中で最近いちばんでかいのは
変に「名前」や「文字列」を要求するところ
かな。まぁ標準で入ってる callback 処理する関数群なんかが分かりやすいんですが。
callback 関数名って基本的にグローバルな名前空間のものを要求するので、オブジェクトを作りまくってると使いにくい。一応
array( $obj, 'funcname' )
でイケるんだけど1、こんなところにもわざわざ array() なんて場所を取る記述しなきゃいけないのがイヤ。
create_function も結局変数名が必要だし、中も文字列で書かなきゃダメだし2、どうも使いやすくないんだよな。JavaScript の function や Ruby のブロックみたいにすっきり書きたい。
なんかこう、変なところでカタイというか、C っぽいというか。元々のツクリの制限がモロに表に出てきてるようなそういう感じ。LL なのにあんまり wrap されてないっていうか、LL らしくない気がする。
※ Lisp 回帰ってのはよく言ったもんだなぁ…
いつの間にかナイトスクープで林先生、顧問なっとるやんけ。
ports が上がっていたのでまた cygwin でやってみるテスト。2.04c で対応していたはずの cygwin で初めて動きました!
- machine.h を何も編集せず
- そのまま make
で ok.
make install で
/usr/local/man/ja_JP.eucJP/man1
に man を入れようとしてエラーが出る。これは
/usr/local/man/ja
とか適当なところに fd.1 をコピーすればよいが、jgroff を入れてないのでどっちみち無意味だな。
起動したらちまちまとエラーが出たが、これは Linux 上で使っていた .fd2rc が悪さをしていたもので、uuencode とか、jless とかそういう設定を外していったら「重いのを除けば十分使える FD」ができあがった。これで remote の Windows のファイル管理がさらに楽になる。Emacs の dired だとどうしても不得意な操作があれこれあってね。CLI :-) がきらいなわけじゃないが、こういうビジュアルシェルの方が便利なシーンは確実にあるのですよね。
from CNET Japan
うーん。読まなきゃいいんだけど、例の SFC の人。
なんていうか読むたびに否定の仕方がひどくなっていく気がするが、文章の構成がうまくないなぁ。前振りが長過ぎる。学生が夜なべして PowerPoint でへたくそなプレゼンを作っている、というだけの話なのにどうしてこんなに寄り道が多いのか。
おかげでその教授が Flash の特性をつかみきれていないのか、学生がつかみきれていないのか、教授が学生に Flash の良さをちゃんと伝えられていないのか、とかどうでもいいところに引っかかってしまう。
単に自分が SFC に幻想を抱き過ぎなんだろうか。まぁ「SFC のすごさは PC うんぬんじゃないところに出るはずだ」とも期待してるんだけど。あーもう変にイライラするな。やっぱ読むべきじゃないのか? そして次回は PowerPoint のプレゼン以外での使い方の話だそうだ。今日日そういう「間違った Office のワザ」を開発する人はいくらでもいるの。問題はへたくそなプレゼンがどうよくなっていくか、でしょ? 違うの? PowerPoint ありきになってしまっているのは良くないよね、というのが今回の主旨でしょ? そしてその問題は放置されるのか。うーーーーん。
どーでもいいがパワポとか略しちゃうのはかっこ悪いからやめた方がいいと思う。