GNU screen その5
■ このスレッドは過去ログ倉庫に格納されています
0001ミスタースクリーン
2006/05/27(土) 18:18:42GNU本家 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/
0657名無しさん@お腹いっぱい。
2008/04/16(水) 16:38:13テスト用ユーザーアカウントを作って色々試しています。
私自身のアカウントを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ってなった人いる?w
0659名無しさん@お腹いっぱい。
2008/04/17(木) 08:09:520660名無しさん@お腹いっぱい。
2008/04/17(木) 08:23:120661名無しさん@お腹いっぱい。
2008/04/17(木) 09:24:240662名無しさん@お腹いっぱい。
2008/04/17(木) 09:36:23if [ $SHLVL = 1 ]; then
screen -dr
fi
0663名無しさん@お腹いっぱい。
2008/04/17(木) 09:54:24なんかたまにトチ狂って screen のソケットが複数できて
異なる screen がいくつも走ってることがあったので、
念のため screen -ls するようにしてます。
で、手動で screen -dR 。まぁ確かにひと手間多くはなるが。
ところで screen の中から他のホストにつないでその中で
さらに screen って何段にもするとわけわかめ。
こういうことで不具合って出るもん?
0664名無しさん@お腹いっぱい。
2008/04/17(木) 11:20:09不具合っつーほどのものは経験したことがないが、エスケープ何段入れれば
いいのかわからなくなるよね... (キーを変えるという手もあるが)
0665名無しさん@お腹いっぱい。
2008/04/20(日) 21:49:19どうすればemacsがtabキーを拾えるようになりますかね?
0666名無しさん@お腹いっぱい。
2008/04/20(日) 22:15:40>665
俺のemacsは認識するよ?
control+i とかでもダメ?
0667名無しさん@お腹いっぱい。
2008/04/23(水) 10:53:01C-i押してもうまくいきません...
ちなみにTabキー自体は取れないんですか?
screenが取っちゃってるとか?
0668名無しさん@お腹いっぱい。
2008/04/23(水) 10:58:060669名無しさん@お腹いっぱい。
2008/04/23(水) 23:49:05は具体的にどういうことを言ってるのかが問題な気がする。
0670名無しさん@お腹いっぱい。
2008/04/24(木) 11:10:45どうしたらいいんすか?
0671名無しさん@お腹いっぱい。
2008/04/24(木) 12:13:53? => only
0672名無しさん@お腹いっぱい。
2008/04/24(木) 13:24:05そういう記述になってるとわ・・
0673名無しさん@お腹いっぱい。
2008/04/24(木) 23:14:37ナカーマ。sc() { screen -xRR $@; } してる。
>>658
screenセッション中でリモートサーバに入って、そこでうっかり
また screen して親亀小亀状態になりハマったことならある。
0674名無しさん@お腹いっぱい。
2008/04/26(土) 01:18:40たまには /usr/bin/sc のことも思いだしてあげて下さい。
外部コマンドという理由だけで関数やエイリアス達に邪険にされる不憫に、僅かな慈悲を。
Homepage: http://ibiblio.org/pub/Linux/apps/financial/spreadsheet/
Description: sc is a free curses-based spreadsheet program that uses key bindings similar to vi and less.
0675名無しさん@お腹いっぱい。
2008/04/26(土) 04:02:06du ed ex hd id ld ln ls lv lz m4 mf
mt mv nl nm od pg pr ps sg sq rl
rm sh sl su tr uz ul vi wc
手元のマシンの二文字コマンド。
0676名無しさん@お腹いっぱい。
2008/04/26(土) 06:16:17/usr/binに得体の知れないものをつっこむな
0677名無しさん@お腹いっぱい。
2008/04/26(土) 14:57:320678名無しさん@お腹いっぱい。
2008/04/26(土) 14:59:400679名無しさん@お腹いっぱい。
2008/04/26(土) 15:59:570680名無しさん@お腹いっぱい。
2008/04/26(土) 17:30:310681名無しさん@お腹いっぱい。
2008/04/26(土) 17:39:28$ cd /opt; ls
Adobe/
RealPlayer/
opera/
sun-jdk-1.6.0.05/
screen とは全く関係ないんでもうここら辺で
0682名無しさん@お腹いっぱい。
2008/04/26(土) 17:44:47http://www.pathname.com/fhs/pub/fhs-2.3.html#OPTADDONAPPLICATIONSOFTWAREPACKAGES
0683名無しさん@お腹いっぱい。
2008/04/26(土) 23:20:021行削ってでも常に表示しておきたいんですが、どうしたらいいですか?
0684名無しさん@お腹いっぱい。
2008/04/26(土) 23:22:00caption always '%{= wk} %-w%{=bu dc}%n %t%{-}%+w %= %{=b wb}%y/%m/%d(%D) %{=b wb}%c'
0685名無しさん@お腹いっぱい。
2008/05/01(木) 05:41:22caption でウィンドウリストを表示させてるんだけど、
一番下の行にあると、プロンプトのすぐそばで目障りなんで
caption の表示位置を画面上部に変えたいんだけど、そういうのって可能?
0686名無しさん@お腹いっぱい。
2008/05/11(日) 20:49:02プロンプトの最後に改行いれてるので
目障りじゃない
0687名無しさん@お腹いっぱい。
2008/05/11(日) 21:10:34上下分割して上の画面を1行に設定。
そこに、screenのcaptionを擬して表示するスクリプトを動かしとけばOK.
かな
0688名無しさん@お腹いっぱい。
2008/05/11(日) 21:44:380689名無しさん@お腹いっぱい。
2008/05/11(日) 22:12:550690名無しさん@お腹いっぱい。
2008/05/15(木) 13:36:05画面最下行の一行を取られるのは頭にくるので、
ウィンドウの枠に表示させてる。
常時表示は不要なので、見るときはprefix wで。
0691名無しさん@お腹いっぱい。
2008/05/15(木) 15:38:560692名無しさん@お腹いっぱい。
2008/05/15(木) 16:52:35メールの一覧をスクロールさせてると表示が崩れる。
$TERM を xterm や vt100 に変更してみても変わらない。
0693名無しさん@お腹いっぱい。
2008/05/15(木) 16:57:180694名無しさん@お腹いっぱい。
2008/05/15(木) 17:21:44mutt + screen に問題を感じたことはないなぁ…
mutt の表示をマウスでコピペすると
後ろに画面幅分のスペースがダダダとついちゃうのは
screen に限った話じゃないし…
0695名無しさん@お腹いっぱい。
2008/05/15(木) 18:01:51http://up2.viploader.net/upphp/link.php?updir=src&file=vlphp204759.png
EUC-JP 環境での表示
http://up2.viploader.net/upphp/link.php?updir=src&file=vlphp204760.png
EUC-JP での文字化けは置いといて、 UTF-8でもEUC-JP でも崩れる。
EUC-JPのほうが崩れかたが少ないけど。
0696名無しさん@お腹いっぱい。
2008/05/15(木) 18:20:20ターミナルエミュレータは? あと、screenになんらかのパッチは当たっている?
ちなみにPuTTYで文字コード UTF-8で、screenにscreen-4.0.2-patch-cjkwidth-cvs-2006052001が
当たっている場合だと無問題。この場合、PuTTYで文字コードUTF-8 (CJK) では問題が出る。
0697名無しさん@お腹いっぱい。
2008/05/15(木) 21:28:08画像のは gnome-terminalで、他にも konsole, xterm, mlterm 等
いろいろ試したけれどすべてのターミナルエミュレータでほとんど変わらず。
使ってるのはこれ。
$ screen -v
Screen version 4.00.03 (FAU) 23-Oct-06
http://packages.debian.org/etch/screen
0698名無しさん@お腹いっぱい。
2008/05/15(木) 22:06:45~/.screenrcに
defencoding eucJP
とか書いてる?
0699名無しさん@お腹いっぱい。
2008/05/15(木) 22:43:27ちなみにUTF-8パッチはバージョンナンバーには現れない。
んまぁ九分九厘パッチは当たっていないのかな。それならEUCのほうが
表示は崩れないだろうね。
>>698
んで、
UTF-8の場合は
defutf8 on
utf8 on
defencoding utf-8
encoding utf-8 utf-8
ってな感じ。
0700名無しさん@お腹いっぱい。
2008/05/15(木) 23:07:59がいるかも。
0701名無しさん@お腹いっぱい。
2008/05/16(金) 08:25:38Emacs の utf-8 の文字幅と一部違う所あるし。
0702名無しさん@お腹いっぱい。
2008/05/16(金) 09:37:060703名無しさん@お腹いっぱい。
2008/05/16(金) 10:27:530704名無しさん@お腹いっぱい。
2008/05/16(金) 10:42:27例えば japanese-jisx0208 のギリシャ文字と greek-iso8859-7 のギリシャ文字があるとする。
emacs はそれぞれの文字幅が違うことを認識してくれるんだけど、screen は cjkwidth の
ON/OFF でしか切り替わらないから、多言語環境だとどうしてもずれるんだよね。
まぁemacsの方でどちらも同じ幅だと指定すればあまり綺麗ではないけど解決できるが。
mule-unicode-0100-24ff の範囲の文字幅が screen と違うのは mule-ucs が悪いな。
0705名無しさん@お腹いっぱい。
2008/06/28(土) 02:38:11しることはできませんか。
0706名無しさん@お腹いっぱい。
2008/06/28(土) 05:45:57$STYを見ればいいのですね。
0707名無しさん@お腹いっぱい。
2008/07/09(水) 20:49:46良い方法ないでしょうか?
新規に開いて、stuffで流しこめばと考えたのですが、
ファイルにスペースやシングルクォートがあると失敗してしまいます。
#!bin/sh
screen -X eval "stuff $1" "stuff $2" 'stuff "^M"'
stuffコマンドだとクォートの付けかたが判り辛くて、、
他の方法でも結構ですので御教授ください。
0708名無しさん@お腹いっぱい。
2008/07/09(水) 22:01:13screen -X eval 'stuff $1' 'stuff `/bin/cat tmpfilename`' 'stuff "^M"'
ってやってみたらどうですか?
または実行したいコマンドラインそのものを一時ファイルに書き出す
0709名無しさん@お腹いっぱい。
2008/07/10(木) 15:21:29あっ、なるほど。
/tmpあたりに実行シェル作ってそのパスを、
stuffで流し込んだ方が手っ取り早いですね。
クォートばかりに目がいって、気づかなかった。ありがとうございます。
0710名無しさん@お腹いっぱい。
2008/08/10(日) 01:42:33x sever(xmingを使ってます)でlinuxのシステムに接続してscreenを起動します
そしてそのscreenからfirefoxやemacs(-nwつけてない)をXで起動します
接続を切断します
再びつないで、さっきのscreenにつなぐとfirefoxとかemacs の
プロセスは残ってるんですが、コレってまたXで表示させられます?
firefoxとか打ち込んでみたりfg %1とかしても表示されません
0711名無しさん@お腹いっぱい。
2008/08/10(日) 02:00:03要はXのscreenみたいなやつ。
いくつかあったが名前は忘れた。
0712名無しさん@お腹いっぱい。
2008/08/10(日) 02:04:090713名無しさん@お腹いっぱい。
2008/08/10(日) 15:30:03app側で対応するか、全部仮想化するかになるよね。
0714名無しさん@お腹いっぱい。
2008/08/10(日) 20:50:16なんとかする方法はなくもないが、基本無理ということですね
0715名無しさん@お腹いっぱい。
2008/09/01(月) 09:30:54ハイバネーションみたいなかんじで、
ファイルに書き出しておいて、
アタッチするときに読み込んで復元、
みたいな機能はないんですよね?
学校みたいな共用マシンだと nohup では困るんですよね。
NFS でどのホストでも同じファイル使えるようになっていたりするから、
上記のような仕組みだと history の上級版みたいなかんじで便利なんですが。
0716名無しさん@お腹いっぱい。
2008/09/01(月) 10:53:22screenでは無理です
技術的に解説すると、screenはttyの仮想化をしているだけで
仮想機械を実装しているわけではないので望むようなことはできません
つーか、screenのプロセスをいつも同じマシンに置くことに決めて
目の前のマシンからその常駐マシンにsshすれば済む話ではないのですか?
それとも共用マシン間のリモートログインが禁止されているとか?
0717名無しさん@お腹いっぱい。
2008/09/01(月) 12:49:44やはり無理ですか。結局デタッチが使えないなぁ。
>つーか、screenのプロセスをいつも同じマシンに置くことに決めて
そのホストを誰かが使うかもしれないので、
迷惑行為になってしまうです。
ではでは
0718名無しさん@お腹いっぱい。
2008/09/01(月) 23:50:390719名無しさん@お腹いっぱい。
2008/09/02(火) 04:02:19ファイルに書き出すってことは、セッションを維持する必要はないんだよね。
make中にデタッチしたいとかの。
なら、zshのsharehistoryあたりと.screenrcからscreenを呼ぶのでそこそこ
満足できるんじゃねーの。
0720名無しさん@お腹いっぱい。
2008/09/02(火) 21:09:25一応
http://cryopid.berlios.de/
CryoPID - A Process Freezer for Linux
こういうのがある。
制限多いから使えるかどうかわからんけど
0721名無しさん@お腹いっぱい。
2008/09/03(水) 17:50:250722名無しさん@お腹いっぱい。
2008/09/03(水) 21:22:540723名無しさん@お腹いっぱい。
2008/09/03(水) 21:39:34人気の低そうなマシンを選んでおけばいい
0724名無しさん@お腹いっぱい。
2008/09/03(水) 22:00:040725名無しさん@お腹いっぱい。
2008/09/03(水) 22:37:13勝手に~/に入れたけど。
0726名無しさん@お腹いっぱい。
2008/09/03(水) 23:19:07漏れもしばらくわからんかった
0727名無しさん@お腹いっぱい。
2008/09/03(水) 23:23:28いいのいいの
気にしないでいいのなんなら消してもいいよ
この先も使わないだろうから
なんつーか過去の遺産みたいもんだ
って5年前に教えられました
0728名無しさん@お腹いっぱい。
2008/09/04(木) 09:01:26そこから書き込んでいます、とかだったら誉めてやる
0729名無しさん@お腹いっぱい。
2008/09/04(木) 11:50:510730名無しさん@お腹いっぱい。
2008/09/05(金) 04:01:03screen 使うとターミナルのスクロールが使えなくなったりするのはふつうなんでしょうか?
なにか設定がいるのでしょうか?
0731名無しさん@お腹いっぱい。
2008/09/05(金) 04:25:09画面の書き換えしているアプリでスクロールバーがまともに効かなくなるというのは
理解できる?
screenはまさに画面の書き換えをしているアプリなわけで。
0732名無しさん@お腹いっぱい。
2008/09/05(金) 05:43:26termcapinfo * ti@:te@
0733名無しさん@お腹いっぱい。
2008/09/05(金) 07:06:17ターミナルのスクロールバーは使うな。
C-a[ で後はhjkl/^B^F^N^Pで好きなだけカーソル移動してスクロールできる。
^Vでスクロールモード(コピーモード)解除。/?^S^Rでバッファ内検索もできる。
0734ギレン総帥 ◆0QHV7fcZ.2
2008/09/05(金) 11:13:34起動時の -h オプションでスクロールバック行数を指定するか
.screenrcやC-a :で defscrollback や scrollbackで行数指定すれば
遡れる行数を増やすことは可能
0735名無しさん@お腹いっぱい。
2008/09/08(月) 17:21:56たまにだけど激しくさかのぼってビルド過程を
みたいことがあって,一億行くらいさかのぼりたい.
0736名無しさん@お腹いっぱい。
2008/09/08(月) 17:22:380737名無しさん@お腹いっぱい。
2008/09/09(火) 23:11:54つ C-aH
10億行でも大丈夫。
0738名無しさん@お腹いっぱい。
2008/09/10(水) 21:34:010739名無しさん@お腹いっぱい。
2008/09/18(木) 21:17:45つ ttp://hogehoge
みたいになるんですが、これって何でですか?
0740名無しさん@お腹いっぱい。
2008/09/19(金) 11:53:080741名無しさん@お腹いっぱい。
2008/09/20(土) 00:03:190742名無しさん@お腹いっぱい。
2008/09/20(土) 02:07:340743名無しさん@お腹いっぱい。
2008/09/20(土) 07:16:27エスケープ文字を2回うてばいいことに気がつけばなんてことはない
例) ^A^A^Dで内側のscreenをデタッチ
0744741
2008/09/20(土) 09:45:04ありがとうございます、できました^^
0745名無しさん@お腹いっぱい。
2008/10/12(日) 23:49:10現在は.screenrc で hardstatus alwayslastline "%w" となっており、↓の様にlastline に表示されるだけです。
0 bash 1 bash 2 bash 3* bash
0746名無しさん@お腹いっぱい。
2008/10/13(月) 06:02:39だったらマニュアル嫁といいたいところだが
リモートログインしてる状態であればリモートホスト名を表示とか?
もしそうだとするとmessageやshell titleを
PROMPT_COMMANDなどで指定する方法が使えるよ
設定方法はこのスレを探せば載ってる
0747名無しさん@お腹いっぱい。
2008/10/13(月) 16:59:57後者です。一つの中央サーバでscreen 立ち上げて、そこからフラットツリー的に何十のホストにssh するので、
下にホストネームが出てくれるとむちゃくちゃ便利です。
このスレ探しましたが載ってませんでした
0748名無しさん@お腹いっぱい。
2008/10/13(月) 22:14:07わかると思ったんだけど考える気がないようだな
bashでPROMPT_COMMANDとメッセージを使った回答例あげとくけど
自分でも考えろよ
hardstatus alwayslastline " %n: %h"
としておいて
PROMPT_COMMAND='echo -en "\e]0;$HOSTNAME\a"'
でステータス行にウィンドウ番号とホスト名が表示される
自分ではPS1="\e]0;\\u@\\h:$PWD\a\\u@\\h\\$ "とかやってるわ
0749名無しさん@お腹いっぱい。
2008/10/14(火) 00:01:48<~/bin/scssh>
#!/bin/sh
screen -t $1 ssh $1
ぐらいで済ませてる。これぐらいでも9割は用は足りるんだけどね。
0750名無しさん@お腹いっぱい。
2008/10/14(火) 00:50:29ほうこれはいい
0751名無しさん@お腹いっぱい。
2008/10/14(火) 09:12:47最下行に loginname@host:dir とかを表示するのはできてるけど
xterm/kterm のタイトルに同様に表示させるってのが
どうやるのか良くわからないです…
# hardstatus をタイトルバー/アイコンに表示
termcapinfo xterm 'hs:ts=\E]0;:fs=\007:ds=\E]0;screen\007'
termcapinfo kterm 'hs:ts=\E]0;:fs=\007:ds=\E]0;screen\007'
caption always "\033[37;46m%3n %t%? @%u%?%? \033[37;40m%h%?"
0752名無しさん@お腹いっぱい。
2008/10/15(水) 20:31:430753名無しさん@お腹いっぱい。
2008/10/16(木) 01:34:18.screenrc:1: command not found: escape
.screenrc:2: command not found: hardstatus
.screenrc:3: command not found: bind
.screenrc:4: command not found: defscrollback
.screenrc:5: parse error near `}'
screenrcの中身はネットで公開されているものをコピペしました。
こんな感じです↓
escape ^t^t
hardstatus off
bind w windowlist -b
defscrollback 10000
caption always ??%{b RK} %y/%m/%d(%D)%c:%s %{bu dr} | %-w%{=bu CK}%n %t%{-}%+w??
bindkey -k k1 select 0
bindkey -k k2 select 1
bindkey -k k3 select 2
bindkey -k k4 select 3
bindkey -k k5 select 4
bindkey -k k6 select 5
bindkey -k k7 select 6
bindkey -k k8 select 7
bindkey -k k9 select 8
bindkey -k k; select 9
bind 2 split
bind o focus
bind 1 only
bind 0 remove
根本的になにか間違っていますでしょうか?
よろしくお願いします。
0754名無しさん@お腹いっぱい。
2008/10/16(木) 01:51:59これがおかしい.
0755名無しさん@お腹いっぱい。
2008/10/16(木) 02:01:19設定ファイル系は変更したらsource〜だと思いこんでました。
CUI使い始めたばかりなものですみません。
とりあえずは問題ないということでよいのでしょうか?
0756753
2008/10/16(木) 02:03:47解決しました。ありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています