unix

FTP FileSystem

78 :名無しさん@お腹いっぱい。 [↓] :2010/01/17(日) 01:02:26 FUSE以前にも同様な試みはいくつかあったそうですが、 ftpサイトをファイルシステムとしてマウントできるようにした 最初のUnixシステムというのは、何年ごろ、どんなもの だったんでしょう…

標準入力が、ファイルなのかパイプなのかを判断する

シェルスクリプト総合 その11 674 :名無しさん@お腹いっぱい。 [] :2008/07/16(水) 11:04:03 標準入力が、ファイルなのかパイプなのかを判断するシェルを発行してください。 端末なのかどうかは [ -t 0 ] で発行できますが、 そうじゃなく、ファイルなの…

マルチスレッド環境でのシグナル

os_unix.c の mch_suspend() より。 kill(0, SIGTSTP); /* send ourselves a STOP signal */ # ifdef _REENTRANT /* When we didn't suspend immediately in the kill(), do it now. Happens * on multi-threaded Solaris. */ if (!sigcont_received) pause(…

fgbypid for bash

たわむれに、PID を指定して fg する fgbypid を bash の組み込みコマンドにする拡張モジュールを作ってみた。 参考にしたのはこれ http://www.kernelthread.com/hanoi/html/lbm.html と bash 添付の example/loadables。 Ubuntu では独自のビルド方法を採用…

Re: screen と vim の憂鬱

http://subtech.g.hatena.ne.jp/cho45/20080703/1215094432スワップファイルから PID を抜き出すというアイディアが素晴らしいです。で、 window に飛ばしてさらにそのファイルをアクティブにしたいところ これに対応するためにまずバックグラウンドになって…

日々のエイリアス

bash で auto_pushd もどき 以前はこんなことやっていたが、 function cd() { if [ "x$1" == "x" ]; then pushd ~ > /dev/null else if [ -f "$1" ]; then echo "Not directory" dir=`dirname "$1"` else dir="$1" fi pushd "$dir" > /dev/null fi }こうした…

join(1) の使い道

一生使うことがないだろうと思っていた join(1) を使う日がついに来た。 事の起こりは ipcs。 $ ipcs -p ------ 共有メモリ 作成者/直近の命令 -------- shmid 所有者 cpid lpid 262144 ao 5620 24536 294913 ao 5682 5335 163842 ao 5603 5335 196611 ao 56…

passwdの暗号化

/etc/passwd や /etc/shadow に記録されているのは xxXXXXXXXXXXX 的なDES Crypt形式と、$1$xxxxxxxx$XXXXXXXXXXXXXXXXXXXXXX 的なMD5 Crypt形式があります。頭の$1$で区別できるので併存することもできます。 http://siisise.net/linux/crypt.html 昔の Uni…

OpenSolaris のドキュメント

Books and Tutorials http://opensolaris.org/os/downloads/docs/ man http://dlc.sun.com/osol/man/downloads/current/ man は欠けているものがある。セクション2は全然足りないし、1も ls や cat すらない。 Solaris のをそのまま持ってきてるんじゃないの…

ロックについて

Linux, Solaris では強制ロックが実装されている。 FreeBSD, NetBSD, OpenBSD, Darwin では強制ロックは実装されていない。flock は Linux, BSD どちらでも使え、必ずアドバイザリロック。 Linux 1. -o mand つきでマウントし mount -t ext3 -o defaults,man…

ディレクトリへのハードリンク

