X



zsh その7
0001名無しさん@お腹いっぱい。
垢版 |
2012/05/24(木) 16:34:43.03
zshについて語るスレ

http://www.zsh.org/
http://zsh.sourceforge.net/

・過去ログ
zsh その6
http://toro.2ch.net/test/read.cgi/unix/1229010860/
zsh その5
http://pc11.2ch.net/test/read.cgi/unix/1212677877/
zsh その4
http://pc11.2ch.net/test/read.cgi/unix/1107342206/
zsh その3
http://pc5.2ch.net/test/read.cgi/unix/1080002786/
zsh入門 パート2
http://pc3.2ch.net/test/read.cgi/unix/1036324177/
zsh入門
http://pc.2ch.net/test/read.cgi/unix/990283346/
0240名無しさん@お腹いっぱい。
垢版 |
2013/12/18(水) 16:15:48.61
zshのヒストリーが1万件になって削除されるようになってしまった。

みんなはzshのヒストリーの上限何万にしてる?(何百万?)
0245名無しさん@お腹いっぱい。
垢版 |
2013/12/19(木) 14:42:16.92
wget "URL"
形式で打ち込んでいるならば

cat <<EOF >>.~/.zshrc
setopt histignorespace
alias cat=' wget' #空白を前方に差し込んで、ヒストリーログの書き込みをさせない
0248名無しさん@お腹いっぱい。
垢版 |
2013/12/19(木) 21:58:39.78
ちょっとhistory絡みの質問していいですか?

zshの状態から「bash」って打ってbashに切り替えると、何故かzshの履歴が
変な風に見えてしまうんですが、何でこうなるんですかね?

こんな感じ↓

$ echo "current shell is zsh"
$ bash
$ echo "current shell is bash"
$ hisotry
501231 : 1387372257:0;echo "current shell is zsh"
501232 : 1387372282:0;bash
501233 echo "current shell is bash"

もちろんzshとbashのhistoryはそれぞれ.zhistory、.bash_historyと分けています。
0249名無しさん@お腹いっぱい。
垢版 |
2013/12/21(土) 14:09:53.66
そういう hisotry コマンドがあるんじゃない?

いやまあ、2つがリンクしてたりはしない?

>>241
どゆこと?

>>245
>>. と cat= で悩んじゃったじゃないか。
0251名無しさん@お腹いっぱい。
垢版 |
2013/12/21(土) 16:39:53.69
昔は HIST_IGNORE_ALL_DUPS や HIST_IGNORE_DUPS を有効にしていたけど
いつ何をやったかを後で調べたいときには、ほぼ正味の履歴を残しておく方が都合良いと気付いて無効にした
HIST_FIND_NO_DUPS を有効にしとけば、使い回しのときにも欝陶しくないし
0252名無しさん@お腹いっぱい。
垢版 |
2013/12/21(土) 20:00:41.34
言われてみると確かに

しかし自分の履歴ってのはなんか気恥ずかしいものがあるな
数年前のトラブってる業務やったときの履歴を見て遠い目をしたりw
0254名無しさん@お腹いっぱい。
垢版 |
2013/12/23(月) 00:46:32.95
履歴のインクリメンタルサーチって、複数のワードでマッチングすることってできますか?

たとえば、Ctrl-r を history-incremental-search-backward にしてて、履歴が
$ history -4
4283 echo hoge
4284 echo fuga
4285 echo HOGE
4286 echo FUGA

という状態のとき、 echo hoge を取得しようと Ctrl-r e と押すと echo FUGA が出ますが、
そこから e を連打して echo hoge まで辿るのが面倒です。他に何かいい方法ないですか?
今までは history | grep -E "echo.*hoge" みたいにやってましたが、コレジャナイ感が酷くいてw
0255名無しさん@お腹いっぱい。
垢版 |
2013/12/23(月) 05:34:01.74
e 連打というのがよくわからんけど
自分はパターンマッチが使える history-incremental-pattern-search-{backward,forward} を使ってる
0257名無しさん@お腹いっぱい。
垢版 |
2013/12/23(月) 23:29:00.04
globあると遡ってパターンマッチしまくるからタイポしたときとか重くなるね
そういう意味でもHISTSIZEはでかすぎないほうがいいかも
履歴を古いやつから自動的に分けたりアーカイブしたりする機能がzshにあればいいけど
そんくらい自分で適当に作れってか
0258名無しさん@お腹いっぱい。
垢版 |
2014/01/04(土) 21:20:50.10
zsh-5.0.2 から zsh-5.0.4 に上げたら
appendhistory で $HISTFILE に elapsed times が残るようになってるじゃないか。
よかよか。追加タイミング変わったんだね。実行完了時に。
0261名無しさん@お腹いっぱい。
垢版 |
2014/01/10(金) 23:29:25.65
それは俺も考えたことがある。無理じゃないすかね。少なくともそれ用の機能はないと思う。

