タグ

unixに関するnipotanのブックマーク (36)

  • Kazuho@Cybozu Labs: My Slides at YAPC::Asia 2010 (Writing Prefork Servers / Workers, Unix Programming with Perl)

    The slides I used for my presentations at YAPC::Asia 2010 are now available from the links below. Thank you to those who came, and JPA and the volunteer stuff for running the event. I hope you enjoyed (will enjoy) my slides!

  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
    nipotan
    nipotan 2009/05/11
    -exec ls -l {} \; は -ls オプションと一緒な気がするから、type 数の少ない -ls を使うなー
  • コマンドラインで使える超絶便利なワンライナーを投稿・共有できる『Command-line-fu』 | 100SHIKI

    これは素敵すぎるサイト。 Command-line-fuではLinuxなんかのコマンドラインで使えるワンライナー(一行プログラム)を投稿・共有できる。 自分がよく使うワンライナーを保存しておいて使うも良し、他の達人の技を盗むも良し、の素晴らしきサービスである。 ちょっとのぞいてみただけでも「へー、一行でここまで出来るんだ・・・」という小技があってかなり勉強になる。 また更新情報はRSSTwitterでも配信しているので日々勉強!という人には便利だろう。こういう小技ノウハウの共有サイトはいいですね。

    コマンドラインで使える超絶便利なワンライナーを投稿・共有できる『Command-line-fu』 | 100SHIKI
    nipotan
    nipotan 2009/02/06
  • メモリを食いまくるプロセスがメモリ使用量に与える影響をtopで追う

    暴走してどんどんメモリをうスクリプトが OS全体のメモリ使用量(CentOS5 ... カーネルは2.6系になる)の動作にどんな影響を与えるのか ってのを見るために以下のようなテストをしてみました。仕組みはだいたい理解してるけど、細かい数値を追ったことはなかったのでやってみました。 sshでログインして、topを立ち上げる。プロセスを見張る用意をしておく 別のsshをたちあげて、 Perlワンライナーで以下のようなプロセスを走らせる(このプロセスをtopで見張る) # 1秒ごとに5MB単位でメモリをうプロセス # 数値はお好みで perl -e "while(1){ sleep 1; push @h , 1 x 1024 x 1024 x 5 } " ちなみにtopで見張るときは メモリ使用量でソートされるようにして top起動中に shift + o を押して n を押すと 実メモリ

    メモリを食いまくるプロセスがメモリ使用量に与える影響をtopで追う
  • void GraphicWizardsLair( void ); //

  • Perl and UNIX Network Programming (YAPC::Asia 2007) - naoyaのはてなダイアリー

    YAPC::Asia で Perl UNIX ネットワークプログラミングについての発表をしてきました。UNIX ネットワークプログラミングの基礎の概論、I/O多重化の話、Perl のモダンなネットワークライブラリの話です。資料を以下に置いておきます。 http://bloghackers.net/~naoya/ppt/070404Perl_and_UNIX_Network_Programming.ppt (ppt, 122k) なお、会場では口頭で触れましたが、資料中のソースは簡単のためエラー処理を飛ばしています。また、途中で出てくる図は例えば vfs のページキャッシュをはしょってあったりとこれも簡単のため省略事項がある点にご注意ください。 それからフォントが Consolas なので Consolas が入ってない環境だと変になる、かも。

    Perl and UNIX Network Programming (YAPC::Asia 2007) - naoyaのはてなダイアリー
  • 無精で短気で傲慢なプログラマ find には sh!

    ウノウラボ Unoh Labs: コマンドラインで作業する上で知っておくといいテクニック% find . -name '*~' -exec rm {} \; 404 Blog Not Found:勝手に添削 - find(1)% find . -type f -name '*~' | xargs rm % find . -type f -name '*~' | perl -nle unlink わたしなら% find . -type f -name '*~' | sed 's/^/rm /'で確認し、OK なら% find . -type f -name '*~' | sed 's/^/rm /' | shで消します。 いまどき fork/exec rm のオーバーヘッドがどれほどのものか。 xargs を使うとき、rm が 1回だけ実行されるときと、ARG_MAX を超えたときに rm

    nipotan
    nipotan 2007/08/13
  • 意外と知られていないファイル探索方法(grep --include) - 技術メモ帳

    書こう書こう書こうと思っていたら先に書かれてしまった。 404 Not Found この行き場の無い感情をどうにかボクの中から排除しなければならない。 そう考えたときに独り言のようにこのブログロに記述すれば良いじゃないかという 結論にたどり着いたのはもはや必然とも言える。 find | xargs による探索だが、それが簡単なものであれば 実は grep コマンドだけでうまくいく。 GNU grep、BSD 系の grep コマンドでは include、exclude オプションで再帰検索時に検索対象とするファイルを絞り込む事が出来るのだ。 --include=pattern --exclude=pattern たとえば、カレントディレクトリ以下の *.rb から test という文字列を 含むファイルを探索したい場合は次のようにすれば良い。 fgrep -r --include='*.r

    nipotan
    nipotan 2007/08/13
  • 問:IO待ちのプロセスさんの一覧を見たい - (ひ)メモ

    答:psのSTATが「D」のがそれだす。 alias iops='ps auxwwww|awk "\$8 ~ /(D|STAT)/{print}"' とかでよし。

    問:IO待ちのプロセスさんの一覧を見たい - (ひ)メモ
    nipotan
    nipotan 2007/08/13
  • zshとSIGHUPとその設定 - 技術メモ帳

    shell と SIGHUP - odz buffer 関連: 一度 tty から起動したプロセス (csh/ksh 版) - にぽたん研究所 なるほど。zshではデフォルトだと 終了時にSIGHUPが送信されるらしい。 手元のbash2.0で試してみたら終了時にSIGHUPが送信されなかった。 zshで終了時に警告を出さないようにするには、 setopt nocheckjobs とすればよいようだ。 あと、zshにはいきなりdisownの状態(job tableに加わらない状態)で バックグラウンド実行する &! という記法がある。 SIGHUP送られない。 % perl nohup.pl &! % exit % pgrep -fl nohup.pl 524 perl nohup.pl -- 余談だが、zshではsetoptに指定するオプション名に 好きなだけアンダーバーをつける事が出来

  • shell と SIGHUP - odz buffer

    ref:一度 tty から起動したプロセス (csh/ksh 版) - にぽたん研究所 id:lurker さんのブックマークコメントから disownはSIGHUP無視するようにします。bgとはちょっと違うものだと思います。/gdb使えば入出力は差し替えれそう。 だよね、とか思いつつ(gdbを使った端末差し替えは気になるけどとりあえずスルー)、zsh と tcsh で試す。 zsh で。 % cat nohup.pl #!/usr/bin/env perl use strict; use warnings; $SIG{HUP} = sub { print "recieved SIGHUP\n"; exit; }; while (1) { sleep 10; } % ./nohup.pl & % exit zsh: you have running jobs. % exit recieve

    shell と SIGHUP - odz buffer
    nipotan
    nipotan 2007/08/13
    あら、処理系によって違うのかな…
  • 『はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知』へのコメント

    ブックマークしました ここにツイート内容が記載されます https://b.hatena.ne.jp/URLはspanで囲んでください Twitterで共有

    『はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知』へのコメント
    nipotan
    nipotan 2007/08/13
  • 技術メモ帳 - 単語抽出するちょっとしたテクニック

    shell のちょっとしたテクニック - odz buffer odzさんのところで単語の出現頻度を調べるためのワンライナーが紹介されている。 単語抽出についてはいくつかやり方があるので紹介する。 特に egrep -o は非常に実用的。 もちろん、この話はリンク先において主題ではない。 俺のただの自己満足。 tr -cs で単語抽出 $ tr -cs 'a-zA-Z' '\n' < ./.zshrc 上記コマンドで、a-zA-Zのみで構成される文字列を抽出できる。 -c オプションで、'a-zA-Z' の補集合(以外)を '\n' に変換し、 -s オプションで、最後の引数で指定される要素の重複を除去している。すなわち '\n' の連続を除去している。 grep -o で単語抽出 grepには、( -o、--only-matching ) オプションというのがある。 これは、指定された正

    nipotan
    nipotan 2007/08/13
  • perl - pargs = xargsモドキ : 404 Blog Not Found

    2007年01月18日08:00 カテゴリLightweight Languages perl - pargs = xargsモドキ GNUじゃなけりゃ 作ってしまえ xargs. 技術メモ帳 - xargsコマンドを使って指定したコマンドを並列実行させる あまり知られていないが、GNUのxargsコマンドには、 プロセスの最大数を設定できるオプションというのが用意されている。 コレを使って、プロセスを並列実行させてみよう。 OS Xのxargs(1)はgnu版じゃないんだよね。 というわけでperlで即興で作ったのがこちら。 pargs #!/usr/local/bin/perl use strict; use warnings; use Getopt::Std; use POSIX ":sys_wait_h"; our $PPID = $$; our %Opt; getopts "P:

    perl - pargs = xargsモドキ : 404 Blog Not Found
  • 既に起動しているプロセスをgdbで制御する:Geekなぺーじ

    デバッグやテストを行っていると、プログラムが無限ループに入り込んで返ってこないような状況が発生することがあります。 そのバグが再現の難しいものであれば「gdbを使って起動しとけば良かった。。。」というような気分になる時があります。 しかし、gdbには既に起動しているプログラムの制御を横から奪い取ってデバッグするというありがたい機能があります。 ここでは、既に起動しているプログラムをgdbでいじる方法を説明したいと思います。 実際にデバッグをする方法を説明するというよりは、gdbで動いているプロセスにアタッチする例を説明します。 その後のデバッグに関しては、いつものgdbの使い方をしていただければ大丈夫です。 とりあえずアタッチしてみる 既に起動しているプロセスをgdbを解析するのは非常に簡単です。 単にgdbでプロセスにアタッチするだけです。 gdbでプロセスにアタッチする方法は2つありま

  • xargsコマンドを使って指定したコマンドを並列実行させる - 技術メモ帳

    あまり知られていないが、GNUのxargsコマンドには、 プロセスの最大数を設定できるオプションというのが用意されている。 コレを使って、プロセスを並列実行させてみよう。 xargs --max-procs=MAX-PROCS -P MAX-PROCS command MAX-PROCSに数字を指定すると、 最大で、その数だけ command プロセスを生成する。 デフォルトは、1プロセスだけになっている。 いくつか例を交えて説明する。 サンプルとして、以下のようにURLが行ごとに記述されたファイルを元に curlをxargsで並列実行して、HTMLデータを取得してみよう。 $ cat ./url_list.txt http://www.google.co.jp/ http://www.yahoo.co.jp/ http://b.hatena.ne.jp/ まず、普通にxargsを使ってc

    nipotan
    nipotan 2007/08/13
  • zshのzargsコマンドの使い方 - 技術メモ帳

    zsh には、zargsコマンド(組み込み関数) というのが用意されている。 これは、拡張グロブ用の xargs コマンドと言っても良いだろう。 マニュアルを見ると、xargs コマンドとオプションは、完全に互換しているらしい。 autoload zargs とする事で利用可能だ。 使い方だが、xargs というと、標準入力から読み込んだ要素、行に対して 特定のコマンドを実行するというものだが zargs の場合は、引数に指定した 拡張グロブ に対してこれらの処理を行う。 % zargs OPTIONS -- 拡張グロブ -- 実行したいコマンド たとえば、xargs で一番利用されると思われる ファイル数が ARG_MAX を越えてしまっているディレクトリ内のファイルを まとめて削除したい場合などは、次のようなコマンドを入力すれば良い。 % zargs -- ./* -- rm これだけ

  • perl - Yet Another 10のUNIX小技 : 404 Blog Not Found

    2007年01月14日05:30 カテゴリLightweight Languages一日一行野郎 perl - Yet Another 10のUNIX小技 Geekなぺーじ:10のUNIX小技にperlを加えるとさらに幸せになれるというお話。 1.ディレクトリの作成 今時-pをサポートしていないmkdir(1)はないと思いますが、ない場合は perl -MFile::Path -e 'mkpath $_ for @ARGV' path/to/dir more/path/to/dir ... で代用が出来ます。 alias mkpath perl -MFile::Path -e \'mkpath \$_ for @ARGV\' と.bashrcや.cshrcとしておけば、 mkpath path/to/dir more/path/to/dir ... と出来ます。 2. tarの解凍先を指定

    perl - Yet Another 10のUNIX小技 : 404 Blog Not Found
    nipotan
    nipotan 2007/08/13
  • 「Web2.0とC10Kに関する数々の誤解」の誤解 - 最速配信研究会(@yamaz)

    前エントリWeb2.0とC10Kに関する数々の誤解に関してはいろいろツッコミをいただいた(ありがとうございます). 名無し 『誤読した上にえらそうに微妙な解説するあたり恥ずかしすぎます。』 えらそうで微妙な解説なのはまぁそうなので否定しないが,誤読とはなんのことだろう? こういうときは今はやりの「スルー力」を発揮するのが大人のインターネットかと思ったけれど, 私のBlogが扱う内容は非常に狭く,さらにそれに対して突っ込もうと思う人の 意見はなにかしらの真実が含まれるはずと考えていたところ,下記エントリがあった. 元記事の人は上でいう 3,6 あたりを書いていて,id:yamaz さんは 3 するなら 4 とか常識だろ,と噛みついているように読めました。. なるほど,私の前エントリは@ITの元記事に対して噛みついているように 読めるようだ(言われてみればたしかにそう読める). 実際の所は元記

    「Web2.0とC10Kに関する数々の誤解」の誤解 - 最速配信研究会(@yamaz)
  • Geekなぺーじ:10のUNIX小技

    IBMのサイトで「Learn 10 good UNIX usage habits」という記事が発表されていました。 面白かったので要約してみました。 変な部分があるかも知れないので詳細は原文をご覧下さい。 原文とは一部異なります。 ページスペースなどの関係でコマンド引数などを短く省略しています。 原文のサンプルコマンドが間違っていたりするので、修正している部分もあります。 原文を修正しているのは、tar.gzをzオプションを使わないでxfvしようとしているところと、xargsにlsではなくls -lを渡している部分です。 あと、説明文を短くしてしまっています。 1. ディレクトリの作成 良く使うコマンドの一つであるmkdirですが、面倒臭い使い方をしていませんか? 悪い例 ~/ $ mkdir a ~/ $ cd a ~/a $ mkdir b ~/a $ cd b ~/a/b/ $ m

    nipotan
    nipotan 2007/08/13