詳解UNIXプログラミング4.15には スーパーユーザ特権のプロセスのみが、ディレクトリへの新たなリンクを作成できる。 とあるけど FreeBSD や Linux ではスーパーユーザでもできないようだ。 FreeBSD /usr/src/sys/kern/vfs_syscall.c:kern_link if (vp->v_ty…

Unix Tips : 協定世界時を表示する

$ TZ='' date

mesg(1)

mesg y がやっているのは tty = ttyname(STDERR_FILENO); stat(tty, &sb); chmod(tty, sb.st_mode | S_IWGRP);だけなのか。 $ chmod g+w `tty`で充分ですな。

プロセスを起動した後に nohup

486 :名無しさん@お腹いっぱい。 [↓] :2007/09/04(火) 12:46:28 ちなみにSolaris9以降のnohupは-pオプションでプロセスIDを指定できるので、 動かした後でもnohupをかけられます。 GNU screen その5

curses の use_default_colors()

端末エミュレータの背景色を明るい色にしておくと、背景色を黒にする curses プログラムは見づらくて困っていた。 color0(通常は黒)を背景色と同じにしておいてもいいのだが、ncurses の関数 use_default_colors() を呼んで色番号 -1 を指定すると端末デフ…

bash スクリプトを gettext 対応させる

$"hoge world"という形式の文字列は国際化対応。 http://www.unixuser.org/~ysjj/bash_script_i18n.html

規格

団体 The Open Group(X/Open) 一時期UNIXの商標を保持。1996年にOSFと合併してThe Open Groupとなった。 規格 XPG The Open Groupが発行している手引書。 POSIX IEEEによって定められた、UNIXベースのOSが備えるべき最低限の仕様のセット。 Single UNIX Sp…

PATH

俺は PATH に . を含めるぞ! ジョジョーーッ!

フラグメントとは

また、fsck を使うと、 % fsck (中略) 33527 files, 581040 used, 1491171 free (17803 frags, 184171 blocks, 0.9% fragmentation) ↑これなどと表示されますが、これは「どれくらいファイルブロックが分散してしまったか」を表すものではなく、「ディスク領…

プロセスの殺し方

プロセスを kill するときは TERM(引数なし)-> INT (-3) -> HUP (-1) -> KILL (-9) の順番で試すのが定石らしい。 http://www.sepia.dti.ne.jp/inoue/memo/linux-freeze.html

シェルスクリプト

シェルスクリプトをシェルと呼ぶことの罪は重いが、「UNIX プログラミング環境」では「シェルファイル」または「シェルプログラム」と呼んでいる。

ulimitについて(2)

ulimit について http://d.hatena.ne.jp/parasporospa/20070406/p2 の続き。 非常に素朴な疑問なのだが、なぜ ulimit はシェル組み込みコマンドなのだろう? 当たり前の事だった。制限値をプロセス毎に、すなわち struct proc に保存しているのだった。man g…

read(2) against directory

Linux や SVR4 ではディレクトリに対して open(2) はできるが read(2) はできないらしい。 結局この場合ディレクトリを生で読むにはどうするんだろう。 http://search.luky.org/fol.2000/msg00838.html http://www.wakhok.ac.jp/~maruyama/Syscall/inode/sec…

Linux とは何か

http://www.shoeisha.com/book/hp/pc/book/hsl/linus.html Linus Torvaldsが語るLinux Linus Torvalds氏来日講演録より -- 日時:1995年12月4日 会場:京都大学

PC UNIXの起動と起動ファイルの解読

あとでよむ http://www15.big.or.jp/~yamamori/sun/boot/

簡易 rlwrap もどき

rlwrap や enhance もどきのシェルスクリプト。 readwrap #!/bin/bash HISTORY=history history -n $HISTORY while read -e i; do echo "$i" >> $HISTORY echo "$i" history -n $HISTORY done使い方: $ readwrap | gosh -igosh は標準入力が端末であるかを…

ulimit について

リソースの制限値は、まず /etc/login.conf により設定される。 ulimit は B系シェルの組み込みコマンド。C系シェルでは limit, unlimit を使う。 FreeBSD には /usr/bin/limits というコマンドもある。 ソフトリミット=一般ユーザが変更できる ハードリミ…

FreeBSDの小部屋

大規模サイトの為のFreeBSDカーネルチューニング 大規模サイトの為のLinuxカーネルチューニング http://www.nxhack.tarumi.kobe.jp/FreeBSD.html

ファイルシステムのブロックサイズを調べる

Linux では tune2fs -l パーティション。 stat(1) で stat.st_blksize を見るといい。 stat.st_blocks は1ブロック=512byteとしたときの使用ブロック数なので注意。 ext2 ではブロックサイズとして1K/2K/4Kを選択できて、Redhat 系 Linux では 4K が普通ら…

共有メモリ

http://www.postgresql.jp/document/pg820doc/html/kernel-resources.html http://www.oracle.co.jp/2shin/no86/o35linux.html http://www.intersystems.co.jp/support/csp/gci/gci_unixparms.html http://edocs.beasys.co.jp/e-docs/tuxedo/tux81/install/i…