タグ

unixに関するEhrenのブックマーク (15)

  • Apache Kafka, Samza, and the Unix Philosophy of Distributed Data | Confluent

    One of the things I realised while doing research for my book is that contemporary software engineering still has a lot to learn from the 1970s. As we’re in such a fast-moving field, we often have a tendency of dismissing older ideas as irrelevant – and consequently, we end up having to learn the same lessons over and over again, the hard way. Although computers have got faster, data has got bigge

    Apache Kafka, Samza, and the Unix Philosophy of Distributed Data | Confluent
  • 大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog

    以下、長々と書いてますが、結論は ”私の環境で”大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablogに書いてます はじめに awk file より cat file|awk のほうが速いという以下のブログエントリが興味深いので調べてみました。 ちなみに cat file|awk が速くなる環境は稀で、巷では awk file のほうが速い環境のほうが多いようで、どちらが速いかは環境依存です。 [root@localhost sample]# cat command1 awk '$5 ~ /((26|27|28|29|30)\/Jun|(01|02|03)\/Jul)/{ print }' sample.txt > result1.txt (中略) [root@localhost sample]# time sh command1 real 0m53.92

    大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog
  • tail - Wikipedia

    tail(テール)はUNIXおよびUnix系のシステムで、テキストファイルやパイプ上のデータの末尾から数行を表示するプログラムである。Coreutils の一部。 文法[編集] このコマンドの文法は以下の通り。 tail [options] <file_name> デフォルトでは、tailは入力の末尾10行を標準出力に表示する。表示すべき行数はコマンド行オプションで指定でき、表示単位(行、ブロック、バイトなど)も変更できる。以下の例では、filenameの末尾20行を表示する。 tail -n 20 filename 次の例では、名前がfoo*で始まる全てのファイルの末尾15バイトを表示する。 tail -c 15 foo* 次の例では、filenameの先頭から2行目以降を全て表示する。 tail -n +2 filename 古い文法では(Solarisなど)、filenameの末尾2

    Ehren
    Ehren 2014/10/14
  • なるほどUnixプロセス読んだ - デーモン化のためのdouble fork - はこべにっき ♨

    なるほどUnixプロセス ― Rubyで学ぶUnixの基礎を読みました。UNIXプロセスの話、特に実用的なforkの利用方法についての話がコンパクトにまとまっていてわかりやすかったです。あまり詳細に踏みこんでいるという感じではないけど、とっかかりにこのにあるような知識があるのは良いと思いました。(シェルスクリプトから"foreman start"したときにCtrl-Cで終了できない現象の解説 - はこべブログ ♨ではまる前に読んでおいたら、もっとはやく問題解決できたと思います。) 第18章 デーモンプロセスに関係して二回目のforkについていろいろ調べたので、せっかくなのでメモを残しておきます。*1 第18章 デーモンプロセス では、プロセスをデーモン化するために必要な手順が丁寧に説明されています。その中で、プロセスを制御端末から切り離す手順として以下のようなコードが紹介されていました。

    なるほどUnixプロセス読んだ - デーモン化のためのdouble fork - はこべにっき ♨
  • UNIX Hierarchy

    People who come into contact with the UNIX system are often told : "If you have trouble, see so-and-so, he's a guru", or "Bob there is a real Unix hacker". Often they are baffled by these appellations, and do not pursue the matter further. What is a "Unix Hacker ?". How does he differ from a "guru" ? To answer these and other questions, here is the UNIX HIERARCHY : beginner insecure with the conce

    Ehren
    Ehren 2012/10/19
  • dstatの万能感がハンパない - (ひ)メモ

    サーバーのリソースを見るにはグラフ化は重要ですが、推移ではなくリアルタイムな状況、例えば秒単位のスパイキーな負荷を見るには、サーバー上でvmstatやiostatなどの*statファミリーを叩く必要があります。 さて、vmstatはメモリの状況やブロック数単位のI/O状況は見られますが、バイト単位のI/O状況やネットワークの送信、受信バイト数を見ることはできません。 # vmstat 1 procs -----------memory---------- ---swap--- -----io----- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 3 1 0 4724956 355452 726532 0 0 54 484 3 3 1 0 99 0 0 2 0 0 47

    dstatの万能感がハンパない - (ひ)メモ
    Ehren
    Ehren 2012/02/29
    これいいすね
  • パイプでつないだコマンドの終了ステータスをとる

    cles::blog 平常心是道 blogs: cles::blog NP_cles() « コピペだけでレポートを作らせる :: AWS が Memcached 互換の Amazon ElastiCache をリ... » 2011/08/24 パイプでつないだコマンドの終了ステータスをとる  sh 49 1へぇ パイプでつないだコマンドの終了ステータスをとる方法が分かったのでメモ。 普通はあまり使わないテクニックですが、シェルスクリプトを組むときにパイプの前半部分の終了コードが必要になることがあります。 $ hogecmd | tee -a hoge.txt 例えば上記のようなコマンドの直後に$?で終了ステータスを取得すると、hogecmd ではなく、tee -a hoge.txt の部分の終了ステータスになってしまって、シェルスクリプトで条件分岐を書くときに困るのです。この制約を突破

    パイプでつないだコマンドの終了ステータスをとる
    Ehren
    Ehren 2011/08/25
  • Linuxhack.jp » デーモンプロセスの構造

    バックグラウンドで呼び出しがあるまで待機状態にあり、呼び出されるときにだけ動作する特殊なプロセスとして、デーモンプロセスがあります。デーモンプロセスは名前こそデーモンとついてますが、基的に通常のプロセスと同じです。しかし、その動作には通常のプロセスとは異なる点がいくつかあります。具体的にはfork()、exec()系などのプロセス生成の過程において、実行するシステムコールは通常のプロセスと変わらないのですが、デーモンプロセスの特徴を実現するために行うプロセス生成の工程が異なります。デーモンプロセスを作成するためには以下のような処理が必要になります。 ・ファイスディスクリプタのクローズ ・端末セッションとプロセスグループの切り離し ・ワーキングディレクトリの移動 ・ファイル生成マスク値の変更 ・SIGCHILDシグナルの処理 以上の項目はデーモンプロセスを生成する上で、実装すべき処理になり

    Ehren
    Ehren 2011/04/28
    daemonの基礎知識
  • Pythonで学ぶ「詳解 UNIXプログラミング」(その8) 第8章 プロセス制御 - atsuoishimoto's diary

    8.1 fork関数の例 import sys, os, time glob = 6 buf = "a write to stdout\n" STDOUT_FILENO = sys.stdout.fileno() def main(): global glob var = 88 # automatic variable on the stack os.write(STDOUT_FILENO, buf) # we don't flush stdout print "before fork" pid = os.fork() if pid == 0: # child glob += 1 # modify variables var += 1 else: # parent time.sleep(2) print "pid={0}, glob={1}, var={2}".format(os.getp

    Pythonで学ぶ「詳解 UNIXプログラミング」(その8) 第8章 プロセス制御 - atsuoishimoto's diary
  • diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp

    UNIXの基的なコマンドの1つであるdiff。 これに実装されているアルゴリズムは実に興味深い世界が広がっています。 稿では、筆者が開発した独自ライブラリ「dtl」をもとに「diffのしくみ」を解説します。 はじめに diffは2つのファイルやディレクトリの差分を取るのに使用するプログラムです。 ソフトウェア開発を行っている方であれば、SubversionやGitなどのバージョン管理システムを通して利用していることが多いかと思います。稿ではそのdiffの動作原理について解説します。 差分の計算の際に重要な3つの要素 差分を計算するというのは次の3つを計算することに帰結します。 編集距離 2つの要素列の違いを数値化したもの LCS(Longest Common Subsequence) 2つの要素列の最長共通部分列 SES(Shortest Edit Script) ある要素列を別の要

    diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp
  • Snow Leopard時代のパス管理術 - builder by ZDNet Japan

    日々の修練に「パス」は重要……といっても球技ではなく、コマンドサーチパスの話。この設定を忘れると、ビギナーは使いたいコマンドが見つからずに泣き、パワーユーザーは舌打ちしつつ~/.profileや~/.bashrcあたりをイジることになる。 そのコマンドサーチパス、OS XではLeopardのときに改良されている。PATH環境変数が参照されることは、UNIXの流儀そのままだが、新設された「/usr/libexec/path_helper」コマンドを使うことで、管理を単純化したのだ。なお、このpath_helperコマンドはLeopard当時シェルスクリプトだったが、Snow Leopardの現在ではバイナリ化されている。 このpath_helperは、実行されると/etc/pathsの内容を読み込み、PATH環境変数に設定する。そのためLeopard以降のシステムでは、どのようにシェルが起動

    Snow Leopard時代のパス管理術 - builder by ZDNet Japan
    Ehren
    Ehren 2010/10/18
  • /dev/random の秘密 - あどけない話

    たとえば SSH や PGP の鍵対を生成するときには、当の乱数が必要になる。疑似乱数ではダメだ。Unix 上で乱数を生成してくれるデバイスとしては、/dev/ramdom がある。/dev/ramdom には、真性乱数が蓄えられていて、read システムコールで必要なバイト数だけ読み込むことができる。 /dev/ramdom が真性乱数を生成する方法は、実に単純だ。ハードウェア割り込みの間隔を測るのである。今の間隔が直前の間隔よりも短ければ 1 を、長ければ 0 を真性乱数として蓄える(0 と 1 の割り当ては逆かもしれない)。つまり割り込みが、時刻 t1、t2、t3 に起こったとすると、t2 - t1 と t3 - t2 を比較するということだ。 /dev/ramdom は、ブロックデバイスなので、必要な量の真性乱数がなければ、read システムコールはブロックする。このブロックをで

    /dev/random の秘密 - あどけない話
    Ehren
    Ehren 2010/10/12
  • これはすごい歴史の話

    odokemono comments on Anyone know why /var and /etc weren't named something like /etc and /cfg? このodokemonoという人のコメントが面白かった。特に二つの話が面白かったので、翻訳してみる。 これから話す話は、知識というよりも経験というべきだろう。私は、エンジニアではないし、特別にそういった訓練を受けていたわけでもない。私はベテランのシステム管理者だ。私はいくつかの記事を書き、またシステム管理者の教育もしている。私は80年代前半から、ほとんどUnix一でやってきた。 Unixのすばらしいところは、25年前に書いた私のコードが、いまだに修正なしでコンパイルでき、しかも動くということだ。 それでは、「すばらしい話」のいくつかをしようと思う。 私は昔、顧客である大手の弁護士事務所の元に出向き、週

    Ehren
    Ehren 2010/07/20
  • なぜ,/var や /etc が /etc や /cfg というディレクトリ名ではないのか? - NO!と言えるようになりたい

    Unixを使っていると,/usr が全然ユーザー用じゃなくどう見てもシステムのための物だったり,/etc が事実上設定ファイル置き場となっていたり,/var がログファイル置き場となっていたりと,名が体を現していなくて奇妙な感覚を覚える.もっと分かりやすい名前の付け方があったんじゃないかと,Unixユーザーならば誰もが思うはずだが,これに対する解答がredditに投稿されており,その内容が非常に面白かったので,軽く翻訳してみた. Anyone know why /var and /etc weren't named something like /etc and /cfg? http://ja.reddit.com/r/linux/comments/cpisy/anyone_know_why_var_and_etc_werent_named/c0ua3mo 昔々,システム7が使われていてU

    なぜ,/var や /etc が /etc や /cfg というディレクトリ名ではないのか? - NO!と言えるようになりたい
    Ehren
    Ehren 2010/07/20
  • ocamlunix

    The english translation of Xavier Leroy and Didier Rémy’s introductory course to Unix system programming in OCaml. Admins: user205 Members: user205 Registered: 2008-11-28 16:08:17 Archived data: 0 open bugs 0 open feature requests 0 mailing list 0 VCS 0 released files

  • 1