UNIX

sudo #2

ref:suとsudo (Fuktommyの場合) 普通の作業は一般ユーザ、管理の作業はrootと使い分けます。 気持ちを切り替えるためにsuコマンドを使って、 rootのパスワードを入力するようにします。 管理作業でも定型的なもの、 例えばDebianなら apt-get update; apt-ge…

sudo

ref:ウノウラボ Unoh Labs: 専用サーバを構築するときにまず行う4つの設定 む。 /etc/sudoers の編集には visudo を使いましょう。文法チェックもしてくれる /etc/shadow の編集には sudo vipw -s としましょう。まぁインストール直後だと問題ないだろうけ…

cron と夏時間

あー、そういえば夏時間終了時には一度時計が1時間戻るから同じ時間が2回繰り返されるんだよなぁ。ローカルタイムに従うようにしている場合、その時間帯に cron を仕掛けておくとまずいことになるかも知れないね。 ということで、夏時間が存在する地域で cron…

標準出力の複製

「パイプの途中経過を観察するのために、標準出力を標準エラー出力にコピーしたいんだけどいい方法知っている?」と聞かれたので、 % seq 10 | tee /dev/stderr | cat -n > outみたいな方法を紹介してみたわけだが、これってどれくらいの可搬性があるんだろ…

低レベルインターフェースと高レベルインターフェース

ref:J 結局インターフェースの問題なのでは。 単機能のコマンドを組み合わせて、複雑な処理を組み合わせるってのは組み合わせ方次第で、いろんなことが出来るようになるという点で優れてはいるんだけど、そりゃ毎回おんなじことやっていりゃ面倒だし、1つの…

find + grep

ref:J - grep -r を使う罪悪感 いやいや、こうですよ。 find . -type d \( -name .svn -o -name CVS -o -name RCS \ -o -name _darcs -o -name blib \) -prune \ -o -type f -print | perl -ne 'chomp; print $_, "\0" if -T' | xargs -0 -e grep -nH -e "pa…

ディレクトリ構造を保ったままフィルタ #2

