トップページ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/
0310名無しさん@お腹いっぱい。2006/12/23(土) 23:27:54
make; eject あたりでいいじゃん。
これのノリで。
http://0xcc.net/cdbiff/
0311名無しさん@お腹いっぱい。2006/12/24(日) 02:01:22
リモートのマシンとかCD-ROMdriveがないマシンでどうするかが課題か。
0312名無しさん@お腹いっぱい。2006/12/24(日) 11:46:28
finish 用の画面に切り替えるんじゃだめか?
0313名無しさん@お腹いっぱい。2006/12/25(月) 11:35:52
もう面倒だからwallしちゃえ
0314名無しさん@お腹いっぱい。2006/12/26(火) 03:32:28
マウスでリージョンを選択することはできないんですかね?
0315名無しさん@お腹いっぱい。2006/12/26(火) 07:22:14
はい、できません
0316名無しさん@お腹いっぱい。2006/12/27(水) 01:32:09
そうですか。
0317名無しさん@お腹いっぱい。2007/01/02(火) 16:17:06
Shift+上下左右
xclip
の組み合わせ
03183172007/01/02(火) 19:24:55
ごめ、上下左右ってのはドラッグな。
0319名無しさん@お腹いっぱい。2007/01/02(火) 19:27:17
screen 実行してる端末と x 動いてる端末が同じならそれでいいんじゃね。
0320名無しさん@お腹いっぱい。2007/01/02(火) 19:38:13
>>317
よくわからないけど、こうしてみました。
KTerm*VT100.translations: #override \
Shift <Btn1Down>: string(0x14) string(0x6e)\n\
Shift <Btn2Down>: string(0x14) string(0x09)\n\
Shift <Btn3Down>: string(0x14) string(0x70)\n\
これでShift+Btn2 で C-t C-i が送られてリージョン切り替えできるんだけど、
同時にクリップボード貼り付けもされてしまいます。
これは防げないのでしょうか。
0321名無しさん@お腹いっぱい。2007/01/08(月) 21:16:34
clearコマンドを使うと、現在のウィンドウが消えますが、
スクロールバッファには残っています。ハンカク文字列板の
スレ一覧とかが残っているのを消しておきたいような場合、
スクロールバッファも消すにはどうしたらよいですか。
スクロールバッファが消えていると怪しまれる可能性に
ついては考慮しないことにします。
あとついでにクリアした分のスクロールバッファが占有して
いるメモリをfreeして(OSによっては)返還できますか?
0322名無しさん@お腹いっぱい。2007/01/08(月) 21:34:46
そういうのは家で見れ。
0323名無しさん@お腹いっぱい。2007/01/08(月) 21:57:06
窓を殺せばいいじゃん
0324名無しさん@お腹いっぱい。2007/01/08(月) 23:03:11
普段、タイトルバーにカレントディレクトリを表示させる設定にしているんですが、
screenを起動するとscreenの設定値に上書きされてしまうので、
いまいちscreenを常用する気になれないでいます。

screen使いながら、タイトルバーにカレントディレクトリを動的表示する方法を
知ってる人いたらお願いします。

シェルはcshですので、cshの場合でお願いします。
(シェルを変えろという話はなしで・・・)
0325名無しさん@お腹いっぱい。2007/01/08(月) 23:51:46
何のタイトルバーよ。
0326名無しさん@お腹いっぱい。2007/01/09(火) 00:20:11
>>325
失礼。

端末エミュレータね。xterm使ってます。
0327名無しさん@お腹いっぱい。2007/01/09(火) 01:18:49
tcshなら余裕だが、cshは知らん。
以上
0328名無しさん@お腹いっぱい。2007/01/09(火) 01:33:05
>>327
tcshならできる?
参考に聞いときましょ。
0329名無しさん@お腹いっぱい。2007/01/09(火) 02:18:10
>>324
screen をハックするのが手っ取り早いんじゃないの
0330名無しさん@お腹いっぱい。2007/01/09(火) 22:30:35
>>329
ハック?Cソースをいじるってことだよね?
ここ何年もCはご無沙汰なんで、腰が引けるなぁ〜

あと、ソースいじることで関係ないとこで、
変な動作になるのが、怖いんだよね。

