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

GNU screen その5

■ このスレッドは過去ログ倉庫に格納されています
0001ミスタースクリーン2006/05/27(土) 18:18:42
前スレがdetachされたので再attachしますた

GNU本家 http://www.gnu.org/software/screen/
公式ML(英語 たまにドイツ語) http://groups.yahoo.com/group/gnu-screen/
でかいのネット http://www.dekaino.net/screen/
UnixUser2004年1月号記事 http://risky-safety.org/%7Ezinnia/screen/contribute2/
Screen Glossary http://zinnia.dyndns.org/~hiki/Screen/
@IT:screenコマンドとは http://www.atmarkit.co.jp/flinux/rensai/linuxtips/692usescreen.html
私家版GNU Screen http://www.rubyist.net/~rubikitch/computer/hacks/screen/
screenコマンド一覧 http://www.limy.org/program/screen.html

1 http://pc.2ch.net/test/read.cgi/unix/1001966406/
2 http://pc5.2ch.net/test/read.cgi/unix/1048030339/
3 http://pc5.2ch.net/test/read.cgi/unix/1087436430/
4 http://pc8.2ch.net/test/read.cgi/unix/1111357444/
0573名無しさん@お腹いっぱい。2008/01/09(水) 00:27:48
Ctrl-a押すつもりがCtrl-s押して停止してしまうってのならあったな。
0574名無しさん@お腹いっぱい。2008/01/09(水) 10:22:26
detach/attach 時にリサイズかかると死にやすい気がする

っていうかそういう報告は他にも多々あった気がするけど
0575名無しさん@お腹いっぱい。2008/01/09(水) 10:24:15
>>574
Emacs使ってる?
0576名無しさん@お腹いっぱい。2008/01/09(水) 15:48:19
emacsでウィンドウを分割している状態でattachすると必ず死ぬ。
on FreeBSD 6.1 with Emacs 21.3.1
0577名無しさん@お腹いっぱい。2008/01/09(水) 15:59:50
>575
使ってます
あと screen 中の mutt(メーラ) から エディタで ng 起動しててという
状況がヒット率高い気がするけど死んだあとになってからでは
どういう状態だったか確認できないので本当のところはよくわからんです

>576
window 分割って C-x 2 みたいな状態?

日常的に navi2ch 開きっ放しなのでかなりの確率でその状態で
使ってるけど問題だと気づいたことはないです

いまは FreeBSD 6.2-STABLE #18: Wed Sep 5 10:22:02 JST 2007 で
screen-4.0.3 emacs-21.3_10 使ってるけど
0578名無しさん@お腹いっぱい。2008/01/09(水) 17:14:23
screenの下でw3mな端末をたくさん開いてるけど、
attachした時に(SIGWINCHが飛んで?)すげー時間かかることはあるけど、
死にはしないなぁ。

ただなんか別の拍子に>>558みたいになって死ぬことはある。
トリガは不明。
0579名無しさん@お腹いっぱい。2008/01/16(水) 15:20:47
screenの順番(M-n,M-pで移動する順番?)を途中で変更する事は出来ますか?
0580名無しさん@お腹いっぱい。2008/01/16(水) 15:23:09
>>579
numberでウィンドウ番号を替えればおk
0581名無しさん@お腹いっぱい。2008/01/16(水) 15:40:13
>>580
おお、出来ました!
即レスthx!
0582名無しさん@お腹いっぱい。2008/01/18(金) 18:50:05
screenコマンドをタイプして実行すると、カレントディレクトリでシェルが起動するのに
bind ^c screenだとホームディレクトリで起動します。
カレントディレクトリで起動させるにはどうすればいいですか?
0583名無しさん@お腹いっぱい。2008/01/18(金) 19:48:07
>>582
起動中のscreenが、それぞれのウィンドウの実行中プロセスのカレントディレクトリを
取得することができないので、無理。

