hns - 日記自動生成システム - Version 2.19.9

先月 2009年06月 来月
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Namazu for hns による簡易全文検索
詳しくは 詳細指定/ヘルプを参照して下さい
検索式:

2009年06月22日(月) 旧暦 [n年日記] [更新:"2009/06/26 18:44:06"]

#1 [SHELL] (zsh) 入力待再び + cdpath

に間違いがある訳ないかなと、 zshの小技集 をよーく見ていたら、 直前におまじない が書いてあった。
(以下は現在使っている ~/.zshrc):
#  $Id$
autoload -U compinit
compinit
bindkey -e

function lslt () { /bin/ls -lt $* | head -23 }
function setenv    () { 
    if [ $# -eq 0 ]; then env; else export ${1}=$*[2,-1]; export ${1}; fi }
function unsetenv  () { unset $* }


# (1) 「zsh の本」に載っていたもの
PROMPT=$'%{\e[$[31+RANDOM%6]m%}%m{%n}$%{\e[m%}%% '
# (2) version 4.2.7 での動作を確認したもの (引用符を二つ加えた)
PROMPT=$'%{\e['$[31+RANDOM%6]m%}%m{%n}$'%{\e[m%}%% '
# (3) 最近使ったもの
PROMPT=$'%y:%n@%m %P%D{%H:%M:%S/%y%m%d}(%3(~|..%2d|%~))%% '
# (4) = (2) + (3)
PROMPT=$'%{\e['$[31+RANDOM%6]m%}%m@%n' '$'%{\e[m%}%P%D{%H:%M:%S/%y%m%d}(%3(~|..%2d|%~))%% '

setopt prompt_subst
# (5) 上の設定があれば、中の ' ' はなくても大丈夫
PROMPT=$'%{\e[$[31+RANDOM%6]m%}%m@%n %{\e[m%}%P%D{%H:%M:%S/%y%m%d}(%3(~|..%2d|%~))%% '

# 版毎に設定が必要な場合:
# case $ZSH_VERSION in
#  '4.3.4')
#     PROMPT=$%{\e['$[31+RANDOM%6]m%}%m{%n}$%{\e[m%}%% '
# esac

setopt ignoreeof		# ^D で logout しない ( = set ignoreeof @csh)
setopt noautoremoveslash	# ディレクトリ名が引数のときに最後の / を削除しない

cdpath=( . ~ )			# p51 cd の探索先

つまり setopt prompt_subst しておけば、PROMPT の中の (僕が追加していた引用符の) ' ' は不要 ということらしい。
それと、以前の .cshrc では cdpath を設定していたのでそれを追加。

foreach の履歴保存:

きょうは初めて foreach の履歴保存機能を使った。どうなるのかは何も想像してい なくて、ただ単に一行づつ戻って来るのかと思ったら、丸ごと画面に表示されて、 行を渡って(カーサーを移動して)編集出来る。これは素晴しい。

login shell には未登録:

実はまだ login shell には設定していない。理由は そのためには home directory を共有している機械に全て make install しておく必要があるから。
それで、いまは zsh と入力するか、.fvwm2rc の設定に次のようなものを書いて おいて、
+ "zsh"         Exec exec env xterm -bg '#eefcee' -e zsh -n zsh
fvwm2 のメニューから起動している。そのため環境変数等は引継がれるので、 まだ特に (zsh 専用には) 設定していない。 login も同様。

(以下 2009/06/26 追記)
上の ~/.fvwm2rc の設定では -e の書き方が間違っていた。man xterm すると -e は最後に指定する。上のままだと多分 -e 'zsh -n zsh' という文字列と解釈 して zsh としては zsh なんて譜は知らないと言って終了してしまう(と思う)。

zsh: can't open input file: zsh
(その時には、実は 窓が一瞬開いてすぐに閉じてしまうので何が起きているか分らない) そこで、今は、次のように書いている。
+ "zsh"         Exec exec env xterm -bg '#eefcee' -n zsh -e zsh 


2009年06月21日() 旧暦 [n年日記] [更新:"2009/06/22 22:08:45"]

#1 [SHELL] (zsh の本) set ignoreeof

