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

GNU screen その3

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名無しさん@お腹いっぱい。2005/03/21(月) 07:24:04
前スレがdetachされたので再attachしますた

前スレ
screenってどうよ http://pc.2ch.net/test/read.cgi/unix/1001966406/
GNU screen その2 http://pc5.2ch.net/test/read.cgi/unix/1048030339/
GNU screen その3 http://pc5.2ch.net/test/read.cgi/unix/1087436430/
08868822006/03/01(水) 22:43:11
なんていうか、表示されてるメッセージは読めるんです。

通常ならbellが表示される時に Wuff - Wuff ってstatus lineに
表示されると同時に、ktermのウィンドウが勝手にぴょんこぴょんこ
サイズが変って、それが収まるとウィンドウの高さが1〜2行
低くなっているという状況ですね。

>>885 さんの方法だと、ウィンドウのぴょんこぴょんこが、
止らなくなってしまいました。
0887名無しさん@お腹いっぱい。2006/03/01(水) 22:49:11
>>886
Ctrl + 真ん中ボタンで「ステータス行を表示」
0888フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/03/01(水) 23:57:30
これか?

# これでステータスラインが消えなくなる
termcapinfo kterm 'hs:ts=\E[?2S\E[?E\E[?%i%dT:fs=\E[?F:es:ds=\E[?E'
08898822006/03/02(木) 01:38:02
>>887 ぴょんこぴょんこすると、表示させるようにしたステータス行は
消えてしまいます。

>>888 これでぴょんこぴょんこしなくなりました。
ありがとうございました。
0890フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/03/02(木) 01:41:05
ぴょんこぴょんこという表現に萌え
0891名無しさん@お腹いっぱい。2006/03/03(金) 02:45:13
Solari9でscreen使ってます。ログインシェルはtcsh。
で、普段はSSH経由でリモートからしか使わないから、~/.loginにscreen -xRR
と書いています。
この状態でXでログインしようとすると途中で固まるのですがなぜ?
0892名無しさん@お腹いっぱい。2006/03/03(金) 11:07:41
~/.loginで`tty`を調べて、適切な場合のみscreen -xRRしろよ、呆け!
0893名無しさん@お腹いっぱい。2006/03/03(金) 11:59:43
tcshではシェル変数 ttyが自動設定されるから
`tty`しなくても$ttyでOK

でも ssh接続かXの仮想端末かってttyで区別つくのか??
0894名無しさん@お腹いっぱい。2006/03/03(金) 12:22:22
sshのログインでコマンドを自動実行させたいなら、
~/.ssh/authorized_keysにcommand="command" で指定するといいよ
0895名無しさん@お腹いっぱい。2006/03/03(金) 12:41:27
$SSH_TTYってのがあるだろ。
0896名無しさん@お腹いっぱい。2006/03/03(金) 14:57:10
>>892-895
d
取りあえず、~/.loginには
if ( $?SSH_TTY ) screen -xRR
と書くことにしました。これでXでログイン自体は出来るようになったけど
出来ればXの仮想端末の中でもscreenを自動起動したいところ…。
何かいい方法はありませんか?
ちなみに、
if ( $?tty ) screen -xRR
だとXにログイン時に固まってしまいました。
0897こういうことじゃネーノ?2006/03/03(金) 15:01:51
screen の中の shell はどうすれば...
0898名無しさん@お腹いっぱい。2006/03/03(金) 16:41:03
>>896
xterm -lsでいいんじゃないの?
もしくは環境変数STYあたりで切り分けかね。
0899名無しさん@お腹いっぱい。2006/03/03(金) 21:18:12
kterm -e screen -xRR
だろ。マニュアルちゃんと読め。

$ttyでやるなら、
if ( $tty =~ "/dev/pty*") screen -xRR
あたりだろうな。

