タグ

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

  • grepで複数項目除外 - 技術メモ帳

    テキストファイルから、複数の項目を除外させたいとき、 普通は、以下のように二つのgrepを使用して行うはず。。 cat text.txt | grep -v 'user' | grep -v 'root' 一つのgrepで行う事が出来る。 cat text.txt | grep -v -e 'user' -e 'root' 単純に、正規表現でやった方がよさそう。。 cat text.txt | egrep -v 'user|root'

  • find の -delete オプション - 技術メモ帳

    環境依存になってしまうかと思われるが、(BSD系) -delete オプションというのを発見した。 その名の通り、削除する。というアクションである。 find . -type f -delete とすると、 カレントディレクトリ以下のファイルを削除する。 これだけだと rm -rf と変わらなく、メリットを感じない。 しかし、たとえばカレントディレクトリ以下の HTMLファイルを削除したいときとか、 今までは、以下のようにxargsを併用していた事と思う。 find . -type f -name '*.html' | xargs rm それを以下のようにシンプルでエレガントに変更できる。 find . -type f -name '*.html' -delete

    morygonzalez
    morygonzalez 2011/08/10
    "find ... |xargs rm -rf" とかしなくてよくなる。cool
  • 技術メモ帳 - pgrep, pkill を使用してプロセスを殺す

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

    morygonzalez
    morygonzalez 2011/05/17
    もっとはやく知りたかった
  • topコマンドの出力をカラフルにする - 技術メモ帳

    ずっと知らなかった。。 こういったずっと前から知ってるコマンドが カラフルになると感動する。DDI。 やり方は、起動中にzコマンドを入力するだけ。 他にもどこをハイライトするか、など詳細に設定できる。 $ top # 起動中にzと入力 設定し終わったら、W と大文字で入力する事で $HOME/.toprc に現在の設定が保存される。 Linux とかにはいってる procps パッケージの top コマンドだけです。 参考: http://www.linux.or.jp/JM/html/procps/man1/top.1.html

  • 漢の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という文

  • tail -fしているファイルをmvしてもそのまま読み込み続ける事が出来るのはなぜか - 技術メモ帳

    せっかく教えていただいたので tail -f しているファイルをmvしても そのまま読み込み続ける事が出来るのはなぜなのかを調べてみた。 『詳解UNIXプログラミング(Advanced Programming in UNIX Environment)』 の CHAPTER.4 の 4.14 ファイルシステム に この件に関連する情報が記載されている。 コレを参考にボクの解釈した結果をまとめてみた。 間違っている箇所がありましたら 気軽にご指摘していただけますようよろしくお願い致します。 まず、事の発端から。 ボクのこの一文。 http://d.hatena.ne.jp/lurker/20070228/1172595016 そうそう、tail で思い出したが、GNUのtailはデフォルトで (たぶん/詳しくは知らない)inode番号を見ているため tail -f した状態で そのログファイル

  • リモートのファイルと、ローカルのファイルをdiffする - 技術メモ帳

    sshは、最後の引数にコマンドを指定すると ログイン先でそのコマンドを実行してくれる。 ssh user@192.168.1.1 "uptime" それを利用して、リモートで該当ファイルをcatし、 その出力結果である標準出力とdiffをさせることによって実現できる。 ssh user@192.168.1.1 "cat .bashrc" | diff - ./.bashrc また、プロセス置き換え(Process Substitution)を利用しても実現可能。 diff <(ssh user@192.168.1.1 "cat .bashrc") <(cat .bashrc)

  • フルスクリーンアプリを終了したときに元のコンソールの状態に復元する - 技術メモ帳

    vimemacs、less などのフルスクリーンアプリを終了したときに、 元のコンソールの状態に戻る環境と、戻ってくれない環境というのがあり、 前々からすごく疑問だったので、この際だからと調べてみた。 もしかしたら誰かの役に立つかもしれないので書いておく。 肝心の原因は、端末データベースの enter_ca_mode / exit_ca_mode ケーパビリティ が 適切に設定されてないということにあった。 当は vim などのフルスクリーンアプリは "元のコンソール状態" に復元しようと、 enter_ca_mode / exit_ca_mode というものを出力するのだが、 このときに、端末データベースから "実際に出力すべきエスケープシーケンス" というものを取得しており、 ここが正しく設定されていないため、うまく元のコンソールに戻らない。 これらを適切に設定すれば良いのだが

  • 1