費用対効果を考えると、シェルかscreenのコマンドを
使って設定するほうが良いかと・・・

というわけで、>>327さん、tcshでの設定お願いします。
0331名無しさん@お腹いっぱい。2007/01/09(火) 22:48:59
だが断る
0332名無しさん@お腹いっぱい。2007/01/09(火) 23:37:57
>>331
知らないならいいよ。
知ってる方います〜?お願いしま〜す。
0333名無しさん@お腹いっぱい。2007/01/10(水) 00:26:35
>>330
すでにタイトルバーに表示させる設定にはしてるんでしょ? だから
hardstatus とか使えば場所は違うけど表示はできるわけでしょ。
あとはそれを端末のタイトルバーに出すだけ。簡単じゃん。
費用対効果とか言ってる暇あったらハックしろって。
0334名無しさん@お腹いっぱい。2007/01/10(水) 00:46:47
 こ の ス レ は 終 了 致 し ま し た 。

  長 い 間 ご 支 援 あ り が と う ご ざ い ま し た 。





                                          〜終〜
03353332007/01/10(水) 00:49:48
>>330
もし今 hardstatus を使ってなければの話だが、.screenrc に
termcapinfo * 'hs=\E]2;\7:ds=\E]2;\7:ts=\E]2;:fs=\7'
hardstatus lastline '%h'
と書くのはどうよ
0336名無しさん@お腹いっぱい。2007/01/10(水) 01:18:59
>>333
hardstatusって、調べたらscreenのコマンドじゃん。
コマンド実行時に変更可能で、
あとエスケープシーケンスも適用できるみたいね。

>>335
こういう方法もあるんだ・・・
意味は全然わからんけど、
そのまま使えそうだから試してみるよ。

なんとなく、できそうってわかったよ。
助かった。どーもね。

0337名無しさん@お腹いっぱい。2007/01/12(金) 18:00:20
シェルスクリプト内で
echo -n -e "\033k${s}\033\\"
とすることでタイトルを ${s} に変更することができますが
元に戻すために予めタイトルを取得しておくには
どうすればいいのでしょうか?
シェル側で戻してやるしか方法はないでしょうか?
0338名無しさん@お腹いっぱい。2007/01/12(金) 18:10:38
→私家版
0339名無しさん@お腹いっぱい。2007/01/13(土) 11:13:03
>>337
gentoo だと ~/.bashrc で PROMPT_COMMAND に定義されている内容で
タイトルが出るので、そのコマンドを実行すればいいことになるのだが。。。

あと私の環境だと echo -n -e "\033k 〜 でタイトル設定は出来なかった。
echo -n -e "\033]0; 〜 \007"
ならウィンドウ・タイトルと最小化したときの名前が変わった。

echo -n -e "\033]2; 〜 \007"
だとウィンドウ・タイトルのみで最小化したときの名前は変わらなかった。

man console_codes を読んだら、確かにそう書かれていた。
0340名無しさん@お腹いっぱい。2007/01/14(日) 19:33:32
恐らく sjis 環境で使っている人は少ないとは思うのですが、パッチを作ってみましたので公開します。

1. sjis 変換修正パッチ
encoding utf8 sjis の設定下だと、ほとんどの種類の記号が入力できなくなる点を修正します。

2. cp932 変換版
メインは sjis と Unicode との変換用テーブルの差し替えです。変換を Microsoft による変換に合わせます。
いわゆる WAVE DASH - FULL WIDTH TILDE 問題あたりの挙動が変わります。
また、115〜119 区にある IBM 拡張文字についても変換が可能となります。こちらはパッチによる修正が必要です。

バイナリは cygwin 向けに作成していますが、パッチ等はどの環境でも同様に有効だと思います。
ttp://yak.myhome.cx/junks/index.html#cygwin.screen
0341名無しさん@お腹いっぱい。2007/01/15(月) 12:48:51
>>338>>339
ありがとうございます.
スクリプト内だけでなんとかしたいので,
終了時に $SHELL にでもリセットしておくことにします.
0342名無しさん@お腹いっぱい。2007/01/15(月) 14:31:54
>>340
本家に投げてやれよ...
0343名無しさん@お腹いっぱい。2007/01/15(月) 22:20:24
>342
どーも。
sjis 変換修正パッチの方は投げたほうがいいかな、と思ったらすでに相当のものが上がっていました。
https://savannah.gnu.org/bugs/?17842

