トップページ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/
0361名無しさん@お腹いっぱい。2007/02/04(日) 12:15:23
無理無理
0362名無しさん@お腹いっぱい。2007/02/08(木) 01:09:23
>>356
フォーカスされたセッションってどんなの?
フォーカスされたウインドウじゃないんだよね。
0363ギレン総帥 ◆0QHV7fcZ.2 2007/02/10(土) 13:11:37
公式に縦分割をサポートした開発バージョンの取得方法
cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/screen co screen

フィードバックは公式MLへ
http://lists.gnu.org/mailman/listinfo/screen-users

アナウンスメッセージはこちら
http://lists.gnu.org/archive/html/screen-users/2007-02/msg00000.html
0364名無しさん@お腹いっぱい。2007/02/11(日) 04:52:29
blogのコピペで手抜きかよw>>ギレン総帥
0365ギレン総帥 ◆0QHV7fcZ.2 2007/02/11(日) 07:22:47
日付を見ればわかると思うが
>>363の方を先に書き込み、blogはそれをコピペした

まぁ手抜きなのは認める
じゃヒーロータイム始まるので、また
0366名無しさん@お腹いっぱい。2007/02/11(日) 11:49:41
blogはコピペで手抜きかよw>>ギレン総帥
0367名無しさん@お腹いっぱい。2007/02/11(日) 13:10:17
   〃∩ ∧_∧
   ⊂⌒(  ・ω・)  はいはいワロスワロス
     `ヽ_っ⌒/⌒c     
        ⌒ ⌒
0368名無しさん@お腹いっぱい。2007/02/12(月) 06:26:33
グッド手抜き、ギレン総帥。
0369名無しさん@お腹いっぱい。2007/02/19(月) 16:37:40
縦分割すごくイイけど、ファイルがいっぱいある dir で
ls -l とかすると、メチャクチャ遅いのはオレのマシンのせいか?

pen3 550MHz memory 768MB の kterm上
0370名無しさん@お腹いっぱい。2007/02/21(水) 21:15:13
>>369
同じく遅い(途中で一瞬停止する)。
pen4 3.2GHz memory 1.5GB の krxvt上

ウィンドウグループとか便利そうだね。

ところで縦2分割したときに、
左の終端と右の先端を繋いでひとつのウィンドウにするような機能はない?
アナウンスを見るかぎりなさそうだけれど。
0371名無しさん@お腹いっぱい。2007/02/22(木) 13:26:51
右と左のウィンドウをつなげてひとつのウィンドウにする...? それってどういうこと?
どっちか閉じれば良い話じゃないの?

それはともかく、オレの狭いモニタじゃ縦分割はあまり使いでがないことがわかったよ。
いまはlayoutをどう使うか思案中
0372名無しさん@お腹いっぱい。2007/02/22(木) 14:52:02
こんな便利ソフトウェアがあったとはorz
長時間かかりそうな作業するときはシェルスクリプト書いてnohupで起動してとかやってね。
馬鹿みたいだ。
0373名無しさん@お腹いっぱい。2007/02/22(木) 15:06:34
>>372
「馬鹿みたい」じゃない。
「馬鹿」なんだ・・・・
0374名無しさん@お腹いっぱい。2007/02/22(木) 15:24:01
>>373
orz orz orz orz orz o..............rz
ちょっとdetachする前に回線吊ってきます。
03753702007/02/22(木) 17:04:41
>>371
わかりづらくてすまん。
一画面上に見える行数が倍になるので嬉しいかな、と。
0376名無しさん@お腹いっぱい。2007/02/22(木) 17:25:07
>>375
|abcdefg|hijk... |

ってスクリーンの見え方ってこと?
("|"はscreenの端を表す)

一画面にして
|abcdefghijk... |
ってのとどう違うのだ?
0377名無しさん@お腹いっぱい。2007/02/22(木) 17:28:45
|abc|jlk|
|def|mno|
|ghi|pqr|
ってことだろ。
03783702007/02/22(木) 18:33:02
>>377
ごめん。その図をはじめに書けばよかった。
ターミナル最大化して使っていて、右のほうが余るからってことです。

もしかしてターミナル側でそういう機能があったりするのかな?
ちょっと調べてみる。
0379名無しさん@お腹いっぱい。2007/02/22(木) 19:15:09
さりげなく jkl が jlk に化ける機能付!
0380名無しさん@お腹いっぱい。2007/02/23(金) 01:23:19
それなら
+-----------+
|abcdefghijk|
+-----------+
|lmnopqrstuv|
+-----------+
って機能も欲しいな。
0381名無しさん@お腹いっぱい。2007/02/23(金) 13:09:04
それって、

+-----------+
|abcdefghijk|
|lmnopqrstuv|
+-----------+

とどう違うの?


↓以下ループ
0382名無しさん@お腹いっぱい。2007/02/23(金) 13:20:43
>>381
emacsとか使ってるなら自動的に折り返してくれるから問題ないが、
w3mとか使うとたまに欲しくなる

…こともある。
0383名無しさん@お腹いっぱい。2007/02/23(金) 13:48:35
つ 札束の力でデュアルモニター
0384名無しさん@お腹いっぱい。2007/03/05(月) 10:37:47
質問

multi display modeで後からattachした画面サイズにscreenの中もなって欲しいんだけど、何か方法ある?
0385ギレン総帥 ◆0QHV7fcZ.2 2007/03/05(月) 11:27:01
回答

^A F (fit)
詳細はman screen
0386名無しさん@お腹いっぱい。2007/03/05(月) 12:00:01
C-a :fit
0387名無しさん@お腹いっぱい。2007/03/05(月) 12:19:11
>>385-386
ありあり

manも軽く見たんだけど聞いた方が早いという甘ったれ
0388名無しさん@お腹いっぱい。2007/03/08(木) 05:48:13
copyモードの /, ? による検索は less/vi のように n, N で検索方向変えられないのは
微妙に使いづらーい

N で逆方向に検索したいよ
0389名無しさん@お腹いっぱい。2007/03/08(木) 07:54:49
>>369
プロファイルとってみたけど
わからんかった orz
emacsの縦分割は遅くないので
描画のしかたが悪いんだろうね
0390名無しさん@お腹いっぱい。2007/03/08(木) 09:00:49
>>389
一部分のスクロールのためのエスケープシーケンスがVT100互換端末にないん
じゃないの? 全部書き直してれば遅いよね
0391名無しさん@お腹いっぱい。2007/03/08(木) 09:17:35
>>390
emacsが速く感じるのはjump scrollしてるからじゃね?
0392名無しさん@お腹いっぱい。2007/03/17(土) 03:04:23
bash on screenな環境で、これ以上文字列消せない(BS不可)な状態で
BSキー押すと毎回一瞬画面が白くなるのですが、
こうならないようにする方法ありませんか?

screenじゃないnative bashでは起こりません。

knoppix linux
tty/ttyp(putty) 両方とも同じ現象が起こります。
0393名無しさん@お腹いっぱい。2007/03/17(土) 04:16:30
>>392
C-a C-gはどうか?
0394名無しさん@お腹いっぱい。2007/03/17(土) 08:36:15
visual bellだっけ
03953922007/03/17(土) 18:36:20
>>393
特に問題ありません。

結局よくならなかったのですが、
KNOPPIX使ってたのはHDをbadblocksするためだけで
その問題なかったHDにGentoo Linux入れて、
そこでのscreenは全く問題ありませんでした。

ということで、とりあえずは解決です。
暇があったら詳しく原因調べてみます。

スレ汚しごめんなさい。
0396名無しさん@お腹いっぱい。2007/03/22(木) 14:03:56
Ctrl + Tabにコマンドを割り当てたくて、
bindkey ^¥011 とかそれっぽいのを、
いろいろ試したんですがダメでした。
おしえてください。
0397名無しさん@お腹いっぱい。2007/03/22(木) 15:24:38
>>396
tab自体がCtrl+I(0x09)だ。
xtermとかの端末レベルで独自のコードを割当てないと無理。
03983962007/03/23(金) 15:42:10
>>397さん
レスどうもです

端末レベルの独自コードを調べる
いい方法があれば教えてください


0399名無しさん@お腹いっぱい。2007/03/23(金) 15:47:26
>>398
使ってる端末は何よ。
0400名無しさん@お腹いっぱい。2007/03/23(金) 17:20:36
調べるっつーか勝手に割り当てろ
04013962007/03/23(金) 17:46:27
ええと、勝手に割りあてる方法がわかってないです。
MacのTerminal.appを使ってます。

TERM_PROGRAM=Apple_Terminal
TERM_PROGRAM_VERSION=133
TERM=xterm-color
0402名無しさん@お腹いっぱい。2007/03/23(金) 17:56:01
>>401
板違い。
0403名無しさん@お腹いっぱい。2007/03/24(土) 00:53:17
複数のユーザで別々のscreenをつかうにはどうしたらいいのでしょうか?
$ screen
^A d
$ su - foo
$ screen
とやると
Cannot open your terminal '/dev/pts/0' - please check.
といわれてしまいます。
0404名無しさん@お腹いっぱい。2007/03/24(土) 01:24:07
>>403
screen -S baka
とかでセッションを分けたらどう?
0405名無しさん@お腹いっぱい。2007/03/24(土) 04:53:33
>>403
su がいけないんじゃないか?これでどうよ
$ screen
^A d
$ su - foo
$ script /dev/null screen
0406名無しさん@お腹いっぱい。2007/03/24(土) 10:04:22
>>405
これで解決です。感謝します
なぜこれで動くのかわかりませんが
0407名無しさん@お腹いっぱい。2007/04/05(木) 17:11:59
screen上でzshを使っているとC-r(インクリメンタルサーチ)が効かなくなったり
C-aやC-eでカーソルを最初や最後に移動ができないんですが
これを直すには.screenrcでどういう設定を行えばいいでしょうか?
0408名無しさん@お腹いっぱい。2007/04/10(火) 21:14:51
なにも
0409名無しさん@お腹いっぱい。2007/04/12(木) 14:52:29
もうちょっとシチュエーションがわからないことにはなんとも。
どういうOSで、ssh経由なのかlocalなterminal emu上なのか、
どんな.screenrcなのか、screenを動かす前のstty -aの出力はどうか、とか。
0410名無しさん@お腹いっぱい。2007/04/19(木) 03:56:23
bashで現在実行しているコマンドを取得してタイトルに反映させるにはどのようにすればよいのでしょう、、

PROMPT_COMMAND 'echo -n -e "\033k$(whoami)@$(hostname):$(pwd)\033\134"'

を変えればよさそうなんですがシェル変数にもなく、調べたところzshの方法はあったのですがbashでの方法がわかりません、、
0411名無しさん@お腹いっぱい。2007/04/20(金) 00:53:36
screenの中で画面をフルに使うアプリケーション(vi, emacs, nethackなど)を使用し、
終了すると、プロンプトに戻ってきたときに、画面の1番上の行からプロンプト位置まで
に以前表示されていた文字がクリアされてしまいます。screenを使わず直接ターミナル
上でこれらのプログラムを起動→終了した場合はこれらの文字は残っています。
これは端末(MacOS X 10.4.9 標準のターミナル.app)によるものでしょうか。screenが
やっているのでしょうか。抑止する(クリアしないで文字を残しておく)ことは可能でしょ
うか。

TERM=xterm-colorを設定しています。シェルはMacOSXのzsh 4.2.3です。
0412名無しさん@お腹いっぱい。2007/04/20(金) 01:25:09
>>411
screenも一応端末なんだけどね
Terminal.appの環境設定で$(TERM)をvt100とかに変えとけば
0413名無しさん@お腹いっぱい。2007/04/20(金) 09:21:32
.screenrc に altscreen を書いたり消したりすると変わるかもしれない。
0414名無しさん@お腹いっぱい。2007/04/20(金) 21:32:50
む、altscreen onでよさげです。
0415名無しさん@お腹いっぱい。2007/04/22(日) 23:47:05
>>410
zshでアレを可能にしてるのはpreexecの存在、ってことでgoogle:preexec+bashしてみたら
ttp://www.twistedmatrix.com/users/glyph/preexec.bash.txt
が見付かった。これを叩き台にすればよろし。
0416名無しさん@お腹いっぱい。2007/04/24(火) 00:12:44
>>415
.bashrcに
export PROMPT_COMMAND='echo -ne "\ek\e\\"'

.screenrcに
一般ユーザーならshelltitle "$|bash"
rootならshelltitle "#|bash"

でいけました!ありがとうございます。

0417名無しさん@お腹いっぱい。2007/04/29(日) 12:58:09
複数のコマンドの実行にはあんまり美しくないけど register + process がセオリー?
0418名無しさん@お腹いっぱい。2007/05/09(水) 22:13:39
これがオイラの GNU Screen の設定だ!!!
http://www.tees.ne.jp/~sin-x/200704b.html#1901
0419名無しさん@お腹いっぱい。2007/05/13(日) 14:10:04
eucからutf8に環境移行中なんだけど、
captionとかが日本語文字化け、これなんとかなりません?
.screenrcには、defencoding utf-8、encoding utf-8 utf-8って
書いてcaptionとか以外は普通に使えてるんだけど。

0420名無しさん@お腹いっぱい。2007/05/14(月) 00:00:54
>>419
移行しなければ問題ない
0421名無しさん@お腹いっぱい。2007/05/14(月) 00:38:55
>>420
つーことは、UTF8だと対処法なし??
captionとかに日本語使うなって事でOK??
0422名無しさん@お腹いっぱい。2007/05/14(月) 01:07:07
なんのためのオープンソースだ
0423名無しさん@お腹いっぱい。2007/05/14(月) 01:46:31
test
0424名無しさん@お腹いっぱい。2007/05/15(火) 22:29:21
>>422
世界を征服したいんですが,screenのソースコードを変更してどうにかできませんか?
0425名無しさん@お腹いっぱい。2007/05/15(火) 23:49:19
>>424
他人任せのお前にゃ無理だ。
0426名無しさん@お腹いっぱい。2007/05/16(水) 15:47:20
まずはHello, world!からだな
0427名無しさん@お腹いっぱい。2007/05/16(水) 15:56:04
make world
0428名無しさん@お腹いっぱい。2007/05/17(木) 18:12:52
make: *** ターゲット `world' を make するルールがありません. 中止.
0429名無しさん@お腹いっぱい。2007/05/17(木) 23:40:44
>>419
cjkパッチを当てると、いろいろ良くなる。
ftp://www.dekaino.net/pub/screen/screen-4.0.2-patch-cjkwidth-cvs-2006052001
0430名無しさん@お腹いっぱい。2007/05/22(火) 22:13:15
info screenの例だと
echo -n -e "\033k\033\134"'
になってるが上手く行かず、
>>416
だと上手く行った
なんでだ?
0431名無しさん@お腹いっぱい。2007/05/23(水) 00:16:43
' が多いとか?
0432名無しさん@お腹いっぱい。2007/05/23(水) 01:15:34
コピペミスだ
'echo -n -e "\033k\033\134"'
コマンドに失敗してたらそうとわかるだろうし、一応非表示文字を書いてるみたいなんだけどなあ
0433名無しさん@お腹いっぱい。2007/05/23(水) 13:26:16
|od だか |hexdump だか |xxd だかして調べてみろよ
0434名無しさん@お腹いっぱい。2007/05/23(水) 14:49:33
失敗例でもscreenはエスケープシーケンスの存在までは理解しているらしい
ただ、bashならtitleを'$|bash:'
シェルの冒頭が
artemis:~/xxx/abc suzukiichiro$
とすると、
window(list)ででてくるのがabcだったんだよ、、、

