くだらない質問はここに書き込め!なんでもアリ33
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
NGNG批判、要望は以下へ。
2ch批判要望 http://qb.2ch.net/accuse/
NGワード
* UNIXって何? (http://pc3.2ch.net/test/read.cgi/unix/998779290/)
* UNIXとLinuxの違いは何? (http://pc3.2ch.net/test/read.cgi/unix/1024558135/)
* 2ch閉鎖の危機をUNIX板が救ったという話{は本当? | を知った。有り難う! | のflashはどこ?}
禁止事項
* 既出・内容なし・マルチポスト・アスキーアート各種・ネタage・宿題の丸投げ
注意事項
* 荒らしは無視が鉄則
* Unixと関係ない質問/話題は、よけいな相手をせず適切な板に誘導。
* シュッ・シュッ
書く前にぐぐれ http://www.google.co.jp/
2ch総合検索サイト http://2ch.dyn.to/
過去ログなどは >>2-5
0490名無しさん@お腹いっぱい。
NGNG使ってるwmのman見れ
0491名無しさん@お腹いっぱい。
NGNG1から100までの素数がかかれているファイルを使うのは反則でつか?
0492 ◆5c5udzFPUI
NGNG俺、お気に入りに入れていたんだけどこないだのサッサー騒動でクリーン
インストールしたからわからなくなっちゃったんだよ。
もう一度教えてくれ!!
0493名無しさん@お腹いっぱい。
NGNG○イカれた
0494名無しさん@お腹いっぱい。
NGNG...要するに暇なんです。
#!/bin/sh
isPrime() {
n=${1};
odd=`echo ${n} % 2 | bc`;
if [ ${odd} -eq 0 ]; then return 0; fi
i=3; flag=0;
while [ `expr ${i} \* ${i}` -le ${n} ]; do
tmp=`echo ${n} % ${i} | bc`;
if [ ${tmp} -eq 0 ]; then flag=1; break 1; fi
i=`expr ${i} + 2`;
done
if [ ${flag} -eq 1 ]; then return 0; else return 1; fi
}
while :; do
TMP="/tmp/hoge";
dialog --title "素数のなにか" \
--clear --inputbox "number (0 to exit)" -1 -1 2>| /tmp/hoge
if [ -f ${TMP} ]; then num=`cat ${TMP}`; rm -f ${TMP};
else echo "error"; exit 0; fi
if [ -z ${num} ] || [ ${num} -lt 1 ]; then exit 0;
else isPrime ${num}; res=$?; fi
if [ ${res} -eq 1 ]; then dialog --clear --msgbox \
"ひょっとすると${num}は素数のような気がするかもしれません!!" -1 -1;
else echo "false"; sleep 1; fi
done
0495名無しさん@お腹いっぱい。
NGNG0496名無しさん@お腹いっぱい。
NGNG0497名無しさん@お腹いっぱい。
NGNGcat <<EOF | gcc -xc - -o /tmp/prime.$$ && /tmp/prime.$$ && rm -f /tmp/prime.$$
#include<stdio.h>
int main(void){
int i, j, prime;
for(i=2; i<100; i++){
prime=1;
for(j=2; j<=i/2; j++)
if(!(i%j))prime=0;
if (prime)printf("%dは素数\n", i);
}
return 0;
}
EOF
0498名無しさん@お腹いっぱい。
NGNGだから正答を書かないように苦労してるんじゃないか。
0499名無しさん@お腹いっぱい。
NGNG助かります。
>>496 シェルスクリプト 教えてくれる掲示板ってご存知ですか?
0500名無しさん@お腹いっぱい。
NGNG497がcshのスクリプトだと思っているのだろうか
0502名無しさん@お腹いっぱい。
NGNG0503名無しさん@お腹いっぱい。
NGNGイイヨー!!
0504名無しさん@お腹いっぱい。
NGNG#!/bin/csh
primes 1 100
0505名無しさん@お腹いっぱい。
NGNG????????????DOS???????????????
0506名無しさん@お腹いっぱい。
NGNG0507エスパー
NGNGDemacs
0508名無しさん@お腹いっぱい。
NGNGmifes
0509名無しさん@お腹いっぱい。
NGNGファイルネームが表示されますが、その左に
-u:--
とある時と
--(DOS)--
とある時があります。これはどう違うのでしょうか。
0510名無しさん@お腹いっぱい。
NGNG0511名無しさん@お腹いっぱい。
NGNGもうちょっと詳しく教えて頂けたら嬉しいです。お願いします。
0512510
NGNG0x0d 0x0a だと DOS って出るんじゃないの?
バイナリエディタとかでみてみ
0513名無しさん@お腹いっぱい。
NGNG早速のお返事どうもありがとうございました。エディタはEmacs しか
使った事がなかったのですが、とりあえずバイナリエディタを探してみます。
改行コードについても調べてみます。
0514名無しさん@お腹いっぱい。
NGNG間違いない
0515名無しさん@お腹いっぱい。
NGNG0516名無しさん@お腹いっぱい。
NGNG0517名無しさん@お腹いっぱい。
NGNGhd -C file
0518名無しさん@お腹いっぱい。
NGNG0519名無しさん@お腹いっぱい。
NGNG-----
#!/bin/bash
BACKUPLIST=".Xmodmap .Xresources .bashrc .canna .emacs .emacs-w3m .ircrc .mlclockrc .mlterm .ratpoisonrc .screenrc .xsession elisp .vimrc"
cp -uvr $HOME/${BACKUPLIST} .
-----
rsyncつかうほど大きなファイルもないので、こんなことしていますが、このスクリプトに、汚い表現、バグなどあったら教えていただけるとありがたいでつ。
それとも、やっぱりrsync使った方がいいのでしょうか。
単に、tar czvf `date +%y+%m+d`.tgz ${BACKUPLIST}したほうがよいかな。
0520519
NGNG0521名無しさん@お腹いっぱい。
NGNGすなおに .?*じゃだめなのか?
0522519
NGNGわけわかめ。たすけt。
for f in $BACKUPLIST;do
cp -uvr $HOME/$f .;
done
でいいの?
0523名無しさん@お腹いっぱい。
NGNG0525522
NGNGいちいち
cp foo .
cp bar .
よりもcp foo bar .のほうがいいとは思うんだが。
BACKUPLISTを、foo,barにすると見にくい。
いちいち
foo,\
bar,にするのもながったらしい。どうすべきか。
0526名無しさん@お腹いっぱい。
NGNG効率を気にするほどのファイル数なの?
つーか別にそこがボトルネックにはならんだろ
0527名無しさん@お腹いっぱい。
NGNG0528522
NGNGいや別に効率を気にする程ではないけど、効率の酔い方法を覚えた方がいいかなぁと思って。
で、こんどは
変数にfoo,barをいれたところで、それを展開する方法が、さっきはわかったのにいまはわからなくなった。
HOGE="a,b"
echo $HOME/${HOGE}
さっきはこれでちゃんと
/home/hoge/a
/home/hoge/b
とでたはずなのに。でも逝けない。どこがさっきと違うんだろう。
0530名無しさん@お腹いっぱい。
NGNGむしろそれで逝けたら驚く. そんなシェルがあるのか?
素直にforでまわしとけ. ',' じゃなく' 'でくぎるんだぞ, '\n'でもいいけど.
0532522
NGNGこれって…汚すぎるかな。汚すぎるね。正規表現よくわかっていないもんね。
0533名無しさん@お腹いっぱい。
NGNGecho $HOME/{$HOGE}
の違い
0535名無しさん@お腹いっぱい。
NGNGcshでは確実に出来るはず。
というわけで驚いて下さい >>530
0536名無しさん@お腹いっぱい。
NGNG整数の2項演算(plus, minus, multiply, divide)を 対象として,
例えば,2+3などの文字列を受け取り,
その場で計算して答え(この場合は5)を表示する。
0538名無しさん@お腹いっぱい。
NGNGこれで○もらえたら嫌だな…。
0539名無しさん@お腹いっぱい。
NGNG$ HOGE=".bashrc,.emacs"
$ echo $HOME/{$HOGE}
/home/unko/{.bashrc,.emacs}
$ cp $HOME/{$HOGE} .
cp: cannot stat `/home/unko/{.bashrc,.emacs}': そのようなファイルやディレクトリはありません
ということで、できません。
0540名無しさん@お腹いっぱい。
NGNG#shutdown -p now
real:
dash to caliculator;
0541名無しさん@お腹いっぱい。
NGNGはたからなんだけど
bc丸投げでワロタ
0542名無しさん@お腹いっぱい。
NGNG0543522
NGNG$ (cd;cp -uvr $BACKUPLIST $OLDPWD)
0544名無しさん@お腹いっぱい。
NGNG% cat calc.awk
#!/usr/bin/awk -f
BEGIN {
for (n = 0; n < 256; n++)
chr[sprintf("%c", n)] = n
}
{
gsub(/ +/, "", $0)
system("w3m -dump http://www.google.com/search?q=" encode($0) " |grep =")
}
function encode(str) {
if (length(str) == 0)
return ""
return sprintf("%%%02X", chr[substr(str, 1, 1)]) encode(substr(str, 2))
}
% ./calc.awk
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9
[calc_img] 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 45
exp(4atan(1)sqrt(-1))
[calc_img] exp(4 atan(1) * sqrt(-1)) = -1
0545名無しさん@お腹いっぱい。
NGNGま、メタキャラクタはシェルが解釈し、展開してからコマンドに渡すわけで。
0546名無しさん@お腹いっぱい。
NGNGこの場合は展開の順番が重要ってこと。
0547名無しさん@お腹いっぱい。
NGNGman で調べたら realpath と言うのがありましたが、
自前のコマンドでは問題有りなので。
0548名無しさん@お腹いっぱい。
NGNG#include <stdio.h>
#include <stdlib.h>
#include <sys/param.h>
#include <unistd.h>
int main(int argc, char **argv)
{
char resolve_path[MAXPATHLEN];
if (argc != 2) {
fprintf(stderr, "usage: %s: path\n", argv[0]);
exit(1);
}
if (realpath(argv[1], resolve_path) == NULL) {
perror(resolve_path);
exit(1);
}
puts(resolve_path);
return 0;
}
0549547
NGNG自前のコマンドが、使えない環境での shell script で必要になったので、
どうすればと、思ったのです。
basename みたいな感じのです。
# システム管理者を叩き殺さなければだめですか?
0550名無しさん@お腹いっぱい。
NGNGbasename 知ってるならdirname は知ってるよね?
その環境のOS は? OS によっては realpath(1) なんてのがあるけども
cd と pwd -P とか使えばいいのかな?
0551名無しさん@お腹いっぱい。
NGNGpushd $TERGET_DIR
DIRPATH=`pwd -P`
popd
REALPATH=${DIRPATH}/`basename $1`
こんなかんじ?
0552名無しさん@お腹いっぱい。
NGNGシェルスクリプトで、対話的な動作から、バックグラウンド動作に
自動で入っていくツールを書いています。
#!/bin/sh
echo this is test code.
nohup sh -s hoge <<EOF >> nohup.log 2>&1 &
echo this is in nohup code.
while [ -f hoge ]; do
date
sleep 10
done
echo finish
EOF
echo this is out of nohup.
echo end.
一応、hogeファイルがある間ループして、なくなったら処理して終了、
という目的は達成できそうなのですが、ps でチェックしたときに
プログラム名が「sh」になってしまって、killしたいときに、どれを
殺せばいいかわからなくなってしまいます。
シェルスクリプトの中から、psで見える自分の名前を変更することは
できないでしょうか。
環境はbash + Linuxです。
0554名無しさん@お腹いっぱい。
NGNG0555名無しさん@お腹いっぱい。
NGNGそういえばpsででてくる名前か何かを変えるシステムコールがあったような。
inetdで使われてる。
それを使ってるコマンドもまたあったような。
まぁ板違い
0556名無しさん@お腹いっぱい。
NGNGいくらでもあるだろ。
基本的にargv[]書き変えりゃいいだけだ。
setproctitle(3)があればそれを使え。
0557名無しさん@お腹いっぱい。
NGNGargvって書き換えてもいいんだよね。
文字列りてらると同じような領域に記憶されるのと勝手に勘違いしてた。
ベンキョになりました。
0558名無しさん@お腹いっぱい。
NGNG> 基本的にargv[]書き変えりゃいいだけだ。
本当ですか?
0559555
NGNGそうそうそれそれ
NetBSD1.61のinetdがクランチすると
おかしくなるのを調べてた時知りました。
http://www.freebsd.org/cgi/man.cgi?query=setproctitle&apropos=0&sektion=0&manpath=FreeBSD+5.2-RELEASE+and+Ports&format=html
argv[0]うんぬんかんぬんって書いてある。
0560名無しさん@お腹いっぱい。
NGNG0561名無しさん@お腹いっぱい。
NGNG直前にbackground実行したプロセスのPIDは$!に入っているから
hoge >log 2>&1 &
pid=$!
while ps $pid >/dev/null 2>&1; done
sleep 10
done
とかやればいいんじゃねえの? 別に板違いでもないだろう?
0562名無しさん@お腹いっぱい。
NGNG# cat test.txt
aaa.aaaタブxxxxx
bbb.cccタブxxxxx
で、一列目で"."が何バイト目で出現するかをリストとして出したいです。
awk 'BEGIN {FS="\t"}
{num=index("$1",".")}
{printf " %s\t%s\t%s\n", num,$1,$2}' ./test.txt
とやると、全てnumが"0"で返ってきてしまいます。
どうすればうまくnumの値を取れるでしょうか?
0563名無しさん@お腹いっぱい。
NGNG{num=index($1,".")}
0564名無しさん@お腹いっぱい。
NGNGnetstat -n | grep port
ってのはエレガントでないし(;´Д`)
0565名無しさん@お腹いっぱい。
NGNGそっかー。何を考えてたんだろう・・・。
アホな質問に答えてくれてありがとうございます。
0566名無しさん@お腹いっぱい。
NGNG0567名無しさん@お腹いっぱい。
NGNGhttp://linux2ch.bbzone.net/index.php?FaqAfterInstall#content_1_48
そんなシステムコールがあるんなら俺も知りたい。
でも、結局スナップショットでしかないから意味ないんだろうな。
0568名無しさん@お腹いっぱい。
NGNG> そんなシステムコールがあるんなら俺も知りたい。
チミはbind(2)を知らないのかね?
0569名無しさん@お腹いっぱい。
NGNGbind(2)が失敗してEADDRINUSEなら使用中
0570名無しさん@お腹いっぱい。
NGNGバインド知ってるよ。
エラーかどうかで判断するの?
それこそスマートじゃない気がする。
すでにバインドしてるPIDってわかるの?
0571名無しさん@お腹いっぱい。
NGNGnetstat -n のソース嫁
0572名無しさん@お腹いっぱい。
NGNG使用済みである事を調べることは本質的じゃないという事だ。やりたいことは未使用のポートを使用(bind)することだろう。
藻前自身が>>567で書いているように、未使用という状態はスナップショットでしかないから余り意味が無い。
bind(2)して使用中にしておけば、開放するまでは使用中という状態が保証される。
0573名無しさん@お腹いっぱい。
NGNG> すでにバインドしてるPIDってわかるの?
システム依存。FreeBSDだったらsockstat(実体はfstat)のソース嫁。
0574名無しさん@お腹いっぱい。
NGNG0575名無しさん@お腹いっぱい。
NGNG0576564
NGNG> は未使用のポートを使用(bind)することだろう。
そです。
> bind(2)して使用中にしておけば、開放するまでは使用中という状態が保証される。
今回はここまで大げさな話でもなかったので >>567 にあった
fuser -s -n tcp port
でいこうと思います。
レスくれた香具師らどーもでした。
0577名無しさん@お腹いっぱい。
NGNGhttp://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=dd&dir=jpman-5.2.0%2Fman§=0
を使って古いHDD(/dev/ad1)から新しいHDD(/dev/ad0)に
コピーを作っているのですが、
dd if=/dev/ad1 of=/dev/ad0
遅いです。
もうひとつコピーするのでmanページにあるオプションを指定して
少しでも早くしたいのですが、どう指定すればよいのでしょうか?
0578名無しさん@お腹いっぱい。
NGNGそれだと512byte毎にsystem call発行するからな。
dd bs=16M 〜とかにしてみれ。
0579名無しさん@お腹いっぱい。
NGNG0580名無しさん@お腹いっぱい。
NGNG0581名無しさん@お腹いっぱい。
NGNG0582名無しさん@お腹いっぱい。
NGNG0583名無しさん@お腹いっぱい。
NGNGedd を使う
0584名無しさん@お腹いっぱい。
NGNGターミナルをエミュレートするものが端末エミュレータ。
0585名無しさん@お腹いっぱい。
NGNGエミュレートするメリットってなんなのでしょうか。
ターミナルだけをいくつも開くことできますよね。
どういう状況でどっちを使うのかわからないのです。
しつこくてすいません。
0586名無しさん@お腹いっぱい。
NGNG>>585の言う「ターミナル」はターミナルエミュレータ。お前さんが「ターミナル」
呼んでおるもののmanを見てみれ。
0587名無しさん@お腹いっぱい。
NGNG0588名無しさん@お腹いっぱい。
NGNG> エミュレートするメリットってなんなのでしょうか。
http://www.cs.yorku.ca/~peter/deptphotos/teletype.jpeg
こういうターミナルをいくつもつながなくて済む。
0589名無しさん@お腹いっぱい。
NGNGんな事より raw device 使わない事に寒気がする漏れは old type?
>>583
ナツカスイ。
■ このスレッドは過去ログ倉庫に格納されています