25
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

zshAdvent Calendar 2014

Day 12

zshでkillコマンドをプロセス名から補完する

Posted at

zshではkillコマンドでプロセスIDやプロセス名を補完できるので紹介する。

基本的な使い方

使い方は簡単で、特に設定しなくてもkillの後にkillしたいコマンド名を入れてTabを押せば、プロセス名が補完される。

% kill man #<= ここでTabを押す
% kill 32102
 1112 man find
23950 man less
32102 man ps

カスタマイズする

このプロセス補完の機能は少し欠点があって、今動作しているシェルから起動したプロセスしか補完できない。でも、それも次の設定を.zshrcに書いておけば解決する。

zstyle ':completion:*:processes' command "ps -u $USER"

最後のps -u $USERというところが大事。標準ではTabで補完するときにpsコマンドを実行した結果を補完候補として使うんだけど、こうやって書いておくと代わりにps -u $USERというコマンドを実行した結果を使うようになる。

これで、今のシェルから起動していないプロセスも補完できるようになる。
なので、tmuxを使っていて別のウィンドウで起動したプロセスとか、デスクトップのランチャーから起動したプロセスも補完できる。

最後のps -u $USERは自由にカスタマイズしてOK。たとえば、次の例は出力フォーマットを変更して、たくさん情報が見れるようにしている。

zstyle ':completion:*:processes' command "ps -u $USER -o pid,stat,%cpu,%mem,cputime,command"

zsh_kill_1.png

固まってしまったブラウザを停止するときとかに補完しながらkillできると便利なので、ぜひ試してみてください!

25
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?