けど端末エミュレータもscreenでいきたいなら、この方法じゃダメ。
0900名無しさん@お腹いっぱい。2006/03/05(日) 12:21:49
わけあってbashを使わなきゃならんくなった。
いままでzshで

function title {
if [[ $TERM == "screen" ]]; then
    print -nR $'\033k'$1$'\033'\\\
elif [[ $TERM == "xterm" || $TERM == "rxvt" ]]; then
    print -nR $'\033]0;'$*$'\a'
fi
}

function dirTitle {
title "[$(pwd | sed "s#^$HOME#\~#;s#^\(\~*/[^/]*/\).*\(/[^/]*\)#\1...\2#")]"
}      

function cd {          
pushd $argv > /dev/null
dirTitle
ls
}
てなかんじの関数をどっかからパクッてcdするたびに
screenのタイトルをカレントディレクトリを表示させるように
していたんだけれど
bashでどうやればいいかわからない。
同じ事やってもprintに-nRオプションなんかねぇ!とか起こられる。
0901名無しさん@お腹いっぱい。2006/03/05(日) 12:38:53
printじゃなくてbashのビルトインprintf使えよ。

俺は、
$ echo $PS1
\[\033]2;\h:\w\007\]\h\$
してるけどね。
0902名無しさん@お腹いっぱい。2006/03/05(日) 13:13:50
>901
orzすまんパクッた関数つかってただけだから何やってるのか
いまいち把握してなくてよくわからん。

>$ echo $PS1
>\[\033]2;\h:\w\007\]\h\$
これなにやってんの〜どういう意味〜?って感じ

出直してくるわ。スレ汚しスマソ
0903フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/03/05(日) 13:21:16
大変じゃのう。exec zshとかできないわけか。
0904名無しさん@お腹いっぱい。2006/03/05(日) 15:04:40
>>900
.bashrcに

case $TERM in
screen)
PROMPT_COMMAND='echo -ne "\033k${PWD/$HOME/~}\033\\"'
;;
esac

って書いとくと表示されますよ。
09059002006/03/05(日) 15:23:54
>904
サンキュ!!できた!!
0906フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/03/05(日) 15:55:45
ところで、なぜzshが使えないん状況なんだ?
0907名無しさん@お腹いっぱい。2006/03/05(日) 16:03:08
管理者が「俺はあれをシェルと認めない」という人だから、て状況は、昔cshであったけど。
0908フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/03/05(日) 16:05:40
自分でソースからコンパイルしろよ
0909名無しさん@お腹いっぱい。2006/03/05(日) 18:19:19
今まで screen の hard status に文字を表示させる方法が
全然わかってなかったんだけど >904 を見て
見よう見まねで
zsh の precmd() に
print -Pn "\ek%n@%m:%~ \e\\"
なんて入れてみた。

ところで そのstatus行の文字の色を変えたいんですが
man screen の STRING ESCAPES の Colors are coded either as a hexadecimal number
とかの辺りって、上記の \ek... みたいな中に具体的に
どうやって組み込むんでしょう?

\ek%{r}string... じゃ変わらないみたい... orz
0910名無しさん@お腹いっぱい。2006/03/06(月) 10:34:06
そのやり方では window の title を変えるだけ
hardstatus の飾り付けは hardstatus string で設定する
09119092006/03/06(月) 10:48:37
すみません hard status 行を window title みたいに
変えたいってことです:
window 切替える毎に hard status 行を現 window に合わせて変える
(たしかに shell prompt に仕込んでおいても
window 切替タイミングでは変わらないか...)

