CTE 曰く、 "なんでもアリの高機能シェルである、Zsh (Z shell)のひさびさの安定版リリース、4.2.0が、2004/3/19にリリースされている(新機能) 。Solaris (8以降)にも、Mac OS Xにも標準でついてくるし、web上の日本語リソースを見ても、最近は愛用者も増えているように思える。高機能すぎて、設定や使いこなしの敷居が高いことは否めないが、stableな版が出たところで本の一冊でも出版されれば更に人気が出てくるだろう。"
早速でもないけどMac OS X(10.3.3)にインストールしました。
毎度の事ながら/binに入れるので、
./configure --prefix=/usr --exec-prefix=/. && make && sudo make install
で。今んとこ問題なく動いてい(る様に見え)ます。
軟弱者 (スコア:4, 参考になる)
zsh が複数行にわたるコマンドラインヒストリの編集が可能なことと、広瀬雄二氏のサイトの ここ [gentei.org] に Bourne shell script の書き方についての簡潔なガイドがあったこと、の2つにより、sh script の構文(および関連するコマンドの使い方)をいっきに理解できた。広瀬氏が言うとおり perl script 書くことが相当減った。
また、csh 系から乗り換えの場合~/.cshrc , ~/.login の移植が鬱だったのだが、前述のサイトに日本語で書かれた簡潔な乗り換えガイドが用意されてたおかげでサクッと乗り換えることができた。今は変換コマンドもあるようだが、結局自分で理解する必要もあるだろうし。
でもやっぱり Bourne shell script 使わずに済むように plan9 の rc が普及して欲しいなぁ。
Re: 軟弱者 (スコア:1)
まあ、そもそもコマンドライン編集そのものがPlan9哲学に反するような気もします :-)
# Zshは4のリリース頃から愛用中。
zshコマンド補完を一般化したい・・・ (スコア:4, 興味深い)
のshellでは使えなかったり、シェルスクリプトを書く時のコマンド記述の手
助けとしても活用はできない。
また、zshのコマンド補完文法も極めて難解である。(たとえば、
/usr/share/zsh/4.0.x/functions/_apt などを読んで、楽に理解したり、また
は似たようなものを書ける人はどれくらいいるだろうか?。)
シェルというのは、CLIの総本山であり、zshの補完機能をふんだんに活用した
コマンドライン入力インターフェースは、GUIの必要性を疑わせる程、よくで
きている。この補完機能スクリプトの記述方法が極めて難解で敷居が高く、
また活用できる場面が限られていることは非常に残念に思う。
コマンドライン入力時における補完機能を何とか、一般化できないものだろうか?
・誰でも補完機能を記述できる「わかりやすい」文法、そして、
・コマンド入力時、編集時を問わず、いつでも呼び出して活用できる可般性
これらが実現できたとき、CLIとシェルはまた新しい一歩を踏み出すのじゃないかと思う。
#「わかりやすい」をどう定義するかは置いておいて。
Re:zshコマンド補完を一般化したい・・・ (スコア:3, すばらしい洞察)
shell側で補完ルールを定義するのをやめて、補完されるコマンド側がshellに補完ルールを提供するというのはどうでしょうか? emacsもzshもそれを使うと。
だいたいコマンド側は、poptとかgetoptに与えているテーブル持ってるんだし、もうちょっと頑張ればできそうなもんですが。
Re:zshコマンド補完を一般化したい・・・ (スコア:1)
Re:zshコマンド補完を一般化したい・・・ (スコア:0)
Re:zshコマンド補完を一般化したい・・・ (スコア:0)
個人的には、
・CやJavaのユーザに違和感がない制御構文
・過度の省略をしすぎず、可能な限りフルスペルで書く命令やオプション
・あとEmacsとmode-infoで自在に
zshに乗り換えてみたいけど (スコア:3, 興味深い)
乗り換えられずにいるのは敷居の高さのせいではなく、どこでもzshが使えるのかという不安のせい。多分、一度zshにしてしまえば、俺はzshがなければ生きていけない、とかそういう感じになってしまうんだろうけど、そうなったときにいざ「bashを使え!」と言われたときに理性が保てるかどうか。
なんでいちいちcdを打たなければいけないんじゃ!とかいってキーボードを投げつけたりしちゃいそうな自分が恐いです。
というわけで、まだ、惰性的にbashを使ってます。
Mac OS Xとかではzshが標準でついてくるのはいいのですが、Linuxディストリビューションでもだいたい標準でzshはついてくるものなのでしょうか?
// Give me chocolates!
Re:zshに乗り換えてみたいけど (スコア:3, 参考になる)
私も、root になれない環境ではこれを使っています。
Re:zshに乗り換えてみたいけど (スコア:2, 参考になる)
結構、大抵の環境で make できるし。
# もしかしたらスタティックリンクのオプションがいるかも
Re:zshに乗り換えてみたいけど (スコア:2, 興味深い)
ここしばらくは、root になれない環境で作業することが無いで、この方法は使ってませんが。
Re:zshに乗り換えてみたいけど (スコア:1)
ほかの高機能シェル もそうだとおもいますが、zsh は特に dotfiles で挙動がかなり変化するので、わたしは、他のマシンでは、素の /bin/sh でも OK な体にしています。history や fc さえも使えずイライラすることもありますが。
自分の dotfiles が使える環境では、至って快適な環境を提供してもらっています。
zshの便利なパイプ機能 (スコア:3, 興味深い)
といっても、 zsh の様々な奥深い機能を知るわけでもなく。
ぼくが知っている zsh の機能というのはただ一つ、<(command) という形式のパイプです。
二つのファイル a.txt と b.txt に各々 convert.pl を適用した結果の差分を見たいとき、通常だと のようにすると思うのですが、 zsh だと でできて、少し簡潔です。
ということで、今 zsh を使っていなくてそこそこ満足していて、ログインシェルを zsh にするのも嫌な人には、zsh の高度な機能を使いたいときだけ zsh を起動するというのがお勧めです。
鵜呑みにしてみる?
Re:zshの便利なパイプ機能 (スコア:1, 参考になる)
ちゅうのは、bashでもできますよ
Re:zshの便利なパイプ機能 (スコア:1)
鵜呑みにしてみる?
Re:zshの便利なパイプ機能 (スコア:0)
身近なツールほど知らないもんですね。
Re:zshに乗り換えてみたいけど (スコア:3, 興味深い)
思考が固まった時によくやる無駄なlsが無駄に何度もヒストリに記録されません。
あのファイルどこだっけかなぁ?と非効率にもTAB補完で探し回る時、なるべく同じ領域に補完候補を表示しようとするので、スクロールアウトを最小限にしてくれます。
そうです、zshは人間の無駄な操作にやさしいのです!
Re:zshに乗り換えてみたいけど (スコア:1)
なれちゃって戻れなくなった場合のことを考えるのは、あまり意味のないことだと思います。あるものは使わないと。じっさいbashが無いときのことを考えてashを使うとかはしていないんでしょ。
Re:zshに乗り換えてみたいけど (スコア:1, 興味深い)
#bash とzsh(標準)の違いより、zshの設定による挙動の違いの方が大きいかも。
Re:zshに乗り換えてみたいけど (スコア:1, おもしろおかしい)
Re:zshに乗り換えてみたいけど (スコア:1)
# なんでだろ?
// Give me chocolates!
インストールして使ってしまえばいいのでは? (スコア:0)
zsh本欲しい (スコア:3, すばらしい洞察)
256倍本希望!
Re:zsh本欲しい (スコア:0)
UNIX USER の連載がありましたが、
当時読んでなくて、今となっては本が見つからないんですよね。
英文の man を読んで何とか頑張ろうと思ったこともありましたが、
わけがわからなくて挫折してしまいました。
# デフォルトで提供される補完と高機能 glob、さらに =(...) とかだけでも
# 十分役に立ってはいるんですが。
zshって何て呼べばいいの? (スコア:3, 興味深い)
「ぜっどしぇる」「じーしぇる」「ぜっしゅ」「じーしゅ」?
私はなんとなく「ぜっしゅ」と呼んでしまうのですが…
ちなみに、ほかのシェルは
sh: しぇる、ぼーんしぇる、しゅ
csh: しーしぇる、しーしゅ
bash: ばっしゅ
tcsh: てぃーしーしぇる
ash: あっしゅ
てな感じで呼んでます
Re:zshって何て呼べばいいの? (スコア:2, おもしろおかしい)
でも、 Bourne シェル系と C シェル系の両方から機能を取り込んでいるから「雑種」もいいのではないかと思ったりも :)
// ちなみに「ゼッドが正しい」というのは知っているけど直らないので突っ込み勘弁
鵜呑みにしてみる?
Re:zshって何て呼べばいいの? (スコア:0)
そうなのか。
「ぜっとのしぇる」とか呼んじゃだめですか。そうですか。
Re:zshって何て呼べばいいの? (スコア:1)
私はZEDの呪文 [google.co.jp]で覚えました。
今でも、「ゼット、ゼッド、どっちだっけ?…ええっと、ZEDだからドだな」なんて考えてしまいます。
ゼットって読むのはマジンガーの影響でしょうねぇ…
Re:zshって何て呼べばいいの? (スコア:1)
……嘘々、「ぜっしゅ」です。
# cshは「しっしゅ」、tcshは「てぃっしゅ」
# これはマジ
Re:zshって何て呼べばいいの? (スコア:1)
Re:zshって何て呼べばいいの? (スコア:1)
他人に向かって言うときは「ぜっとしぇる」ですが。
それはそれとして bash の反証 [2ch.net]。場所が場所だけにネタのような気もするけど……。
Re:zshって何て呼べばいいの? (スコア:1)
zsh: ぜっとしぇる
csh: しーしぇる
tcsh: てぃーしーしぇる
ksh: けーしぇる
bash: ばっしゅ
ash: あっしゅ
と呼んでいます。……どうして「.+しぇる」と「.っしゅ」が混ざるんでしょうねえ。
#しかしえすえっちはねーだろ>おれ
Re:zshって何て呼べばいいの? (スコア:1)
csh: しーしぇる
ksh: けーしぇる
tcsh: てぃーしぇる
zsh: ぜっしぇる
ssh: えすしぇる えすえすえいち
rsh: あーるしぇる、りもーとしぇる、あーるえすえいち
bash: ばっしゅ
ash: あっしゅ
shを「しゅ」と発音するときと「しぇる」と発音するときと「えすえいち」というときがあるっす。
「ぜっとしぇる」とはいいにくいので「ぜっしぇる」です。
某働き先では、kshとtcshの(どちらを標準シェルにするかの)戦いが起こっていたが意味が無いですか。そうですか。
#私は「しぇる」よりも「シエル」様が・・・
--- cのエラーメッセージが日本語だと非常に困るのでID 引数4って言われてもこまるよ・・・。
Re:zshって何て呼べばいいの? (スコア:0)
きっとこれだけは世界共通なんだろうと思ったのだが、実際どうなのだろうか?
反証お願いします。
Re:zshって何て呼べばいいの? (スコア:1, 参考になる)
http://www.cjn.or.jp/docs/dic/unix-term-dic.html
Re:zshって何て呼べばいいの? (スコア:0)
csh: しーしぇる
ksh: けーしぇる
bash: びーえーしぇる
tcsh: てぃーしーしぇる
ash: えーしぇる
zsh: ぜっとしぇる
ssh: えすえすえいち、せきゅあしぇる
rsh: りもーとしぇる、あーるしぇる、あーるえすえいち
wsh(tcl/tkの): うぃんしぇる
WSH: うぃんどうずすくりぷてぃんぐほすと、だぶるえす
Re:zshって何て呼べばいいの? (スコア:0)
csh: しーしぇる
bash: ばっしゅ
tcsh: てぃーしーしぇる
ash: あっしゅ
zsh: ぜっとしぇる or じーしぇる
新機能 (スコア:3, 興味深い)
新機能のところにある、alias の -s オプションはおもしろい。
% alias -s Suffix=command
すると、
% foo.Suffix
で、
% command foo.Suffix
に置換されるのね。
ほかのコマンドで使いたいときは、普通に使えばよい、と。
早速Pantherにインストール (スコア:2, 参考になる)
毎度の事ながら/binに入れるので、
./configure --prefix=/usr --exec-prefix=/. && make && sudo make install
で。今んとこ問題なく動いてい(る様に見え)ます。
Re:早速Pantherにインストール (スコア:1)
./configure --prefix=/usr --bindir=/binが正解ですね。--exec-prefix=/.だと、/libが出来ちゃう………
既にインストールしちゃった方は
・/bin/zshと/bin/zsh-4.2.0をどっかに移動して、sudo ln /bin/zsh-4.1.1 /bin/zsh
・zshのソースディレクトリで./configure --prefix=/usr --bindir=/bin && make && sudo make install
・/libに/lib/zshだけなのを確認して/libを削除
で多分いいはず………です。すみませんでした。
インストール記念に (スコア:0, 荒らし)
今しか有効(おそらく数時間後には消滅してる)ではないですよ。
18禁ですよ。エロがきらいな人は実行しないでくださいよ。
たぶんzshじゃないとうまくいきませんよ。
wget http://planet.time.net.my/StadiumBukitJalil/dbjhli/feli03a0{01..45}.jpg
wget http://planet.time.net.my/CentralMarket/dbleyi/feli03a0{46..64}.jpg
wget http://planet.time.net.my/TiomanIsland/tinylx5/1147{001..040}.jpg
wget http://planet.time.net.my/BukitBintang/tinzcdu/1147{041..080}.jpg
wget http://planet.time.net.my/
Re:インストール記念に (スコア:1, おもしろおかしい)
# Anal CuntなのでAC
Re:インストール記念に (スコア:0)
どうして「荒らし」とモデレートされるのですか?
しかもナイスな画像のおまけまでつけてくれているというのに。
Re:インストール記念に (スコア:0)
ユーザ名が下品だからかもしれません。
いづれにしても、"荒らし"は正しいモデレートだと思います。
便利な機能の具体的な紹介なら、もっとまともな例を
出すべきだったとおもいます。
Re:インストール記念に (スコア:0)
Windows Services for UNIX (スコア:2, 参考になる)
少しエラーがでますが、そこだけコメントアウトすれば使えます。
でも、WindowsショートカットからいきなりZshを起動するのには少々試行錯誤中。。。
ちなみにMSYS+MinGWではわたしのスキルでは無理そうでした。
そういえば (スコア:1)
# tcshももうすぐ6.13.0がでそうメポ
# たまにはtcshオリジナルカタログもチェックしてほしいメポ
# メポっているけどあえてID
## そういえば,zshの旧バージョン用のマルチバイト対応パッチを
## 見た気がしますが,なんかすごく驚いた気が…
『今日の屈辱に耐え明日の為に生きるのが男だ』
宇宙戦艦 ヤマト 艦長 沖田十三氏談
2006/06/23 JPN 1 - 4 BRA
大昔使っていた頃のオプション (スコア:0)
alwaystoend
autocd
autolist
automenu
autonamedirs
autoparamkeys
autopushd
autoremoveslash
autoresume
braceccl
cdablevars
completeinword
correct
extendedglob
histignoredups
histignorespace
histnostore
ignoreeof
listtypes
longlistjobs
noflowcontrol
numericglobsort
pathdirs
pushdignoredups
pushdminus
pushdsilent
pushdtohome
sunkeyboardhack
今はUNIX自体あまり使わなくなってしまったのでZshも全く使っていませんが、また自分が自由に管理できるマシンを持ったら迷わず入れることでしょう。
Zshで最も気に入っていたのは、標準でTABにglob expansionとcommand completionの組み合わせが割り当てられていたことかな。
glob expansionはextendedglobと組み合わせると強力だったと今も思います、特にrmとかする時は。
# 10年ぐらい前はcshjunkieloopsも入ってたな、確か。
今も使っているオプション (スコア:3, 参考になる)
bindkey "^[[B" history-beginning-search-forward
カーソルキー上下で、ヒストリを検索できるようになる。
昔、研究室の先生にデフォルト設定として突っ込まれたオプションで、
最初は使いづらかったんだけど、3 日もするとすげぇ使いやすい
ことに気が付いた。例えば次のようなとき:
% vi /long/long/path/name/file
(別の作業をする)
「えーと、さっき vi で編集してたファイルは…」
% vi /[カーソルキー上]
% vi /long/long/path/name/file (補完される。)
たいてい、作業中はカレントディレクトリからの相対パスを
使用するほうが多いので、/ だけからの補完でも有効に使える。
#実は最初にこのオプション(と同等のもの)を突っ込まれたのは、
#tcsh のころだったけど…
# mishimaは本田透先生を熱烈に応援しています
Re: 今も使っているオプション (スコア:1)
これがあれば普通の検索は要らない、と割り切り、Ctrl-SとCtrl-Rにバインドしてます。
# 似たような検索方法が、Vzという昔のDOS用エディタにあったのですよ。