tcsh では
set ignoreeof
として、^D を入力しても shell から抜けない(終了しない)ようにしている。 これと同等の zsh での設定が何か分らなかった。結局、 を見て発見。
setopt ingoreeof
の一行を追加した。 zsh の本 には、 このくらいの設定をしておくといい よという例が p34-35 に載っている が、どうもその中には、上の文(に相当するもの)はないようだ。

06/20 の日記 に書いた 「入力待を乱数で色を変える設定には 'を二つ追加する必要があった」 件で、もしや と思って pkgsrc/shells/zsh-current を入れて見た。版は 4.3.4 だったが、 これでもやはり ' を二つ追加する必要があった。

まあ、いろいろ書いているが、本当に素晴しい本だ。 この評価には多分に zsh 自体の素晴しさも加味されているけれど。



2009年06月20日() 旧暦 [n年日記] [更新:"2009/06/20 22:17:22"]

#1 [SHELL] (zsh の本) 入力待の色を乱数で変える

zsh の本 の続き。 今使っている .zshrc は次のようなもの
#  $Id$
autoload -U compinit
compinit
bindkey -e

function lslt () { /bin/ls -lt $1 | head -23 }
function setenv    () { 
    if [ $# -eq 0 ]; then env; else export ${1}=$*[2,-1]; export ${1}; fi }
function unsetenv  () { unset $* }

# (1) 本に載っていたもの
PROMPT=$'%{\e[$[31+RANDOM%6]m%}%m{%n}$%{\e[m%}%% '
# (2) version 4.2.7 での動作を確認したもの (引用符を二つ加えた)
PROMPT=$'%{\e['$[31+RANDOM%6]m%}%m{%n}$'%{\e[m%}%% '
# (3) 最近使ったもの (色無)
PROMPT=$'%y:%n@%m %P%D{%H:%M:%S/%y%m%d}(%3(~|..%2d|%~))%% '
# (4) = (2) + (3) 乱数色付
PROMPT=$'%{\e['$[31+RANDOM%6]m%}%m@%n' '$'%{\e[m%}%P%D{%H:%M:%S/%y%m%d}(%3(~|..%2d|%~))%% '
以前に tcsh を使っていた時に色を変えていたことがある。 いくつも shell 窓を開けた時に、何らか の特徴があることで、どこにいたかを識別するのにする一助とする。

上に書いたが、p103 にある例 (1) では何故か動かなかった。それで二つ引用符を加えて (2) にしたら、その例が期待していたと思われる動作をした。それで、きのうまで 使っていた (3)にその乱数機能を追加して見た。

ちなみに setenv はもう 15 年も zsh を使っているという nork さん に function を設定しておけば、? と言われて用意したもの。


2009年06月19日(金) 旧暦 [n年日記] [更新:"2009/06/19 11:19:23"]

#1 [SHELL] zsh の入力待を tcsh と同じに

( zsh の本 を読んでいる訳だが、使って見るために移行出来る 最低限の設定をして見ている)

それで、 いまは tcsh を使っている。入力待は、次のような ものを使っていて、現ディレクトリの最後の二つ素要だけを表示する ようにしている。

ttyp0:makoto@modena 9:38:57/090619(...gcc/src)> pwd
/export/nn/gcc/src
これに使っている設定は次のようなもの。hilit や esc の設定は一時的な変数で、 この際 関係ないが、一応そのまま示して見る。
  set hilit = '';
  set esc   = '%{\033[0m%}'
  set esc   = '';

  set prompt = "$hilit%l:%n@%m $hilit$esc%P/%y%W%D($hilit%.02$hilit$esc)%# "
  set ellipsis
zsh を使うとして、出来れば(殆んど)同じものにしたい。それで ~/.zshrc に 次のようにだけ書いて見た (これは全文、 $' ...' は不要かと思うが行きがかり上残っている)。
PROMPT=$'%6(~|[%~]\n|)%y:%n@%m %P%D{%H:%M:%S/%y%m%d}%% '
RPROMPT=$'%6(~||[%~])'
autoload -U compinit
compinit
bindkey -e
これで次のようになる。
ttyp8:makoto@genova 09:43:13/090619%         [/export/nn/gcc/src]
ただ、この「最後の二つの要素だけを表示する」のがどうするのか まだ分っていない。%2/ かな
PROMPT=$'%y:%n@%m %P%D{%H:%M:%S/%y%m%d}(%3(~|..%2d|%~))%% '
autoload -U compinit
compinit
bindkey -e
これで以前と全く同じになった気がする。
  1. %~ が 3 以上の時には ..%2d
  2. %~ が 2 以下の時には %~
