タグ

UNIXに関するadillaのブックマーク (24)

  • Unixデーモンの仕組み

    Home Subscribe Unixデーモンの仕組み 12 March 2015 おはこんばんちは!! 尾藤 a.k.a. BTO です。 みなさん、Unixデーモンよく使ってますよね。 Webエンジニアなら、Webサーバ、メールサーバ、DBサーバ、cronなどがよく使われるのではないでしょうか。 24時間365日黙々と働き続けるUnixデーモン達。 身近な存在だと思いますが、実はどういう仕組みで動いているのかご存じない方も多いのではないでしょうか。 先日、オトバンクでUnixデーモンの仕組みについて勉強会をやったので、その内容をまとめます。 デーモンとは では、デーモンとはいったい何なのでしょうか。 Unixライクシステムにおいて、バックグランドで動作して様々な処理を実行してくれるプロセスがデーモンです。 デーモンには明確な定義はありませんが、だいたい次のような条件を満たすプロセスが

    Unixデーモンの仕組み
    adilla
    adilla 2015/03/12
  • GitHub - alebcay/awesome-shell: A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php.

    Choose your base shell. bash - GNU Project's shell (Bourne Again SHell) elvish - Friendly, expressive shell features like anonymous functions and data structures es - The extensible shell, based on Plan 9's rc shell fish - Smart and user-friendly command line shell ion - A modern system shell that features a simple, yet powerful, syntax. It is written entirely in Rust. ksh93 - Korn Shell mksh - Mi

    GitHub - alebcay/awesome-shell: A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php.
  • lsコマンドで覚えておきたい使い方16個(+4個) | 俺的備忘録 〜なんかいろいろ〜

    Linuxを用いる上で必須とも言えるlsコマンド。 そのコマンドについて、個人的に覚えておきたい使い方についてまとめてみることにした。 内容としては、覚えておきたいオプションと他のコマンドとの組み合わせでの使い方、計16個18個だ。(2個増えた) なお、例として使用しているのはUbuntu 14.04LTSを用いている。 1.基の使い方 まずは基的な使い方から。 オプションを使用しないで使用すると、以下のように出力される。 test@test-vm-ubuntu:~/test$ ls aaa abc abcd abd archey-0.2.8.deb screenfetch-dev test1 test@test-vm-ubuntu:~/test$ リストとして表示させたい場合は、「-l」オプションを付加する。 test@test-vm-ubuntu:~/test$ ls -l 合計

  • なるべく書かないawkの使い方 - ザリガニが見ていた...。

    awkという、古くからのスクリプト言語がある。(1977年生まれ。読み方は「オーク」である。エイ・ダブリュ・ケイではない)man awkをPDFに変換してみると、たったの3ページ強しかない。 $ man -t awk|pstopdf -i -o ~/Downloads/awk.pdf とてもシンプルな言語仕様ではあるが、awkには必要十分な表現力がある。特にテキストを処理する場面においては、最小限のシンプルな記述で、気の利いた処理を素早くこなす。無駄のないawkワンライナーを見ると、ある種の感動を覚える。awk以降に生まれたスクリプト言語は、少なからずawkの影響を受けていると思われる。 awkを知ることで、間違いなく幸福度は上がると思う。いつかきっと「知ってて良かった」と思える時が来るはず。もっともっと、awkを知りたくなってきた。 基動作 awkの基動作は、とってもシンプルである。

    なるべく書かないawkの使い方 - ザリガニが見ていた...。
  • 実行中でのメモリ使用情報の取得 - 千里霧中

    前回のエントリに続いて、今回は実行中に自分自身のメモリ使用情報を取得する方法についてメモ。 検証、プロファイリング、メモリ容量に合わせたアルゴリズムの選択処理などを行うために、実行中に自分自身が使用しているメモリサイズやそのピークサイズを取得したい場合がある。 その実装手段はいくつかあるのだけれど、まず各OSごとのシステムコールを使うと取得できる場合がある。例えばlinuxだと、getrusage()を使用すると各種メモリ情報を取得できる。サンプルコードは以下の通り。 /** getrusage()を使った最大駐在ページサイズの取得と表示 */ void use_getrusage(void) { struct rusage r; if (getrusage(RUSAGE_SELF, &r) != 0) { /*Failure*/ } printf("maxrss=%ld\n", r.ru

    実行中でのメモリ使用情報の取得 - 千里霧中
    adilla
    adilla 2013/05/11
  • TIPS » Blog Archive » UNIX の小技

    1. pv: パイプラインの速度表示 pv はパイプライン中を流れるデータの速度や予想終了時間を表示します。 pv - Pipe Viewer http://www.ivarch.com/programs/pv.shtml Fedora なら yum install pv でインストールできます。RHEL/CentOS なら上記から RPM を入手してインストールします。 (例 1) 圧縮速度を測定し、終了時刻を予想する pv /dev/sda | gzip > sda.gz (例 2) 圧縮比を予測する pv -cN read /dev/sda | gzip | pv -cN write > /dev/null -N : 名前をつける -c : エスケープシーケンスを使って描画する 参照: http://www.catonmat.net/blog/unix-utilities-pi

    adilla
    adilla 2013/01/16
    名前付きパイプべんり
  • Working with Unix ProcessesをPerlで - $shibayu36->blog;

    以前 Working with Unix Processesというを読んだのですが、このがUnixにおけるプロセスについて非常にわかりやすく解説されていました。それで自分で内容をメモしてみたり、さらにわからないところを調べたり、参考のプログラムをPerlで書いたり(このではRubyで書かれています)してみたのですが、ブログにまとめてなかったので、ちょっと書いてみます。 (注意)書いていたらすごく長くなりました。興味のある方は、適当に時間のあるときにでもどうぞ。 Chapter 2 : Introduction プロセスのことを知るとコードを読むだけでは分からないややこしい問題が分かるようになるよ Chapter 3 : Primer Unixはユーザ空間とカーネル空間がある kernelの機能はsystem call経由で利用する ユーザ空間ではプログラムが動く manual man

  • ddで取ったパーティションあるディスクイメージのパーティションをマウントする - kinneko@転職先募集中の日記

    losetupとkpartxを使う方法が計算なしで済むのだけど、ここは計算ありの単純な方法で。 まずはレイアウトの確認。 $ sudo fdisk -ul eMMCwriterSD.img You must set cylinders. You can do this from the extra functions menu. Disk eMMCwriterSD.img.sec: 0 MB, 0 bytes 62 heads, 62 sectors/track, 0 cylinders, total 0 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512

    ddで取ったパーティションあるディスクイメージのパーティションをマウントする - kinneko@転職先募集中の日記
  • joinコマンドが便利過ぎて生きるのが辛い - Y's note

    Linuxシステムプログラミング 作者: Robert Love,ロバートラブ,千住治郎出版社/メーカー: オライリージャパン発売日: 2008/04/16メディア: 大型購入: 5人 クリック: 181回この商品を含むブログ (29件) を見る 結合 Unix/Linuxの標準コマンドで2つのファイルの共通keyで連結することができます。共通keyでの結合にはjoinコマンドを利用します。joinによりSQLのinner joinに近いことがコマンドだけで出来てしまいます。今までテキスト処理をコマンドで行う事が少なかったのでjoinの活用方法を知りませんでしたが、今回調べた内容を記録します。似たコマンドとしてpasteというものもあり、こちらは同じ行数の内容を単純に結合します。そちらについても簡単に紹介します。 join join前にsort joinコマンドを利用する場合は2つのファ

    joinコマンドが便利過ぎて生きるのが辛い - Y's note
  • sort と uniq でさくっとランキングを出力する - blog.nomadscafe.jp

    知っている人多いと思うけど、よく使うイディオム $ .. | sort | uniq -c | sort -nr 「sort | uniq -c」で重複行をカウントでき、さらに「sort -n」で行を数字と見なしてソートすることで重複行のカウントで並べなおすことができます 例えば、Webサーバのaccess_logからよくアクセスしてくるIPアドレスを集計してランキングを表示するには以下のよう書けます $ tail -10000 access_log |cut -f 1 -d ' ' | sort |uniq -c|sort -nr|head -10 209 207.46.204.192 203 59.106.108.114 202 66.249.69.108 171 199.59.149.168 137 78.46.45.35 129 66.249.69.65 120 66.249.69

  • iTerm2 + zsh + tmux + vim で快適な256色ターミナル環境を構築する - ( ꒪⌓꒪) ゆるよろ日記

    こんにちわ。債務者ことゆろよろです。家買いました。 さて、最近こんなまとめが話題になりました。自分もコメントしましたが、すごい情報量になってます。 これ知らないプログラマって損してんなって思う汎用的なツール #JavaScript #PHP #Ruby #Python #HTML - Qiita 【まとめ】これ知らないプログラマって損してんなって思う汎用的なツール 100超 #PHP #JavaScript #Python #Ruby #HTML - Qiita で、自分のコメントにも書いたのだけど、基的に仕事はターミナルでssh接続して、Vimでコード書いてるので、この辺の環境構築についてまとめてみた。最近Terminal.appからiTerm2に移行して、screenからtmuxに乗り換えたので、その辺も含めて導入方法を書いておく。 手元の端末はMBPでOSX Lionだけど、ほぼ同

    iTerm2 + zsh + tmux + vim で快適な256色ターミナル環境を構築する - ( ꒪⌓꒪) ゆるよろ日記
  • テキストファイルを処理するときのUnixコマンドまとめ - nokunoの日記

    個人的にテキストファイルを処理することが多いのですが,簡単な処理ならUnixのコマンドをパイプとリダイレクトで組み合わせてできることが多くあります.今回はそんななかでもちょっとマニアックなTIPSをまとめてみました. sortコマンドでタブ区切りのファイルを指定する最近知って驚愕したのがこれ.sortコマンドでタブ区切りのファイルを指定したいときは,Ctrl+v Tabでタブ文字を入力していたのですが,$ sort -t $'\t' -k 2,2 のようにしてタブ区切りで2番目のキーでソートすることができます. 1000行おきにデータをサンプリングする1000行おきにファイルからデータをサンプリングしたいときとかは,perlでワンライナーを書くのが速いようです.$ perl -ne '$i++; print unless ($i % 1000)' 某所のコードゴルフによるとこれだけ短くでき

    adilla
    adilla 2012/01/22
  • 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

    adilla
    adilla 2012/01/17
  • perl - the best friend of find(1) : 404 Blog Not Found

    2008年02月24日22:45 カテゴリLightweight Languages perl - the best friend of find(1) find(1)ネタというのも、定期的にネットを賑やかにする時候ネタになりつつあるようです。 いまさらxargsの便利さを主張してみる findでファイル検索入門 - builder by ZDNet Japan というわけで、いまさらfindとperlの相性のよさを再確認してみることにしてみます。 基形 まずは、これを覚えておきましょう。 find [options and args of find] -print0 | perl -l0ne 'perl program' findが見つけたファイルを一つ見つけると、perlの$_にそのファイル名が入るのでそれに対して何らかの処理を行います。 perl側の-l0neというのは、以下と同等

    perl - the best friend of find(1) : 404 Blog Not Found
  • 今こそ見直すApacheの設定 - blog.nomadscafe.jp

    nginxやvarnishなどがアツいですが、Apacheもまだまだ実績や安定性から採用されていると思います。ここではデフォルトとは異なる値に変更するサーバ設定を中心に、パフォーマンス改善、安全性向上のためのApacheの設定を紹介します。 mpmの確認 > /path/to/bin/httpd -V Server version: Apache/2.2.19 (Unix) Server built: Jun 23 2011 17:13:13 Server's Module Magic Number: 20051115:28 Server loaded: APR 1.4.5, APR-Util 1.3.12 Compiled using: APR 1.4.5, APR-Util 1.3.12 Architecture: 64-bit Server MPM: Worker PreforkやW

  • 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
  • (新人向け) Unixオペレーションの注意点 - Magical Diary

    主に新人向けとして、Unixサーバで作業をする際の注意点を書いておく。 ここに書いてある内容は絶対的なものではないし、会社や現場ごとにルールがあるので、適宜ルールに合わせて実践すれば良い。 ログを取れ 何をやったか、何をやらなかったか、というエビデンスのためにログは必ず残しておく。SSHクライアントによっては毎回自動的にログ取得する設定が可能なので、設定しておくと良いだろう。 作業後に問題が発生した場合に作業内容を確認するためにも使うため、必ずログは取得しておくこと。 (追記) 当たり前だが、コマンドとその出力をペアで取ることに意味がある。 set -x (set verbose) しろ ログを取得しても、コマンドラインを編集した際には以下のように非常に見づらいものとなってしまう。(がんばれば解析することは出来るが…) ESC[0mESC[27mESC[24mESC[JESC[1myasu

    (新人向け) Unixオペレーションの注意点 - Magical Diary
  • 【コラム】漢のzsh (9) 世界はモノクロからカラーへ | エンタープライズ | マイコミジャーナル

    モノクロなls ターミナルで使われるコマンドの代表といえばls。なにも設定しなければ図1.1のように表示される。モノクロ悪くはないが、やはり、カラーの方が一目見て概要をつかみやすい。今回はカラー表示についてかいてみよう。 図1.1 なにも設定しなければモノクロな世界 – 渋すぎると言わざるとえない カラーなls - FreeBSD lsコマンドの出力をモノクロからカラーに変える方法は、lsコマンドの実装ごとに異なる。FreeBSDのlsコマンドならリスト2.1のように設定すればいい。環境変数LSCOLORSに色を指定して、コマンドの引数に-Gだ。 リスト2.1 FreeBSDでlsをカラー表示 export LSCOLORS=exfxcxdxbxegedabagacad alias ls="ls -G" 図2.2 FreeBSD lsでカラー表示 環境変数LSCOLORSにおいて指定してい

  • GNU Parallel- GNU Project - Free Software Foundation

    GNU parallel is a shell tool for executing jobs in parallel using one or more computers. A job can be a single command or a small script that has to be run for each of the lines in the input. The typical input is a list of files, a list of hosts, a list of users, a list of URLs, or a list of tables. A job can also be a command that reads from a pipe. GNU parallel can then split the input and pipe

  • コマンドライン引数の取得とgetopt - ファイヤープロジェクト

    コマンドライン引数を取得する方法と,それを簡単に行なうライブラリ関数getoptについて. 引数の取得 とりあえず引数を取ってみる getopt いろんなコマンドはいろんな引数をとる. int main(int argc,char *argv[]) のargcが引数の数でargvが引数の値である.0番目の引数の値はプログラム自身の名前である. とりあえず引数を取ってみる次のプログラムは全ての引数を表示するだけのものである. includeint main(int argc,char *argv[]) { int i; for(i=0;i<argc;i++){ fprintf(stdout,”arg %d is %s\n”,i,argv[i]); } exit(0); } これを実行すると以下の感じになる. $> ./getArgs hoge fuga arg 0 is ./getArgs