
리눅스로 screen 명령을 사용하면 실행중인 터미널 응용 프로그램을 백그라운드로 푸시하고 보려고 할 때 앞으로 당길 수 있습니다. 또한 분할 화면 디스플레이를 지원하며 연결을 끊었다가 다시 연결 한 후에도 SSH 연결을 통해 작동합니다!
화면 명령이란 무엇입니까?
그만큼 screen command는 터미널 멀티플렉서이며 옵션으로 가득합니다. 많은 것을 할 수 있다고 말하는 것은 과소 진술의 할아버지입니다. 매뉴얼 페이지는 4,100 줄 이상으로 실행됩니다.
다음은 가장 일반적인 경우입니다. screen 이 기사에서 더 자세히 다루겠습니다.
- 표준 작업은 쉘이 포함 된 새 창을 만들고 명령을 실행 한 다음 창을 배경 ( “분리”)으로 푸시하는 것입니다. 프로세스가 어떻게 진행되고 있는지 확인하려면 창을 다시 전경으로 끌어 당기고 (“재 부착”) 다시 사용할 수 있습니다. 터미널 창을 닫아 실수로 종료하고 싶지 않은 긴 프로세스에 유용합니다.
- 일단 당신이
screen세션 실행 중에 새 창을 만들고 다른 프로세스를 실행할 수 있습니다. 창 사이를 쉽게 이동하여 진행 상황을 모니터링 할 수 있습니다. 또한 터미널 창을 세로 또는 가로 영역으로 분할하고 다양한screen하나의 창에 창. - 원격 컴퓨터에 연결하여
screen세션을 시작하고 프로세스를 시작하십시오. 원격 호스트에서 연결을 끊었다가 다시 연결해도 프로세스가 계속 실행됩니다. - 당신은 공유 할 수 있습니다
screen서로 다른 두 SSH 연결 간의 세션을 통해 두 사람이 동일한 내용을 실시간으로 볼 수 있습니다.
설치 화면
설치하기 위해서 screen 우분투에서는 다음 명령을 사용하십시오.
sudo apt-get install screen

설치하기 위해서 screen Manjaro에서 다음 명령을 사용하십시오.
sudo pacman -Sy screen

Fedora에서 다음을 입력하십시오.
sudo dnf install screen
화면 시작하기
시작한다 screen아래에 표시된대로 입력하고 Enter를 누르십시오.
screen

라이센스 정보 페이지가 표시됩니다. 스페이스 바를 눌러 두 번째 페이지를 읽거나 Enter를 눌러 명령 프롬프트로 돌아갈 수 있습니다.

명령 프롬프트에 남아 있으며 아무 일도 일어나지 않은 것 같습니다. 그러나 이제 다중 터미널 에뮬레이터 내에서 쉘을 실행하고 있습니다. 이것이 좋은 이유는 무엇입니까? 완료하는 데 시간이 오래 걸리는 프로세스를 시작하겠습니다. 최신 Linux 커널의 소스 코드를 다운로드하여라는 파일로 리디렉션합니다 latest_kernel.zip.
이렇게하려면 다음을 입력하십시오.
curl https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz > latest_kernel.zip
다음 비트의 이미지는 키 스트로크 시퀀스이므로 표시 할 수 없습니다. Ctrl + A를 입력하고 해당 키를 놓은 다음 d를 눌러 화면을 분리하십시오.
다운로드 프로세스는 여전히 실행 중이지만 다운로드를 표시하는 창이 제거됩니다. 터미널을 시작한 터미널 창으로 돌아갑니다. screen 세션. 메시지는 screen 창 라벨 23167.pts-0.howtogeek 분리되었습니다.
창 이름의 시작 부분부터 다시 첨부하려면 숫자가 필요합니다. 잊어 버린 경우 언제든지 -ls 분리 된 창의 목록을 보려면 아래에 표시된대로 (목록) 옵션을 선택하십시오.
screen -ls

준비가되면 -r (다시 첨부) 옵션 및 다시 첨부 할 세션 수 :
screen -r 23167

백그라운드에서 사라져 버린 창은 이제 마치 떠나지 않은 것처럼 터미널 창으로 돌아갑니다.

그것이 결론에 도달하는 프로세스라면 결국 완료 될 것입니다. 지속적인 프로세스라면 결국 종료하고 싶을 것입니다. 어느 쪽이든 프로세스가 끝나면 다음을 입력 할 수 있습니다. exit 에서 나가기 위해 screen. 또는 Ctrl + A를 누른 다음 K를 눌러 강제로 창을 종료 할 수 있습니다.
다음 명령을 입력하십시오.
exit

이전 터미널 창으로 돌아가서 창을 다시 연결하는 데 사용한 명령이 계속 표시됩니다. 하나의 창만 닫았 기 때문에 다음과 같은 메시지가 나타납니다. screen 종료 중입니다.

