タグ

ブックマーク / d.hatena.ne.jp/lurker (19)

  • 意外と知られていないファイル探索方法(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
  • 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に指定するオプション名に 好きなだけアンダーバーをつける事が出来

  • mysql -Xでクエリーの結果をXMLで取得 - 技術メモ帳

    mysql -X でクエリーの結果がXMLで取得できるらしい。 興味深いのでやってみた。 なんか適当にテーブルを作成する。 とりあえず、4つのカラムを持つtというテーブル作った。 mysql> create table t(id int not null, name varchar(255), body text, updated_at datetime); mysql> insert into t values(1, 'name', 'body', current_timestamp); mysql> insert into t values(2, 'name2', 'body2', current_timestamp); とりあえず、普通にSELECTで表示してみる。 # mysql -e 'SQL' で任意のSQLを実行可能。ワンライナーに使えます。 $ mysql -e 'sele

  • 技術メモ帳 - 単語抽出するちょっとしたテクニック

    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
  • 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 これだけ

  • Javascriptでの小数計算について - 技術メモ帳

    javascriptというわけではないのだが、 PHPやりつつjavascriptいじるとハマります。 二進表記で表現できないものがあるため、 循環小数になってしまうとかそういった話だった気がする。 ご覧の通り、まったく詳しくない。 0.1 を 10 回足すと、どうなるでしょうかという話。 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 => 0.9999999999999999 とりあえず、自分の知っている対策は それぞれを n 倍してから 最後に n で割るという方法。 nは場合により使い分ける。 (0.1 * 10 + 0.1 * 10 + 0.1 * 10 + 0.1 * 10 + 0.1 * 10 + 0.1 * 10 + 0.1 * 10 + 0.1 * 10 + 0.1 * 10 + 0.1 * 10) /

  • ssh-copy-idコマンドで公開鍵をリモートホストに登録する - 技術メモ帳

    http://www.t-dori.net/k-way/?date=20061218 こんなコマンドがあったのか。常識? ssh-copy-id username@hostname.example.jp か。パスワード認証のパスワードが求められる。 あああ、こんな便利なコマンドあったのか。 いわゆる authorized_keys に登録する処理が簡単に行える。 ただ、ほとんどの環境に入ってない。 最近のOpenSSHだと入ってるのかな。 ちなみにいつもはこうやってる。 $ cat ./.ssh/id_rsa.pub | ssh user@remote_host "cat >> ./.ssh/authorized_keys" 参考: http://www.delafond.org/traducmanfr/man/man1/ssh-copy-id.1.html http://takkan-m

    nipotan
    nipotan 2007/08/13
    知らんかった。。
  • errnoに対応したエラーメッセージ取得 - 技術メモ帳

    zsh/system モジュールに含まれる syserror コマンドで取得できる % syserror 1 Operation not permitted % syserror ENFILE Too many open files in system このモジュールをロードすると、 変数 $errnos というのが定義され、 errname の一覧を取得することもできる。 % print -C5 $errnos | head EPERM EINVAL EPROTONOSUPPORT EHOSTDOWN EBADEXEC ENOENT ENFILE ESOCKTNOSUPPORT EHOSTUNREACH EBADARCH ESRCH EMFILE ENOTSUP ENOTEMPTY ESHLIBVERS EINTR ENOTTY EPFNOSUPPORT EPROCLIM EBADMAC

    nipotan
    nipotan 2007/08/13
  • topコマンドの出力をカラフルにする - 技術メモ帳

    ずっと知らなかった。。 こういったずっと前から知ってるコマンドが カラフルになると感動する。DDI。 やり方は、起動中にzコマンドを入力するだけ。 他にもどこをハイライトするか、など詳細に設定できる。 $ top # 起動中にzと入力 設定し終わったら、W と大文字で入力する事で $HOME/.toprc に現在の設定が保存される。 Linux とかにはいってる procps パッケージの top コマンドだけです。 参考: http://www.linux.or.jp/JM/html/procps/man1/top.1.html

    nipotan
    nipotan 2007/08/13
  • MacOSXでのファイルコピーは ditto コマンドを使用した方がいいらしい - 技術メモ帳

    どうも、cp コマンドでは、 リソースファイルというものがコピーされないらしい。 (詳しくは知らない) というわけで、実際にやってみた。 見ていただければわかると思うが、 test1.zip というのが、cp コマンドを使用したもの。 test2.zip というのが、ditto コマンドを使用したものだ。 たしかに、cp コマンドでコピーした方は、 アイコンの情報が失われてしまっている。 追記: どうも、MacOSX 10.4 系では、 cp コマンドでもデフォルトでリソースフォークを 維持するようになっているらしいです。 今回は、Finderのキャッシュでこのような結果が出ているようです。 大変失礼致しました。 以下のすばらしい記事を参考の事。 http://blog.8-p.info/articles/2006/10/26/cp-ditto-cpmac-finder

    MacOSXでのファイルコピーは ditto コマンドを使用した方がいいらしい - 技術メモ帳
    nipotan
    nipotan 2007/08/13
  • グローバルオブジェクトへの参照は遅い - 技術メモ帳

    マイクロソフトのドキュメントに書いてあったので、 実際にやってみた。 どうも、ローカル変数にグローバルオブジェクトへの参照を キャッシングすると速くなるようだ。 http://www.microsoft.com/japan/msdn/columns/dude/dude100499.aspx たとえば、window オブジェクトを使用するときは、 以下のようにすれば速くなるっぽい。 var w = window; // 以後、w を使用する。 グローバルオブジェクトへの直接アクセス 通常の使い方。 4464 ms window.global = 0; (function(){ console.time("test"); for(var i=0; i<1000000; i++){ window.global++; } console.timeEnd("test"); console.log(

  • 隣接兄弟セレクタ - 技術メモ帳

    CSSで "隣接する要素" を表現する事が出来るらしい。 知らなかった。 たとえば、"h1 に隣接する p 要素" というものを 表現したかったら以下のように指定する。 h1 + p { display: none; } この例だと、h1 の隣にある p 要素 が消滅する。 サンプルとして、p 要素 (helloworld という文字列) の上に マウスを乗せると、隣にある input 要素が赤い枠線でハイライトされるものを作ってみた。 http://gomibako.hahaue.com/test/focus.html CSSはだいたいこんな感じです。 p:hover + input{ border: solid 5px red; } Safari だと動かなかった。 Firefox だと動いた。 追記: リンク元から知ったのですが、 Opera でも動くそうです。 駄的HTML改善計画

    nipotan
    nipotan 2007/08/13
  • ページの閲覧者にGreasemonkeyを使用させない方法 - 技術メモ帳

    Greasemonkeyのソースを読んでて見つけたのだが どうも Greasemonkey は、 URLが 'hiddenWindow.html' で終わってるページには スクリプトを適用しないらしい。 したがって、それを利用することによって 閲覧者が Greasemonkey スクリプトを 使用できないようにする事が出来る。 試しに作ってみた。 以下のページでは Greasemonkey スクリプトを使えないはず。 http://gomibako.hahaue.com/test/hiddenWindow.html

  • sshで公開鍵ごとにコマンド制限する際の注意点2 - 技術メモ帳

    公開鍵認証でコマンドを制限していても パスワード認証の際には、 自由にコマンドを実行できてしまうということに 十分注意することが必要である。 クライアントで以下のように 公開鍵認証を no にすることによって、 明示的にパスワード認証にすることが出来る。 (これはデフォルトの設定の場合) $ ssh -oPubkeyAuthentication=no user@remote_host Password: したがって、パスワードを総当たり攻撃されたときに シェルを奪われてしまう可能性というのが少なからず存在する。 それがいやなのであれば、/etc/sshd_config で PasswordAuthentication を no にしておくと良いかも知れない。

  • sshで公開鍵ごとにコマンド制限する際の注意点1 - 技術メモ帳

    を書くのを忘れていたので一応書いておく。 command="任意のコマンド" としておくと、任意のコマンドしか実行できない 公開鍵を作れるというのは前に書いたが、 そのときに、$SSH_ORIGINAL_COMMAND という環境変数を利用すれば、 動的に処理を切り分けることが出来る。 以下はその例である。 command="cat $SSH_ORIGINAL_COMMAND" このようにしておけば、 ssh user@remote_host "/var/log/messages" これで、任意のファイルをcatするだけの公開鍵ができる。 …ように思われるが、$SSH_ORIGINAL_COMMAND の部分を うまい具合に調節すれば、悪意あるコマンドを注入することが出来てしまう。 試しに、バッククオート演算子を利用して uptime を実行してみた。 $ ssh user@remote_

  • 文字列編集演算子 - 技術メモ帳

    まず、!$ により直前コマンドの末尾の引数を 参照できるということを前提に話を進めます。 例) $ ls ./ $ ls $! # 同じファイル一覧表示される :h ファイル名部分を取り除いたものが取得できる。 apacheの設定ファイルいじってて、 やっぱり、この設定ファイルのディレクトリに 移動したいなぁってときに便利かもしれない。 $ vi /usr/local/apache2/conf/httpd.conf $ cd !$:h $ pwd /usr/local/apache2/conf :t でこの逆のファイル名部分を抽出できるみたい。 :e で拡張子部分

    nipotan
    nipotan 2007/08/13
  • sshで指定したコマンドしか実行できない公開鍵を作る - 技術メモ帳

    自動バックアップ処理をさせたいが シェル権限を与えたくないときとかに使える技。 やり方は簡単で $HOME/.ssh/authorized_keys の "コマンドを制限したい公開鍵" の行の先頭に 実行させたいコマンドを記述すればよい。 そのときのフォーマットはだいたい以下のようになる。 command="実行させたいコマンド",sshのオプションをカンマ区切りで書く command=hoge というのを付け足すことによって その公開鍵でアクセスがあったときに 指定したコマンドを実行させることができる。 たとえば、uptime を実行させたいときは、 以下のようにすればよい。 command="uptime",no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-rsa AAAABbBFERTWER....

    nipotan
    nipotan 2007/08/13
    昔何かでこれやったなぁ
  • akasaka.rbのまとめ - 技術メモ帳

    akasaka.rb(http://akasakarb.org/)に行ってきました。のでまとめます。 yuguiさん、babieさんと、takaiさんと初めてお会いさせて頂きました。 とても楽しかったです。未熟なボクですが、今後ともよろしくお願い致します。 参加者 id:yuguiさん malaさん takaiさん id:babieさん ボク 要点 宇宙って11次元だよね 変態性癖をみんなで共有したいよね 印象的だったこと takaiさんがmalaさんのおしりをなでまわしていたこと 関連記事: no title Akasaka.rb - babie, you're my home

    nipotan
    nipotan 2007/08/13
    どう見ても変態の集まり
  • 1