ablog

不器用で落着きのない技術者のメモ

UNIX

UNIXのディレクトリ階層

ちょっと調べてみたのでメモ。 調べてみるとdirectoryはケン・トンプソンやデニス・リッチーが作り出した言葉ではなく、既にMulticsで使われていたようだ(http://www.multicians.org/mgd.html#directory)。Multicsは階層型記憶システムを実装した初めての…

特定ディレクトリ以下を除いた find をする方法

特定ディレクトリ以下を除いた find をする方法を聞かれたので、id:teramako さんの記事を紹介したら喜ばれました。 find . -name "foo" -prune -o -print ...できることならxargsを使え find /tmp -type f -exec rm -f {} \; じゃなくて find /tmp -type f …

setuid属性やsetgid属性が付与されたファイルをlsコマンドで表示したときの"s"の大文字・小文字について

実行権限を元々持っていないファイルの場合(644 など)は、SUID ビットをOn にした際に大文字の S が表示されます。実行権限を持ったファイルの場合は、小文字の s が表示されます。 ファイル所有権の管理

iostat の各行に時刻を入れる

iostat はこんな感じになっていて、 Thu Nov 11 00:01:01 2012 r/s w/s Mr/s Mw/s wait actv wsvc_t asvc_t %w %b device 0.0 6.0 0.0 0.0 0.0 0.1 0.0 13.7 0 5 ...... 0.0 12.0 0.0 0.1 0.0 0.2 0.0 11.2 0 9 ...... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 …

UNIX System V IPC 共有メモリはページアウトされる

最前線UNIXのカーネル作者: ユーレッシュヴァハリア,Uresh Vahalia,徳田英幸,戸辺義人,中村明,津田悦幸出版社/メーカー: ピアソンエデュケーション発売日: 2000/05メディア: 単行本購入: 4人 クリック: 37回この商品を含むブログ (8件) を見るP.540 UNIX Sys…

シンプルなインターフェース

*NIX のプロセスファイルシステムも Oracle Database の動的パフォーマンス・ビューも共通のインタフェース(テキストとして扱える、SQLでアクセスできる)を提供しているという点では似ていると思った。実体はメモリ上のデータ構造だと思うけど、共通のイン…

最前線UNIXのカーネル

最前線UNIXのカーネル作者: ユーレッシュヴァハリア,Uresh Vahalia,徳田英幸,戸辺義人,中村明,津田悦幸出版社/メーカー: ピアソンエデュケーション発売日: 2000/05メディア: 単行本購入: 4人 クリック: 37回この商品を含むブログ (8件) を見るOSの排他制御に…

Unixシステムパフォーマンスチューニング

近所の本屋にぶらっと寄ったついでに前から欲しかったUnixシステムパフォーマンスチューニング 第2版作者: ジャン‐パオロ・D.ムズメキ,マイクルキダス,Gian‐Paolo D. Musumeci,Mike Loukides,砂原秀樹,高橋敏明,岡島順治郎出版社/メーカー: オライリージャパ…

Oracle Database のインストール・メディアに同梱されているレスポンス・ファイルを調べてみた

$ find . -name '*.jar' -print0|xargs -0 -n1 jar tvf|grep .rsp

make -n でコマンドを実行せずにマクロを展開して表示させる

$ORACLE_HOME/rdbms/lib/ins_rdbms.mk を読んでいて、${マクロ名} や $(マクロ名) といったマクロがどう展開されるか読み解くのが面倒なので、make で生成したコマンドを実行せずに展開して表示できないのかなと思って、make の man を見てみたら、 -bash-3.…

シンボリックリンクのパーミッション

シンボリックリンク自体のパーミッションは全く意味を持たない。 lrwxrwxrwx 1 user group 3 Aug 1 16:14 file-b -> file-aでも l--------- 1 user group 3 Aug 1 16:14 file-b -> file-aでも全く違いはない。有効なのはリンク先の file-a のパーミッション…

find で複数種類の拡張子のファイルを検索する方法

拡張子が「.sql」と「.pc」のファイルを検索する場合はこんな感じでおk。 $ find . -type f \( -name '*.sql' -o -name '*.pc' \) -print 参考 http://h50146.www5.hp.com/products/software/oe/hpux/developer/column/unixtext_app02/02.html

dd の出力をパイプで gzip に渡して圧縮する

-bash-3.00$ perl -le 'print for(1...100)'>foo.txt -bash-3.00$ dd if=foo.txt of=bar1.txt bs=1024k count=10 0+1 records in 0+1 records out -bash-3.00$ dd if=foo.txt bs=1024k count=10>bar2.txt 0+1 records in 0+1 records out -bash-3.00$ dd if=…

Oracle Database on UNIX でBEQプロトコルでLOCAL接続する場合はパイプを使ってプロセス間通信している

Oracle Database で「sqlplus / as sysdba」とかしてBEQプロトコルでLOCAL接続する場合はプロセス間通信しているんだろうなとなんとなく思っていて、プロセス間通信って共有メモリとかセマフォとかパイプとかあるけど、パイプあたりを使っているのかなと思っ…

less で日本語のファイルを開くと文字化けする

Solaris 10 で less で日本語のファイルを開くと文字化けした。 % perl -le 'print "あああ" for 1..100' > hoge.txt % wc -l hoge.txt 100 hoge.txt % less hoge.txt "hoge.txt" may be a binary file. See it anyway? <A4><A2><A4><A2><A4><A2> <A4><A2><A4><A2><A4><A2> <A4><A2><A4><A2><A4><A2> <A4><A2><A4><A2><A4><A2> <A4><A2><A4><A2><A4>…</a4></a2></a4></a2></a4></a2></a4></a2></a4></a2></a4></a2></a4></a2></a4></a2></a4></a2></a4></a2></a4></a2></a4></a2></a4></a2></a4></a2></a4>

さくらサーバにRSA認証でログインできるようにする

鍵は作成済みとする。 $ scp ~/.ssh/id_rsa.pub hoge@hoge.sakura.ne.jp:~/.ssh/id_rsa.pub.hoge $ ssh hoge@hoge.sakura.ne.jp $ cd ~/.ssh $ cat id_rsa.pub.hoge >> authorized_keys $ rm id_rsa.pub.hoge

特定のファイル名のファイルを除いて tar で固める

jpg と gif 以外のファイルを固める。 $ find www -type f|perl -ne '/jpg|gif/ or print'|xargs tar rvf www.tar tar: www/web_order/?R?s?[: Cannot stat: No such file or directory tar: ?`: Cannot stat: No such file or directory tar: orderform.htm…

xargs 速えぇ

xargs がめちゃ便利なのでメモっておく - ablog に、id:teramako さんから以下のツッコミを頂いた。 >% find . -type f | while read line >do > chmod g+w $line >done >と同じことを xargs を使うと、 >find . -type f | xargs chmod g+w 見た目は一緒です…

xargs がめちゃ便利なのでメモっておく

xargs とは 標準入力から渡されたファイル名などを引数とみなして、別のコマンドの引数として起動するというものです。 http://openlab.dino.co.jp/2008/02/20/133431188.html というものらしい。 言葉だけではピンとこないので具体例で言うと、 % find . -t…

split コマンドでファイルを指定した行数で分割する

30行のファイルを作成して、 $ perl -le 'print for 1..30' > total $ cat total 1 2 ... 30 10行ごとに分割して、 $ split -l 10 total 確認すると、 $ ls total xaa xab xac $ cat xaa 1 2 ... 10 $ cat xab 11 12 ... 20 $ cat xac 21 22 ... 30 こりゃ便…

trap コマンド

trap コマンドは送出されたシグナルを捕捉し、あらかじめ指定されていた処理を実行する。 書式 trap 'コマンド' シグナルリスト 例 $ vi trap.sh #!/usr/bin/bash while : do date '+%Y-%m-%d %H:%M:%S' trap "echo Ctrl+c pressed; kill -9 $$" 2 sleep 3 d…

man コマンドの使い方

マニュアルを見る man ls ページャが less の場合 <↑>: 1行上に進む。 <↓>: 1行下に進む。 <PgUp>: 1ページ上に進む。 <PgDn>: 1ページ下に進む。 /検索文字列: 検索する。 q: 終了する。 ページャが more の場合(ページャが less の場合でも使える) h: ヘルプを表示す</pgdn></pgup>…

Linux のコマンドラインオプションとヘルプについて

「-」 + 単語の先頭1文字(伝統的なUNIXのコマンドラインオプション) ls -a 「--」 + 単語(機能が増えて1文字で区別するのが困難になってきたため最近作られたコマンドラインオプション) ls --all ヘルプを表示する ls -h ls --help ヘルプの見方 [] で囲…