マスタカネット > マスタカの ChangeLog メモ > zsh

マスタカの ChangeLog メモ / zsh

2002-03-11 (月)

コマンドラインスタック [zsh]

2002-03-11-1.html をつぶやくこのエントリを含むはてなブックマークlivedoor clip

(by 2ch)
コマンド入力中に「あれ?、なんだっけ?」ってほかの作業がしたくなったとき
ESC-qで一時的にコマンドプロンプトにもどれるんですね。


2002-03-17 (日)

WindowManager から Emacs を起動すると環境変数が読み込まれない [RedHat][zsh]

2002-03-17-1.html をつぶやくこのエントリを含むはてなブックマークlivedoor clip

~/.zshenvに `. $HOME/.zshrc'を書いて解決した。


2002-05-11 (土)

exitの罠 [zsh]

2002-05-11-1.html をつぶやくこのエントリを含むはてなブックマークlivedoor clip

GNOMEのツールバーから Emacsを起動すると環境変数が効かなかったので、
~/.zshenvに 'source ~/.zshrc'と書いておいたが、
rcp&rsh対策用に $TERMがNULLだったらexitする設定が
ログインする時に効いてしまいログインできなくなる罠にはまってしまった。


2002-05-14 (火)

ファイルが実行されるタイミング [zsh]

2002-05-14-1.html をつぶやくこのエントリを含むはてなブックマークlivedoor clip

$ZDOTDIR/.zshenv -f 以外全ての環境で使用される。
$ZDOTDIR/.zshrc interactive shell で使用。
alias, function, option, keybind... を入れる。
$ZDOTDIR/.zlogin login shell のみ使用。.zshrc の後。
$ZDOTDIR/.zprofile .zlogin と同様、但し .zshrc の前。
$ZDOTDIR/.zlogout logout 時に実行。


2002-05-22 (水)

$HISTFILEの日付を分かりやすくする。 [zsh]

2002-05-22-1.html をつぶやくこのエントリを含むはてなブックマークlivedoor clip

以下を適当なファイル(例えば histdate.awk)に保存します。
#--- begin ---
BEGIN {
   FS=":"
}
{
   stime = strftime("%B %d %H:%M:%S %Y", $2);
   print stime " -- " $3
}
#--- end ---
あとはプロンプトで
% awk -f histdate.awk $HISTFILE


2002-05-23 (木)

カレントディレクトリ以下のすべての実行ファイルを削除 [zsh]

2002-05-23-2.html をつぶやくこのエントリを含むはてなブックマークlivedoor clip

zsh $ rm **/*(x.)


2002-05-23 (木)

zsh for the working researcher [zsh]

2002-05-23-3.html をつぶやくこのエントリを含むはてなブックマークlivedoor clip

<http://cl.aist-nara.ac.jp/student/daiti-m/text/zsh-intro.html>


2002-06-13 (木)

HIST_IGNORE_ALL_DUPS -> 同じコマンドの history は履歴に入れない。 [zsh]

2002-06-13-1.html をつぶやくこのエントリを含むはてなブックマークlivedoor clip

'setopt histignorealldups'して、'history'すると同じ履歴は消えているけど、
$HISTFILEの中身は消えてない。これは、デフォルトでは $HISTFILEの同期は
zsh プロセスが exit したときだから。INC_APPEND_HISTORY や SHARE_HISTORY を
有効にしていると、このタイミングが変わる。
SHARE_HISTORYは、直前の履歴を使い回すことが多い時は却って不便かもしれない。
マニュアルにあるように、適当なタイミングで 'fc -RI'する方が使い易いかも。


2002-07-24 (水)

zsh-tips第?弾 [zsh]

2002-07-24-1.html をつぶやくこのエントリを含むはてなブックマークlivedoor clip

`which コマンド名` と '=コマンド名'は同じ
% ls -al =emacs
lrwxrwxrwx 1 root root 5 Apr 30 06:44 /usr/local/bin/emacs -> emcws
rm *.o~hoge.o で hoge.o 以外の全ての *.o が消せる。
ワイルドカードの部分に <ここから-ここまで> のように
数値を指定すると数値的にその範囲内に当たるファイル名がマッチする。
{ここから..ここまで}との違いはエラーを出さないこと。
% ls -a <1-10>
1 2 4 5


2003-02-19 (水)

パイプとリダイレクト [zsh]

2003-02-19-1.html をつぶやくこのエントリを含むはてなブックマークlivedoor clip

`|&' は `2>&1 |' の省略形だが、`>& word' は `> word 2>&1' の省略形ではない。


2003-02-25 (火)

補完テーブルを作り直す [zsh]

2003-02-25-1.html をつぶやくこのエントリを含むはてなブックマークlivedoor clip

hash -r


2003-06-26 (木)

foreach 文の使い方 [zsh]

2003-06-26-1.html をつぶやくこのエントリを含むはてなブックマークlivedoor clip

foreach file (*); if [ -d "$file" ]; then; ls -alFd $file; fi; end