관련 : curl을 사용하여 Linux 명령 행에서 파일을 다운로드하는 방법
명명 된 화면 세션 사용
당신은 사용할 수 있습니다 -S (세션 이름) 옵션은 screen 세션. 세션의 숫자 ID가 아닌 기억에 남는 이름을 사용하면 세션에 다시 연결하는 것이 더 편리합니다. 세션 이름을 “bigfile”로 지정하려면 다음을 입력하십시오.
screen -S bigfile

언제 screen 세션을 시작하면 명령 프롬프트가있는 빈 창이 나타납니다. 우리는 큰 파일을 다운로드 할 것이므로 예를 들어 오래 실행되는 프로세스를 사용할 수 있습니다.
우리는 다음을 입력합니다 :
curl http://ipv4.download.thinkbroadband.com/1GB.zip > bigfile.zip

숫자 식별자 (23266) 뒤에는 세션 이름 (큰 파일)이 있습니다. 세션 이름을 포함하여 다음을 입력하여 다시 연결합니다.
screen -r bigfile

다운로드 창에 다시 연결되었으며 긴 다운로드가 아직 진행 중임을 확인했습니다.

다운로드가 완료되면 입력 exit 세션 창을 닫습니다.
여러 창에서 화면 사용
지금까지 우리는 screen 분리 된 창의 백그라운드에서 단일 프로세스를 배치합니다. 하나, screen 그것보다 훨씬 더 많은 일을 할 수 있습니다. 다음으로 몇 가지 프로세스를 실행하여 컴퓨터의 일부 측면을 모니터링 할 수 있습니다.
“monitor”라는 스크린 세션을 시작하려면 다음을 입력하십시오.
screen -S monitor

새 창 세션의 명령 프롬프트에서 시작합니다 dmesg 사용 -H (사람이 읽을 수있는) -w (새 메시지를 기다리는 중) 옵션. 커널 버퍼 메시지가 표시됩니다. 새로운 메시지가 발생할 때 나타납니다.
우리는 다음을 입력합니다 :
dmesg -H -w

기존 메시지가 나타납니다. 명령 프롬프트로 돌아 가지 않습니다. dmseg 새 메시지를 기다리는 중이며 도착하면 표시됩니다.

관련 : Linux에서 dmesg 명령을 사용하는 방법
다른 응용 프로그램을 실행하고 싶기 때문에 새로운 응용 프로그램이 필요합니다 screen 창문. Ctrl + A를 누른 다음 C를 눌러 새 창을 만듭니다. 우리는 사용할 것입니다 watch 반복적으로 실행 vmstat따라서 컴퓨터에서 가상 메모리 사용량을 자주 업데이트합니다.
새 명령 프롬프트에서 다음을 입력하십시오.
watch vmstat

그만큼 vmstat 출력이 나타나고 2 초마다 업데이트됩니다.

이제 두 프로세스가 실행 중입니다. 사이를 뛰어 넘다 screen 창에서 Ctrl + A와 창의 번호를 누릅니다. 우리가 만든 첫 번째는 창 0이고, 다음은 창 1입니다. 첫 번째 창으로 이동하려면 dmesg 하나), 우리는 Ctrl + A와 0을 누릅니다.

Ctrl + A와 1을 누르면 다시 vmstat 창문.

꽤 근사하다! Ctrl + A를 누른 다음 D를 눌러이 세션에서 분리 할 수 있습니다. 나중에 다시 연결할 수 있습니다. 두 세션 모두 계속 실행됩니다. 다시, 창 사이를 전환하려면 Ctrl + A와 전환하려는 창의 숫자 (0 또는 1)를 누르십시오.
다음 단계로 넘어 가서 한 화면에서 두 화면을 봅시다. 이렇게하면 터미널 창을이 단계에 유용한 크기로 늘립니다. 예제는 스크린 샷 크기로 제한되어 있으므로 창이 약간 좁아 보입니다.
이렇게하려면 Ctrl + A를 누른 다음 Shift + S를 누릅니다 (대문자“S”필요).
창이 두 개의 “영역”으로 나뉩니다.

상단 지역은 여전히 표시됩니다 vmstat하단 영역이 비어 있습니다. 아래 스크린 샷에서 커서가 강조 표시됩니다. 아래쪽 영역으로 이동하려면 Ctrl + A를 누른 다음 Tab을 누릅니다.

커서는 빈 공간 인 아래쪽 영역으로 이동합니다. 껍질이 아니므로 아무 것도 입력 할 수 없습니다. 유용한 디스플레이를 얻으려면 Ctrl + A를 누른 다음 “0”을 눌러 dmesg 이 지역의 창.