>>259
serious bugs って何だろうね。
0262名無しさん@お腹いっぱい。
垢版 |
2014/01/11(土) 02:38:29.80
あんま盲目的に新バージョンを入れないほうがいいんかな
正規表現処理にバグがあってファイル消えたとかなったら死ぬわw
0264名無しさん@お腹いっぱい。
垢版 |
2014/01/11(土) 15:15:38.09
4.3.10でこういうバグがあったよ
しかもDebianの前のバージョンのzshがこれだったという…
ttp://www.zsh.org/mla/workers/2010/threads.html#00781
0265名無しさん@お腹いっぱい。
垢版 |
2014/01/11(土) 18:48:30.19
Debianのstableは、バージョン番号据置きでパッチのバックポートするから要確認。
0266名無しさん@お腹いっぱい。
垢版 |
2014/01/11(土) 20:08:23.27
標準エラー出力に色をつけたいのですがどうしたらよいですか?
0269名無しさん@お腹いっぱい。
垢版 |
2014/01/11(土) 23:44:02.01
僕はcygwinでzshを使ってるだけで、unixなんて見た事も使った事も無いんで
このスレでは大人しくしています
0273名無しさん@お腹いっぱい。
垢版 |
2014/01/14(火) 04:14:06.74
>>272
バージョンあげてあらたなバグを導入することを防ぎつつ
バグフィクスのみをとりこんでいくんだからstableなんじゃないの
0277名無しさん@お腹いっぱい。
垢版 |
2014/01/17(金) 21:28:10.41
こんな機能あったら便利なのになぁ、って話はメーリングリストに投げたら
意外にサクッと実装してくれたりすんのかな?経験ある人います?
0280名無しさん@お腹いっぱい。
垢版 |
2014/01/21(火) 02:46:54.12
FORCE_FLOAT付けたら./configure --<タブ>が変なエラーになる・・・何なのこれ

$ ./configure --
(eval):local:1: not valid in this context: _a_1.1
_describe:102: not an identifier: _a_1.1
0282名無しさん@お腹いっぱい。
垢版 |
2014/01/23(木) 02:23:30.23
>>279
>>281
.zcompdumpを作るのに異常に時間がかかってる
0283名無しさん@お腹いっぱい。
垢版 |
2014/01/23(木) 02:25:45.18
autoload -Uz compinit
compinit -u
をコメントアウトするとすぐ起動する.
ホームディレクトリをNFSにしてるからかなぁ?
0285名無しさん@お腹いっぱい。
垢版 |
2014/01/26(日) 14:23:47.95
sshからログインと同時に指定したシェルスクリプトを実行したいんだが
% ssh user@example "export INC='~/setup.zsh';zsh"
接続先の~/.zshrcには$INCが定義されてるならsource $INCするように書いてる

もっとシンプルに
% ssh user@example "~/setup.zsh"
setup.zsh実行後にzshを終了せず対話型になるみたいなことって出来ませんかね?
0288名無しさん@お腹いっぱい。
垢版 |
2014/01/26(日) 16:39:40.77
素早い返信ありがとうございます
exec zshだとsetup.zshで定義されるシェル変数や関数などが維持できないようです。。。

.zshrcに依存することにはなるが、.zshrcから適当なフラグを立てたうえでsource $INCすることでできました

% ssh user@example 'cat setup.zsh .zshrc'
#setup.zsh
if [ -z $FLAG ] ;then
export INC=setup.zsh
exec zsh
else
(省略)
fi