今は>>416で動いてるんだけど
hexdump -Cでどっちも1b 6b 1b 5cだし、なんでこれで挙動に差が出るのかと
0435名無しさん@お腹いっぱい。2007/05/24(木) 10:15:18
defscrollback の値を今は 1024 にしていて、
もしパフォーマンスなどに特に影響無ければもう少し増やそうかなと思ってますが、
どのくらいまでならいけるもんなんでしょうか?
0436名無しさん@お腹いっぱい。2007/05/25(金) 01:07:16
5000でwindowを9つくらい常時開いてるけど、問題になったことはないよ。
というか、そんなの自分で試せばいいじゃない。

それより、copyでさかのぼったり検索するときに、日本語使いたいんだけど
なんとかならないものですかねぇ。pasteはできるんだけど。
0437名無しさん@お腹いっぱい。2007/05/25(金) 13:59:08
screen.logを日本語使えるエディタで開いておけば?
0438名無しさん@お腹いっぱい。2007/05/26(土) 21:52:51
間違えてC-a sと押してしまったら、端末停止しちゃったのですが
再開する方法ありませんか?
0439名無しさん@お腹いっぱい。2007/05/26(土) 22:00:30
C-qで直らない?
0440名無しさん@お腹いっぱい。2007/05/26(土) 23:19:48
直りました。感謝してます。
04414392007/05/27(日) 06:23:48
>>440
良かった。漏れもはまったことがあるっス。
0442名無しさん@お腹いっぱい。2007/05/27(日) 08:43:14
C-sで停止するので注意ね。ちなみにscreenとは無関係。念のため。