이것은 하나의 분할 창에서 두 라이브 출력을 제공합니다. Ctrl + A와 D를 눌러 창을 분리했다가 다시 연결하면 분할 창보기가 사라집니다. 그러나 다음 바로 가기 키를 사용하여 복원 할 수 있습니다.
- Ctrl + A, S : 창을 가로로 나눕니다.
- Ctrl + A, 탭: 낮은 지역으로 이동하십시오.
- Ctrl + A, 0 : 하단 영역에 창 0을 표시합니다.
한 걸음 더 나아갈 수 있습니다. 이제 아래쪽 창을 세로로 나누고 세 번째 프로세스를 디스플레이에 추가합니다. 아래쪽 영역에 커서를 놓고 Ctrl + A 및 C를 눌러 쉘이있는 새 창을 만듭니다. 아래쪽 영역에는 새 창이 표시되고 명령 프롬프트가 표시됩니다.

다음으로 df 파일 시스템 사용을 확인하는 명령 :
df

우리가 볼 때 df 실행, 우리는 Ctrl + A 및 파이프 문자를 누르십시오 (|). 이것은 아래쪽 영역을 세로로 분할합니다. Ctrl + A와 Tab을 눌러 새 지역으로 이동합니다. 다음으로 Ctrl + A와 0을 눌러 dmesg 창문.

영역 간을 이동하고 더 많은 수직 또는 수평 분할을 추가 할 수도 있습니다. 더 유용한 키 조합은 다음과 같습니다.
- Ctrl + A : 현재 지역과 이전 지역 사이를 오 가십시오.
- Ctrl + A, Q : 현재 지역을 제외한 모든 지역을 닫습니다.
- Ctrl + A, X : 현재 지역을 닫습니다.
SSH를 통한 화면 사용
와 screen창 세션을 시작하고 분리하여 백그라운드에서 계속 실행되도록 로그 오프하거나 다시 로그인 한 후 세션을 다시 연결할 수 있습니다.
컴퓨터와 다른 컴퓨터에서 SSH로 연결해 보겠습니다. ssh 명령. 연결할 계정 이름과 원격 컴퓨터 주소를 제공해야합니다.
이 예에서는 다음을 입력합니다.
ssh dave@192.168.4.30

원격 컴퓨터에서 인증하고 로그인 한 후 다음을 입력하여 screen “ssh-geek”이라는 세션 :
screen -S ssh-geek

데모 목적으로 top 에서 screen 창을 열 수 있지만 장기 또는 무한 프로세스를 시작할 수 있습니다.
우리는 다음을 입력합니다 :
top

한번 top 창에서 실행 중이면 Ctrl + A를 누른 다음 D를 눌러 창을 분리합니다.

원래의 원격 터미널 창으로 돌아갑니다.

입력하면 exit아래에 표시된 것처럼 SSH 세션 연결이 끊어지고 로컬 컴퓨터로 돌아갑니다.
exit

다시 연결하려면 다음을 입력하십시오.
ssh dave@192.168.4.30

다시 연결하고 로그인 한 후 다음을 입력하여 screen 세션:
screen -r ssh-geek

이제 우리는 여전히 실행중인 인스턴스에 다시 연결되었습니다. top.

한 시스템에서 프로세스를 시작한 다음 다른 시스템에서 중단 한 곳을 선택하려는 경우에 유용합니다.
관련 : Linux 셸에서 SSH 키를 만들고 설치하는 방법
화면 공유
당신은 또한 사용할 수 있습니다 screen 세션을 통해 두 사람이 동일한 창을보고 상호 작용할 수 있습니다. 컴퓨터에서 Fedora를 실행하는 누군가가 Ubuntu 서버에 연결하려고한다고 가정 해 보겠습니다.
그는 다음을 입력합니다.
ssh dave@192.168.4.30

연결되면 -S (세션 이름) 옵션을 사용하여“ssh-geek”이라는 스크린 세션을 시작합니다. 그는 또한 -d (분리) -m (강제 생성) 옵션으로 새로운 생성 screen 이미 분리 된 세션.
그는 다음을 입력합니다.
screen -d -m -S ssh-geek

그는 다음을 사용하여 다음을 입력합니다. -X (멀티 스크린 모드) 옵션 세션 연결 :
screen -X ssh-geek

Manjaro 컴퓨터에서 다른 사람이 아래와 같이 동일한 계정 자격 증명으로 Ubuntu 컴퓨터에 연결합니다.
ssh dave@192.168.4.1

연결되면 screen 명령을 실행하고 -X (멀티 스크린 모드) 옵션을 사용하여 동일한 창 세션에 참여합니다.
screen -X ssh-geek

이제, 어떤 사람이 입력하면 다른 사람이 볼 수 있습니다. 예를 들어, 한 사람이 날짜 명령을 발행하면 입력 한 내용과 출력 내용을 모두 볼 수 있습니다.


두 사람은 이제 screen 원격 우분투 컴퓨터에서 실행되는 세션.
1987 년에 처음으로 빛을 본 소프트웨어 screen 여전히 좋은 생산성을 보여줍니다. 익숙해 지려면 시간이 많이 걸립니다!
관련 : 알아야 할 중요한 Linux 명령