cp932 変換版は豪快に挙動を変えてしまいますので本家に投げるのはふさわしくないかと思います。
cp932 と sjis とを切り替えられるようにできればありかとは思うのですが、簡単には実現できなさそうだったので、
差し替えるだけになっています。
0344名無しさん@お腹いっぱい。2007/01/19(金) 12:49:57
screen なしでは生きていけない体になるくらい便利ですね。
ところで、二つの ssh クライアントで同じサーバにつないで、
それぞれの ssh に同じ screen の管理下のウィンドウを表示
したいのですが、可能なんでしょうか?

何を言っているのだと思われるかも知れませんが、
screen で上下に split している画面のうち片方を、
別につないだもう一つの ssh に表示したいのです。
0345名無しさん@お腹いっぱい。2007/01/19(金) 12:54:45
可能
0346名無しさん@お腹いっぱい。2007/01/19(金) 13:23:00
別の端末からもう一回 screen しても、新たな screen が
立ち上がるだけで、すでに別の端末で起動している screen の
管理下にあるウィンドウをもらえるわけじゃないんですよね?

クソッ、とおもって screen -dr したら丸ごと
こっちの端末に来ちゃった・・・・・
丸ごとじゃなくて一部のウィンドウだけくれ〜
そもそも ^Z (私はエスケープを ^Zに割り当ててます) * で
ディスプレイ一覧なるものが出るのだから、
一つの screen プロセスが複数の端末をつかんで
それぞれの端末に自由にウィンドウを表示できるように
なっているのだと信じてます。manpage 読んだら分かる?
0347名無しさん@お腹いっぱい。2007/01/19(金) 13:39:34
-x Attach to a not detached screen session. (Multi display mode)

こ、これか?これなのか!?
0348名無しさん@お腹いっぱい。2007/01/19(金) 21:55:44
>>347 それだ、それなのだ

つ sc() { screen -x || screen; }
0349名無しさん@お腹いっぱい。2007/01/20(土) 00:49:12
つ screen -xR
0350名無しさん@お腹いっぱい。2007/01/22(月) 00:37:20
なんだか忘れたが screen -xRR がいいといわれて以来そうしている
0351名無しさん@お腹いっぱい。2007/01/22(月) 13:23:34
何が違うんでそ
0352名無しさん@お腹いっぱい。2007/01/23(火) 11:18:57
screen -xR hoge
というのを screen 起動スクリプトにしてる。
どの端末から入っても単一のセッションにアタッチできる。
0353名無しさん@お腹いっぱい。NGNG?2BP(1)
>>351
man screen
0354名無しさん@お腹いっぱい。2007/02/03(土) 10:27:57
先刻、 screen が異常終了したんですが、それからというもの

$ screen
/var/run/utmp: No such file or directory
/etc/ttys: No such file or directory

となって、screen を起動できなくなってしまいました.
どうすればこの症状が直りますか?
0355名無しさん@お腹いっぱい。2007/02/03(土) 10:33:53
ぶっ壊れバージョンを使用してただけでした
テヘッ
0356名無しさん@お腹いっぱい。2007/02/03(土) 11:18:38
hardstatus でフォーカスされたセッションには
"[%n:%H]" ってセットしてるんだけど、フォーカスされて
ないセッションは "%n:%H" のようにしたいんですが、
その場合、 hardstatus をどのようにセットすればいいですか?
0357名無しさん@お腹いっぱい。2007/02/03(土) 19:01:11
単純な表示だけで細かい指定はできないんじゃないかな
0358名無しさん@お腹いっぱい。2007/02/04(日) 00:06:12
%Fと%?を使えばできそうな。
0359名無しさん@お腹いっぱい。2007/02/04(日) 04:19:23
>>358
詳しく
0360名無しさん@お腹いっぱい。2007/02/04(日) 09:40:04
info嫁
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での方法がわかりません、、
■ このスレッドは過去ログ倉庫に格納されています