2004-01-08 (木)

cd した履歴を辿ってくれる。 [zsh]

2004-01-08-1.html をつぶやくこのエントリを含むはてなブックマークlivedoor clip

% cd -[TAB]


2004-12-14 (火)

ログイン/ログアウトの監視 [zsh]

2004-12-14-1.html をつぶやくこのエントリを含むはてなブックマークlivedoor clip

tcshでもできるみたい。
<http://tehanu.hpcl.titech.ac.jp/zsh/waka/intro-LoginLogoutWatching.html>
% watch=all
% WATCHFMT="%n has %a %l from %m at %t %w."
% log


2007-01-22 (月)

設定ファイルの読み込み順番 [zsh]

2007-01-22-1.html をつぶやくこのエントリを含むはてなブックマークlivedoor clip

ログインシェルとして起動: .zshenv -> .zprofile -> .zshrc -> .zlogin
インタラクティブシェルとして起動: .zshenv -> .zshrc
シェルスクリプトとして起動: .zshenv
ログインシェルとして終了: .zlogout


2009-04-30 (木)

漢の zsh [zsh]

2009-04-30-2.html をつぶやくこのエントリを含むはてなブックマークlivedoor clip

zsh との付き合いは 7 年くらいになりますが、やはり補完が便利です。

tar のオプションを補完。

% tar ←ここで tab キー
A -- append to an archive
c -- create a new archive
f -- specify archive file or device
t -- list archive contents
u -- update archive
v -- verbose output
x -- extract files from an archive


make のルールを補完。

% make ←ここで tab キー
all check-syntax clean hoge.o hugahuga.o main.o


cd した履歴を補完。

% pwd
/home/masutaka
% cd /usr/local
% cd /home
% cd /etc
% cd -←ここで tab キー
0 -- /home/masutaka
1 -- /usr/local
2 -- /home


という前書きはさておいて、「漢の zsh」というコラムがあったので、
ざっと読んでみました。個人的に気になった設定をメモメモ。

▼「第6回: 漢はだまって先方予測 - あなたはこの機能使いこなせるか」より。
以下の設定をすると、コマンド入力時に携帯のかな漢字変換の先行予測の
ようなことをしてくれる。

autoload predict-on
predict-on


▼「第8回: これは既にシェルを超えている…… zshの算術演算」より。
expr コマンドを使わずに計算が出来る。

% echo $(( 1 + 2 + 3 + 4 + 5 ))
15

あらかじめ "zmodload -i zsh/mathfunc" を実行し、mathfunc モジュール
を読み込むと、以下のような sin 関数演算も出来る。

% echo $(( sin(1) ))
0.8414709848078965

sh では変数の型はすべて文字列だが、zsh では整数型や実数型もあるとのこと。

▼「第11回: zshはエディタか? - 「zed」でお手軽編集」より。
zsh には簡易エディタ機能も備えている。(あらかじめ "autoload zed" を
実行しておく必要がある。)

% zed hoge.txt

-f を指定すると、zsh の関数を編集出来る。

% zed -f function_name

実は zed 自体も zsh の関数で、自分自身を編集できてしまう。

% zed -f zed


▼「第15回: **で簡単ヒット!!! - 漢達への熱いお願い付き」より。
ワイルドカードの展開内容をその場で確認可能。

% cd /usr/*←ここで C-x g
/usr/X11R6 /usr/bin /usr/games /usr/include /usr/lib /usr/local /usr/sbin /usr/share /usr/src


ここまで書いておいて何ですが、実はたくさん設定をするのは好きではな
いです。ある程度満足したら、後はできるかぎり設定を少なくすることに
喜びを感じます。^^;


2009-08-22 (土)

screen で 最終行にウィンドウ一覧を表示する方法 [screen][zsh]

2009-08-22-2.html をつぶやくこのエントリを含むはてなブックマークlivedoor clip

以下を ~/.screenrc に書くと、

hardstatus alwayslastline "[%02c] %`%-w%{=b bw}%n %t%{-}%+w"


こんな風に表示できます。
screen-hardstatus

タブ表示みたいで良いですね。ウィンドウをいくつ開いているかよく忘れ
るので ^^; 、便利です。

参考情報:
GNU screen いろいろまとめ。 - naoyaのはてなダイアリー

追記20090823:
zsh ユーザの方は、以下を ~/.zshrc に書いておくと "zsh" という文字列
の代わりに「コマンド実行中はコマンド名を、未実行ならカレントディレ
クトリを表示」してくれます。情報ありがとうございます。> kitokitoki さん

case "$TERM" in
screen)
    preexec() {
        echo -ne "\ek#${1%% *}\e\\"
    }
    precmd() {
        echo -ne "\ek$(basename $(pwd))\e\\"
    }
esac



参考情報:
screenのキャプションにディレクトリ名 or コマンド名を表示 - メモの日々(2008-03-31)


最終更新時間: 2010-07-27 06:00

フィードメーター - マスタカの ChangeLog メモ