ただし最後の文字は > を % に変更している。これで tcsh/zsh の区別が出来る。

foreach:

実は tcsh で foreach を操作行で良く使っている。これが出来るか確認
ttyp8:makoto@genova 10:38:03/090619(~)% foreach i ( `seq 1 4`)
foreach> echo $i
foreach> end
1
2
3
4
ttyp8:makoto@genova 10:38:23/090619(~)% 
tcsh の場合:
ttyp0:makoto@modena 10:39:31/090619(~)> foreach i ( `seq 1 4`)
foreach? echo $i
foreach? end
1
2
3
4
ttyp0:makoto@modena 10:39:40/090619(~)> 

alias:

tcsh の場合に、次のように書いてあるが、
alias   lslt     'ls -lt \!* | head -23'
bash で \!* の展開をしてくれないのと zsh は同じらしい。そこで、~/.zshrc に次の一行を追加
function lslt () { /bin/ls -lt $1 | head -23 }


2009年06月17日(水) 旧暦 [n年日記] [更新:"2009/06/22 23:09:08"]

#1 [] zsh の本 (発売日は 2009/06/17)

きょうはちょっと用事があって久振に千葉のヨドバシカメラ に行ったら 広瀬さんzsh の本 が置いてあった。出るといううわさは聞いていたが、 やっと出たということだ。 それで、さっそく買って来た。 何と発売日が 2009/06/17 と書いてある。今日だ。 とても縁起がいいなぁ (発行日は 2009/07/25)。

前の方だけ読んだがさすがに面白い。 tcsh を使い続けるという前提で読むと、やや居心地が悪い気もするが、多分 それでも、つまり tcsh を使い続けるとしても、この本は役に立つのではと思う。

「shell を使いこなしたいー」と思っている人には、今使っているのが tcsh でも bash であっても、なかなかおすすめの本という気がして来た。
tcsh/csh だったら source, bash/sh だったら . を使うところ、zsh だと、そのどちらでも良いらしい。両方の良いところを取ったような ものだ、どちらの機能も含むようなことを目指したもの とは聞いていたが、例えば、そういうことかと理解した。 (目次)

それと、一応入れておこう。

