日記_2024.8.29 鞍馬と貴船 29日は鞍馬と貴船に行ってきました。こんな天気でバイクは無理、でも引きこもるのも嫌なので前々から行きたかった鞍馬と貴船に行くことにしました。ただ、いつ大雨が降っても全くおかしくないので天気がヤバそうなら帰ることにします。普通に日帰りできる距離ですから…
なんかCLIマジック:使って役立つワンライナー入門なんてのがあって気分が盛り上がってきたので、僕もワンライナーっぽいのを書いてみるよ。 困ったこと 例えば、カレントディレクトリ以下にあるファイルの名前を全部見たいとき、素直にfindコマンドを使うとこうなるね。 find . -type fでも出力はこうなる。 ./locale/.svn/entries ./locale/.svn/format ./locale/ja/switch_page_locale.dtd ./locale/ja/.svn/entries ./locale/ja/.svn/format ./locale/ja/.svn/text-base/switch_page_locale.dtd.svn-base ./locale/en-US/switch_page_locale.dtd ./locale/en-US/.svn/
変更してから一定期間が経過したファイルを検索するには、-ctimeオプションを付けてfindコマンドを実行する。例えば、1週間以上修正していないファイルを/home/project以下から検索して表示するには、以下のように行う。
rsync-2.5.6-NEWS(rsync.samba.org) はずです。 2.5.6 以降であれば -C オプションをつければ Subversion の管理している .svn ディレクトリもスキップしてくれる。もしそれ以前のバージョンを使っているなら自前で除けてやらないといけない。つかイマドキ 2.5.6 以前が入ってるホストはちゃんと管理できてないか、やむを得ず古いバージョンのまま走らせているかどちらかなので、「ふつう」の人が当たる機会はあんまりないんじゃないかなぁ。 なんか以前 -C でイケるホストとイケないホストがあって、.cvsignore の違いかなーとか漠然と思っていたんだけど、いやーでもどっかで .svn に対応してるって読んだ気がするなーと思って調べてみた。
ますだっくすさんが curlのエントリ書いてたのでおいらも1つだけ追記しませう。 Webサイトのボトルネック調査 あるサイトでアクセスが遅いなぁ、って話になったときにまず当たりをつけるために遅い部分を調べたい。 って時のcurlの使い方。 実際の手順 基本的には、前述のますだっく(@masudak)さんの、「その3. レスポンスの出力を加工する」であるのですが、詳細な項目を設定することで問題の切り分けにも使用できます。 出力フォーマット用のファイル。 cat <<'EOF' >/tmp/curl_env.txt url_effective\t\t: %{url_effective}\n http_code\t\t: %{http_code}\n http_connect\t\t: %{http_connect}\n time_total\t\t: %{time_total}\n time_
※2010/4/18 パイプを使った例 を追記しました 先々週くらいから、vim上からackを使った「ディレクトリ以下のファイル一括置換」を行うvimスクリプト書いたりしてました。 でもなんかしっくりこないので公開するかどうかは微妙… ちなみにackは簡単に言うと「find+grep」を一発実行するようなものです。 ハイライトなども対応しているし、他のコマンドに結果をパイプして渡したりするのにも使えるので 激しく便利。 で、そのためにいろいろack調査してたのですが、 日本語の説明があまりなかったので使い方などをメモ書きしておきます。 ちなみに、以下の実行例についてはplaggerのソースを検索した結果になっています。 インストール cpan App::Ack でok。 yumとかapt-getでもパッケージあるようですし、単一スクリプトとしても提供されているようです。 詳しくはこちらのH
Vimテクニックバイブル ~作業効率をカイゼンする150の技 ここ1週間、Vimテクニックバイブルに載ってる使ったことのないプラグインを試しているんですが、個人的にvimgrepよりも使いやすいと思っているack.vimが見当たらなかったのでご紹介。 ackとは ack 1.96 — better than grep, a source code search tool for programmers findで再帰的に全ファイルを列挙して、各ファイルに対してgrepというような事を一つのコマンドでやってくれます。.svnとかCVSとかを検索対象として自動で除外してくれるので、ソースコードの検索に非常に役に立ちます。findとgrepでソース検索してたら、「それack使うと楽だよ」と会社の親切な人が教えてくれましたよ。基本的な利用方法は下記のような感じで ack パターンマッチ [フ
cles::blog 平常心是道 blogs: cles::blog NP_cles() « エネループがマイナーチェンジしてた :: SQLiteの高速化とトランザクション » 2010/03/07 multitailで複数のログを追いかける cli 243 0へぇ ターミナルでログを追いかける際には tail -f を使う人が多いと思います。僕もよく使っています。これまでtailの引数に渡せるファイルは1つだけだと思っていたのですが、実は複数のファイルを指定することもできるようです。ただ、後述のように出力がSTDOUTに統合されてしまうので、双方のファイルに頻繁にログが出力されるような場合にはあまり見やすくありません。 そんなことをtwitterで呟いていたら「@hsur multitailのほうがお勧めですw」と@kon_clが教えてくれたので、早速インストールしてみました。 Mu
diffは「-」オプションを使う事で標準入力を取得できる。 ssh user@example.com "cat `pwd`/index.html" | diff - index.html vimdiffにはそんなオプションが無いが名前付きパイプを使えば可能。 vimdiff index.html <(ssh user@example.com "cat `pwd`/index.html") [注]sshキーを設定してなかったら動かない。 svn diffが見にくいので代わりにvimdiffを名前付きパイプと組み合わせ使ってみる。 vimdiff index.html <(svn cat index.html)
ツイッターで「Apacheログをtail中にステータスコード部分だけに色つけしたい」ってのを見たので作ってみた。 #!/bin/sed -f ## MEMO # [0m reset # [1m bold # [3m italic # [4m underline # [5m blink # [30m black # [31m red # [32m green # [33m yellow # [34m blue # [35m magenta # [36m cyan # [37m white s/\(HTTP\/1..\"\) \(2[0-9][0-9]\) /\1 \x1b[34m\2\x1b[0m / s/\(HTTP\/1..\"\) \(3[0-9][0-9]\) /\1 \x1b[32m\2\x1b[0m / s/\(HTTP\/1..\"\) \(4[0-9][0-9]\) /\1
UNIXの代表的なダウンローダにwgetとcurlがあります。 たいていの場合どんなOSでも、どちらかのソフトがインストールされているのではないかと思います。 しかし、この2つのダウンローダの機能は、一見似ているようにも見えますが、実はそれぞれに特徴が見られるので、今日はそれについて解説してみます。 wgetの特徴 wgetのスペルは「片手でもコマンドできる」ということもあって、多くの人から気に入られています。 そんなwgetの特徴として、最も際立っているのが、クローラとして動作可能という点です。 オプションで-rを付加してやることで再帰的に動作し、-lでその深さを指定することができます。 また、-Aや-Rを利用すれば、ダウンロードする拡張子のホワイトリストとブラックリストを指定することも可能です。 つまり、特定のサイト内に散らばって存在するファイルを、拡張子によって指定ダウンロードできる
気まぐれで、topコマンドのmanを簡単に確認してみました。初めに言っておくと、manコマンドに記載されている以上のことはないのでそれを読める人は必要ないと思います。 環境としては、CentOS 4.4です。 対話画面の基本 まず、topを単純に実行した場合の見かた、起動後のコマンドの使い方を確認する。 対話画面の見かた topコマンドを単純にオプション無しで実行すると以下のようになる。 top - 20:49:53 up 7 min, 1 user, load average: 0.03, 0.36, 0.23 Tasks: 79 total, 2 running, 77 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0% us, 0.3% sy, 0.0% ni, 99.7% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 103
エンジニアという職業柄かシェルスクリプトを書くことはちょくちょくあるのですが、自分なりに気を付けていることを備忘録&自分への戒めも含めて、簡単に書いてみたいと思います。 変数は大文字 シェルスクリプト書いていれば変数の出番は至るところであるでしょう。その際、可読性を増すように、変数は大文字を使っています。 RET=`cmd1`みたいに。好みの問題もあるでしょうが、分かりやすいので。 クオテーションは選ぶ クオテーションにはシングルだったり、ダブルだったり色々ありますが、使い分けておいたほうがよいでしょう。 変数の展開がないようであれば、シングルクオーテーションのほうがスマートでしょうし、展開があるのならダブルクオーテーションを使えばと。 ダブルクオーテーションを使うのにも意味があって、変数は「$RET」のようにクオテーションで囲まなくても動作はたいていするのですが、 echo "${RET
bash の解説なんて、ネット上には結構あったりするのだが、これをわざわざ公開しようというのは、次の理由による。 某ソフトハウスでのUNIX講座用に書いてしまったから。 ネット上にある bash 解説だと、表面的な構文解説程度であり、きっちりスクリプト言語として使い倒すレベルの解説はあまりない。まあ、プログラミング言語として凝ったサンプルもやってみようじゃないの、というノリで割とディープに解説する。 アクセスを増やすための人気取り(苦笑)。 まあ、そんな不純な目的による bash 解説である。とはいえ、日常的に使い慣れている bash であっても、「え、こんな使い方があったの!?」という発見もあることであろう。苦笑しながらでも読んでくれたまえ。だから、初歩的なリダイレクションなんかは解説しないからそのつもりで。 ちなみに参考書としたのはオライリー・ジャパン刊「入門 bash 第2版」である
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 ) オプションというのがある。 これは、指定された正
個人的にテキストファイルを処理することが多いのですが,簡単な処理ならUnixのコマンドをパイプとリダイレクトで組み合わせてできることが多くあります.今回はそんななかでもちょっとマニアックなTIPSをまとめてみました. sortコマンドでタブ区切りのファイルを指定する最近知って驚愕したのがこれ.sortコマンドでタブ区切りのファイルを指定したいときは,Ctrl+v Tabでタブ文字を入力していたのですが,$ sort -t $'\t' -k 2,2 のようにしてタブ区切りで2番目のキーでソートすることができます. 1000行おきにデータをサンプリングする1000行おきにファイルからデータをサンプリングしたいときとかは,perlでワンライナーを書くのが速いようです.$ perl -ne '$i++; print unless ($i % 1000)' 某所のコードゴルフによるとこれだけ短くでき
テキストファイルの文字コードを調べるにはでは、kccコマンドでテキストファイルの文字コードを調べる方法を紹介した。しかし、文字コードがUTF-8の場合にkccコマンドを実行すると、以下のような結果が出力される。
日本語が化けるときは次のどっちかをつけるといける? man lessより。 -r 「そのままの」制御文字を表示させるようにする。デフォルトでは、 制御文字をキャレット表記を使って表示する。 -R -rと似ているが、可能な場合には画面表示を正しく維持しようとする。 このオプションが有効なのは、入力が通常のテキストの場合である。 入力にはANSIの「カラー」エスケープシーケンスが含まれていてもよい。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く