ラベル Zsh の投稿を表示しています。 すべての投稿を表示
ラベル Zsh の投稿を表示しています。 すべての投稿を表示

2012年9月3日

ps の出力を grep する時「grep -v grep」しないで grep 自身のプロセスを取り除くには "[プ]ロセス名"

概要

psの出力をgrepする場合、grep 自身が含まれる。取り除く場合「grep -v grep」を利用するが他の方法もある。

"[プ]ロセス名"

zsh のプロセスを grep する場合は以下のようにする。

ps aux | grep "[z]sh"

簡単な解説

[ ] は囲まれた文字のリスト中の一文字にマッチする。
「grep "[z]sh"」とダブルクォートで囲み[ ]を使うことで grep の プロセスは「grep "[z]sh"」になる。
実際のプロセスの検索は「z」一文字と「sh」という意味で検索されるため、grep のプロセスは一致しなくなる。

課題

これは手で grep する時用な気がしている。スクリプトの中で grep 対象が変数に格納されている場合は「grep -v grep」の方が書くのは楽。

元ネタ

結構昔から利用しているので元ネタはすっかり忘れたが、おそらく元ネタはこのあたり。ps -ef | grep hoge | grep -v grep ではなく、ps -ef | grep [h]oge - hogehoge @teramako

2012年9月2日

OS X で tmux のバッファをクリップボードでも使う

概要

OS X で tmux を利用していると tmux のバッファをクリップボードでも使いたくなる。 tmux の標準機能にはないので、設定する。

設定

OS X の tmux のバッファをクリップボードでも使えるようにするソースがGitHubで開発されている。
ChrisJohnsen/tmux-MacOSX-pasteboard · GitHub

マニュアル通りにコンパイルしても良いが MacPorts や homebrew でもインストールできる。

MacPortsの場合

sudo port install tmux-pasteboard

homebrewの場合

brew install reattach-to-user-namespace

tmux.confは以下のように記述する。

set -g default-command "reattach-to-user-namespace -l zsh"
unbind ^y
bind ^y run "tmux save-buffer - | reattach-to-user-namespace pbcopy"
unbind ^p
bind ^p run "reattach-to-user-namespace pbpaste | tmux load-buffer - && tmux paste-buffer"

残課題

この設定だと Mac と Linux で tmux.conf を共有する場合は工夫しないとだめそう。

2012年7月30日

dyld: DYLD_ environment variables being ignored because main executable (/usr/bin/sudo) is setuid or setgid

Mountain Lion で bashrc や zshrcに「export DYLD_LIBRARY_PATH」が書いあると sudo する時に警告が出る。
バグの模様。


追記

「export DYLD_LIBRARY_PATH」の設定が必要な人には正当な対応策は存在しない。 無理矢理回避する方法はあるが、それほど意味がないので、無視するのが良いと思われる。

2013年12月29日追記

Mac OS X 10.9 Mavericks ではこの問題は解決しています。

2011年11月27日

Zsh プロンプトの色設定

Zsh プロンプトに色を付ける場合、ネットを探すと結構古い設定ばかりが検索にひっかかる場合があるようなので、Zsh 4.1.12 に合せた設定方法をメモしておく。
Zsh の該当の man は zshmisc 等になる。

記号で使えるのは以下とか。

記号説明
%Bボールド(%bで終了)
%E終了でのクリア
%Uアンダーライン(%uで終了)
%S強調(%sで終了)
%F文字の色(%fで終了)
%K文字背景の色(%kで終了)
例えば、%B%bで囲んだ間は、ボールドになる。

色は基本だけなら、0:black、1:red、2:green、3:yellow、4:blue、5:magenta、6:cyan、7:whiteが利用できる。数字は色の番号。

カレントディレクトリを表示させる場合は「%~」なので、例えば以下のようにすると色が黄色で、背景が赤にできる。

# 色を文字で設定
%F{yellow}%K{red}%~%k%f

# 色を数字で設定
%F{3}%K{1}%~%k%f

マニュアルは量が多すぎて該当箇所をみつけるのが結構大変な気もする。