Unix

ターミナルで現在時刻を表示し続ける方法

コマンドラインで実行するスクリプトで、同じ行に表示し続けたり上書きして表示するものがある。 例えばパッケージのインストールになどで出る進捗表示などである。同じような出力をするにはエスケープシーケンスを知っておく必要がある。ASCII コードの制御…

プロバイダの DNS のせいで Google に繋がらないから、自前の BIND で解決してしまうには

下記は過去の話です。現在、復旧しています(2008/03/16 21:55 現在)リアルタイムネタです。OCN、ぷららから Google が見られないみたいです。 単に Windows PC からだけなら Windows\System32\drivers\etc\hosts にエントリ書くだけですが、一台ではないの…

find でサイズが 2GB を超えるファイルを探すには

$ find . -size +2147483648cc がないとブロックサイズになる。+ はより大きい(>)の意味。

getent で /etc/nsswitch.conf に従ってネームサービスを検索する

getent コマンドを使うと、nsswitch.conf の構成に従って情報を検索できる。 hosts: files dnsとなっていれば、/etc/hosts, /etc/resolv.conf の設定従い DNS から順に探してくれる。 $ getent hosts d.hatena.ne.jp 59.106.108.77 d.hatena.ne.jp

echo で改行しないようにするには

基本的に -n オプションでよい。でも Solaris でシェルだと \c を付けないとダメ。 echo test echo -n test echo test\c クロスプラットフォームで動かすスクリプトは printf の方が良さそう。 printf "test\n" printf test

Solaris アカウンティング ファイルの整理

/var/adm の wtmpx,utmpx,wtmp,utmp アカウティング・ファイルを整理する。 削除できないため、null コピーでファイルサイズを 0 にする。 # cp /dev/null /var/adm/wtmpx古いものを取っておきたければ… # cp /var/adm/wtmpx /tmp # gzip /tmp/wtmpx # cp /d…

ファイルの所有者を一括で変換する

不明ユーザーの uid 20 のファイルを一括で user1 を所有ユーザーに変換 $ find . -user 20 | xargs chown user1 $ find . -user 20 -exec chown user1 {} \; 不明グループの gid 20 のファイルを一括で group1 を所有グループに変換 $ find . -group 20 | x…

シンボリックリンクを保持してコピー

Solaris $ cp -RP srcdir destdir Linux $ cp -dr srcdir destdir

コマンド覚書

zip カレントディレクトリ以下の全ファイルを source.zip としてZIPアーカイブする。 $ find . | zip source -@ curl http, ftp などをコマンドラインから扱う。 www.example.com/ の内容を標準出力する。 $ curl http://www.example.com/ www.example.com/f…

シェルによる pwd の違い

pwd はカレントディレクトリを知るときに打つコマンド。sh では /bin/pwd が呼ばれるが、bash ではビルトインの pwd が呼ばれる。csh ではシェル変数 cwd を echo する alias を設定していると、シンボリックリンクを辿ったときに結果が変わる。/bin/pwd は…

ログインできない

/tmpが一杯だった。ホストを再起動すれば、/tmp がSWAP領域にあれば空になる。リモートでしか入る手段がないとき、FTPは入れる可能性があるので、DELETEで不要なものを消す。