kterm のwindow title を切替毎に変更できれば尚良いです。
現在は kterm のお題は "screen@" に固定になっちゃってるんで。
0912名無しさん@お腹いっぱい。2006/03/06(月) 11:09:32
hardstatus on
hardstatus string '%w %c'
してる。
0913名無しさん@お腹いっぱい。2006/03/10(金) 05:52:12
なんていうか、%w で各window の format を指定したいよね。
0914フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/03/10(金) 06:28:09
そうだね
0915名無しさん@お腹いっぱい。2006/03/10(金) 10:57:46
COMMAND Aでtitle書き換えてます。
0916名無しさん@お腹いっぱい。2006/03/15(水) 21:37:50
Control + Space を next に割り当てたいのですが、
bind '^ ' next
としてもだめでした。
どうやればいいのか教えてください。
0917名無しさん@お腹いっぱい。2006/03/15(水) 22:28:35
^@
0918名無しさん@お腹いっぱい。2006/03/15(水) 22:54:42
space への割り当ては
bind ' ' next
でいいよ
09191962006/03/15(水) 23:00:40
>>197
できました。ありがとうございました。
0920名無しさん@お腹いっぱい。2006/03/16(木) 10:31:52
>>916
bind \000 next
0921(I love GNU screen)2006/03/16(木) 22:44:40
どうぶつ奇想天外にGNUが出てたな
0922名無しさん@お腹いっぱい。2006/03/16(木) 22:47:37
以前、家族でテレビ見ててヌーの群れが出てきたとき、
間違って「グヌーの群れだな」と言ってしまった。
0923(I love GNU screen)2006/03/17(金) 00:02:21
フッフフ、わしもだ
0924名無しさん@お腹いっぱい。2006/03/17(金) 10:44:51
俺はちょっと違うな。ジーエヌユーの群れだと子供に教えてしまった。
0925フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/03/19(日) 13:22:08
いいじゃないか。子供にGNUを知ってもらえるんだ。
0926名無しさん@お腹いっぱい。2006/03/20(月) 09:29:56
>>フンバリャーウンコ・ヨーデル
しゃべり場スレで見つけたYO!!
0927名無しさん@お腹いっぱい。2006/03/27(月) 00:18:02
はじめまして、
screenを使用して1ヶ月の者です。
googleやヤフーにて検索しましたが、なかなかいい情報見つからず、
.bashrcや.bash_profileをsourceコマンドで再読み込みすればもちろん、
環境が適用されるのですが、screenコマンド実行と同時に、
実行前の環境が読み込まれる、もしくは引き継がれるような設定ありますでしょうか?
的外れな質問かもしれませんが、ご教授いただければ幸いです。
RedhatLinux9です。
0928名無しさん@お腹いっぱい。2006/03/27(月) 00:35:19
いってる意味がよくわからんが、
user の shell が bash なら
screen が bash 勝手に起動して、
.bashrc も読まれるはずだけど?
0929名無しさん@お腹いっぱい。2006/03/27(月) 00:35:37
>>927
環境変数のこと? 普通は何もしなくても引き継がれるよね
0930名無しさん@お腹いっぱい。2006/03/27(月) 00:37:58
>>927
.screenrcのことか?
それともscreen -rdとかのコマンドの事か?
0931名無しさん@お腹いっぱい。2006/03/27(月) 00:51:14
928さん、929さん、930さん、
レスありがとうございます!

bashなので、.bashrcにエイリアスや、プロンプトの設定等を
書いておけば引き継がれると思っていましたが、
何度やっても駄目だったので。。。
0932名無しさん@お腹いっぱい。2006/03/27(月) 00:54:27
>>930

.screenrcにはもちろん直接エイリアスとかを書いても意味がなかったので、
何か設定で.bashrcを再読み込みさせることができると言うことでしょうか。。。
screen -rd は、初めてみましたのでちょっと調べてみます。
(screen -r プロセスID でデタッチした物を復活させる。の、関連?)
09339272006/03/27(月) 01:08:16
皆さん、ありがとうございます!

原因分かった気がします。
自分は、元々.bash_profileに、プロンプトやエイリアスの設定を
全てまとめて記述していたのですが、
それとそのままcpで.bashrcにコピーすれば同じ設定になるだろうと
安易に考えてしまい、正常に動作しておりませんでした。
.bashrcはシェルが起動される度に読み込まれるファイルで、
.bash_profileはログイン時に読み込まれるユーザー固有のファイルと認識しておりましたが、
勉強不足でした。