#.zshrc
if [ -n $INC ];then
export FLAG=true
source $INC
fi
% ssh -t user@example setup.zsh
0289名無しさん@お腹いっぱい。
垢版 |
2014/01/27(月) 11:13:04.30
>>288
ああ、シェル変数やらはそうだろうね。
だったらexpect使ったら?
#!/usr/bin/expect
spawn "zsh"
expect "%"{ send "source hoge.zsh\n" }
interact

でやりたいことはできそうだけど
0291名無しさん@お腹いっぱい。
垢版 |
2014/01/31(金) 18:40:31.72
>>284
ありがとうございます!
やってみたら,なぜかマシンによってセキュリティチェックがあるのとないのがありますね.
0294名無しさん@お腹いっぱい。
垢版 |
2014/02/01(土) 00:36:14.06
両方ともmacですわ
0296名無しさん@お腹いっぱい。
垢版 |
2014/02/02(日) 01:13:04.98
10.2 まで tcsh
10.3 からいまのところ bash
zsh は5.0.2が入ってるけど、デフォルトログインシェルにはなってない。
0298名無しさん@お腹いっぱい。
垢版 |
2014/02/10(月) 23:45:43.92
なんかCentOS4.5のzsh-4.2.0が.zshenvを読んでないっぽいんだけどなんで?

まあ管理権限ないから$HOMEにzsh-5.0.5入れたけど……
0307名無しさん@お腹いっぱい。
垢版 |
2014/02/15(土) 11:39:19.20
話題か。

>>258 の件で $HISTFILE に elapsed times が残るようになったのはいいんだけど、
実行中に別 zsh 起こしてその履歴使ったり history -D したりできなくなってしまった。(当然)
とりあえず放置してるけど。
これでもいいような、そうでもないような。

