タグ

ブックマーク / d.hatena.ne.jp/lurker (5)

  • 漢のzshに乗り換えた時にアッーってなるコト - 技術メモ帳

    男のbashユーザーが、バラ色の紳士こと漢のzshに乗り換えたときに アッーってなるコト事を先ほどいくつか思いついたので共有する。 !!とかの履歴実行はrコマンドで zshには、r というシェル組み込みコマンドがあって 履歴からの実行が簡単に行える。 たとえば、一番最後に実行したviコマンドを実行したいときなどだ。 bashなんかだと !vi で出来るのだが、 rコマンドだったら % r vi でよい。 直前に実行したコマンドを再び実行したいとき、 bashなんかだと !! というやり方になるが、 rコマンドでは、 % r とするだけでよい。 また、文字列を置き換えてからの履歴実行はどうだろう。 たとえば次のようなbashの例だ。 $ vi .zshrc $ !vi:s/zsh/bash/ これは、最後に実行したviコマンドの引数文字列を ":s/zsh/bash/" によりzshという文

    fuktommy
    fuktommy 2007/02/19
    sort -u と sort|uniq は何か挙動が違ったような記憶があるんだが。
  • lessでtail -f - 技術メモ帳

    less 起動中に、F と大文字で入力する事で、 tail -f のような挙動になるらしい。 知らなかった。 いつでも気軽に直前のログを見に戻る事が出来るのが良いね。 Ctrl + C で元のモードに戻る。 lessの場合 less +内部コマンド名 としておく事で起動時に内部コマンドを実行できるので とりあえず、ltailf という名前でエイリアスしておいた。 alias ltailf='less +F'

    fuktommy
    fuktommy 2006/12/02
    lvでもできる
  • 技術メモ帳: [unix]複数のファイルの名前をまとめて変更する

    複数のファイルの名前を変更する際に、 便利なコマンドというものがある。 いくつかご紹介させていただこう。 カレントディレクトリにあるファイルの名前を、 たとえば、*.html を *.htm と名前を変更するという課題に対し どのぐらいエレガントに書けるかというのを比較してみる。 まず、普通にやったらどうだろう。 おそらく、for文 をつかうことだろう。 for file in *.html do base=`basename $file .html` mv $base.html $base.htm; done; zshだともうちょっとスマートにかけて、 for file in *.html do mv $file:r.html $file:r.html; done; こんな具合。 for文 が嫌いなネット右翼のために、 xargs を使ってこの問題を解いてみよう。 ls -1 *.htm

  • 技術メモ帳 - 拡張子ごとにコマンドを対応づける

    拡張子ごとにコマンドを対応づける事が出来る Suffix Alias という機能が zsh 4.2系から実装されていたらしい。 知らなかった。 どんな事が出来るのかというと たとえば、 alias -s txt=cat とした場合、 以下のようにするだけで、 % ./file.txt 先ほど設定したコマンドが自動で実行されるようになる。 % cat ./file.txt あとはもうアイデアしだいだが、 拡張子が *.log のときは、tail -f するなんて事も出来る。 alias -s log='tail -f' 参考: http://zshwiki.org/home/examples/aliassuffix http://slashdot.jp/articles/04/03/27/2333234.shtml?topic=80 http://zsh.dotsrc.org/Doc/Rel

  • 技術メモ帳 - pgrep, pkill を使用してプロセスを殺す

    最近、会社でシェルの操作方法について教えているのだが、 pgrep / pkill / skill / pidof といった 便利なプロセス操作系コマンドを知らない人が実に多い。 プロセスを殺すというのは、よくある作業なので 今回はコレについて書いてみる。 たとえば、これらのコマンドを知らない人が、 指定した名前のプロセスを kill する手順はだいたい 以下のようなものになることだろう。 $ ps aux | grep プロセス名 | grep -v 'grep' # コマンドの出力結果から pid を目で確認 12345 ... .. hoge .. .. $ kill 12345 この作業は非常に面倒で退屈だ。 もし殺さなければならないプロセスがたくさんあったときは どうするのだろうか。 おまけに、grep コマンド自身が候補に含まれてしまう事があるのだが、 grep -v grep

    fuktommy
    fuktommy 2006/11/02
    GNU/LinuxのkillallとSolarisのkillallが違う意味なのがフェイント。
  • 1