`screen`の隠された機能


31

私は1日中* nixコマンドscreenを使用しており、この質問を始めた人を見つけることができなかったため、開始すべきだと考えました。あなたはドリルを知っています:コミュニティwiki、機能ごとに1つの答えなので、誰でも投票できます。


5
画面はとても便利で、すべてのサイトに属しています: stackoverflow.com/questions/70614/gnu-screen-survival-guide
ザックトンプソン

回答:


31

私は、シリアルコンソールに接続するためにそれを使用してすなわち

screen /dev/ttyS0 19200

このコマンドは、19200のボー速度でシリアルポート0(ttyS0)への接続を単に開きます。


これは本当に、画面の少なくとも期待の特徴の一つでアウトフリークの人に私の好きなものの一つである
epic9x

1
そして、本当に私のお気に入りの1つです。ミニコム、コンサーバなどに対処したり、構成したりする必要はありません。これを見つけたとき、私は菓子屋の小さな子供のように感じました。
スコットパック

絶対に-スクリーンセッションを開いて、2つのウィンドウに分割し、両方のUSBシリアルドングルを表示すると便利です。
dotwaffle

10

の最高の機能screenは、Juunty以来デフォルトでUbuntuに付属しているByobu(以前のscreen-profiles)です:https ://launchpad.net/byobu

非常に素晴らしいデフォルト、たくさんのステータス通知、便利なキーボードショートカット(つまり、新しい画面の場合はf2、前/次の場合はf3-f4など)を備えた構成マネージャーです。

私は本当にそれなしではもうどこにも行きません:)


10

KTamasのamswerから:複数の人が同じ画面を使用できます。つまり、あなたの友人があなたのsshコンピューターに接続している場合、彼はあなたの画面に接続できます。2〜3人が同じプロジェクトに取り組んでいるとき、それは素晴らしいことです。


1
これは、ユーザーが行っているリモートサポートを追跡し、うまくいかない場合にセッションを強制終了する場合に非常に優れています。
トム・オコナー

6

厳密には「隠された機能」ではありません。しかし、適切にセットアップされた.screenrcファイルは、世界を変えることができます。より良い例の1つは、screenrcと「ブラッドシム」をグーグルで検索することで見つけることができます-彼は、いじくり回すのに優れたファイルを持っています。

とはいえ、私のお気に入りの設定はbindkeyです。

# bind F7  to detach screen session from this terminal
# bind F8  to kill current screen window.
# bind F9  to create a new screen
# bind F10 to rename current screen window
# bind F11 to move to previous window
# bind F12 to move to next window
bindkey -k k7 detach
bindkey -k k8 kill
bindkey -k k9 screen
bindkey -k k; title
bindkey -k F1 prev
bindkey -k F2 next

2
ctrl + aが画面外で頻繁に使用されていることを考慮して(bashで行の先頭にいるのは誰ですか?)これが好きです。
スコットパック

1
ctrl + a / ctrl + eは、カーソルを移動するためだけでなく、画面でminicomが実行されている場合も同様です。Ctrl + a、a、o for options ...
ペトリュス

6

これを誰から盗んだのか思い出せません(dotfile.orgの誰か)。私はssh用にわずかに変更しました:

#!/bin/sh
# scr - Runs a command in a fresh screen
#
# Get the current directory and the name of command

wd=`pwd`
cmd=$1
shift

# We can tell if we are running inside screen by looking
# for the STY environment variable.  If it is not set we
# only need to run the command, but if it is set then
# we need to use screen.

if [ -z "$STY" ]; then
        $cmd $*
else
        # Screen needs to change directory so that
        # relative file names are resolved correctly.
        screen -X chdir $wd

        # Ask screen to run the command
        if [ $cmd == "ssh" ]; then
                screen -X screen -t ""${1##*@}"" $cmd $*
        else
                screen -X screen -t "$cmd $*" $cmd $*
        fi
fi

次に、次のbashエイリアスを設定します。

vim() {
        scr vim $*
}

man() {
        scr man $*
}

info() {
        scr info $*
}

watch() {
        scr watch $*
}

ssh() {
        scr ssh $*
}

sshを使用して上記のエイリアスとiffの新しい画面を開き、画面のタイトルをsshホスト名に変更します。

乾杯z0mbix


:o。あなたは私からそれを持ち上げて適応させましたか?gist.github.com/137214
VxJasonxV

いいえ、それについて一度ブロガーしたlast.fmのスタッフからだったと思います。
z0mbix

4

私が便利だと思うことの1つは、画面が端末よりも大きな幅をエミュレートできることです。less実際のログファイルに使用している場合、これは有用であり、行を折り返したくありません。を使用して:

Ctrl-A:width -w 999

screen端末の幅よりも広く設定して、行をless折り返さないようにします。


10
参考までに、lessオプション-sは行を折り返さないように指示します。LeftおよびRightを使用して、行をスクロールできます。
MikeyB 2009

4

画面の起動時に-ethatでコントロールキーを変更する機能。相互に画面セッションをネストできるように使用します。例:「screen -e ^ w ^ x」は、コントロールキーctr-wを作成します。


2

優れた機能の1つbacktickとして、キャプションに表示するための追加情報を取り込むことができます。たとえば、さまざまなフォルダの新しいメールカウントの1行の概要を出力するスクリプトがあり、スクリーンセッションと次のような構成のホスト名を一緒に表示すると、最終行に表示されます。

backtick 1 15 15 /home/waltermundt/bin/newmail

caption always
caption string "%{.kW}%1` example.com %{.bW}%-w%{.rW}%n %t%{-}%+w %{.gW}%h%{-}"

キーは、バックティックジョブ1の出力を参照する%1`ビットです。

hardstatusxtermのタイトル文字列として使用し、異なる設定をしています。したがって、のcaption代わりにを使用していますhardstatus alwayslastline。)


2

「隠された」機能ではありませんが、画面セッションを別のアクティブなユーザーと共有する機能は非常に便利です。

アクセス制御許可やユーザー名管理など、画面共有をセットアップする複雑な方法があります。私が同僚とよく行うことは、はるかに迅速で汚いことです。

  1. 問題のマシンに新しいウィンドウでログインします。
  2. 誰でも私の端末への書き込みを許可する: chmod 777 $(tty)
  3. アカウントへのSudo: sudo su <username>
  4. 画面を共有します: screen -x <session>

これには、事前の構成やパスワードの共有は必要ありません。


1

自分用に印刷した小さなチートシート。

(注:すべてが先行しますCtrl-A

A:ウィンドウの名前を変更する   
":ウィンドウのリストを表示   
d:セッションの切り離し

そしてscreen -D -R、実行中のセッションをデアタッチして再アタッチします(何らかの理由でセッションにアクセスできなくなった場合)。

これらのどれも本当に隠された機能ではありませんが、これらは私が最も便利だと思う機能です。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.