share_history は前のまま実行前に追加するみたい。(elapsed times が残らない。)
てか share_history って imported lines と local lines 分けてるんだね。
昔は違った気がするけど。
あと import タイミングが行編集終了時。最初、終了前に履歴辿って効いてないのかと思った。
0308名無しさん@お腹いっぱい。
垢版 |
2014/03/02(日) 22:23:24.05
zargs -r -- $HOME/.zshfunc/*(N:t) -- autoload
で.zshfunc以下に定義してある関数を全部読みこもうとしたんだけど、
関数内でこいつを呼びだすと動かなくて
ttyで呼びだすと動いてるっぽい。なんでだろう?
0309名無しさん@お腹いっぱい。
垢版 |
2014/03/06(木) 06:57:36.21
CENTOS6.3でzshを立ち上げると、/bin/lsコマンドが
/bin/ls: fork failed: リソースが一時的に利用できません
といって動いてくれません。bashだと大丈夫。他のコマンドだと大丈夫。zshとlsでなんかもんだいあるんでしょうか?
0310名無しさん@お腹いっぱい。
垢版 |
2014/03/06(木) 08:21:18.89
>>309の件、自己解決しました。
.zshrcの中に変なaliasを定義していたのが原因でした。
0314名無しさん@お腹いっぱい。
垢版 |
2014/03/08(土) 18:19:46.44
zargs が subshell内で eval してるっぽいから意味ないんだと思う。
-r が目的なら

() { (( $# )) && autoload $@ } $HOME/.zshfunc/*(N:t)

でいいんじゃないか? setopt次第で "$@" かな。
exit 1 だけどエラーメッセージ出ないからいいよね?
0315名無しさん@お腹いっぱい。
垢版 |
2014/03/09(日) 11:12:18.11
>>314
ほんとだ、()でかこってあった…

> () { (( $# )) && autoload $@ } $HOME/.zshfunc/*(N:t)

forで逃げてましたが使わせていただきます。ありがとうございます。
0317名無しさん@お腹いっぱい。
垢版 |
2014/03/22(土) 19:18:47.39
プロンプトに$LINENOを表示させてみようと思ったら上手く行かなかった、環境変数って読めない感じ?
0318名無しさん@お腹いっぱい。
垢版 |
2014/03/22(土) 19:28:17.45
うまくいかないのがよくわからないけど普通に1とか2が出力されたよ
どっかの設定がおかしいんじゃね
0319名無しさん@お腹いっぱい。
垢版 |
2014/03/22(土) 19:51:45.22
>>317
${LINENO} じゃ?
0321名無しさん@お腹いっぱい。
垢版 |
2014/03/22(土) 20:47:29.70
>>317はそうと知らずに$LINENOの後に続けてコロンとモディファイアになる文字を書いちゃったのかもね
そういう場合は>>319がいうように${LINENO}にすれば回避できる
0324391
垢版 |
2014/03/22(土) 21:03:44.02
ごめん。一般の変数の展開と勘違いした。
マニュアル読むと LINENO はスクリプトの中で使うだけみたいだな。

プロンプトの行番号の概念がはっきりしないんだけど、これはイメージどおり?

PS1="%h $"

%h, %!, ! だと履歴の番号になるみたい。
0326名無しさん@お腹いっぱい。
垢版 |
2014/03/29(土) 14:28:58.64
cd -[TAB] で表示されるディレクトリスタックをいじることってできますか?
m〜n番目のエントリを削除、とかがしたいです
dirsコマンドにはそれらしい方法はなさそうでした
0327名無しさん@お腹いっぱい。
垢版 |
2014/04/02(水) 01:47:32.48
現在の設定のままroot権限持つことって可能ですか?
$ZDOTDIRを〜〜、ではなく現在のシェルで設定した変数を保持したままで、ということです。
sudoすれば良いだろ、というのはなしでお願いします
0328名無しさん@お腹いっぱい。
垢版 |
2014/04/02(水) 02:29:34.48
su -m は?
0331名無しさん@お腹いっぱい。
垢版 |
2014/04/07(月) 23:46:43.44
>>329
できてるで
% ssh foo@10.5.5.<tab>
10.5.5.1 10.5.5.2 10.5.5.3 10.5.5.4

% zsh --version
zsh 5.0.5 (x86_64-apple-darwin13.0.0)

_ssh は zsh 付属のやつっぽい
0332名無しさん@お腹いっぱい。
垢版 |
2014/04/07(月) 23:46:48.56
/etc/hosts に書いてあってもだめ?
0334名無しさん@お腹いっぱい。
垢版 |
2014/04/08(火) 17:27:02.17
function print_known_hosts (){
test -f /etc/hosts && sed -e 's/#.*//' /etc/hosts
test -f $HOME/.ssh/known_hosts && tr ',' ' ' <$HOME/.ssh/known_hosts | cut -d ' ' -f1 | sed -e '/^|1|/d;s/^\[\(.*\)\]:[0-9][0-9]*$/\1/'
test -f ~/.host.completion && cat ~/.host.completion
}
_cache_hosts=($(print_known_hosts | tr '[:blank:]' "\n" | sort -u))

ってやって.ssh/known_hostsに書いてあるやつは補完できるようにしてるわ
0336名無しさん@お腹いっぱい。
垢版 |
2014/04/24(木) 02:08:29.31
zparseoptsを使ってオプション引数だけの入った配列を得る方法ってないですかね?
オプション自体を手動で取り除くしかないですか?
0337名無しさん@お腹いっぱい。
垢版 |
2014/05/24(土) 18:36:48.95
alias -g G='| grep'
alias -g H='| head'
alias -g T='| tail'
などのグローバルエイリアスをしてる人多いと思いますが、
特定のコマンドの後ろに付ける場合は無視するようにはできませんか?
0338名無しさん@お腹いっぱい。
垢版 |
2014/06/27(金) 11:50:13.57
普段lsに--group-directories-firstオプションをつけてるんですが
zshのglobをこれと同じソート順にしたいです
どうすればいいですかね
0339名無しさん@お腹いっぱい。
垢版 |
2014/07/02(水) 02:55:08.08
PROMPTの%(?,,)の構文の挙動がおかしくないですか?
試しに下記のようなコマンドを入力すると逆の結果を返しており、psvar[2]を見て判断しているように思えます。
precmd(){}
psvar=( '0' '1' )
PROMPT='%? %1(?,success,error) %# '
sh -c 'exit 1'
:

これはバグでしょうか。それとも僕が何か勘違いしているのでしょうか
zsh 5.0.5 (x86_64-unknown-linux-gnu)
レスを投稿する


ニューススポーツなんでも実況