You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Re: [twitter:@riywo]'s UNIX Command Idioms ps auxwwwwwww number of "w" depends on my mood in that day :D ps auxwwwwwwwww -L netstat -tna / -una / -tnl / -tnap tar xvf tar zxvf / jxvf / Jxvf are boring trailing slash in rsync rsync -av file [file] HOST:dir/ rsync -av dir/ HOST:dir/ tcpdump -i any -nlx strace -s 100 -fFTttt diff -u /path/to/file <(ssh host cat /path/to/file) see also: http://d.haten
Perl Hackers Hub 第6回 UNIXプログラミングの勘所(2)を読んでいたがよくわからなかったので、Operating System ConceptsやMANなどを読んで一から理解してみる。 Operating System Concepts 作者: Abraham Silberschatz出版社/メーカー: John Wiley & Sons Ltd発売日: 2009/02/13メディア: ペーパーバック購入: 1人 クリック: 39回この商品を含むブログ (4件) を見る open()システムコール The open() system call first searches the system-wide open-file table to see if the file is already in use by another process. If it is, a
ネットワークプログラムとSIGPIPE 「私の書いたサーバが突然死するんです。どうしてでしょうか」という質問を受けることがあります。これは多くの場合、SIGPIPEの処理を忘れていることが原因です。SIGPIPEとは、切断されたネットワークソケットなどにデータを書き込もうとした際に送出されるUNIXシグナルです。特に設定しない限り、プロセスはSIGPIPEを受け取ると強制終了されます。そのため、通信が突然切断される可能性のあるTCPサーバにおいては、SIGPIPEを無視するよう設定する必要があります。 # デフォルトの動作(SIGPIPEの場合はプロセスの終了)に設定 $SIG{PIPE} = 'DEFAULT'; # SIGPIPEを無視するよう設定 $SIG{PIPE} = 'IGNORE'; # SIGPIPEを受信した際に実行するサブルーチンリファレンスを # 設定 $SIG{PI
唯一の中央レポジトリと複数のcheckoutするノードというトポロジの場合、checkoutしたファイルのmtimeがノード間で同じ時刻(当該ファイルがcommitされた時刻)になっているとなにかと都合がいいです。 例えば、Webアプリのデプロイを中央レポジトリからのcheckout(やupdate)で行う場合を考えます。もし、内容が同じなのに複数あるアプリサーバの間でmtimeが異なってしまっていると、 サーバごとにETagヘッダの値が異なってしまう ※Apacheの場合、FileEtagディレクティブを調整(mtimeを見ないように)することによって統一可能ではあります サーバ間でrsyncをかけると無駄なファイルコピーが発生する 内容が同じににもかかわらずmtimeが異なるせいでコピーが発生する ※--size-onlyオプションでmtimeを見ないようにして回避可能ではあります と
「Java BlockingQueueで遊ぶ:パイプラインごっこ」でパイプラインの話をしたので、本来の、つまりUnixのパイプやリダイレクトを少し調べてみました。 たまに話題となる some-command >file 2>&1 と some-command 2>&1 >fileの挙動の違いについて、「シェルはコマンドラインリダイレクトの指定を右から左に解釈実行する」なんて説明が見つかりました。んなバカな! パージングは左から右にするものですよ。パーズツリーを逆順にたどることはできるけど、そんなことする必然性はなんにもないよ。 次の記事を読むと、「右から左」なんて事情じゃないことが分かるでしょう。 UNIXの部屋 検索: リダイレクト シェルのリダイレクトにまつわる失敗 さてここでは、複雑なリダイレクト処理も完全に理解できる処方箋を示しましょう。例えば、次のコマンドラインが何をするか分かる
g:subtech:id:secondlife さんのところで、 パイプで受け取るとエスケープシーケンスが消去されてるよ!どうやってんだこれ。 というのがあったので、コメント欄に どうやって実現しているのかを書いていた時に、 すでに回答がされているのに気づいて、 俺は何をやっていたんだ、とショックを受けたのでココに書く。 実は、isatty(fd) という関数があり、 指定したファイルディスクリプタが端末かどうか調べる事が出来ます。 つまり、出力先が端末だったとき、エスケープシーケンスを付加し、 端末ではなく、別のプログラムの標準入力に渡されたときは、 エスケープシーケンスを除去しています。 以下は、 標準出力がターミナルだったときのみ "this is terminal" と出力します。 1 #include <stdio.h> 2 #include <unistd.h> 3 4 int
16進数のテーブルを表示するワンライナーを考える - すぎゃーんメモのまとめ。追記しまくって長くなったので整理する。 ()内はperlコマンドも含めた文字数。 (52)最もオーソドックスにfor文を回して文字列連結する方法 perl -le'for$i(@a=(0..9,A..F)){print map"$i$_ ",@a}' (52)for文を式修飾子で後置させる方法 perl -le'$i=$_,print map"$i$_ ",@!for@!=(0..9,A..F)' (50)代入式を使わず正規表現のマッチ変数を利用する方法(from こーのいけさん) perl -le'/./,print map"$&$_ ",@:for@:=(0..9,A..F)' (50)配列の各要素に対しprintfで表示させる方法(from id:kazuhookuさん) perl -e'printf"%0
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く