ttysa:makoto@genova 1:42:32/090618(~)> cd /export/pkgsrc/shells/zsh
zsh-current/ zsh/         
ttysa:makoto@genova 1:42:32/090618(~)> cd /export/pkgsrc/shells/zsh/
ttysa:makoto@genova 1:42:44/090618(...shells/zsh)> sudo make install
Password:
=> Bootstrap dependency digest>=20010302: found digest-20070803
WARNING: [license.mk] Every package should define a LICENSE.
===> Skipping vulnerability checks.
WARNING: No /var/db/pkg/pkg-vulnerabilities file found.
WARNING: To fix run: `/usr/pkg/sbin/download-vulnerability-list'.
=> Fetching zsh-4.2.7.tar.bz2
「おわりに」を読んだら 6 年かかったとある、pp544 もある大作だから 当然かな。

setenv はないのかな。



2009年06月14日() 旧暦 [n年日記] [更新:"2009/06/16 21:43:16"]

#1 [機械] 液冷式 PowerMac G5 (?)

家人の使っている PowerMac G5 が電源ボタンを押しても リレーの接断するようなカチンという音がするだけで 電源が入らなくなった。 中を開けて見ると、信じられないほどの(け)埃り。
それで傾けると下から透明な液が漏れ出るような気がする。
電源を交換すれば良いかと思うが、まだ開けられない。 しかも CPU 部分はリべット締のようで開けられなくなっている。 どうもこれは液冷式のものかも知れない。多分修理は不可 (非常に高くつく)のではないかと思う。
とりあえず、disk だけ取出して他の機械につないで 使えるか見ている。
冷却液は緑色 のようで、透明な液は冷却液ではなさそう。


2009年06月11日(木) 旧暦 [n年日記] [更新:"2009/06/12 01:28:35"]

#1 [無題] 千葉市長選挙は 6/14(日)が投票日

千葉市長選挙 は 6/14(日)が投票日だ。 以前の鶴岡市長の元で助役 (副市長) をしていた 林さん民主党の熊谷さん共産党の結城さん三人が立候補 している。 手元には林さんと熊谷さんの確認団体が出しているビラがあるが、これを見ると、 とても面白いことが分る。 両者とも改革という文字が見える。 つまり、有権者に何か訴えるには、そういう文字があった方が良いのでと思われている のだろう。

さて、 改革 というのは、何かこまること・問題等があって、それを 何とかするという意味である。 その問題の性質を良く調べて、どこがどう悪いのか、 どうすれば変えられるのか、 どう変えて行くのが良いかを提案・実行していくものだ。

ところがである。林さんの改革には、何が問題なのかが書いていない。 ただ改革をしたい、と言っているだけのように見える。これはある意味で当然で、 自分はいままで鶴岡さんの元で助役をやって来た。いきなり、 今までの上司のやり方には問題があった、それを自分は変えていく、 という論法はとれないし、とったとすると、 政敵に利する議論になってしまう。

それで熊谷さんの方を見ると、上に問題が列挙してあって、下にそれをどう解決していくか が書いてある。これは明解である。

さて、何が言いたかったかと言うと、 林さんの市政改革という言葉が何を意味するのかを理解しないで、「ふーん、何か 良いことをしてくれるんだ」と思ってはいけない、ということだ。

林さんは、鶴岡さんの路線を引きついでいくのか、 それとも、鶴岡さんのやり方にはこういう問題があったから、このように変えて行く のか、をはっきり説明してくれない限り、僕にはウソつきに見えるということである。 いわゆる「うわべだけの市政改革」をうたっているだけだということだ。

もっと言ってしまうと、 改革が何を意味するか分っていない人には、改革を語る資格はない。



2009年06月04日(木) 旧暦 [n年日記] [更新:"2009/06/04 11:14:09"]

#1 [Network] WHR-G300N の root のパスワードを設定したら

(Apple の AirMac Express が動かなくなったので、その代替として) Buffalo の WHR-G300N という無線 LAN の基地局を使っている。 購入時(工場出荷時)には (Web 管理画面の) root のパスワードは空白になっている。

まあ、外からは入れないだろうと、しばらくそのままになっていたが、 やはりまずいよねと、設定した。ところが、設定した後に再起動したら 入れなくなってしまった。

いくら何でもこれはこまると思い、止むを得ず (まだ使い始めて長くないので、何とかなるだろうと) 工場出荷時に設定 する方法を Buffalo の電話 で教えてもらった。 箱の底のボタンを正面の一番下の赤いランプがつくまで押し続ければ良いらしい。

で、後から分ったことだけれど、root のパスワードは

  • 設定時は、何文字入力しても初めの 8 文字だけが採用される
  • 認証時(使われる時)は、8 文字以上を入力すると、その長いままが、 設定の時の 8 文字と比較される
ということだった。(確かに 8 文字までしか入力出来ませんという字は どこかにはある)

こういうのを「安全 (security) がしっかりしている」というのだろうか。



2009年06月03日(水) 旧暦 [n年日記] [更新:"2009/06/03 23:24:27"]

#1 [機械] NetBSD/Lets' note R2 - powerd と apmd -> X11

おそらく、こういう話題は 2006/2007 年頃のものなのかも知れないが /etc/rc.conf に
powerd=YES
apmd=YES
と書いておくと、(例えば) 電源ボタンを押したり 蓋をしめたりすると、 /etc/powerd/scripts の下の手続が起動されて それなりの処理をしてくれる。電源ボタンを押すと shutdown してくれ るのは、とてもうれしい。
しかし、sleep ボタン (Fn + F7) は効かない。 代りに蓋をしめた時に sleep_button が効くようにして見る (手続の名前をそのようにすれば良い)と、あたかも sleep したように ふるまう ( lamp が点滅する、次に電源ボタンで lamp が点灯したままになる) が、何も起きず、外からの ping にも答えず、要するに OS は回復 していないようだ。shutdown してから シングルユーザにしても同じ。 塩崎さんの 2007/01 の記事 を見ながら、何かやって見たいが、ちょっと時間的にも無理かな。

ちなみに、ふたをしめなくても zzz と入力するとか apm -z でも sleep し てくれる。(起きない)

以上は NetBSD/5.0 i386 Let's Note CF-R2 の続き

実は /etc/fstab に(今は / 以外に) rw,log と書いている。このため、 sleep で失敗して強制再起動となった時にも、 回復に時間がかからないので、結構気楽に試せる。 とてもうれしい。 そのような時は、起動時に、
 /netbsd: /var: replaying log to disk
 /netbsd: /usr: replaying log to disk
というような表示が出ている。man wapbl を良く読んだ方がいいのかな。

X Window System:

xorgconf が作ったものを少し手直ししたら → xorg.conf
一応X11 が動くようになった。主な変更点は Driver intel と BusID 0:2:0 かな。
(--) Chipset 852GM/855GM found
とある。


2009年06月02日(火) 旧暦 [n年日記] [更新:"2009/06/03 19:27:37"]

#1 [機械] Let's Note CF-R2 で NetBSD/5.0 (続き)

普通に使うには ACPI と X Window System を何とかする必要がある。 まあ、その辺と負荷試験も兼ねて pkgsrc で modular-xorg 関係を make package し build.sh も走らせて見た
cvs -d $CVS-ROOT co -r netbsd-5 src
cvs update -dP src
time sudo ./build.sh -T /export/src/tooldir.NetBSD-5.0-i386 release >& ../log/release
15955.690u 1751.478s 5:06:47.47 96.1% 0+0k 27388+188417io 72533pf+11w
Memory は 256MB しか付いていない。もしかしてと思って 512MB を外してあった。

さて X11 はどうやって走らせればいいのかな。xorgconf はあまり助けにならない 気がする。

ACPI を生かした時の bt も取りたいが、さてどうすればいいかな。 (まさか Xen の上で走らせれば、手写しでなく取れるかな)。
それともそのようなことをすると何が何だか分らなくなる ?
まずは手写しの方が確実 :-)

手写しをしようと思って ACPI を生かして起動:

したら、何と動いている。 電源線の抜挿や蓋の開閉の検出、 shutdown -p now による電源断など問題がない。
pts/0:makoto@lets-r2 23:26:05/090602(~)> sysctl -a |grep acpi
hw.acpi.root = 1014608
hw.acpi.supported_states = S0 S3 S4 S5 
machdep.acpi_vbios_reset = 1
machdep.acpi_beep_on_reset = 0
machdep.acpiapm.standby = 1
machdep.acpiapm.suspend = 3

2007/08/10 の神戸さんの日記
次のようにすると確かに寝てくれるようだが
sysctl -w machdep.sleep_state=3
電源 SW を操作しても起きてくれない。 =3 じゃなくて =1 かな。
shutdown now
sleep 1; sysctl -w machdep.sleep_state=1
acpi0: entering state 1
acpi0: ACPI S1 not available on this platform


2009年06月01日(月) 旧暦 [n年日記] [更新:"2009/06/02 01:47:53"]

#1 [機械] Lets' Note CF-R2 now boots NetBSD/5.0

DRIVER_IRQL_NOT_LESS_OR_EQUAL -- NDIS.sys
で窓 OS が動かなくなった Lets' Note CF-R2 だけれど、 netboot で NetBSD/5.0 を起動したら、問題なく sysinst まで立上り、媒体に ftp を指定しサーバに ftp.jp.netbsd.org を指定して sysinst が無事完了した。次に起動する時には、 ACPI を disable しておく必要がある。そうでないと kernel が立上る時に panic する。 これは何かを調整すればいいのかとは思っている。

しかし、考えたら、suspend/resume はどうやるのか分っていない。 acpi 経由しかないとしたら、disable acpi ではだめか。

syncing disks... done
unmounting file systems...done
ACPI Error (hwacpi-0156): No SMI_CMD in FADT, mode transition failed [20080321]
ACPI Error (evxfevnt-0221): Could not exit ACPI mode to legacy mode [20080321]

The operating system has halted.
Please press any key to reboot.
(電源は切れない)
port-i386



最近の日記
2024年03月10日
停電 (瞬電)
2024年03月03日
the second try on bare-metal
useradd
2024年02月29日
opendkim and senmail
2024年01月24日
chat/iam 0.0.8
2024年01月21日
uselocale vs setlocale (textproc/R-readxl)
以上、11 日分です。
タイトル一覧
カテゴリ分類
Powered by hns-2.19.9, HyperNikkiSystem Project

Count.cgi (since 2000/02/05)