$ sed 's/a/c/g' sample_a.txt | diff - sample_b.txt 1c1 < This is c --- > This is b
これ、やりたかった。 GuardやGulp等で解決できる話だが、それを使うまででもないような作業に重宝する。 #!/bin/bash usage(){ echo "Usage:" echo " exec_on_change file command" exit 1 } die(){ echo $1 exit 2 } [ $# -lt 2 ] && usage [ -e "$1" ] || die "No such file or directory: $1" while true; do inotifywait "$1" 2>/dev/null || exit $2 done 最後の4行がミソ。 最近のLinuxならこれで良いはず。導入にはinotify-toolsが必要。 sudo apt-get install inotify-tools 使い方 ファイル変更検知
<?php function single() { static $fp; $fp = fopen(__FILE__, "r"); if (is_resource($fp) == false) { throw new \RuntimeException("unable open self"); } $wouldBlock = false; if (flock($fp, LOCK_EX|LOCK_NB, $wouldBlock) == false) { if ($wouldBlock) { return false; } throw new \RuntimeException("unable lock self"); } return true; } if (single() == false) { echo "process is running.\n"; exit(); } $pid =
例) ディレクトリ 4.1.2/libexec/conf と 4.2/libexec/conf で差分があるファイルを調査したい。 -> % diff -r 4.1.2/libexec/conf 4.2/libexec/conf 48a49 > # - If you need to set the schema, please refer to http://jira.codehaus.org/browse/SONAR-5000 53,59d53 < # Uncomment the following property if the Oracle account has permissions to access multiple schemas, < # for example sonar schemas with different versions. In that case, us
You can sort large files while using little memory. The Unix sort tool is a widely available implementation of this idea. Files are written to disk sequentially, without random access. Thus, you can also sort variable-length records, such as lines of text. What about shuffling? Using the Fisher-Yates algorithm also known as Knuth algorithm, you can shuffle large files while using almost no memory.
いつまでたっても魑魅魍魎なrsyncコマンド。いつか参照するかも、なときのために、ちょっとしたネタだがメモしておく。以下は以前の投稿とかぶっているが、rsyncのキモですよ、キモ!!(自分に言い聞かせる) sync元ディレクトリの末尾には「/」をつけると配下のファイル群がコピーの対象となるが、つけないとそのディレクトリそのものがコピーされてしまう。なおコピー先はスラッシュありなしどちらでも影響ない、はず。 # rsync -avz -e ssh /var/log/ dummy.com:/var/backup/ ←普通はこっちにする # rsync -avz -e ssh /var/log dummy.com:/var/backup/ ←普通望まない結果になる 次に、初回のrsync実行時に指定したコピー先ディレクトリが存在しない場合の挙動。第一階層まではコマンド実行時にディレクトリを作成し
Linuxの開発/検証環境とかで色々とプロダクトをインストールした時って、毎度環境変数のPATHを設定するの面倒くさいですよね。 そんな時は、片っ端からbinとかsbinディレクトリにパスを通しちゃいます(^^;) $ export PATH=$PATH:`find /usr/local -type d -name '*bin' | paste -s -d : -` findで引いてきたものをpasteする時に、"-d"オプションで区切り文字に":"を使っておけば良いわけですね。 ちょっとしたTIPSでした。 =͟͟͞͞(๑•̀=͟͟͞͞(๑•̀д•́=͟͟͞͞(๑•̀д•́๑)=͟͟͞͞(๑•̀д•́
SCons SConsはmakeやAntのように数多くあるビルドツールのうち一つであり、Pythonで書かれている。 ビルド設定のファイルをPythonで記述することができ、またSCons自身が依存関係解析の機能を持っているため、 makeと比べるとずっと簡単にビルド環境を構築することができる。 Hello, World的なもの 以下のような簡単なCプログラムをSConsでビルドしてみる。 hello.c 1 #include <stdio.h> 2 int main (int argc, char *argv[]) { 3 printf("Hello, World!\n"); 4 return 0; 5 } 6
ふと、とある作業で Linux でとあるプロセスの実行ディレクトリを確認する方法を知りたかったので調べてみました。 プロセス ID を特定できれば、次のコマンドで一発で分かります。 $ /proc/$PID/cwd lrwxrwxrwx 1 root wheel 0 Dec 27 17:52 /proc/$PID/cwd -> /usr/local/hoge この他にも /proc/$PID には、プロセスに関する情報がありますが、exe には実行ファイルパスが分かったりと、何かと便利ですね。 # 追記 @ishikawa84g さんから、次のコマンドでも同じことができるとコメントをいただきました!ありがとうございます! $ usr/sbin/lsof -p $PID | grep cwd ruby $PID root cwd DIR 9,0 4096 24675239 /usr/loca
2000-12-09..2006-02-03 Hisashi MORITA 目次 ニュース 予定 簡単な説明 概要 必要なもの インストール方法 使い方 問題解決とヒント ライセンス クレジット 謝辞 情報源 ニュース 0.3.3 (2006-02-03) Fixed arg test so that we can compare non-normal files, such as device files and named pipes (thanks to Shugo Maeda). Added DocDiff Web UI sample (experimental). Fixed HTML output to produce valid XHTML (thanks to Hiroshi OHKUBO). Note that CSS in HTML output is slightly
開発の作業をしているときは、複数のホストのサーバーを行き来していろいろとオペレーションをするようなことがあると思います。 そんなときに1つのサーバーから作業できるよう、ssh経由でリモートのサーバーをマウントし、Localのファイルシステムのように見せることができるsshfsを紹介したいと思います。 sshfsのインストール Debian/Ubuntuならaptで簡単インストールできます。なお、fuseグループに入っている必要があるので、その設定まで実施します。なお、ユーザー名はwadapで実施します。 $ sudo apt-get install sshfs $ sudo adduser fuse wadap $ newgrp fuse以上、簡単ですね。 早速リモートホストをマウント リモートホストをマウントするのは簡単です。マウントポイントをつくって、sshfsコマンドを実行するだけ。
#If 0ってC,C++では、#endifまで問答無用でコメントにしますが、 これを使ったハックがすごく便利。 元ネタ http://gpwiki.org/index.php/SDL:Tutorial:Using_SDL_net #if 0 #!/bin/sh gcc -o a a.c exit #endif int main( void ) { printf( "Hello\n"); return 1; } これを保存して、実行属性をつけてから(chmod 755とか) ターミナルで、 # ./a.c と打ち込むと、 aという実行ファイルが生成される。 んで、./aと打ち込むと Helloと表示される。 今までは、Makefileか直接、gcc -o a a.cとかやっていた作業が、 ソースコード+Makefileの代わりになるわけ。 なぜこんな事ができるかってーと、 shのシェルスクリ
lsyncd は rsync をinotify で実行する.つまりファイルが書き換わったら転送。 ディレクトリを監視して,ファイルが更新されたら転送.同期. 以外と便利で,ファイルがワープするみたいな感覚になった。これはオススメかもしれない. lsyncd の特長 同期ミラー構築ツール lsync はリアルタイムでファイルを同期する. ファイル・フォルダを監視する. ファイルが更新されたら同期コマンド実行 二つのディレクトリを監視して、更新されたら、同期を取ります。新規追加・削除も同期可能です.n個のディレクトリでも使えます. lsyncd の中身 更新監視には inotify を使用 ファイル更新タイミングでrsync 実行 受け側には rsyncd を使う 送信先には rsync 使う rsync オプションは任意指定可能 drdb など他のミラーソフトとの違い lsync は ファイ
シェルからでも重い処理というのはちょこちょこあって、例えば超デカいログファイルを移動して圧縮したりというお仕事は世界中のあらゆる場所で毎日行われていたりする。コマンドラインからでも大量の圧縮済みログファイルをいっぺんに展開したい、とか。 あるディレクトリ以下に存在するたくさんのファイルを(圧縮済みのものを除いて)全部 bzip2 圧縮したい!と思ったら、とりあえずさくっと次のようにコマンドラインで叩けばいい。 $ find . -not -name '*.bz2' | xargs bzip2 これで、まあそんなに問題なく効率的にbzip2圧縮ができる。だがしかし。 最近は複数コアのCPUが普通に転がってるし、あまつさえHyperThreadingが有効になってたりしてOSから見える論理CPU数がハンパない。普通に8とかある。その一方で複数コアを使用してくれるコマンドというのはあんまりなくて
SystemTapで真犯人を捕まえろ!:Linuxトラブルシューティング探偵団 番外編(3)(1/4 ページ) NTTグループの各社で鳴らした俺たちLinuxトラブルシューティング探偵団は、各社で培ったOSS関連技術を手に、NTT OSSセンタに集められた。普段は基本的にNTTグループのみを相手に活動しているが、それだけで終わる俺たちじゃあない。 ソースコードさえあればどんなトラブルでも解決する命知らず、不可能を可能にし、多くのバグを粉砕する、俺たちLinuxトラブルシューティング探偵団! 助けを借りたいときは、いつでもいってくれ! OS:高田哲生 俺はリーダー、高田哲生。Linuxの達人。俺のようにソースコードレベルでOSを理解している人間でなければ、百戦錬磨のLinuxトラブルシューティング探偵団のリーダーは務まらん。 Web:福山義仁 俺は、福山義仁。Web技術の達人さ。Apache
This software is part of the GNU Project. NAME parallel - build and execute shell command lines from standard input in parallel DESCRIPTION GNU parallel is a shell tool for executing jobs concurrently locally or using remote computers. A job is typically 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,
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く