Last Updated:
2002.4.17. ベッセル関数
Windows 98 4.10.1998、Office 97 SR-2くらいのお話です。
クリップボードにコピーしたものをそのまま貼ると、プリントアウトできまへん。 がっくし。
まず、メタファイルに出力して、 パワーポイントで用紙の大きさを最大にしたところに、 挿入→図→ファイルで挿入。 グループ化を解除すると巨大になるので、全てが選ばれたままで、 グループ化をまたする。 線の太さは、0.5ptくらい、色も適当に変えるといいかも。 上下反転しているのを直して、 一辺が58cm以下になるように、書式から大きさを変更。 紙面からいなくなった場合は、スクロールバーを動かすと出てくるかも。
できあがった図を選んで、クリップボードにコピーして、 Wordに、編集→形式を選択して貼り付け→メタファイルで、 やっとWordに貼り付きます。 あー。長い。
パワーポイントで小さくしすぎると、線分の座標が量子化されてるのが 見えちゃいます。ぎざぎざ。 最後に、Ctrl+Vで貼り付けちゃう(Officeアート)と、 いつまでたっても貼り付けがおわらん。 どーしてこーいうソフトができるかね?
WinCVSは、 Windowsで動くCVSクライアントです。(たぶんサーバーもある。) sshでリモートのレポジトリにつないで使ってみました。 そのときのメモ。
path
(下記)と、
home
です。
$homeの下に、.ssh\が作られて、
いつもと同じようにssh_knownhostsなどが保存される。
cvs [server aborted]: cannot write ファイル: No such file or directory
と言われた。
Admin→Globalsで、Use TCP/IP compression をチェックし、数字を9にしたら、
とりあえずは回避された。
動作は遅くなるけど。-z9オプションをつけてチェックアウトなどしてくれるみたい。
お。パスさえ通ってればDOS窓から普通にcvsが使えますよ。これは便利。
具体的には、
c:\autoexec.bat
に
set path=%path%;cvsとsshのパス
と、
set cvs_rsh=ssh
を追加する。
そもそもユーロ記号を簡単に入力したくて始めたのですが…。 コントロールパネル→キーボード→「言語」タブで、 例えば「英語(U.K.)」を「追加」できます。Windows CD-ROMが必要。 そうすると、Shift+3でポンド記号が入力できたり、 「ドイツ語(標準)」でZとYを入れ替えて右の方にウムラウト文字があわられたり。
USキーボードなんて方言のひとつみたいなものなのですねぇ。 SUNのワークステーションを使いたくなると、どこでもUS的配置なのですが。 今はそうでもないのかな?
さて。ユーロ記号は、「Ctrl+Alt+テンキーの数字でコードを入力」で入るはず (少なくともOfficeでは、ということかな?)なのですが、 テンキーの無いキーボードの場合はどうするんでしょうか?
というわけでバータリー的解決方法。
これをマクロにしてみると…。 Wordで特殊文字を選ぶときに、この文字のコードが128ということがわかります。
C:\Program Files\Microsoft Office\Office\XLStart
かOfficeのインストールされているディレクトリに保存する。
Sub Euro() Selection.NumberFormat = _ "_-" + Chr(128) + "* #,##0.00_ ;_-" + Chr(128) + "* -#,##0.00 ;@" End Sub
これで、ユーロ単位にしたいセルを選択しておいて、このボタンを押せば、 ユーロ単位の表示になります。 もう少し洗練されたやりかたもあるような気がするけど…。
あ、古いプリンタドライバ使うとユーロ記号が化けますね。
Powerpointでウインドウズメタファイルをあるていど編集できます。 Wordだとちょっと変になる。
…と編集のあとはPowerpointファイルとして保存するしかないのですが。 うーむ。 でも、コピーしてIllustratorにペーストすれば、 epsにもなってTeXに貼ったりもできます。 epsプリンタに印刷という手もある。
Wordの数式をHTMLにしたいのだが、Microsoftの吐くHTMLは余計なタグが多い。 これを消すのにperlを使ってみることにしました。 Linuxに行くとZEMAXが使えないのですねぇ。 試したのは、ActivePerl 5.6.1-626です。
日本語化パッチもありますがいまのところ必要性を感じていないので、 オリジナル版だけを入れておきます。
C:\Program Files\localbin
に
perlというディレクトリを掘ってみました。
C:\Program Files\localbin\perl
にcdして、install.batを実行。
質問に答えます。
SET PATH=C:\Program Files\localbin\perl\bin;%PATH%
を
SET PATH=C:\PROGRA~1\localbin\perl\bin;%PATH%
に変更。
以下のようなバッチファイルにスクリプトを入れこむと、便利かも。 上記install.batからの借用です。
perlのライブラリをuseすることもできてかなり便利。
ライブラリは、C:\Program Files\localbin\perl\lib\
などに入ってますが、@INCが設定されていて場所を気にする必要はありません。
C:\Program Files\localbin\perl\html\index.html
から辿れる
ドキュメントも非常に有用。
ActiveState corp.
に感謝いたします。
The author of this site thanks to ActiveState corp.
@rem = '--*-Perl-*-- @echo off if "%OS%" == "Windows_NT" goto WinNT perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 goto endofperl :WinNT perl -x -S "%0" %* if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl if %errorlevel% == 9009 echo You do not have Perl in your PATH. if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul goto endofperl @rem '; #!perl -w #line 15 print "Hello! perl\n"; # ここにスクリプトを書く __END__ :endofperl
光学設計のお話。 ZEMAXで、リオ・ストップにできる瞳像をそこそこよくしながら、 同時に星像をよくしたいときが、時々あります。 二つファイルを作って、いったりきたりして最適化を繰り返してきたのですが、 Multi-Configurationにすることで解決できそう。 以下、望遠鏡の副鏡を瞳にする場合を考えます。
Aperture typeはFloat by stop sizeを指定。 一面目を望遠鏡の主鏡に、二面目を望遠鏡の副鏡に、 三面目を観測装置の視野にしておく。 副鏡と装置視野が絞りになるので、Semi-diameterを指定しておく。
たとえば、Config 1に星像を、Config 2に瞳像を作る場合。 Multi-Configuration Editorを開いて、
Config 1(星像) | Config 2(瞳像) | 意味 | |
---|---|---|---|
THIC 0 | 1E+10(無限遠) | 0 | 物面-主鏡距離。星は無限遠、瞳像を見るときは主鏡は無視。 |
THIC 1 | 主鏡-副鏡距離 | 0 | 瞳像を見るときは主鏡は無視。 |
CRVT 1 | 主鏡曲率 | 0 | 瞳像を見るときは主鏡は無視。 |
CRVT 2 | 副鏡曲率 | 0 | 瞳像を見るときは主鏡は無視。 |
STPS | 2 | 3 | 星像を見るときは副鏡を、 瞳を見るときは装置視野(厳密にはデュワー窓とかかな?)を絞りにする。 |
FLTP | 0 | 1 | 視野角の指定の仕方。0はObject angle、1はObject height。 |
XFIE 1〜 | 欲しい視野 | 副鏡のふち | 光源位置の指定。必要な測定点分、 星像では角度を、瞳像では物面での位置を書き並べる。 |
YFIE 1〜 |
レイアウト、スポットダイアグラム等、 SettingsでCurrent configurationを表示するようにしておけば、 Ctrl+Aでconfigurationを切り替えるたびに表示も切り替えてくれる。
メリットファンクションは面番号を指定して最適化できるので、 瞳像のconfiguration番号のオペランドでは、Lyot stop面で最適化すればいい。 はず。 続きは確かめて書きまーす。
イラストレーターのデータをワードに貼りつけたりしてたら、 起動後に、ツールボックスなどは見えるがメインのウインドウが出てこなくなった。 Alt+Fなどでメニューのカスケードだけ出てくるのがお茶目だがこれでは使えない。
実行ファイルのあるディレクトリに行って、 Ctrl+Fから最近変更されたファイルを検索。 AIPrefsというのがあったので、リネームしてから、イラストレーターを起動した。
無事、イラストレーターが立ち上がって、 新しいAIPrefsが作られた。 はー良かった。
英語とヨーロッパ言語の機械翻訳ソフトを入れたら、Wordが起動時に、 「非表示モジュール hoge内でコンパイルエラーが発生しました。」 と文句を言うようになった。 日本語版のWordだからいけないんだろう。
C:\Program Files\Microsoft Office\Office\STARTUP\
にそれらしいファイル hoge.dot
があったので、
拡張子を加えて、 hoge.dot.bak
にファイル名を変更した。
エラーも出なくなった。よしよし。 たぶん機械翻訳ソフトがWordから使えなくなってるんだろうけど、 どうせ使わないので問題なし。
空白のときは文字列として空白を返す関数をかませればいい。 Alt+F11でマクロエディタを開き、オブジェクトを右クリックして、 挿入→標準モジュールで、以下のコードを書き入れる。
Function LinkPaste(Value) If (Len(Value) > 0) Then Ret = Value Else Ret = "" End If LinkPaste = Ret End Function
マクロエディタを閉じ(なくてもいいけど)、
「リンク貼りつけ」したセル、たとえば=Original!A1
になってるのを、
=LinkPaste(Original!A1)
に直せば完成。
他のセルも同様にしたいときは、直したセルをコピーしてから、
ペースト先を選び、編集→形式を選択して貼りつけ→数式(F)をチェックして、
OKを押す。
WindowsのネットスケープでPDFをNavigatorのウインドウに出されると、 コピーなどできない処理がある。
Acrobat Reader 4.05b以前はバッファオーバーフローがあるので注意。
Excel 97で、「...」(半角ピリオド三つ)が、 「…」(全角てんてん?)に化ける。 メニューバーより、 ツール→オートコレクト→入力中に自動修正する、のチェックをはずす。
Windowsのtraceroute発見!
C:\WINDOWS>tracert www.yahoo.com
ssh-agentをXのセッションからsuしたユーザーで使いたくなったのですが、 環境変数をいちいち設定するのが面倒だなあ、という話。 sh系シェル専用ですので、csh系の方は適宜読み換えてくださいまし。
以下のスクリプトを、たとえば、/usr/local/bin/ssh-agent-agent
とかにコピーして、chmod +x
して実行すれば、
ホームディレクトリに、.ssh-agent-agent
というファイルができます。
あとは、これを、
. .ssh-agent-agent
とすれば、ssh-agentが生きていれば、それを再利用するように、
SSH_AUTH_SOCK
と、SSH_AGENT_PID
を設定してくれるし、
そうでなければ、/usr/local/bin/ssh-agent-agent
を実行しなおして、
新しくssh-agentを立ち上げて、ssh-addしてくれます。
なかなか便利だわい。
#!/bin/bash rcfile=~/.ssh-agent-agent ident=~/.ssh/id_rsa # add lines so that ssh-agent can be started from rcfile add_lines () { cat << _END >> $rcfile if [ ! -S "\$SSH_AUTH_SOCK" ]; then $0 fi _END } # function to ssh-agent and ssh-add start_agent () { killall ssh-agent 2>/dev/null ssh-agent >| $rcfile && . $rcfile && ssh-add $ident && add_lines } # let first time user know how to use this if [ ! -f $rcfile ]; then echo do \'. $rcfile\' to enable ssh-agent fi # make up the rcfile if [ -n "$SSH_AGENT_PID" ] && [ -S "$SSH_AUTH_SOCK" ]; then # if we already have ssh-agent, mimic the output of ssh-agent # the user might still have to ssh-add by him/herself cat << _END >| $rcfile SSH_AUTH_SOCK=$SSH_AUTH_SOCK; export SSH_AUTH_SOCK; SSH_AGENT_PID=$SSH_AGENT_PID; export SSH_AGENT_PID; echo Agent pid $SSH_AGENT_PID; _END add_lines else # if we do not have a ssh-agent, start ssh-agent and ssh-add if [ -f $rcfile ]; then eval `grep 'export SSH_AUTH_SOCK' $rcfile` eval `grep 'export SSH_ANGENT_PID' $rcfile` if [ ! -S "$SSH_AUTH_SOCK" ]; then start_agent else echo ssh-agent is already running fi else start_agent fi fi
SSH_AUTH_SOCK=/tmp/ssh-XXELUH5C/agent.21290; export SSH_AUTH_SOCK; SSH_AGENT_PID=21300; export SSH_AGENT_PID; echo Agent pid 21300; if [ ! -S "$SSH_AUTH_SOCK" ]; then /usr/local/bin/ssh-agent-agent fi
3月31日から夏時間になりました。スタンバイから復帰すると、 タイムゾーンは、CESTと夏時間になってるのに、時刻は冬時間のままだ。 ハードウェアクロックはローカルタイムということにしていて、 Windowsも起動していないので、一時間ずれてしまったのでした。 以下のようにまずはシステムの時刻を合わせました。
% su # date; date --set '1 hour' 2002年 3月 31日 日曜日 17:29:40 CEST 2002年 3月 31日 日曜日 18:29:40 CEST
いきなりXscreensaverが動いてびっくり。 次に、ハードウェアクロックに反映。
# cat /etc/adjtime; /usr/sbin/hwclock --systohc; cat /etc/adjtime -0.418002 1017040089 0.000000 1017040089 LOCAL 566.241638 1017592283 0.000000 1017592283 LOCAL
/etc/adjtimeはぜんぜんおかしくなっちゃったので、とりあえず削除しておこう。
rm /etc/adjtime
これでいいのかな? Windowsで使わないなら、ハードウェアクロックはGMTにしておいた方が楽な模様。
gnuplot3.8(開発版)ではXにプロットされたグラフの表示範囲を、 マウスの右クリックで変えることができるようになりました。 これをmagicpointに貼れば、グラフをぐりぐり動かすプレゼンができそう。
まず、プロットされるべきスクリプトを用意しておく。
例えば、foo.plot
:
set xlabel "x" set ylabel "y" set title "sin(x)" set xrange [-10:10] set yrange [-1:1] plot sin(x) with lines pause -1
マジックポイントのソース (bar.mgp
) の方はこんな具合。
gnuplotのオプションは、
-font
オプションでgnuplot内のフォントを指定、
-background
で背景色 (以下の例だと黒板みたいになりますよん)、
-rv
で暗い背景色に文字や軸の色を合わせてもらいます。
- 前略 - %center %xsystem "gnuplot -font -*-helvetica-medium-r-*-*-20-*-*-*-*-*-*-* -background darkgreen -rv foo.plot" - 後略 -
これを、mgp -O bar.mgp
で表示します。
-O
オプションを付けないと、
マウスのクリックやキーボードからの入力がgnuplotに伝わりません。
ウインドウマネージャ依存かもしれませんが、
fvwm2の上では快適♪
-O
オプションを付けると、
%xsystemで表示されたウインドウが自発的に閉じると (gnuplotでqを押したとか)
プレゼンテーションが道連れにされちゃうので注意が必要。
X11-big-cursor
MINIHOWTOに従って、cursor.bdf (ftp://ftp.xfree86.org/pub/X.Org/pub/R6.4/xc/fonts/bdf/misc/cursor.bdf
にありました。) をいただいてきて、
でっかいカーソルを作ると、発表のときに、見やすいかも。うひひ。
Kondara2.1Beta3では、bdfresize
は、bdfresize-1.5-2kに、
bfftopcf
はXFree86-4.1.0-54kにありました。
こんなことしてないで、発表する中身を準備しなくちゃ。
Shift+Spaceでskkinputのウインドウを出して、/を押すと、▽モードになります。 ここで、ATMとか打ってSpaeceを押すと、 キャッシュサービスコーナーなどと候補が出る。 こりゃ便利。
あ、ついでに。 間違えて辞書に登録した単語を消すのは、 その候補を出しておいてから、X を押す。
xyakuという X上で動くソフトがあります。 rxvtなどの上で英文を編集しているときに、 ハイライトしてホットキーを押すと、辞書を引いてくれたりするという、 なかなか便利なもの。 学会などへのアブストラクトを書いていると、単語数が気になったりしません? そういうわけで、xyakuからwcなども呼べるようにしてみました。 スペルチェックもできますよん。
上記の設定ファイルを~/.xyakurcとして、 .shファイルを~/.xyaku.d/に置いてchmod +xしておきます。 xyakuを実行しておくと、シアワセになれる。 .xinit.d/hookに書きたしておいてもいいかもしれませぬ。
ディレクトリのコピーを作って、そちらだけでmakeしたい場合など。
man lndir
より。
名前 lndir - 他のディレクトリツリーへのシンボリックリンクを持つ シャドウディレクトリを生成する 書式 lndir [ -silent ] [ -ignorelinks ] fromdir [ todir ] 説明 lndir はディレクトリツリー fromdir のシャドウコピーであ る todir を生成する。ただし、シャドウコピーは実際のファイルを 置いたものではなく、ディレクトリツリー fromdir にある実 際 のファイルを指すシンボリックリンクを置いたものである。この コマンドは異なるマシンアーキテクチャ用のソースコードを管理 するときに便利である。ユーザはリモートマシンの実際のソース があるディレクトリをマウントし、これに対するリンクを持つシ ャドウディレクトリを作ることができる。このシャドウツリーで プログラムの構築を行うと、シャドウディレクトリにあるソース ファイルは実際のファイルへの単なるシンボリックリンクである が、オブジェクトファイルはシャドウディレクトリに生成される 。 この方法には、ソースコードを更新しても他のアーキテクチャ用 のコードまで手で直す必要がないという利点がある。なぜなら、 シャドウディレクトリにある全てのソースコードは実際のソース へのシンボリックリンクだからである。よって、シャドウディレ クトリに移動してそのまま再コンパイルを行うことができる。 (後略)
長年思いだせなかったコマンドをやっと思いだしました。 でんすけさんの ふが日記 より。
Windowsではエクスプローラーで確認できるCD-ROMのボリュームラベル、 時々これが知りたくなるのです。 CD-ROMをumountして取り出して物理的に書いてある文字を確認してもいいんだけど、
volname /dev/cdrom
で見られる。デバイスファイルを読むので、マウントしてなくても大丈夫。 The Linux CD-ROM HOWTO, How do I read a CD volume label?より。 Kondara2.1b3では、eject-2.0.12-2k に入ってます。
watch コマンド [オプション …]
すると、2秒ごとにコマンドを実行して表示してくれる。
これは便利。watch cat /proc/meminfo
とか。
kawa's memo経由で、ねぎ式より。
Kondara 2.1くらいのlprコマンドは、
% cd $HOME % lpr hoge.ps Warning - Cannot open file 'hoge.ps', Permission denied lp: nothing to printとなり、引数にポストスクリプトファイルを指示すると印刷できない。
% cd /tmp % lpr hoge.psなら普通に印刷してくれるのに。
/usr/bin/lpr が lpさん にSUIDされていて、 ユーザーのホームディレクトリのファイルを読む権限がないのでせう。
とりあえずの回避策は、
% cd $HOME % cat hoge.ps | lpr標準入力ならだれでも見られるので、ちゃんと印刷してくれる。
もっと根本的な解決策は無いだろうか? $HOMEの下とか、/tmpの下って、ファイルのあらわなパーミションと、 実際の動作との間に、 自分のホームディレクトリの下の他人のファイルが、600でも消せちゃうとか 違いがあるみたいなんだけど、 どこで設定されてるんだろ?
…ファイル自身の書き込み許可はoverrideできるけど、 そのファイルのあるディレクトリの書き込み許可はoverrideできない、ってこと? すなくとも、vxfsではファイル自身のパーミションはoverrideできないし、 ReiserFSの仕様なのかな? 便利だからいいんだけど、感覚的に慣れるのに時間がかかりそうだ。
こういうの欲しいんすよ、と思ってたら既にあるし。 プロセスの入出力を端末から切りはなしておいてくれるので、 別の端末に入出力を移したり、 2個所から作業のなりゆきを見まもったり、 裏で静かに動いてもらったりできる。
screen [コマンド]
exit
するか、コマンドが終われば、screenも終了する。
C-a d
screen -list
screen -R
sceen -x
bashでTABでファイル名を補完する時とか、 viで行末まで行ったときとか、ベルが鳴るのだが、 家で仕事をしていると結構うるさい。
bashの音を消す。man bash
すると、
readlineの設定を変えればいいらしいことがわかる。
set bell-style none
vi (vim) の音を消す。vimで、:help visualbell
するとわかる。
~/.vimrc に以下を書き加える。
set vb t_vb=
rxvt に -vbオプションをつけるか、rxvt.visualBell: true
にすると、
rxvtがビジュアル・ベルを表示するようになる。ちょっと見にくい。
もっといい方法が、aさんの、備忘録+随想録 に載っていました。
setterm -bfreq 0
で仮想端末の音を消す。
xset b off
でXの音を消す。
Nanaさんの、⊂ななんち⊃にも。
~/.Xresources
というファイルを作りそこにaterm*visualBell: trueと書いて保存。
/etc/inputrc
をhomeぢれくとりにこぴーしてきて.inputrc
のなかにあった#set bell-style none
の#
を外した。
んー。一番目はatermに効く方法ですね。これって、
*visualBell: true
とか書いておくとrxvtとかktermとかにも有効になるのかしら?
(書くなら試せっ、とも思いますが、そのうち…。)
二番目は、readlineライブラリを使ってないソフトには効かなかったり。
やっぱりスピーカーのケーブルを引っこ抜く、というのが王道なのかな?
ノートパソコンでは難しいけど。
サーバー側は、/etc/ssh/sshd_config
とかの、
X11Forwarding no
を
X11Forwarding yes
に変える。
クライアント側は、
きっと~/.ssh/にょろにょろ
とかに書いてもいいんだろうけど、
簡単なのは、-X
オプションを付けてつなぐ。
sedじゃできないようなパイプをperlでやりたいとき、
perl -ne 'コマンド'
とする。
-n
オプションは、
while(<>){…}
が実行するスクリプトを囲んでいると解釈し、
-e
オプションは、次の引数をスクリプトとして実行する。
というわけでrpmを作っていたわけですが。 サーバーにftpしようとすると、途中でとまってしまう。 gzipすると全部行く、止まる付近に 0x00 が並んでいる、ということから、 ファイヤーウォールの設定が悪かろうということにしました。 しかしそれでは、アップロードができない。
で、man ftpしていてみつけました。(ftp-0.16-3k2) 切れたところの後からputをrestartできる。 getしてきたところ、同じファイルになってました。 太字が端末からの入力。
ftp> put gsl-0.9-1z.i386.rpm local: gsl-0.9-1z.i386.rpm remote: gsl-0.9-1z.i386.rpm 227 Entering Passive Mode (XXX,XX,XXX,XXX,XXX,XXX). 150 Opening BINARY mode data connection for gsl-0.9-1z.i386.rpm 450 Transfer aborted. Link to file server lost. …こういう風に切れちゃう。 ftp> dir 227 Entering Passive Mode (XXX,XX,XXX,XXX,XXX,XXX). 150 Opening ASCII mode data connection for file list -rw-r--r-- 1 XXXXXXXX XXXXXXXX 34752 Jul 12 17:51 gsl-0.9-1z.i386.rpm 226 Transfer complete. …で、切れるまでに送れた量を確認。 ftp> restart 34752 restarting at 34752. execute get, put or append to initiate transfer …今度はここから始めますよーんと知らせておくと。 ftp> put gsl-0.9-1z.i386.rpm local: gsl-0.9-1z.i386.rpm remote: gsl-0.9-1z.i386.rpm 227 Entering Passive Mode (XXX,XX,XXX,XXX,XXX,XXX). 350 Restarting at 34752. Send STORE or RETRIEVE to initiate transfer. 150 Opening BINARY mode data connection for gsl-0.9-1z.i386.rpm 226 Transfer complete. 4301664 bytes sent in 91.8 secs (46 Kbytes/sec) …そこから始めてくれるのです。
をー。わかりやすい。
% ps xf 1202 pts/3 S 0:00 -bash 11263 pts/3 R 0:00 ps xf 1156 pts/2 S 0:00 -bash 2291 pts/2 T 0:00 rpm -vv -ba gsl.spec 10429 pts/2 T 0:00 \_ /bin/sh -e /var/tmp/rpm-tmp.79492 11250 pts/2 T 0:00 \_ sh /usr/lib/rpm/brp-compress 11255 pts/2 T 0:00 \_ gzip -9 ./usr/man/man1/gsl-config.1 2296 pts/2 S 0:00 tee rpm.ba.gsl.010712.log
SunOS 4.1.4の頃のviは、Ctrl+\でコアを吐いてお亡くなりになってました。 バグだねぇとか思っていたのですが、[Kondara-devel.ja:05095]で解決。
ingo libcによると、 Ctrl+\はSIGQUITで、SIGINT(Ctrl+C)と同じ動作をするが、 普通coreを吐くのだそうだ。 なるほど〜。
mph-getのせいじゃないんだけど。
Proceed? (y/n)
から先にすすめなくなってみたり。
以下、解決策。
bash (1.14.7) でパイプの先のteeのファイル名にコマンドを混ぜると、 入力からのEOFを受けつけなくなる。 どーしてだろー?
cat | tee `date +%y%m%d`.log see this? see this? Yes. But only first line. ^D…反応なし ^C…シェルに帰るで、ファイルには、一行目の、
see this?のみが入っているのだ。
log=`date +%y%m%d`.log cat | tee $log see this? see this? Yes. Yes. ^D…ちゃんとシェルに帰るファイルには全て入ってる。
本当はどうればいいのだろう?
とごちゃごちゃやってると、rpmのファイルがロックされて、
cannot get exclusive lock on database error: cannot open /var/lib/rpm/packages.rpmと怒られるのだな。
fuser -v ファイル名
でどのプロセスがロックしているかわかるので、
kill -KILL `/sbin/fuser -v /var/lib/rpm/packages.rpm | awk '/root/{print($2)}'`
とかして、止まってもらった。
ある日をさかいに、wdmでウインドウマネージャーを選んでも切り換わらず、 前と同じ設定のままになってしまいました。 言語とかximも。
原因は、.bashrcでset -o noclobber
として、
リダイレクト先のファイルを上書きしないようにしてたためでした。
wdmがユーザーのセッションを始めるときに走らせる、
/etc/X11/xinit/Xsession
に、unset noclobber
を追加して解決。(bash 1.14.7)
Kondara 2.0 (bash 2.04.26) では、set +o noclobber
だ。
*** /etc/X11/xinit/Xsession.org Sat Feb 19 05:34:27 2000 --- /etc/X11/xinit/Xsession Wed Apr 18 18:22:21 2001 *************** *** 17,22 **** --- 17,23 ---- # $HOME/.xinit.d/xim --- user prefered input-method # $HOME/.xinit.d/lang --- user prefered language # + unset noclobber site_session=/etc/sysconfig/xinit-session
manで、この文書は古いからinfoを見なさい、と書いてあることがある。 今まではあきらめていたのだが、emacsがなくても見られたのでした。
info gcc
で端末にgccのinfoが出てくる。すばらしい。 Kondara 1.2では、info-4.0-12k.rpm です。
netstat -a -Ainet
でbindされているポートが確認できる。
fuser -v -n tcp ポート番号/ポート名
でプロセスの確認。
意外に開いててびっくりでしたよ。
cd前のディレクトリに戻ることができる。
~/public_html> cd gomaan ~/public_html/gomaan> 何か作業 ~/public_html/gomaan> cd - ~/public_html>
ファイルの漢字コードを調べることができる。 コード変換もできるけど、 これはnkfとどっちが有利なんだろう?
% kcc -cx index.html index.html: EUC/DEC
数列を表示する。あ、フォーマットバグの標的になりそうだけど…。
% seq --help 使用法: seq [オプション]... LAST もしくは: seq [オプション]... FIRST LAST もしくは: seq [オプション]... FIRST INCREMENT LAST 数字をFIRSTからLASTまで表示する. INCREMENTでステップを指定できる. -f, --format FORMAT printf(3)ライクでFORMATを指定する(標準: %g) -s, --separator STRING STRINGを数値の区切りとして使用する(標準: \n) -w, --equal-width 0を挿入して, 数字の桁を揃える --help 使い方を標準出力に表示する --version バージョン情報を標準出力に表示する FIRSTかINCREMENTを省略した場合, 値には1が代入されます. FIRST, INCREMENT, や LASTは浮動小数点の値として解釈されます. FIRSTが LASTより小さい時、INCREMENTは正でなくてはなりません. また、その 反対の場合は負でなくてはなりません. FORMATを指定する場合, printfライクの浮動小数点の出力形式には, 絶対に一つ, %e, %fか %gを含ませてなくてはなりません. バグを発見したらsh-utils-bugs@gnu.ai.mit.edu宛に報告して下さい.
Introduction to Bessel functions, Frank Bowman, Dover PUblications, New York, 1958 より
Up to zunda.
zunda <zunda at freeshell.org>