トップページunix
1001コメント261KB

くだらない質問はここに書き込め!38

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。NGNG
UNIX板は 2ch のサポートセンターではありません
批判、要望は → 2ch批判要望 http://ex5.2ch.net/accuse/

NGワード
* UNIXって何? (http://pc5.2ch.net/test/read.cgi/unix/998779290/)
* UNIXとLinuxの違いは何? (http://pc5.2ch.net/test/read.cgi/unix/1024558135/)
* 2ch閉鎖の危機をUNIX板が救ったという話{は本当? | を知った。有り難う! | のflashはどこ?}

禁止事項
* 既出・内容なし・マルチポスト・アスキーアート各種・ネタage・宿題の丸投げ

注意事項
* 荒らしは無視が鉄則
* Unixと関係ない質問/話題は、よけいな相手をせず適切な板に誘導

書く前にぐぐれ http://www.google.co.jp/

過去ログは >>2-5
0503名無しさん@お腹いっぱい。NGNG
>>502
他の OS ってどの OS よ。

やっつけなら
while sleep 1; do ps; done
とかでもいいと思うが。
0504名無しさん@お腹いっぱい。NGNG
>>503
> 他の OS ってどの OS よ。
もっと一般的なコマンドでできる、とか、フリーウェアでこういうのがある、
といった情報があればお願いします、という話です。

まあそういうスクリプト書きゃええやん、と言われればそうかも知れませんね。
0505名無しさん@お腹いっぱい。NGNG
>>502
redhat9にありました。
0506名無しさん@お腹いっぱい。NGNG
>>505
それはこれだな。
http://procps.sourceforge.net/
Linux 以外で動くかは知らん。
0507名無しさん@お腹いっぱい。NGNG
教えていただけないでしょうか。
以下のようなshell scriptを実行する際、コマンドの実行したpathではなく、
シェルの置き場所のpathを取得するにはどうしたらよいでしょうか?

/tmp/hoge.sh
  #!/bin/sh
  HOGE_PATH = `path`
  echo $HOGE_PATH

$HOGE_PATH/$DATAのように使用するので、
HOGE_PATH = /tmp を(動的に)取得したいのですが…
0508名無しさん@お腹いっぱい。NGNG
>シェルの置き場所のpathを取得するにはどうしたらよいでしょうか?

ということならば、1行目に #!/bin/sh とあるんだから /bin/sh で決まりでしょ。

http://www.adl.nii.ac.jp/~moro/unix-programmer/faq-j_2.html#SEC23
>人々がこの質問をする最もありふれた理由は、プログラムの設定ファイルの場
>所を知るためだというものです。ですが、実行ファイルのパスからそれを求め
>ようというのは良くないとされています
0509名無しさん@お腹いっぱい。NGNG
シェルの文法おかしいし、pathなんてコマンドないし。
HOGE_PATH=/tmpでいいじゃん。
動的に取得する移植性のある方法はしらん。
0510507NGNG
ああ、ごめんなさい。
シェルではなくシェルスクリプトの置き場所。さらに
HOGE_PATH=`pwd`でした。
0511名無しさん@お腹いっぱい。NGNG
何がしたいかさっぱりわからんが。


path切ってある場所にあるスクリプトならwhichでいいじゃん。
path切ってない場所にあるスクリプトなら、どこから実行しようとしても
/path/to/dir/hoge.sh
ってフルパスで書くしかないんだから、引数にでも入れてやれば?
動的じゃないけどなー
0512名無しさん@お腹いっぱい。NGNG
一般的な話で、起動したコマンド自身の絶対パスを得るのってすごい面倒だよね。

と perl の FindBin.pm 見て思う。
0513507NGNG
/tmp/a/hoge.sh (通常はこれを使用)
/tmp/a/hoge   (バイナリ)
/tmp/a/data/log.dat (hogeにて使用される)
/tmp/a/hoge.cfg (hogeにて使用される)

各種ファイルの置き場所が変わっても
問題のないような用途を想定しています。

>>512
がーん。やっぱりすごく面倒なんですか…
0514名無しさん@お腹いっぱい。NGNG
こういう抽象的な書き方する奴って、何企んでるかわからんしな。

何をどうしたいのか書けば別な方法があるかもだが、聞きながら
にして大してここの人をアテにしてるわけでもなさそうで。
0515名無しさん@お腹いっぱい。NGNG
ハードリンクとか考えると、
不可能なこともあるのでは。
0516名無しさん@お腹いっぱい。NGNG
>>513
どこか彼方に置かれたログファイルや設定ファイルを自動で判別して
使用するプログラムなんて、古今東西聞いた事がない。
0517名無しさん@お腹いっぱい。NGNG
呼び出しファイル名で動作変えるのはよくあるね。
0518507NGNG
>>514そういうつもりではなかったのですが、
書き方がかなりマズかったと反省しています。

/tmp/a/base.shが共通の設定スクリプト
(DATA=data/log.dat と置き場所が記述されている)
hoge?.shでは. ./base.sh として設定を読み込んでいます。

/tmp/a/hoge1.sh (hogeを実行するためのラッパー1)
/tmp/a/hoge2.sh (hogeを実行するためのラッパー1)
/tmp/a/hoge   (バイナリ)
/tmp/a/base.sh (設定ファイルのパス)
/tmp/a/data/log.dat (hogeにて使用される)
/tmp/a/hoge.cfg (hogeにて使用される)

hoge?.shを実行すると実際には、
./hoge data/log.dat hoge.cfg のように実行されます。

hoge.shとbase.shの階層が同じなら問題ありませんが、
別の場所(たとえば/tmp/b/data/hoge3.sh)に置いて、
. ../base.shと読み込むと設定の階層がおかしくなります。
0519507NGNG
base.sh内でHOGE_PATH=`pwd`しても
hoge?.shの置き場所が違うと/tmp/a/hogeを取得できないので困っていました。

これから帰宅するのでこれから数時間はレスがつけられませんが、
なにかいい知恵を授けてもらえると非常に助かります。
0520名無しさん@お腹いっぱい。NGNG
>>518
言っちゃあ悪いが、そういうヘボい仕様ならば、
運用でカバー (必ず cd /tmp/a してから実行するなど) する方が良いと思う。
0521名無しさん@お腹いっぱい。NGNG
>>519
よくわからんのですが、
Windowsで言うところの、レジストリ HKLM(HKCU?)\Software\hoge\hogepath
みたいなものがあれば、ってなことなんでしょうか?

場合によっては ~/.hogerc もアリかもですが、仕様がいまいちわからんです・・・。
0522名無しさん@お腹いっぱい。NGNG
説明が増える度にわけが判らなくなってる気がする。
0523名無しさん@お腹いっぱい。NGNG
>>518
base.shで記述してるのが相対pathな時点でおかしいと思うが。

相対的な位置はかわらない?
それともやっぱり全部てんでバラバラな場所が可能って事?
だとすると、>>516に同意。

>>519
当然、pwdで得られるのは実行場所、又はスクリプト中で移動
した場所でのpathになるから。
困る前にそれに気づかないってのは結構問題じゃないかと。
こういうことする人としては。
0524名無しさん@お腹いっぱい。NGNG
みんな楽しんでるなw
0525名無しさん@お腹いっぱい。NGNG
507=524

  糸冬 了 〜
0526名無しさん@お腹いっぱい。NGNG
最初に508が正答を書いているよ。
0527名無しさん@お腹いっぱい。NGNG
>>510 で訂正してるよ。
0528名無しさん@お腹いっぱい。NGNG
>>527
それじゃなくて引用してる文書。
0529507NGNG
ただいま家に戻りました。晒し上げ状態なわけですが。
>>520
ごもっともです。
>>521 >>523
相対パスをまとめて記入し、使い回すためのファイルがbase.shというつもりで書きました。
なるべく絶対パスを記入せずに済ませてしまおうという趣旨です。
./base.sh
./wrapper0.sh
./script/wrapper1.sh
./script/sub/wrapper2.sh

wrapper類からbase.shを読み込んだ際にbase.shの
絶対パスを(動的に)取得する方法はないですか?
>>524
お楽しみいただけて幸いです。私は欝が入っていますが。
>>528
よく読んでみます。
0530526NGNG
いやこれの事。

> ttp://www.adl.nii.ac.jp/~moro/unix-programmer/faq-j_2.html#SEC23
> 人々がこの質問をする最もありふれた理由は、プログラムの設定ファイルの場
> 所を知るためだというものです。ですが、実行ファイルのパスからそれを求め
> ようというのは良くないとされています。

とはいえ方法は無くもないようなので大昔のsendmailのソース読めばわかるかも。

> それほどにはありふれていませんがもっともな理由としては、自分自身を exec()させたいというのがあります。
> これは完全にプロセスを再初期化する(例えばデーモンがSIGHUPを受信したとき)ために使われる方法です
> (例えばあるバージョンのsendmailで使われました)。
0531名無しさん@お腹いっぱい。NGNG
なにがやりたいかよくわからんが、こんなかんじか?

% cat base.sh
cfg=$DATA/hoge.cfg
log=$DATA/data/log.dat
bin=$DATA/hoge

% cat hoge.sh
. $DATA/bash.sh
$bin $log $cfg

% DATA=/tmp/a hoge.sh
0532名無しさん@お腹いっぱい。NGNG
>>529
508の引用は見ないで書き込みです。

base.shの存在意義がわからんのでないかな。

logとかcfgファイルの位置が変わらない
⇒絶対パスで問題無いのでは?

logとかcfgファイルの位置が変わる
⇒何を基準に動的に探すの?

じゃないかな。
>なるべく絶対パスを記入せずに済ませてしまおうという趣旨です。
ここに意義を感じない。なんででしょ?
0533名無しさん@お腹いっぱい。NGNG
いつの間にか絶対パスを求める話になってるが
0534507NGNG
>>531
> なにがやりたいかよくわからんが、こんなかんじか?
いわゆる解析系のプログラムにありがちな、
条件だけ何度も変えてプログラムを実行ってやつです。

>>532
常に開発中のプログラムなので、hoge.bak hoge2 hoge3などが転がっています。
共通の設定項目をbase.sh として括ったほうが便利なので。

プログラムの開発者と使用者が一緒くたな状態です。
お世辞にも洗練されているとはいえないと自覚しています。
0535532NGNG
>>534
>>532じゃだめ?
0536名無しさん@お腹いっぱい。NGNG
>>535
えーと、実際問題パスを直接書くのが早道だし正解だと思います。

解析実行後、 mv hoge hoge.bakなんて頻繁に行っているので、
hoge内で自己完結するよう
絶対パスを書かないで済ませる方法はないかと
淡い期待を抱いていたわけですけど。
0537532NGNG
>>536
>>532では、絶対パスをファイルには書かなくて、環境変数で設定
できるようにしている。
0538507NGNG
>>537
>>531 かかれたのも同じかたでしょうか。

>>531
全然思いつかなかった方法で良い案だと思ったのですが、
数週間プログラムを走らせなかったら、
どの環境変数使って実行したか忘却の彼方に行ってしまいますので…
0539名無しさん@お腹いっぱい。NGNG
指定したロードアベレージになるように負荷をかけてくれるプログラムって
どこかにないでつか?
0540名無しさん@お腹いっぱい。NGNG
読まずにカキコするが、
実行ディレクトリを引数で指定するようにしたら?
0541532じゃなくて531NGNG
>>538
>>531でした。
>>532さんごめんなさい。

使い捨てスクリプトでよかったらこんなのはどう?

#!/bin/sh
if [ "`echo $0|cut -c1`" = / ] ; then
    abs_path="$0"
elif echo $0|grep / >/dev/null 2>&1 ; then
    abs_path="$PWD/$0"
else
    abs_path=`which "$0"`
fi
echo $abs_path
0542名無しさん@お腹いっぱい。NGNG
>>539
おそらくない。あったら便利
psしながらwhile(1)したら?
0543名無しさん@お腹いっぱい。NGNG
>>539
大体でよければ、
int main() { for (;;); return 0; }
みたいにループするプログラムを指定したいロードアベレージの分
(ロードアベレージ 5 にしたければ 5 つ) だけ動かせばいいんじゃね?
0544539NGNG
やっぱり、そのものずばりっていうツールはなさそうですよね。
がんばって自分で作ってみまーす。
0545名無しさん@お腹いっぱい。NGNG
環境変数使うなり引数で渡すのが正道でしょ。
忘れるなら、必要なものが定義されているかどうかチェックすればいいだけの話。
0546名無しさん@お腹いっぱい。NGNG
/proc/self あたりをどうにかすればどうにかなりそうな気もする。
0547名無しさん@お腹いっぱい。NGNG
本当にくだらない質問なんですけど
UNIXとLinuxってどう違うのですか??
大学のプログラム授業でどっちも使ったんですけど
似てて違いが判りません。分かり易く教えてください。
0548名無しさん@お腹いっぱい。NGNG
その質問は現在使われておりません・・・
質問をご確認になって出直してください。。。
0549名無しさん@お腹いっぱい。NGNG
>>547
UNIXとLinuxってどう違うの?
http://pc5.2ch.net/test/read.cgi/unix/1000268174/
0550名無しさん@お腹いっぱい。NGNG
>>502
paiccとか。
paicc -c 'df -i -t ufs' -mui 1000
0551名無しさん@お腹いっぱい。NGNG
>>547
君の大学には本がたくさん置いてあるお部屋は無いのかな?
0552名無しさん@お腹いっぱい。NGNG
大学のサーバがIRIXを使っています。
これを自宅のcygwinのX(XFree86)を使ってアクセスしてログインしたいのです。

コンソールからログインはできることはのですが、
ディスプレイがオープンできません
とでて、、
たとえば大学側のemacsは-nw モード(コンソールアプリとして)で起動します
ほかの Xアプリケーションも
unable to open display
のメッセージがでて、グラフィカルなものは使えません。

これはIRIXがXFreeを使っていないからなのでしょうか?
解決法は、IRIXの使っているXを使うしかないのでしょうか。

わかりにくい文章で申し訳ありませんが、ヒントでもいいので教えてください
0553名無しさん@お腹いっぱい。NGNG
>>552
接続形態が良くわからんが、
X はUDPを使うからNAT(NAPT)接続では使えないといったあたりか?
vtun でトンネル掘るとか。
0554名無しさん@お腹いっぱい。NGNG
>>552
ssh でリモートログイン汁
0555552NGNG
>>554
sshでリモートログインしています。
スクリーンショットをとってみました
http://lkjoe.hp.infoseek.co.jp/cgi-bin/file/moziced.JPG
文字化けしているところは、
1356-203 xmodmap: ディスプレイ '' をオープンできません    
及び
エラー: Can't open display:
です。

>>552
くわしくお願いします
0556552NGNG
上の >>552 は >>553さんあてです。。
0557名無しさん@お腹いっぱい。NGNG
>>555
Cygwin よく知らんけど
ssh に -X をつけるとどうすか。
0558名無しさん@お腹いっぱい。NGNG
>>555
ssh -Xでログインすれば
echo $DISPLAYで
localhost:10.0と表示されるはず。
0559名無しさん@お腹いっぱい。NGNG
DISPLAY を設定してるか、
cygwin の X のアクセスコントロールをきちんとやってるか。
0560名無しさん@お腹いっぱい。NGNG

ssh -X
でうまくいきました
細かいところでエラーがでたりすけど、自分で調べてがんばってみます
ありがとうございました
0561名無しさん@お腹いっぱい。NGNG
5-currentの頃から気になってたんだけど
http://www.clave.gr.jp/ml/bsd-nomads/200304/msg00002.htmlによると
FNW-3602-Tはvendor=0x14ea, dev=0xab08といってるけど、俺の持ってる奴は
vendor=0x13d1, dev=0xab02だと主張しやがる。
http://www.pcisig.com/membership/vid_search/によるとplanexのベンダーIDは14ea
が正しいので、俺が持ってるのはFNW-3602-Tのパチものという事でしょうか?
0562名無しさん@お腹いっぱい。NGNG
>>1
スレ立て乙
0563名無しさん@お腹いっぱい。NGNG
Xorgで、ktermの時はctl+\で漢字変換モードになるのですが、
leafpadとかmozillaとか使って、文字を入力しようとすると、
勝手に漢字変換モードになっていて、しかも意図しない文字に
なってしまいます。どこか設定をミスったのだと思いますが、
どこから見ていけばよいでしょうか?
"mojira" -> 「授運園」になっちゃう。
xvとかで保存時にファイル名入力するときとかも起きるので、
泣きそうです。
0564名無しさん@お腹いっぱい。NGNG
質問です。
ld -o executefile.exe filename.o
ってどのようなコマンドですか?
0565名無しさん@お腹いっぱい。NGNG
>>564
> 禁止事項
> * 既出・内容なし・マルチポスト・アスキーアート各種・ネタage・宿題の丸投げ
0566名無しさん@お腹いっぱい。NGNG
>>564
man ld
0567名無しさん@お腹いっぱい。NGNG
>>563
さしあたり

Google 検索: UNIX 日本語入力
http://www.google.co.jp/search?hl=ja&q=UNIX+%E6%97%A5%E6%9C%AC%E8%AA%9E%E5%85%A5%E5%8A%9B
0568名無しさん@お腹いっぱい。NGNG
>>550
こんなツールがあったんですね。かなりいい感じですね。ありがとうございます。

# 私は結局 Curses ベースのを自分で作って使ってます。
0569名無しさん@お腹いっぱい。NGNG
/etc/passwd{,-}
この二つのファイルの違いはなんでしょうか?とくに"-"がついた方は
全然アクセスされた形跡がないので、削除しようかと思ってます。
0570名無しさん@お腹いっぱい。NGNG
FreeBSD には GNU coreutils は(デフォルトで)入っていますか?

0571名無しさん@お腹いっぱい。NGNG
>>570
入っていません。
0572名無しさん@お腹いっぱい。NGNG
>>563
uim-im-switcher
試しに実行してみて
0573名無しさん@お腹いっぱい。NGNG
>>569
/etc/passwd- って知らないけど誰かが backup とったんじゃない
0574名無しさん@お腹いっぱい。NGNG
>>569
消しちゃだめだろ。
0575名無しさん@お腹いっぱい。NGNG
>>574
なんで?
0576名無しさん@お腹いっぱい。NGNG
unclutterみたいなツールってほかにないですかね。
unclutterだとQEMUのフルスクリーンモードと相性がよくないみたいでして。
$ unclutter -regex -not "QEMU.*" &
でやっているんですけれども,QEMUのフルスクリーンモードのなかでマウスカーソルが勝手に動くんですよ。(ウインドウモードなら問題無し)

unclutterでこれを解決する方法あればそれを、なければ他のソフトを教えてください(・ω・)
0577576NGNG
unclutter -regex -not '!(screen|kterm|Mozilla.*|emacs.*)' &
もやってみたんですけれども,全部の窓でカーソルをかくしちゃってくれます。

"screen,kterm,Mozilla〜,emacs〜"の窓の上ではカーソルを隠し,それ以外(QEMUとか)の窓の上ではカーソルを隠さないっていうのを予想したのですが。
0578名無しさん@お腹いっぱい。NGNG
twm で TitleButton の変更のしかたが分かりません
RightTitleButton "zoom" = f.fullzoom
とすれば追加出来ることは調べられたのですが
すでにあるデフォルトのボタンを 変更/削除 する方法が分かりません
どうすればできますか?
0579名無しさん@お腹いっぱい。NGNG
>>576
NoDefaults
そのかわり、設定を全部書いてやるんだよ。
0580名無しさん@お腹いっぱい。NGNG
ごめん。レス番ずれた。 >578 です。
0581578NGNG
>>579,580
ありがとう.
出来ました.
0582名無しさん@お腹いっぱい。NGNG
はじめまして。質問です。

UnixのShellでAというフォルダとBというフォルダで同じファイルが存在するかどうか判断し、両方のフォルダに存在するファイルを出力するにはどうしたらよいでしょうか?
0583名無しさん@お腹いっぱい。NGNG
宿題は自分で
0584名無しさん@お腹いっぱい。NGNG
if [ -f A/file -a -f B/file ];then echo file;fi
0585名無しさん@お腹いっぱい。NGNG
>>583
うぅ。宿題じゃないっすよ。

>>584
おぉ。ありがとうございます!
それでやってみます!
0586名無しさん@お腹いっぱい。NGNG
>>582

ADIR=Aの絶対パス
BDIR=Bの絶対パス

cd $ADIR
for name in *
do
afile=$name
bfile=$BDIR/$name
if [ -e $afile ] && [ -e $bfile ]; then
echo $name
fi

done

で、私も質問ですが。texで論文を書くときに、appendix環境で
本来なら本文からの連番で(45)、(46)…みたいに式番号が付くところを、
改めて(A.1)、(A.2)…みたいにしたいのですが、どうすればいいでしょうか。
0587582NGNG
>>586
うひー!
みなさん変事がはやすぎます!みんないい人だ・・・
0588582NGNG
変事→返事でした。
スレ汚しすいません。
0589名無しさん@お腹いっぱい。NGNG
したいようにすればいいとおもいます。
0590名無しさん@お腹いっぱい。NGNG
NetBSD 2.0 の AMD64 のisoイメージをダウンロードしたんですがブートしません。
特定サイトの問題? 焼くときに失敗? メディアの不良? かと思って3枚も焼いてしまい、
ぜんぶゴミになりました。

このへん↓見ても関係ありそうな文章は見当たらないんですが、
http://www.jp.netbsd.org/Misc/query-pr.html
私のところだけの問題でしょうか。

ちなみに先月ダウンロードしたAMD64 RC5のisoイメージでは
ふつうにブートして、曲がりなりにもインストールはできました。

# RC5からリリース版にアップデートするにはCDを使うのが難易度低そうなのですが...
0591名無しさん@お腹いっぱい。NGNG
>>586
TeXスレッドで聞いたほうがいいよ。
0592名無しさん@お腹いっぱい。NGNG
tar -cPzf //machine/share/log.tar.gz //machine/share/log.txt
みたいな感じで、ネットワーク越しでログファイルを圧縮しようとしてるのですが、
tar:Removing leading '//' from member names
というエラーが出ます。Pをつけて頭の/を取らないようにはできるみたいですが、
こういう場合はどうすれば良いのでしょうか
0593名無しさん@お腹いっぱい。NGNG
>>592
ちゃんと嫁
0594名無しさん@お腹いっぱい。NGNG
man tar

-P, --absolute-paths
ファイル名の先頭の`/'を取り除かない

?(;´Д`)
0595名無しさん@お腹いっぱい。NGNG
そもそもとんでもない勘違いをしている
0596名無しさん@お腹いっぱい。NGNG
ファイルが1個しかないならtar使わんでええやん。
0597名無しさん@お腹いっぱい。NGNG
すいません、cygwinなのでこういう形式でアクセスはできるんですが
ls //マシン/以下略とかで
tarの問題だからOS関係ないかと思ったんですが…
0598名無しさん@お腹いっぱい。NGNG
どこにも問題無いように見えるんだが、どうしたいんだ?
0599名無しさん@お腹いっぱい。NGNG
いや、同じようにtarで>>592のようにやるとエラーが出るのですが
0600名無しさん@お腹いっぱい。NGNG
>>597
おまえは tar の問題と Windows ファイル共有システムの実装と
cygwin が提供している上記へのパス記法を混同している
0601名無しさん@お腹いっぱい。NGNG
>>599
誰がエラーだなんて言ったんだ?
0602名無しさん@お腹いっぱい。NGNG
>>601
ありゃ?エラーではないのですか?
しかしファイルはできてないんですが…
■ このスレッドは過去ログ倉庫に格納されています