あとレスもらった>>437だけど、常にログを取るのはつらい&windowが複数あると、その数
分だけログファイルができるので作業が少し手間がかかる、何より、さっと検索ができない
(1クッションが必要)ので、なかなか難しそうです。
0443名無しさん@お腹いっぱい。2007/05/27(日) 12:59:27
昔は通信速度が遅かったので,
画面に文字がたくさん流れる処理をしている最中に
C-sで出力の流れを止めて,
しばらくたってから
C-qで再開することで通信を圧迫しなかったんだよね

今はほとんど意味がない機能かも
04444402007/05/27(日) 13:22:30
そういえば、起動時にメッセージが滝のように流れるとき
C-sで止めて確認した記憶があります。
0445名無しさん@お腹いっぱい。2007/05/27(日) 18:19:10
最後のウィンドウを殺しちゃってもscreenはquitしないでほしい
これの実現方法、info見ても思いつかなかったよ
間違って最後のシェル抜けちゃって、いちいちscreenと打ち直すのが面倒なんだけどな
0446名無しさん@お腹いっぱい。2007/05/27(日) 18:26:35
>>445
shell を screen にするか、.*shrc で screen を起動すればいいんじゃね?
0447名無しさん@お腹いっぱい。2007/05/27(日) 19:41:34
エイリアス作っとけ。
0448名無しさん@お腹いっぱい。2007/05/27(日) 20:19:56
.*shrcで起動するだけじゃ駄目じゃないか?
0449名無しさん@お腹いっぱい。2007/05/27(日) 21:22:35
やってみたら予想通りのことが起こった
こういうループの検知とかしてくれるシェルもあった気がするんだが、zshかな?
0450名無しさん@お腹いっぱい。2007/05/27(日) 21:27:12
環境変数見ればええやん。TERM とか。ループってのは ZSHLVL のことかな?
0451名無しさん@お腹いっぱい。2007/05/27(日) 21:31:26
いや、ずっと前、まさにscreenの初期起動関連の設定でミスしたんだが
loop detectedだかなんだかと言われて止めてもらった気がする
詳しい環境は忘れた
0452名無しさん@お腹いっぱい。2007/05/27(日) 23:22:24
$TERMか、、
bashならPROMPT_COMMANDで、screen抜けちゃったときに、自動的に起動し直すように設定できるな
なんか汚いし遅そうだが
0453名無しさん@お腹いっぱい。2007/06/15(金) 00:09:07
No other window
とか左下に出してる間は、標準入力に書けなくて下のプログラムがブロックしてるっぽいな
mplayerで再生中にこれやっちゃうと、再生がプチプチ止まる
どっちかっつうとmplayerのせいかな
0454名無しさん@お腹いっぱい。2007/06/15(金) 18:32:55
screen からコマンドを実行したときに、コマンドからのエラーメッセージが
出るときがあります。他のコマンドを実行したときに、古いメッセージが
ちらっと見えるのが気になってしょうがないのですが、この領域をクリア
する方法はありませんか。
0455名無しさん@お腹いっぱい。2007/06/20(水) 07:09:34
sshで繋げたとたんにscreen起動して欲しいのですが。
CentOS4 + putty + bash + opensshです。
0456名無しさん@お腹いっぱい。2007/06/20(水) 07:43:56
>>455
自分で起動するんじゃだめなん?
ssh -t REMOTE_HOST screen
駄目ならあれだ、ログインシェルを screen にすれ。
0457名無しさん@お腹いっぱい。2007/06/20(水) 12:21:12
その場合、screenにbashを起動するとか指定しないと
無限ループになる気がする
0458名無しさん@お腹いっぱい。2007/06/20(水) 13:18:16
そうさせないための工夫は色々あり得るけど
大したメリットがない割にリスクがある自動化処理は
やらないに越したことはない
0459名無しさん@お腹いっぱい。2007/06/20(水) 14:28:54
ssh_screen ()
{
eval server=$1;
screen -t "$server[ssh]" ssh "$@"
}
0460名無しさん@お腹いっぱい。2007/06/20(水) 23:16:07
>>455
.profile の最後にこんなの書いてみるとか

screen_opt='-x'
if [ $SHLVL -eq 1 -a x$SSH_TTY = x`tty` ] ; then
 screen $screen_opt
fi
0461名無しさん@お腹いっぱい。2007/06/20(水) 23:43:37
>>456-460 産休。
色々教えてくれてありがと。
めんどくさそうなのと、どうやら自動的にscreenを起動するのは
一般的でない気がして来たので、毎回screenと打つことにします。
■ このスレッドは過去ログ倉庫に格納されています