皆さん、即レス頂けて非常に感動しております、ありがとうございました

0934名無しさん@お腹いっぱい。2006/03/27(月) 02:40:49
tcsh用に作った。
postcmdの部分がうまく言ってないけど
プロセスが表示されないんだよね

if ( $TERM == "screen" ) then
    alias abbrevTitle 'pwd | sed "s#^$HOME#\~#;s#^\(\~*/[^/]*/\).*\(/[^/]*\)#\1...\2#"'
    alias precmd 'echo -n "\033_`abbrevTitle`\033\\"'
    alias postcmd 'echo -n "\033k`jobs`\033\\"'
endif
0935名無しさん@お腹いっぱい。2006/03/30(木) 13:21:27
defencoding eucJP で encoding utf8 (つまり input が UTF-8 で output が EUC-JP) として、
「●」を含む文字列を表示しようとすると文字化けしてしまいます。
おそらく utf8encodings の変換マッピングの問題なのかなと思うのですが、
化けないようにされている方がいらっしゃいましたら方法を教えてください。
utf8encodings をいじれば直せるかなと思ったのですが、
中身はバイナリみたいなので自分の手に負えるか微妙なもので。
0936名無しさん@お腹いっぱい。2006/04/07(金) 18:22:25
screen上のemacsで色がつかないと3時間ほど格闘した結果、
emacs20だったことが判明。screenのせいだな。

