タグ

commandに関するcooldaemonのブックマーク (20)

  • sanonosa システム管理コラム集: コマンドリファレンス集

    インフラエンジニアの教科書」シリーズや「クラウドエンジニアの教科書」などの著者。現在(株)ハートビーツ勤務。LINE社元創業メンバー。K-POP/韓国語/お酒/サイゼリヤワイン好き。

    sanonosa システム管理コラム集: コマンドリファレンス集
  • 意外と知られていないファイル探索方法(grep --include) - 技術メモ帳

    書こう書こう書こうと思っていたら先に書かれてしまった。 404 Not Found この行き場の無い感情をどうにかボクの中から排除しなければならない。 そう考えたときに独り言のようにこのブログロに記述すれば良いじゃないかという 結論にたどり着いたのはもはや必然とも言える。 find | xargs による探索だが、それが簡単なものであれば 実は grep コマンドだけでうまくいく。 GNU grep、BSD 系の grep コマンドでは include、exclude オプションで再帰検索時に検索対象とするファイルを絞り込む事が出来るのだ。 --include=pattern --exclude=pattern たとえば、カレントディレクトリ以下の *.rb から test という文字列を 含むファイルを探索したい場合は次のようにすれば良い。 fgrep -r --include='*.r

  • 実行ファイルを実行できる形で圧縮する - 技術メモ帳

    忘れてたのでメモ。gzexe コマンド。 gzexe - compress executable files in place http://www.linux.or.jp/JM/html/GNU_gzip/man1/gzexe.1.html echoするだけのshell scriptを圧縮してから実行してみる。 $ cat ./test.sh #!/bin/sh echo aiueo $ gzexe ./test.sh ./test.sh: -9.1% # 損してる!! $ chmod u+x ./test.sh $ ./test.sh aiueo 仕組みは簡単で、 ファイルの末尾に圧縮したデータを入れていて、 それを展開して実行するコードが上の方に記述されている。 バイナリが含まれるので cat -v させていただいた。 $ cat -v ./test.sh #!/bin/sh ski

  • システム管理に使えるファイル更新監視テク - 技術メモ帳

    システム管理とかしてると、特定のディレクトリ以下のファイルの更新を 調べたいときとかっていうのはわりとある。 どんなファイルが更新されてどういった内容に変化したのかを見える化。 またしても Linux / watch ネタだ。FreeBSDはportsで、mac osx(darwin)は どこかで公開されてたdmgを使ってる。 中毒性があるので未成年の使用は禁止されている。 カレントディレクトリ内のファイルを 最近更新があったファイルを上の方に表示し、 最終行2行を表示し続けるもの。 $ watch -n2 'tail -n2 `ls -t`' Every 2s: tail -n2 `ls -t` Wed Feb 28 01:04:40 2007 ==> test2.txt <== unko ==> test4.txt <== aiueoadfsaf ==> test1.txt <== e

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

    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 ) オプションというのがある。 これは、指定された正

  • 技術メモ帳 - 二つのファイルに共通する行をエレガントに抽出

    id:parasporospa さんの uniq -d と uniq -u についての記事を見た。 それぞれ、重複する行、ユニークな行を抽出するオプションなのだが、 それらを利用したおもろいTipsが紹介されている。 uniq の -d と -u - メモ帳 # a, b に共通な行を抜き出す cat a b | sort | uniq -d > common # a にだけ含まれる行を抜き出す cat a b | sort | uniq > all cat a all | sort | uniq -u >only_in_a (中略) 存在意義がわからなかったオプションの使い道を見つけたときは妙に感動する。 僕が、uniq のこれらのオプションを知ったのは、 無能上司に教えてもらったときだ。懐かしい。 uniq -c に鳥肌が立ったのが昨日のように思い出される。 通称アルファギークの Da

  • 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

  • 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

  • 引数文字列の最大バイト数取得する - 技術メモ帳

    $ getconf ARG_MAX 262144

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

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

  • 技術メモ帳: [unix]複数のファイルの名前をまとめて変更する

    複数のファイルの名前を変更する際に、 便利なコマンドというものがある。 いくつかご紹介させていただこう。 カレントディレクトリにあるファイルの名前を、 たとえば、*.html を *.htm と名前を変更するという課題に対し どのぐらいエレガントに書けるかというのを比較してみる。 まず、普通にやったらどうだろう。 おそらく、for文 をつかうことだろう。 for file in *.html do base=`basename $file .html` mv $base.html $base.htm; done; zshだともうちょっとスマートにかけて、 for file in *.html do mv $file:r.html $file:r.html; done; こんな具合。 for文 が嫌いなネット右翼のために、 xargs を使ってこの問題を解いてみよう。 ls -1 *.htm

  • nlコマンドでseqコマンドのエミュレート - 技術メモ帳

    どさにっきで非常に詳細にやっていただいた http://ya.maya.st/d/200611b.html#s20061112_2 のだが、実は nl コマンドを使ったら楽なんじゃないかな と思ったのでやってみた。 利点として、いろんな環境に nl コマンドは入ってる。 とりあえず、Linux, cygwin, Darwin, FreeBSDには入ってる susv3に定義されてる http://www.opengroup.org/onlinepubs/009695399/utilities/nl.html ゼロ埋めは、-w パッディング数 と -nrz という 左寄せゼロ埋めオプションの組み合わせで可能 $ yes '' | nl -ba -nrz -w3 | head 001 002 003 004 005 006 007 008 009 010 インクリメント数の指定は、-i 数値 で

  • 指定した最終更新日時のファイルを探す - 技術メモ帳

    GNU find find . -type f -printf "%h%f %AY/%Am/%Ad\n" | egrep '2006/09/30$' zsh + zsh/stat zmodload zsh/stat stat -F "%Y/%m/%d" +mtime ./**/*(.) | egrep '2006/09/30$'

  • seq コマンド for BSD - 技術メモ帳

    いつも参考にさせていただいてる id:parasporospa さんの bashrc を読んでいて思ったのだが、 BSD系OS(MacOSXも当然入る) には seq コマンドというのが入っていない。 http://d.hatena.ne.jp/parasporospa/20061108/p7 代わりに、ものすごく高機能な jot コマンドというのが入っているので それを使って seq を実装してみた。 function seq(){ jot $2 $1 $2 } 追記: $1 が 1 以外だとまともに動かない事が判明。 あとで直す ありがとうございます。> id:odz さん

  • 勝手に添削 - find(1) : 404 Blog Not Found

    2007年03月30日00:15 カテゴリ一日一行野郎Lightweight Languages 勝手に添削 - find(1) 「ウノウラボ Unoh Labs: コマンドラインで作業する上で知っておくといいテクニック」の用法に首を傾げたので。 まずはこちら。 $ find . -type f | fgrep index.html これは % find . -type f -name index.html でOK。パイプ不要。.htmlだけ見つけたい時も % find . -type f -name \*.html でOK。findはシェルのワイルドカードを受け付ける。ただしシェルにそれを展開して欲しくないので、\でエスケープしている。要は $ find . -name '*~' と同じなのだが、なんで上記の例でfgrepを使っているか不明。 ここからが番。 $ find . -nam

    勝手に添削 - find(1) : 404 Blog Not Found
  • ウノウラボ Unoh Labs: コマンドラインで作業する上で知っておくといいテクニック

    ちょうど入社から半年で有給発生しつつも日が退職日になりましたjokagiです.もう花見の季節ですね!! ちょうどラボブログの当番のようで,退職記念にjokagiが普段の開発で使っているテクニックとは呼ぶにはおこがましい小手先の技をつらつら書いてみたいと思います. これを覚えればjokagi程度には仕事をこなせるかも!? コマンドの使い方を覚えよう 基的なコマンドの使い方やコンソールなどの使い方は書籍やいろんなサイトで覚えてください. ここでは一応一通りなんとなくでもコマンドを扱える人がさらに覚えるといいかもしれないことだけを記述します. -03-20T23:59+0900"> また,これからの解説はシェルはbash,その他のコマンドの多くはGNU Toolsと呼ばれることのあるGNU findやcoreutilsなどを用いた環境でのオプション例や実行例になります. echo いわゆる指

  • あわてるな ディスクはそんなに 速くない : 404 Blog Not Found

    2007年03月30日04:30 カテゴリiTech あわてるな ディスクはそんなに 速くない 誤差の範囲かどうかは、ファイル数による。 無精で短気で傲慢なプログラマ | find には sh! いまどき fork/exec rm のオーバーヘッドがどれほどのものか。 xargs を使うとき、rm が 1回だけ実行されるときと、ARG_MAX を超えたときに rm が複数回実行されるときの違いにどれほどの差があると言うのか。 誤差の範囲である。 ファイル数が数百ぐらいなら大差はないが、それが数万、数十万ともなると話は違ってくる。なにしろ相手はCPUではなくHDD。こちらはCPUほど高速ではないのだ。 実際、ベンチマークを取ってみると、結構な差があることがわかる。特に-execは遅い。そして、shをカジュアルにpipeで使うのはワイルドカードが恐ろしい。 よくきたはてダ - また添削してくれ

    あわてるな ディスクはそんなに 速くない : 404 Blog Not Found
  • naoyaのはてなダイアリー - 負荷とは何か

    調べごとをしたので blog に書いて理解を深めようのコーナーです。長文です。 Linux でシステム負荷を見る場合にお世話になるのが top や sar (sysstat パッケージに同梱されてるコマンド) などのツールです。 top ではシステム統計のスナップショットを見ることができます。今システムがどういう状態かなーというときは top が便利。 top - 08:16:54 up 3 days, 14:43, 6 users, load average: 0.18, 0.07, 0.03 Tasks: 43 total, 2 running, 41 sleeping, 0 stopped, 0 zombie Cpu(s): 18.2% us, 0.0% sy, 0.0% ni, 81.8% id, 0.0% wa, 0.0% hi, 0.0% si一方の sar では10分ごとのシ

    naoyaのはてなダイアリー - 負荷とは何か
  • 定期的にコマンドを実行しその出力の変化を監視する - 技術メモ帳

    以前に、watch コマンドという 指定されたコマンドを定期的に実行し、 フルスクリーンで表示してくれるコマンドがあるという事を書いた。 http://d.hatena.ne.jp/lurker/20060716/1153056030 実は、--differences とオプションを付加する事によって、 直前の出力結果との差分をハイライト表示してくれるらしい。 知らなかった。コレは便利だ。 正直 grep -o を知ったときぐらい感動した。 以下のように入力してみるとどうなるのかが わかっていただけると思う。 ちなみにこれは、1秒おきに、dateコマンドを実行するというもの。 $ watch -n 1 --differences date さらに、--differences=cumulative と付加すると 起動してからのすべての変更部分がハイライトされるようだ。 $ watch -n

  • 技術メモ帳 - pgrep, pkill を使用してプロセスを殺す

    最近、会社でシェルの操作方法について教えているのだが、 pgrep / pkill / skill / pidof といった 便利なプロセス操作系コマンドを知らない人が実に多い。 プロセスを殺すというのは、よくある作業なので 今回はコレについて書いてみる。 たとえば、これらのコマンドを知らない人が、 指定した名前のプロセスを kill する手順はだいたい 以下のようなものになることだろう。 $ ps aux | grep プロセス名 | grep -v 'grep' # コマンドの出力結果から pid を目で確認 12345 ... .. hoge .. .. $ kill 12345 この作業は非常に面倒で退屈だ。 もし殺さなければならないプロセスがたくさんあったときは どうするのだろうか。 おまけに、grep コマンド自身が候補に含まれてしまう事があるのだが、 grep -v grep

  • 1