'스크린'의 숨겨진 기능


31

* nix 명령을screen 하루 종일 사용 하고이 질문을 시작한 사람을 찾을 수 없으므로 시작해야한다고 생각했습니다. 당신은 훈련을 알고 있습니다 : 커뮤니티 위키, 기능마다 하나의 답변으로 우리 모두 투표 할 수 있습니다.


5
screen은 모든 사이트에 속해있어 매우 유용합니다. stackoverflow.com/questions/70614/gnu-screen-survival-guide
Zac Thompson

답변:


31

시리얼 콘솔 연결에 사용하는 것을 좋아 합니다.

screen /dev/ttyS0 19200

이 명령은 보드 속도가 19200 인 직렬 포트 0 (ttyS0)에 대한 연결을 간단히 엽니 다.


이 진정으로, 화면의 최소 예상되는 기능 중 하나를 밖으로 괴물 사람들에게 내가 좋아하는 것들 중 하나입니다
epic9x

1
그리고 정말로 내가 좋아하는 것 중 하나입니다. minicom, conserver 등을 다루거나 구성 할 필요가 없습니다. 나는 이것을 발견했을 때 사탕 가게에서 작은 아이처럼 느꼈습니다.
Scott Pack

물론-USB-Serial 동글이 보이는 화면 세션을 열어 두 개의 창으로 분할하는 것이 좋습니다.
dotwaffle

10

가장 좋은 기능은 screenJaunty 이후 기본적으로 Ubuntu와 함께 제공되는 Byobu (이전 화면 프로필)입니다. https://launchpad.net/byobu

매우 좋은 기본값, 많은 상태 알림 및 유용한 키보드 단축키 (예 : 새 화면의 경우 f2, 이전 / 다음의 경우 f3-f4 등)가있는 구성 관리자입니다.

나는 더 이상 그것 없이는 아무데도 가지 않습니다 :)


10

KTamas의 암송에서 : 두 명 이상의 사람이 같은 화면을 사용할 수 있습니다. 예를 들어, 친구가 ssh컴퓨터에있는 경우 화면에 연결할 수 있습니다. 두세 사람이 같은 프로젝트를 수행 할 때 좋습니다.


1
이것은 원격 지원 사용자가 수행하는 작업을 따르고 좋지 않은 경우 세션을 종료하는 데 훨씬 좋습니다!
Tom O'Connor

6

정확히 "숨겨진 기능"이 아닙니다. 그러나 올바르게 설정 한 .screenrc 파일은 세상을 변화시킬 수 있습니다. 더 좋은 예 중 하나는 googling screenrc와 'brad sims'로 찾을 수 있습니다. 그는 훌륭한 파일을 가지고 있습니다.

내가 가장 좋아하는 설정은 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에서 줄을 시작합니까?) 나는 이것을 좋아합니다.
Scott Pack

1
커서 이동을위한 ctrl + a / ctrl + e 및 화면에서 minicom이 실행 중일 때. 옵션에 대한 Ctrl + a, a, o ...
petrus

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


:영형. 나 한테 들어 와서 적응 했어? gist.github.com/137214
VxJasonxV

아니요, 한 번 블로거를 맡은 last.fm 직원의 생각입니다.
z0mbix

4

내가 유용하다고 생각하는 것 중 하나는 화면이 터미널보다 더 넓은 너비를 에뮬레이트 할 수 있다는 것입니다. less실제 로그 파일을 사용 하고 있고 줄 바꿈을 원하지 않는 경우에 유용합니다 . 사용 :

Ctrl-A:width -w 999

screen터미널을 터미널보다 넓게 설정할 수 있으며 로그 라인이 줄 less바꿈되지 않습니다.


10
참고로, 적은 옵션 -s은 줄 바꿈을하지 말라고 지시합니다. LeftRight을 사용 하여 선을 스크롤 할 수 있습니다 .
MikeyB 2009

4

화면을 시작할 때 -ethat로 제어 키를 변경하는 기능 화면 세션을 서로 중첩시킬 수 있도록 사용합니다. 예 : "screen -e ^ w ^ x"는 제어 키를 ctr-w로 만듭니다.


2

좋은 기능 중 하나 : backtick캡션에 표시 할 추가 정보를 가져 오는 데 사용할 수 있습니다 . 예를 들어 다양한 폴더에 새 메일 수를 한 줄 요약하여 출력하는 스크립트가 있으며 화면 세션이 다음과 같은 구성의 호스트 이름과 함께 화면 맨 아래에 표시됩니다.

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 -Rdeattach 및 (경우에 대비하여 세션에 당신이 어떻게 든 잃게 액세스를) 실행중인 세션을 다시 연결합니다.

이러한 기능 중 실제로 숨겨져있는 기능은 없지만 가장 유용한 기능입니다.


1

핵심 기능이지만 물론 Ctrl-A:화면과 직접 대화 하는 것이 가장 좋습니다 . : screen -t title ssh hostname기타

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.