0937名無しさん@お腹いっぱい。2006/04/07(金) 18:34:55
にしても、いまさらEmacs20というのも珍しい…
0938名無しさん@お腹いっぱい。2006/04/07(金) 19:07:37
今はEmacs22がデフォだろ。
0939名無しさん@お腹いっぱい。2006/04/07(金) 19:53:00
まだmule使ってますが何か。
0940名無しさん@お腹いっぱい。2006/04/07(金) 20:51:12
muleの日本語i-searchは便利だった。
0941名無しさん@お腹いっぱい。2006/04/08(土) 00:33:32
BACKSPACEでC-?が出る端末(putty)で
screen起動するとBACKSPACEでC-Hが渡されるんだけどどこで設定するの?
0942名無しさん@お腹いっぱい。2006/04/08(土) 00:39:22
>>941
それが正しい挙動だ。
0943名無しさん@お腹いっぱい。2006/04/08(土) 00:41:29
↑と質問したけど、自宅のマシンでは正常にでる。
来週職場に行くまで質問保留。
0944名無しさん@お腹いっぱい。2006/04/09(日) 17:33:51
仕事場と、自宅と、出先から自宅のサーバにsshを介してscreenを使っているのですが
仕事に行く前に自宅でscreenを使って、デタッチしないまま仕事場に行ったり
仕事場で接続してデタッチするのを忘れて出かけたりしてしまうのですが
その際にscreen -rすると、
There is a screen on:
13246.ttyp0.hoge (Attached)
There is no screen to be resumed.
といわれて、アタッチできないのですが
このときにscreenの外からデタッチすることはできないのでしょうか?
0945名無しさん@お腹いっぱい。2006/04/09(日) 17:36:29
>>944
man 位読もうよ。
screen -d -r
0946名無しさん@お腹いっぱい。2006/04/09(日) 17:45:33
最強はscreen -xRRだな。
09479352006/04/09(日) 18:30:54
文字化けするの俺だけでしょうか?(´・ω・`)
0948名無しさん@お腹いっぱい。2006/04/11(火) 01:03:14
>935
いまさらだが、 defencoding eucJP のときに encoding utf8 しても、両方と
も utf8 になるだけで、 input が UTF-8 で output が EUC-JP なんてことに
はならんと思うんだが。

すくなくともおれの手元ではそうなる。
0949名無しさん@お腹いっぱい。2006/04/11(火) 07:43:39
>>948
ん、input が UTF-8 で output が EUC-JP になるよ
LANG=ja_JP.eucJP のせいかな
>>935 を試すと「●」が「?」になった
0950名無しさん@お腹いっぱい。2006/04/11(火) 08:30:05
族藏

◆◇
◎○

辺りはどうなるんですか? (似たビットパターンの文字たち)

僕の環境だと、mlterm-2.9.2, screen-4.0.2
defencoding eucJP
encoding utf8
としても、上の内容のファイルのcat結果は問題なく表示されます。
0951名無しさん@お腹いっぱい。2006/04/11(火) 09:12:44
>>950
族藏
?
◆?
??
?
漢字はそのまま、◆は半角、他の記号は ? になった
Screen version 4.00.02 (FAU) 5-Dec-03
KTerm 6.2.0 (Debian GNU/Linux 3.1)
09529352006/04/11(火) 09:14:54
>>948
すみませんです、 man 読み直してみたら、
output は defencoding に依るわけではなくてロケールに依るみたいですね。

私も LANG=ja_JP.eucJP にしています。
あと、端末には PuTTY を受信データの文字セットを EUC-JP に設定して使っています。
>>950 のは全て化けました。
0953名無しさん@お腹いっぱい。2006/04/11(火) 14:25:37
族 e6 97 8f
藏 e8 97 8f
┏ e2 94 8f
◆ e2 97 86
◇ e2 97 87
◎ e2 97 8e
○ e2 97 8b
● e2 97 8f
0954名無しさん@お腹いっぱい。2006/04/14(金) 15:58:41
screenをデタッチではなく終了させたいのですが
C-a :quit
では終了できないんだけど間違ってるんですかね?
0955名無しさん@お腹いっぱい。2006/04/14(金) 17:17:11
今screenを起動しようとしたら
screen -r
There are screens on:
563.ttyp0.demo (Attached)
9024.ttype.demo (Attached)
There is no screen to be resumed.
といわれました。

どやれば、終了させられるでしょうか
0956名無しさん@お腹いっぱい。2006/04/14(金) 17:20:58
screen -xRR
09579552006/04/14(金) 17:30:33
>>956
screen -Rxx
とやってみたのですが
screen -Rxx
There are several suitable screens on:
563.ttyp0.demo (Attached)
9024.ttype.demo (Detached)

と、表示されるだけで何も起きません
それと、入力街のような事が起きます

どうすればいいのでしょうか?
09589552006/04/14(金) 20:43:47
自己解決しました。
0959名無しさん@お腹いっぱい。2006/04/14(金) 22:23:45
自己解決したなら、どうやって解決したかぐらい書くのが礼儀ですよ。
09609552006/04/14(金) 22:59:36
>>958は私ではありません

自己解決もしていません
全く分からなかったので、とりあえずscreen自体をkillしました
解決法が分かる方がいれば今後のために教えていただけるとありがたいです
0961名無しさん@お腹いっぱい。2006/04/14(金) 23:01:41
>>960
>>956>>957が微妙に違うが、気づいているか?
0962名無しさん@お腹いっぱい。2006/04/15(土) 01:33:22
むしろまったく違うように見えるのはn(ry
0963名無しさん@お腹いっぱい。2006/04/15(土) 01:49:14
まずはフォントをでっかくしとけと
0964名無しさん@お腹いっぱい。2006/04/15(土) 02:18:59
>>960
kill でいいよ
0965名無しさん@お腹いっぱい。2006/05/02(火) 08:30:07
>>964
fuckじゃだめ?
0966名無しさん@お腹いっぱい。2006/05/11(木) 15:20:24
die するべきだな
0967名無しさん@お腹いっぱい。2006/05/16(火) 02:35:15
GNU screenを投げ捨てろ!!
0968名無しさん@お腹いっぱい。2006/05/16(火) 18:35:10
それより967をdetachせよ!!
0969名無しさん@お腹いっぱい。2006/05/16(火) 23:37:43
screen -wipe
0970名無しさん@お腹いっぱい。2006/05/17(水) 02:12:52
コピーモードでマルチバイト文字にカーソルを置いて、
C-a : stuff al
とやると死にます。危険
0971名無しさん@お腹いっぱい。2006/05/22(月) 08:00:45
ぼくは死にません
0972名無しさん@お腹いっぱい。2006/05/23(火) 22:47:10
1000GET
0973名無しさん@お腹いっぱい。2006/05/24(水) 04:14:10
↑早漏
0974名無しさん@お腹いっぱい。2006/05/24(水) 04:41:14
やっぱこのスレも「糸冬了」なのかな
ちとさみしいが
こんな「まっとうに終わるスレ」なんてはじめて見る希ガス
3スレだけだが総じて良スレだったね
地味だが良スレ…
まさに screen スレにたがわぬ味わいとゆえよう…
ありがとう screen
でも漏れは使いつづけるよ screen
僕の detatch も atatch されそうです
ら〜らら〜ら〜…
0975名無しさん@お腹いっぱい。2006/05/24(水) 11:20:15
おいおい!勝手に終わらすなよー!!!
0976名無しさん@お腹いっぱい。2006/05/24(水) 11:31:32
ボクのこと、忘れてください…
0977ズダダダダダダダ…2006/05/24(水) 16:14:41
やらせはせん、やらせはせんぞぉ〜
0978埋め立て準備委員会2006/05/24(水) 19:52:59
é
0979名無しさん@お腹いっぱい。2006/05/25(木) 02:39:16
>>975
スマソコw
書いてるうちに漏れのなかのポエトリーがスパークしてしまったんよwww

まぁスク萌え諸兄のお前らにはご理解いただいていると思うが
べつに次スレ要らねぇとかいいたいわけじゃないんよ、うん

まぁ次スレでひそかやかに5年後の最長寿スレなぞ目指してみる、それもまたよし…

まぁこの期におよんで次スレ乱立なぞやらかしちゃってみる、それもまたよし…

では最後にいつものやつ


…僕の detatch も atatch されそうです…
0980名無しさん@お腹いっぱい。2006/05/26(金) 03:03:32
ほ〜た〜るの ひ〜か〜ぁり ま〜ど〜の〜ゆ〜ぅ〜き〜 ♪
0981名無しさん@お腹いっぱい。2006/05/26(金) 21:18:18
てか、ここで聞くような事なんてあるのか?
ググればもう充分に文書化されてると思うから自己解決オンパレードだと思うぞw
0982名無しさん@お腹いっぱい。2006/05/26(金) 23:56:11
ここ発祥のバグ修正パッチがまだ本家に取り込まれてないし
0983名無しさん@お腹いっぱい。2006/05/27(土) 00:44:03
でも、このスレのやりとりってどこにもまとめられてないよね。
0984名無しさん@お腹いっぱい。2006/05/27(土) 17:15:17
screenから複数のマシンにログインしていて
screen上の複数の端末に対して、一度に同じ操作をしたくて↓の
ような、SEHLLスクリプトを作ろうとしているんだけどうまくいきません。
uptimeは、例で毎回実行するコマンドは変える

screen -X register a uptime
screen -X select 1
screen -X paste a
screen -X select 2
screen -X paste a

実行するとpasteされる内容に、改行がないようでuptimeは、入力されるがENTERが押されなくて実行されない。

registerに改行まで入れる方法か、もっと良い方法を知っている人がいたら教えて欲しいです。

rshとかsshでもいいんだけど実行されているところが見たいんです。。。
09859842006/05/27(土) 17:20:00
ついでに、C-a C-cで新しく開くwindowって、40個しか開かないのですか?
0から始まるので39まで。。。

./configureで変えれたりする?
レス数が950を超えています。1000を超えると書き込みができなくなります。