なんか、昨日書いたスクリプトを 10 GBytes くらいのデータの処理に使ってたら途中で止まりやがった。 /home/oda/opt/stow/ruby-1.8.5_amd64/lib/ruby/1.8/thread.rb:203:in `stop': stopping only thread (ThreadError) note: use sleep to stop forever fr…

ディレクトリ構造を保ったままフィルタ

ファイルをスクリプトで加工する、なんてことはよくあることなんだけど、最近、ディレクトリ以下のファイルに対して処理をして、別のディレクトリに出力したいってケースが多かったりする。 たとえば、 from/foo/00 from/foo/01 from/bar/00 from/bar/01てい…

rename, unlink されたファイルを読み続ける

前にも言及した tail のネタなんだけど、冷静に考えると inode まで見てるんじゃなくて、単に open して file descriptor を取得してしまえば rename しようが、unlink しようが読み続けられるってだけの話では。 たとえば、こんなスクリプト slowcat.pl を…

shell と SIGHUP #2

id:lurkerさんのところのコメント欄の SIGHUP に関する話が面白い。そうか SIGHUP は端末ドライバが送信するものなのか。 ここからはボクの想像なのですが、使うシェルによって、 SIGHUPの送られ方が違うのはそのシェル達が そういう実装をされているからだ…

環境変数の設定箇所

そういえば、以前 id:lurker さんから「.bashrc は shell 実行の度に実行されるから環境変数の設定は .bash_profile のほうがいい」みたいな指摘をブックマークコメントで頂いたんだけど、何気に下のエントリみたいなはまりどころもあるんだよなぁ。確かに「…

非標準パスに入れたプログラムを ssh 経由で実行するときの注意

ref:ANOTHER PIECES - リポジトリから svn+ssh:// でチェックアウトできない件。 dreamhost に入れた Subversion と ローカル側 ( coLinux で動いてる debian ) の Subversion のバージョンが違うのが原因っぽいらしいと察するが如何か? 勝手な推測だけども…

一時的に環境変数を変更する

ref:技術メモ帳 - システム管理に使えるファイル更新監視テク GNU tail は inode までみるのか。やりすぎな感もするなぁ。 日本語のmanにはこういう(新しい)の載っていないので unset LANG; man tail して詳細を。 む、自分なら % LANG=C man tailとするなぁ…

find

実行可能かつsuidビットが立っているファイルは、findを使えば簡単に検索できる。 > find "どっかのディレクトリ" -xdev -type f \( -perm -u+x -or -perm -g+x \) \( -perm -u+s \)うん?-perm のパラメータをいじれば、もっとシンプルに出来るんでは。てい…

lsof もどき

lsofなんてあるのかといっていたら lsof の解説が Trackback で飛んできた。 id:odz氏はpgrepでプロセスID取得して、/proc内を探してますが、 いかんせんコマンドが面倒な気がします。 lsofを使うと簡単に調べられます。(出力はちょっとアレですが) lsof は …

パーミッション

ref:ウノウラボ Unoh Labs: ウェブ開発の共同作業でパーミッションを有効活用する バージョン管理ソフトを使えというツッコミはともかくとして。 さて本題ですが特殊なパーミッションというのは何があるのか? ですが,chmodコマンドの日本語マニュアルを参照…

/usr/local

ぬぅ。/usr/local/bin 以下にあるプログラムが実行できないからって /usr/bin に symbolic link を張るか。まぁ、解決にはなるけどさぁ。つか、最近のデフォルトの PATH は /usr/local/bin を含まないのか。 しかし、Linux を触っていても PATH の設定方法も…

shell と SIGHUP

ref:一度 tty から起動したプロセス (csh/ksh 版) - にぽたん研究所 id:lurker さんのブックマークコメントから disownはSIGHUP無視するようにします。bgとはちょっと違うものだと思います。/gdb使えば入出力は差し替えれそう。 だよね、とか思いつつ(gdbを…

disown

む、disown なんてものがあるのか。こんな感じか。 % (./configure && make) > make.log 2>&1 & % disown % exit で、検索してみたらデーモンプロセスにするとかいう説明がちらほら。そういう説明はどうよ。UNIX 用語的には親プロセスが init で、tty が切り…

ヒアドキュメントとパイプ

ref:Blog/2007-2-15 - Rocco の日記 ref:ときどきの雑記帖 リターンズ 2007年2月 う〜ん。cygwin の bash でも cat <

lsof

id:lurker さんのブックマークコメントより。 む、lsof なんてあるのか。これはこれで詳細な情報が手軽に得られていいな。

awkで偶数行出力

偶数行出力が awk で 5B? すぐに思いついたのが 7Bだから、何か見落としているのか。 すぐ思いつくのは awk 'NR%2==0'で 7Bytes ですね。ちょっと工夫すると awk 'NR%2-1'で 6Bytes。 awk -v a=1 'a=!a'で 4Bytes なんてのも考えたけど、反則だな。 結論とし…

shell のちょっとしたテクニック

後輩が cat README | tr ' ' '\n' | sort | uniq -c | sort -nr | head てなテクニックを見て、びっくりしたみたいな話をしていたのだが、こういうパイプラインを利用するテクニックを学んでいないのは色々損な気がする。 ていうか、サーバで丸一日以上かか…

Text File / Line

コメントから Unix においてテキストファイルとは行の集合であり、行とは改行文字で終わるものと定義される、とどこかで読んだ記憶があります。 ふむ。きむらさんのところから(関係ないけどエントリに対する Permalink がおかしい。日付についているリンクは…

grep/fgrep/egrep

きむら 『をー。わたしの記憶が古かったのかもしれません。 GNU grep も自分の名前が grep/egrep/fgrep のどれなのかで動作が変わっていたのですが、 これは今でもそうだったかな?』 (2006/12/31 13:15) これまた、自分もそう思っていたんですが、最近は微妙…

test と [

昨日のエントリに関して。 きむら 『test ([)内部で、自分が ’[’ という名前で呼ばれたら引数で渡された ’]’ を 特別扱い(というのか?)してるんですよね。』 (2006/12/31 01:11) そうそう、確かそうだったはず、と思うものの、念のために GNU coreutils 5.93…

test

昨日の話。 大学で作業してたらなんか、make でプログラムをコンパイルして実行したんだけど何も表示されない、助けてくれ、というから見てみたんだけど、Makefile がこんなの test: test.o gcc -o test test.o test.o: test.c gcc -c -o test.o test.c で、…

「ファイルの文字列置換」に関する補足

以前のエントリが某所に軽く誤解を与えたようなので、ちょっとだけ補足。 なんで、 cat < filename | sed 's/AAA/BBB/' > filename が駄目かって、" > file"としているために、shell がファイルを open してサイズを 0 に切り詰めちゃうから。UNIX システム…

ファイルの文字列置換

ref:某日記(中期) 複数のファイルの特定文字列を一括変換したい場合、 for i in *; do cat < "$i" | sed 's/AAA/BBB/' > "$i"; doneとすると良さそうに見えるけど、これってポータブルなのかねぇ。 tee を使って標準出力は /dev/null に捨てるとか。 for i i…

sed のデリミタ

ref:瑣末なことですが - ときどきの雑記帖 リターンズ 2006年12月 ref:odz buffer - multilingual ぐはぁ。sed でもデリミタを変更できたのね。Solaris 9 の sed、 FreeBSD の sed、GNU sed に Super sed のそれぞれで確認できた。少なくとも GNU sed のみと…