GNU screen その6(再生)
>>447 すまん、やりたいことが すでに起動しているshの環境変数を書き換えることならNoだわ。 あたらしいwindowを開いたときに、そのときの環境変数が設定されるだけ。 コピーモードから抜けるとき一瞬もたつく感じしない? とくにコピーしてから抜けるときは 設定いじればもう少し早くなるんだろうか layout newでレイアウト情報が作成されるらしいけど、どこのファイルに書いているの? それって colon から打つの? >>449 特にしません。 >>441 TERM=xterm だと xterm の制御シーケンスを扱えない端末からマルチディスプレイモードで アタッチした時に困ったことになる。マルチディスプレイモードじゃなくても。 または、端末より screen が認識する(かつ screen のみでなんとかなる) 制御シーケンスの方が多いというケースも理由としてありえるな。 >>445 うーん… tty の入力監視 wrapper から screen を起動する。 wrapper では入力検知時に pid を file などに書く。 zsh の preexec とかで pid から環境変数を取り込む。 みたいな? >>451 そうっす。prefixの後に :layout new もしかして/tmpに作られてんのかな man screen になかったけど開発版の機能か。 それ内部的に作られてるだけなんじゃない? >>453 一回どっかのscreenで:layout newすれば、その後に別のセッションを新規に作っても そこでもレイアウトは有効になってるんで、どこかに書いてるのかと思うんだけど・・・ 違う端末でも、じゃなくて違うセッションでも共有してるの? 古い記述だけど ttp://yudai.arielworks.com/memo/2008/11/08/184006 には ファイルに書かれないとあるね。今はあるかもしれないけど。 セッション間共有なら screen として特別なファイルはなくてもできるだろうし、 強いていうならソケットディレクトリ内のソケットがそれにあたるかな。 LANG=C man screen 保存したければlayout dump使えって なんだ man にあるんかい。 開発版っていってもそんな新しい機能じゃないからあるか。 開発版じゃない方には当然書いてないけど。 昔 sudo のパスワード不要期間って window 間で共有してた気がするけど、 今は端末毎に制御しているのか window 毎に管理されてるよね。 端末毎は別の方がいいと思うけど、screen のセッション内で 分けてもあまり意味がない気がする。 でもさくっと screen のセッション内で共有するのはならないか。設定とかで。 端末毎の別管理をやめるとかなら sudo の設定であるかもしれないけど。 >>458 sudoの作りは知らんけど、端末上で実行するプログラムから見ると、普通は screenの別windowと端末の別ウインドウは区別できないからね。 >>458 window間じゃなくて、ホスト内で共通のticket timeoutだったんじゃないの? (screen内に暮らしていると、どっちも同じ事ではあるんだけども) sudoers(5)のtty_ticketsがoff。要するにsudo(8)の話題。 うんそう。書き方が悪かったね。window 間共有は本質として書いた訳じゃない。 tty_tickets の設定か。thx. で言いたかったのは screen 内では端末毎に分けてもあまり意味ないし STY あたりで分けてるといいかなー(環境変数を使う訳にはいかないだろうけど)という screen user の勝手な考え、だったんだけど… よく考えたら screen 内で sudo 使ったんなら外からアタッチできるんだし、 突き詰めると端末、セッションで分けても意味ないね。 # 突き詰めなければ少しは意味あるか。STY あったらそれで分けるとかで。 いつも screen 内なら tty_tickets off でいいのかもな。 つーか俺は常にオフ。 sudoの仕様が変わった時から。 windowsからputtyでmulti display modeなscreenをアタッチしたときに文字コードがリセットされちゃいます。 毎度:encoding utf-8 utf-8しないといけないぽです。 linuxではこんなこと無いんですが、freebsdだとなってしまいます。 何か原因あったりするんでしょうか。 以下抜粋です > grep encoding ~/.screenrc defencoding utf-8 utf-8 encoding utf-8 utf-8 > cat /var/db/ports/screen options _OPTIONS_READ=screen-4.0.3_8 WITH_CJK=true WITH_INFO=true WITH_MAN=true WITH_NETHACK=true WITHOUT_XTERM_256=true WITHOUT_HOSTINLOCKED=true WITHOUT_SHOWENC=true screen縦分割ってそろそろ標準になった? まだ? 後、分割を1つのセッションにしてC-a nで別セッションでは一画面、更に別のセッションでは横分割みたいにしたいんだが まだかね? byobuの話題もここでいい? ステータスに任意の監視項目を追加するために、man byobu にあるサンプルを ~/.byobu/bin配下に作ってみたんだけど、うまく表示されない。 #!/bin/sh printf "\005{= bw}%s\005{-}" "$(uname -r)" 海外のフォーラムでも話題になったようなんだけど、わかるかた 何かアドバイスください。 http://unix.stackexchange.com/questions/41596/colour-bleeds-right-when-writing-a-custom-script-in-byobu >>463 putty(ssh client)側の環境変数LANGとかLC_*とかの設定じゃないのか? >>466 亀レスに亀レスなんだけどありがとう。今試したらばっちり問題解決されますた! screen内で新規作成されたセッションのシェルって、最初にそのscreenを作ったときの環境変数とかを引き継いだりしますか? それとも純粋なログインシェルとして処理されますか? >>469 env HOGe=hoge screenで起動してみたら、引き継がれるっぽいね。 >>470 ありがとうございます。どうもそうみたいですね。 何個もセッションがある状態で.zshenvや.zshrcを書き換えると、全セッションを落として screenを作り直すのがすごい億劫になってしまいますね。 screenを起動したマシンでssh-agentを起動するのをつい忘れて、 手元のマシンからのagent forwardingでscreenを起動してしまうと $SSH_AUTH_SOCK的な意味ですごく億劫になる。 ssh-agentやdisplayをどうするかというのは悩ましいところだよね 最近はめんどくなって、ログインするホスト全部に鍵(しかもパスフレーズなし)を置いちゃってるし… ホームディレクトリを共通化したらssh楽になったYO! sshを受けるgatewayでscreenをたてっぱで楽ちんだYO! セッション内で何個もウィンドウを立ち上げたまま長期間使い続けてると セッションが死ぬことがある いまいち再現性がなくて厄介だわ >>477 zshなんだけどTMOUTはセットされてなかった 長期間というのは2,3週間くらいかな いちおう環境晒すとCentOS6.2、zsh 5.0.2、screen 4.01.00dev >>478 ゴミファイルを消すcronのスクリプトが、 screen用のソケットファイルを古いと思って消してしまってるとか? >>479 cronは自分ではいじってないんだけど、デフォでそんな設定になってるっけ? あとで確認してみます てか、screenが死ぬなんてのはやはりレアなことなのか… 調べたら普通にcronで/tmp以下を削除するtmpwatchの設定がされてた。 てか、/tmpを掃除するのがcronの仕事だと今頃知った・・・ でも最終アクセス日時から10日以上が対象だから、screenソケットファイルは まず対象にならないはずだけど、いちおうチェックしてみます。 少し長いですが質問いたします。 [prefix] Ctrl-H を prev に設定しているんですが、ローカル(Fedora Linuxとか)でxtermを 立ち上げる場合もあれば、Winodwsからputtyで接続したり、あるいはVNCでログインして xtermを立ち上げる場合もあります。 しかもWinodwsではyamyというキーバインドソフトで常時Ctrl-HをBackspaceにしています。 こういう状況で、設定をいじったりしているうちにprevが効かなくなって困ることがあるのですが、 この手のトラブルはどういう風に調べて解決していけばいいですか? あと、このような複数の接続方法に共通の.screenrcを使うのはそもそも推奨されないことですか? # screenrcは他人のをパクったレベルの人間なので、キーコードとかtermcapとかの仕組みは 何度調べても理解できず、自分的に鬼門になっています・・・。 あ、もちろんyamyをオフにしておくというのは試しています。が、不思議なことに [prefix] Ctrl-H の効き具合に影響があったことはないです。 BS(0x08)とDEL(0x7F)を交換してるやつがどこかに潜んでいるんじゃないの? Linuxの端末エミュレータにはこの手の余計な世話するのがいるよ [prefix] DEL も prev に設定しておけばよい >>484 レスありがとうございます。 .screenrcで bind ^? prev と書けばいいのかな、と思ったら駄目でした。 実際にどんなキーコードがscreenへ送られているのか調べる方法があればなぁ・・・ Ctrl+v → BS とか Ctrl+v → DEL とかそんなん。 GNOME端末のプロファイル設定でBSキーのコードがASCII DELになっていたのを Ctrl-Hに変えると解決しました。Ctrl-v もちゃんと ^? から ^H に変わってました。 でも、今までシェルとかでは普通にバックスペースの動作になったんですよね。 シェルが^?も^HもBSとして解釈してるからかな?いまいちよく分からんです。 というわけで皆様お騒がせしました。ありがとうございました。 今動かしてるshを、screenで拾いたいんだけど どうしたらできるかな reptyr使えばできるよ linuxしか無理だけどね grepの実行結果が、端末の一番右端の文字が「.」だとスペースに置き換わってしまうんだけど、何故だろう screenじゃない素の端末だとそんなことないんだけど どうも端末がGnome terminalで、grepにオプション--colorを付けてるときに起きるみたい screenと端末って相性みたいなのあるんですかね? >>498 screen/Tmuxをカスタマイズをしなくても便利に使える感じかな hardstatus のアクティブウィンドウ前後のウィンドウって %-w や %+w でしか指定できなくて、 パターンも「%n %t」で固定されちゃってるけど、細かく設定できるようにならんのかなぁ screenしか使ったことないんだけどtmuxやbyobuだったらできたりする? screen-4.2.1が出たらしい http://ftp.gnu.org/gnu/screen/ Debianパッチの反映かな? 最近サイド3から 2ch.netに書き込めなくなった いまフォンブラウン市から書き込んでる 一つ前に copy したものを paste することってできませんか? (Emacsでいうキルリングの C-y M-m みたいに) 間違えました、C-y M-m ではなく C-y M-y でした splitで画面を分割してるときにマウスホイールでスクロールさせることは可能ですか? すでに起動しているシェルを あとからscreenに取り込みたい けど、そんなことできないよね? Linuxならreptyr使えるんじゃない? 使ったことないけど。 screen上だとnmonがうまく表示されん まぁglancesとか他の使えばいいか >>509 > 次スレから端末多重接続総合スレにしない? screen と tmux派でケンカ始めたりしない? > 端末多重接続 日本語に無理矢理直してる感が酷いな スクリーンマルチプレクサでいいじゃねーか 実質screenとtmuxだけなんだからscreen/tmuxでいいだろ まあ次スレが必要になるのは5年後だがな 5年後か・・・ さすがに2chがどうなってるか分からんな screenは保護されるべきだ。 いまだにK&R C形式でソースコードで書かれてて 実際に使われてるアプリって少ないぞ。 >>517 vimのことか? screenもvimもグローバル変数が山盛りで、自分みたいな素人は読むのが大変 3/3以降、このスレもopen2chに移転するの? GNU Screen上でemacs-evilを使うときに .screenrcにmaptimeoutを設定し、 $ emacsclient -nw text.txt で立ち上げるとEscは正常に機能するんですが、 $ emacsclient text.txt では正常に動きません。 なにか解決策はありませんでしょうか。 コマンドの出力が長すぎてページがスクロールしてしまう場合に自動的にlessみたいに ページングすることってscreenやtmuxでできないのかね? どんなコマンドを実行したときも出力量に応じて自動的にページングするようにしたい screenだとバックスクロールは基本的にcopyモードでしかできないので 多分無理。tmuxはわからない。 screenが擬似端末から読み込んだデータを実端末に書き込むときに、 ・短時間内に端末サイズ以上の行数を書き込んだ ・書き込む文字列にはカーソルを移動するようなエスケープシーケンスは含まれていない ならポーズするという感じか。 完璧な解は無理なのかな。 それってコマンド打つたびにパイプで | richpager としないといけないんじゃない? それならそこにも書いてある通りless -Fでいつもやってる($LESS="-iFMXR -j10"と設定している)。 パイプしないでも自動的にページングしてほしい。 シェルで全てのコマンドに対して自動でパイプするようにするとvimとか端末を使うアプリが困るし。 自動ページングというのはscreen(または端末ドライバ)のような端末そのものが持っているのが ふさわしい場所じゃないだろうか。 ちなみにlessでもシンタックスハイライトとかは$LESSOPENで実現できる。 誰か altscreen on の時に一番下の行を一番上の行に出力って誰か出来ませんか ? 例えば editor viewer filer でも一番下が行数等の出力先なので一括して変更出来ますし 端末の方いじった方がいいのかな..とも思うけど screenでやった方が便利だしやっぱりscreenいじりたい 別の話だけど SetRendition, SetRenditionMline に文字判定で色いれると良い foreGround の色指定されてない時だけ判定 お勧めは 記号種類別(例えば' 誰か altscreen on の時に一番下の行を一番上の行に出力って誰か出来ませんか ? 例えば editor viewer filer でも一番下が行数等の出力先なので一括して変更出来ますし 端末の方いじった方がいいのかな..とも思うけど screenでやった方が便利だしやっぱりscreenいじりたい 別の話だけど SetRendition, SetRenditionMline に文字判定で色いれると良い foreGround の色指定されてない時だけ判定 お勧めは 記号種類別(例えば”’は同じ使われ方が多いから同じ色)、数字、 カタカナ、ひらがな、その他の言語や記号、A-zだけ色なし 画面のみの判定だから軽い点も良い 後、変数一個用意して 連続で同じ色だったらスルー プログラマーじゃないのでコードに自信ない けど異常に気に入ってるから毎回 screen 入れる度に display.c 書き換えてる か誰 ’半角で遂ぎれた...失礼 >> 誰か altscreen on の時に一番下の行を一番上の行に出力って誰か出来ませんか ? と >> SetRendition, SetRenditionMline に文字判定で色いれると良い だけです。 ついでに上はncursesの話だと書いた後思い出しました。 って2ch_scに書いてた...話だと書いた後思い出しました。 screen --version Screen version 4.04.00 (GNU) 19-Jun-16 これ4.0.4かと思った。紛らわしくないか screenってソフトとしてもう完成してる気がする うpでに追従する必要あるのかな changelog見て必要って思うなら追従すればいい めっちゃ過疎っているんでレスもらえるか不安ですが・・・ シェルのプロンプトを以下のように二段にしているんですけど、このカレントディレクトリを screenのバッファにワンキーでコピーするキーバインドはどう書けばいいですか? [ユーザ名@ホスト名] カレントディレクトリ $ ■ ←←←カーソル copy modeに入らずに画面上から一部を拾う方法が思いつかない。 カレントディレクトリをコピーしたいだけならshell側で f=`tempfile`; pwd > $f; screen -X readbuf $f とかやれば一応できる。これをstuffで実行文字列として送るという 方法なら取れると思う。 ところでscreen 4.6.0出てましたね。 http://git.savannah.gnu.org/cgit/screen.git/log/?h=v.4.6.0 ChangeLogより http://git.savannah.gnu.org/cgit/screen.git/tree/src/ChangeLog?h=v.4.6.0 Version 4.6.0 (28/06/2017): * Update Unicode wide tables to 9.0 * Support more serial speeds * Improved namespaces support * Migrate from fifos to sockets * Start viewing scrollback at first line of output ChangeLogといいつつNEWSファイルの位置づけになってるんだな。 C-a 数字で window を選択する際に、キーボードの数字キーの並びと合わせたくて、 window番号を 1始まりにしたい。 https://wiki.archlinuxjp.org/index.php/GNU_Screen#.E3.82.A6.E3.82.A3.E3.83.B3.E3.83.89.E3.82.A61.E3.81.8B.E3.82.89.E8.B5.B7.E5.8B.95 にあるように .screenrc に bind c screen 1 bind ^c screen 1 bind 0 select 10 screen 1 を入れると、C-a c したときには 0番を無視してくれるんですが、 コマンドラインから screen vim prog.c などとしたときは 0番にwindowが作られてしまいます。 この場合でも 0番を無視する良い方法はないでしょうか? 誰でも簡単にパソコン1台で稼げる方法など 参考までに、 ⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。 グーグル検索⇒『宮本のゴウリエセレレ』 4FHO84LNCS ☆ 日本の、改憲をしましょう。現在、衆議員と参議院の両院で、 改憲議員が3分の2を超えております。『憲法改正国民投票法』、 でググってみてください。国会の発議はすでに可能です。 平和は勝ち取るものです。お願い致します。☆☆ 今日4.6.2に上げてみたんだけど、zshが起動しなくなった 何事と思って調べたらTERMがbce系の状態でPROMPTに改行を意味する「$'¥n'」があると駄目みたい 知り合いから教えてもらったパソコン一台でお金持ちになれるやり方 時間がある方はみてもいいかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 HH2I0 read.cgi ver 07.5.4 2024/05/19 Walang Kapalit ★ | Donguri System Team 5ちゃんねる