M-: chdir であらかじめ起動したいディレクトリに移動しとくくらいしかできないな。
05845822008/01/18(金) 20:06:39
>>583
説明の仕方が不十分でした
「screenのセッション中でシェルからscreen、もしくはM-: screenとして実行すると、カレントディレクトリで起動する
しかし、bindしてショートカットでscreenコマンドを実行するとホームディレクトリでシェルが起動する」
という意味です。
05855822008/01/18(金) 20:23:08
>>583
今意味が分かりました
584は忘れてください。
0586名無しさん@お腹いっぱい。2008/01/18(金) 20:23:24
>>584
M-: screen では実行中シェルのカレントディレクトリからは起動しないだろ?
0587名無しさん@お腹いっぱい。2008/01/27(日) 23:38:43
ステータスラインに%Dで曜日を表示しようとすると文字化けしませんか?
何かよい解決方法はありませんかね・・・

あと、ステータスライン上に現在のLANG(エンコード)
を表示させる方法がお分かりの方がいたら、是非教えていただきたいです。
よろしくおねがいします。
0588名無しさん@お腹いっぱい。2008/01/27(日) 23:48:37
日付けや時刻表示はISO 8601スタイルにしてほしいんだがなあ
0589名無しさん@お腹いっぱい。2008/02/01(金) 18:43:13
Debian で screen 使ってます.
TERM=screen
LANG=C
で使ってますが,aptitude の画面が崩れます.
curses とは相性が悪いのでしょうか?
0590名無しさん@お腹いっぱい。2008/02/01(金) 19:02:17
うむむ,Putty で UTF-8 にしたら治った.
UTF-8 (CJK) とか UTF-8 (non-CJK) と何が違うんだろう.
GNU screen 側でのパッチも出てるようだけど,
http://www.pyon.net/diary/20070424.html
特に今は必要ないからそのうち入ると期待しておこう.
0591名無しさん@お腹いっぱい。2008/02/01(金) 22:55:15
つまり、Unicodeな罫線を半角とみるか全角とみるか、曖昧であるということか。
0592名無しさん@お腹いっぱい。2008/02/02(土) 00:21:32
半角ってなんですか
0593名無しさん@お腹いっぱい。2008/02/02(土) 00:22:57
えっちぃ板
0594名無しさん@お腹いっぱい。2008/02/02(土) 17:34:37
>592
wcwidthが1を返すのが妥当な文字
0595名無しさん@お腹いっぱい。2008/02/05(火) 16:55:46
昔「変換」とか「無変換」をエスケープに割り当てる方法を
紹介してるページがあったような気がするのですがいくら探してみても見つかりません。
どなたか教えていただけませんでしょうか。
bindkey で特定のコマンドを割り当てるのは上手くいくのですが。
0596名無しさん@お腹いっぱい。2008/02/05(火) 21:22:15
xmodmapで適当なキーに割り当てればいいんじゃないの?
0597名無しさん@お腹いっぱい。2008/03/03(月) 00:16:05
EUCだと化けた。
0598名無しさん@お腹いっぱい。2008/03/03(月) 00:25:27
PuTTYのごった煮版ってのをはじめて入れたけど
何も設定変えずに、screen下のbashのパスが
タイトルバーに出たりして感動した。
0599名無しさん@お腹いっぱい。2008/03/05(水) 13:11:32
urxvtでマウスを使ってスクロールバックすると、しばらくしてから勝手に最終行に戻ってしまいます
ESC+[でコピーモードに移行し、Ctrl+U等を使ってバッファを遡った場合にはこの現象は起きません
xtermでは起こらないのでurxvtの問題だと思うんですが、何か対策は無いでしょうか?

screen 4.0.3
urxvt 8.3
0600名無しさん@お腹いっぱい。2008/03/05(水) 13:49:44
>>599
それってscreen関係あるのか?
06015992008/03/05(水) 13:57:43
>>600
screen無しだと起きない現象なんで
0602名無しさん@お腹いっぱい。2008/03/05(水) 15:34:59
>>601
> xtermでは起こらないのでurxvtの問題だと思うんですが
urxvtの問題じゃないのか?www
0603名無しさん@お腹いっぱい。2008/03/05(水) 16:46:44
captionの内容が更新されて戻るんだと思う。
urxvt側の設定じゃないかな(ttyに出力があったときにscrollを中断するか)

0604名無しさん@お腹いっぱい。2008/03/05(水) 23:55:29
何もしてないのにcaptionの内容が変わるのか?
screen 4.0.3とurxvt 8.9だけど再現しなかった
0605名無しさん@お腹いっぱい。2008/03/06(木) 00:31:19
screen ってどういうところが便利なの?
gnome-terminal でタブ使用の俺に分かりやすく説明してクレ。
0606名無しさん@お腹いっぱい。2008/03/06(木) 00:41:16
>>605
一番メリットを感じるのは、リモートからsshとかで使っているときじゃないでしょうかね。
複数のコネクションを張らずにすんだり、コネクションが切れても大丈夫とか。
0607名無しさん@お腹いっぱい。2008/03/06(木) 00:56:45
便利に感じない人間までが無理して使う必要があるものとは思えん。
0608名無しさん@お腹いっぱい。2008/03/06(木) 01:52:57
>>605
タ ブ を 使 わ な く て い い と こ ろ
0609名無しさん@お腹いっぱい。2008/03/06(木) 10:55:56
突然端末が死んでもなんとかなるところ。
0610名無しさん@お腹いっぱい。2008/03/06(木) 12:38:55
^端末^俺?
0611名無しさん@お腹いっぱい。2008/03/06(木) 16:09:55
俺が死んだらどうにもならん。
それはさておき >604

> 何もしてないのにcaptionの内容が変わるのか?

時刻とか出すと変わるよ。あとcaptionじゃないけど、monitorとか
してるとactivityがあった時にttyに出力されるよね。

0612名無しさん@お腹いっぱい。2008/03/08(土) 18:52:46
複数スクリーンはあんまり恩恵感じない。
やっぱマシン側に端末があるってのがうれしいね。
0613名無しさん@お腹いっぱい。2008/03/09(日) 16:11:52
スクリーンの起動時に複数ウィンドウを開いてそれぞれをcd する方法を
教えてください。

1: /var/www/root
2: /var/www/app
3: /var/www/action
4: /var/www/view
5: /var/www/template
6: /var/www/log

なかんじで、 .screenrcに書いて出来たら最高でーーす。
おながいします。
0614名無しさん@お腹いっぱい。2008/03/09(日) 18:35:37
>>613
chdir /var/www/root
screen foo
chdir /var/www/app
screen bar
てな感じでどうかね。
06156132008/03/09(日) 18:47:59
>>614様 ありがとうございます。
できました。

screen -t root
chdir /var/www/root
screen -t app
chdir /var/www/app

な感じで出来ました。
.screenrcでコマンドが動くんですね。
設定を記述するのかと思っていました。

よくよく考えたら
bindkey とか ^A: bindkey -k F9 〜
とかやるのと同じ記述をscreenrcにも書きますね。
06166132008/03/09(日) 19:18:18
と思ったら、最初の chdirしか効いていないみたい。
06176132008/03/09(日) 20:01:34
とさらに思ったら、途中から相対パスで書いてたorz

すべて絶対パスで書いたらうまく行きますた。
0618名無しさん@お腹いっぱい。2008/03/21(金) 19:33:44
シェルがscreen上で実行されているかどうか知る方法はありますか?
0619名無しさん@お腹いっぱい。2008/03/21(金) 19:47:51
$TERM見るとか?
06206182008/03/21(金) 19:56:48
>>619
ありがとうございました
0621名無しさん@お腹いっぱい。2008/03/21(金) 21:37:57
$STY の有無で判断することが多いな
0622名無しさん@お腹いっぱい。2008/03/23(日) 01:42:20
screenの中からxtermのタイトルバーをいじる方法。
ESC P ... ESC \ で囲めばできるけど、俺の環境じゃ日本語が通らない。
printf "\033P\033]2;%s\007\033\134" "title"
0623名無しさん@お腹いっぱい。2008/03/23(日) 02:40:38
Linuxの話で恐縮ですが、putty+screen上でmake menuconfigが
崩れずに表示できてる人っていますか?
0624名無しさん@お腹いっぱい。2008/03/23(日) 05:57:06
TERMとかいじったらなんとかならない?
0625名無しさん@お腹いっぱい。2008/03/23(日) 11:27:52
>>623
UTF-8か?
0626名無しさん@お腹いっぱい。2008/03/23(日) 18:00:43
>>624
screen上なのでTERM=screenになっていました。
TERM=xterm make menuconfig
としてみましたが、表示は変わりませんでした。

>>625
UTF-8です。非screen環境ではUTF-8でも表示は崩れません。
LANG=C make menuconfig
をやってみましたが、変わりませんでした。
0627名無しさん@お腹いっぱい。2008/03/23(日) 20:07:31
>>626

screen -T $TERM

で起動してみる.
0628名無しさん@お腹いっぱい。2008/03/23(日) 20:15:01
>>627
ありがとうございます。
やってみましたが、状況は変わりませんでした。
06296272008/03/23(日) 20:28:55
>>628

ていうか PuTTY + Linux で素の screen (TERM は screen になってる) を起動して
make menuconfig してもくずれなかった.

PuTTY: 0.60-jp20070430
Linux: Debian lenny
screen: 4.00.03
06306272008/03/23(日) 20:32:39
う,もしかして linux 上で動く putty (or pterm) ?
0631名無しさん@お腹いっぱい。2008/03/23(日) 20:42:12
ありがとうございます。とりあえず、解決しました。
環境は
PuTTY 0.60-JP_Y-2007-08-06 on WindowsXP
Gentoo Linux(2.6.24のmake menuconfig)
Screen version 4.00.03 (FAU) 23-Oct-06
です。で、変換の文字コードが「UTF-8/Auto-Detect Japanese」
になっていたのを「UTF-8」に変えたら崩れなくなりました。
日本語もおkです。

色々教えてくださった方々、ありがとうございました。
0632名無しさん@お腹いっぱい。2008/03/30(日) 22:18:47
screen 実行中に変更した .screenrc 反映する方法わかんね
0633名無しさん@お腹いっぱい。2008/03/30(日) 22:45:50
^a :source ~/.screenrc だったような
0634名無しさん@お腹いっぱい。2008/03/30(日) 22:48:17
~ は使えなかったので $HOME で。
0635名無しさん@お腹いっぱい。2008/03/30(日) 23:04:44
screenでウィンドウ間のコピーペーストをすると、
途中で途切れるんですけど、コピーする際のサイズとかって
どうやって設定するんですか?
0636名無しさん@お腹いっぱい。2008/03/31(月) 00:01:07
>>633-634

トン
screen のコマンドで source ってのがあるわけか

>>635

さかのぼれる行数のことなら defscrollback
0637名無しさん@お腹いっぱい。2008/03/31(月) 00:22:11
> screen のコマンドで source ってのがあるわけか

え?
0638名無しさん@お腹いっぱい。2008/03/31(月) 11:19:34
>>637
え?
俺もそうだと思ってるんだけど違うの?
0639名無しさん@お腹いっぱい。2008/03/31(月) 11:29:37
>>637,638
へぇ,うちじゃ
$ type source
source is a shell builtin
って出るよ.うちが変わってるのかな.
0640名無しさん@お腹いっぱい。2008/03/31(月) 11:32:24
>>639
> $ type source
> source is a shell builtin
うちもそうでるけど、それが何の関係があるの?
0641名無しさん@お腹いっぱい。2008/03/31(月) 11:36:01
man 見ろよ。アホか。
0642名無しさん@お腹いっぱい。2008/03/31(月) 11:56:11
吹いたwww
0643名無しさん@お腹いっぱい。2008/03/31(月) 11:59:04
これね。
http://www.linux.or.jp/JM/html/GNU_screen/man1/screen.1.html#lbAH
0644名無しさん@お腹いっぱい。2008/04/03(木) 07:49:41
screen使っていると一部の文字が突然文字化けするんだが、
これを防ぐにはどうすればよいいのでしょうか?
0645名無しさん@お腹いっぱい。2008/04/03(木) 11:52:15
>>644
文字化けする環境を述べよ
特に文字コードや端末エミュレータについて
0646名無しさん@お腹いっぱい。2008/04/03(木) 20:38:35
screen でも :encoding ほにゃらら ができるというのを知ってからは
文字化けは回避できるようになったよ。

0647>>6442008/04/04(金) 07:12:01
>>645
文字コードは、EUCです。
端末エミュレータはteraterm使っています。
環境変数TERMはvt100-colorです。
0648名無しさん@お腹いっぱい。2008/04/04(金) 09:13:59
>>646
thx

これは、うれしー
0649名無しさん@お腹いっぱい。2008/04/07(月) 04:23:20
501 :名無しさん@お腹いっぱい。:2007/09/24(月) 19:39:31
>>500
ターミナルエミュレータとTERMの値おせーてください。
自分のとこだとカーネルの make menuconfig すら崩れまくりで
ホント悩んでます。Putty(UTF-CJK)+screen+TERM=screen環境では
ダメダメです。
-------
漏れは putty で UTF-8 (non CJK) を指定しています。
0650名無しさん@お腹いっぱい。2008/04/14(月) 13:35:52
いろんな端末から attach してるとき
端末変えるたびに :encoding するのがめんどくさい
0651名無しさん@お腹いっぱい。2008/04/14(月) 13:39:49
ショートカットをアサインしとけば?
0652名無し募集中。。。2008/04/16(水) 00:15:07
xterm を開いたときに screen を実行している状態になっていてほしいと思い、
xterm -e screen としたのだが、xterm がちらっと開いてすぐに終了してしまう
どうすればよいのでしょうか
0653名無しさん@お腹いっぱい。2008/04/16(水) 00:25:19
普通にできるよ。
すでに起動してるscreenからやるとそういう風になる。
xterm -e screen -x
とかいろいろやりようはあるけど。
0654名無しさん@お腹いっぱい。2008/04/16(水) 01:18:06
shellをscreenにする。
06556522008/04/16(水) 10:58:06
>>653 ありがとうございます 確かに screen 上から実行していました
また VNC のスタートアップファイル (~/.vnc/xstartup) から
xterm -e screen を実行しても xterm が開かなかったので気付きませんでした
VNC の場合はなぜ開かないのでしょう?
.xinitrc に書いて startx したときは開くのに。。。
0656名無しさん@お腹いっぱい。2008/04/16(水) 14:03:55
自動screenは>654 みたいなことしそうで怖いので、alias sc=screen してる。
eeの入力がタルい。
0657名無しさん@お腹いっぱい。2008/04/16(水) 16:38:13
Linuxの操作説明でscreenのマルチユーザーモードを使ってみようと思い、
テスト用ユーザーアカウントを作って色々試しています。

私自身のアカウントをhoge、操作を見てもらうユーザーをtest1、test2として
 1.私のPCからPuTTYでサーバーにhogeでログイン
 2.「screen -S demo」でscreen開始(.screenrcでmultiuser onを指定済み)
 3.「C-a : aclchg test1 -wx "#?"」でtest1に見せるだけの権限を設定
 4.「C-a : aclgrp test2 test1」でtest2がtest1と同じ権限になるよう設定…したつもり
 5.私のPCでPuTTYをもう1つ起動してサーバーにtest1でログイン
 6.「screen -S hoge/demo -x」でセッションに接続
 7.私のPCでPuTTYをさらに起動してサーバーにtest2でログイン
 8.「screen -S hoge/demo -x」でセッションに接続
…という手順をやってみたところ、
test1のPuTTYウィンドウは見るだけの状態になっているものの、
test2のPuTTYウィンドウではls等のコマンド入力ができてしまいます。
ただ、「C-a ?」などとしても「: help: permission denied (user test2)」と出るので
-xの制限はかかっているようなのですが…?

ユーザー毎の権限確認をする方法もわからないので状況がよくわかりません。
「C-a *」でhoge、test1、test2のリストが表示されますが
右端に表示されるのがすべて「rwx」というのも謎です。
aclgrpを使わずにaclchgで全ユーザーを列挙して設定するしかないのでしょうか…?

サーバー側はCentOS 5.0、screen.i386 4.0.3-1.el5で
私のPCはXP Pro(SP2)でPuTTY 0.60 ごった煮版 2007年8月6日版を使っています。
0658名無しさん@お腹いっぱい。2008/04/16(水) 17:50:54
screenをshellにして、そのscreenがscreenを起動して、(ry
ってなった人いる?w
0659名無しさん@お腹いっぱい。2008/04/17(木) 08:09:52
screen でスクロールバックってできるんだっけ?
0660名無しさん@お腹いっぱい。2008/04/17(木) 08:23:12
できるよ。copy mode でカーソル上まで持っててみ。
0661名無しさん@お腹いっぱい。2008/04/17(木) 09:24:24
.bashrc の最後に screen -ls を入れておくと便利。
0662名無しさん@お腹いっぱい。2008/04/17(木) 09:36:23
俺は下のように書いてるな。

if [ $SHLVL = 1 ]; then
screen -dr
fi
0663名無しさん@お腹いっぱい。2008/04/17(木) 09:54:24
>>662
なんかたまにトチ狂って screen のソケットが複数できて
異なる screen がいくつも走ってることがあったので、
念のため screen -ls するようにしてます。
で、手動で screen -dR 。まぁ確かにひと手間多くはなるが。

ところで screen の中から他のホストにつないでその中で
さらに screen って何段にもするとわけわかめ。
こういうことで不具合って出るもん?
0664名無しさん@お腹いっぱい。2008/04/17(木) 11:20:09
>663

不具合っつーほどのものは経験したことがないが、エスケープ何段入れれば
いいのかわからなくなるよね... (キーを変えるという手もあるが)
0665名無しさん@お腹いっぱい。2008/04/20(日) 21:49:19
screen上でemacsを使っていますが,TabキーをEmacsが認識してくれません.
どうすればemacsがtabキーを拾えるようになりますかね?
0666名無しさん@お腹いっぱい。2008/04/20(日) 22:15:40
666ゲト
>665
俺のemacsは認識するよ?
control+i とかでもダメ?
0667名無しさん@お腹いっぱい。2008/04/23(水) 10:53:01
>>666
C-i押してもうまくいきません...
ちなみにTabキー自体は取れないんですか?
screenが取っちゃってるとか?
0668名無しさん@お腹いっぱい。2008/04/23(水) 10:58:06
とりあえずemacsでM-x describe-key C-iしてキーコードが渡ってるか調べるべきだな。
0669名無しさん@お腹いっぱい。2008/04/23(水) 23:49:05
> TabキーをEmacsが認識してくれません

は具体的にどういうことを言ってるのかが問題な気がする。
0670名無しさん@お腹いっぱい。2008/04/24(木) 11:10:45
S で上下にスプリットしたのを元に戻したいんだけど、
どうしたらいいんすか?
0671名無しさん@お腹いっぱい。2008/04/24(木) 12:13:53
>>670
? => only
0672名無しさん@お腹いっぱい。2008/04/24(木) 13:24:05
only か・・・
そういう記述になってるとわ・・
0673名無しさん@お腹いっぱい。2008/04/24(木) 23:14:37
>>656
ナカーマ。sc() { screen -xRR $@; } してる。

>>658
screenセッション中でリモートサーバに入って、そこでうっかり
また screen して親亀小亀状態になりハマったことならある。
■ このスレッドは過去ログ倉庫に格納されています