Linux의 화면 명령 사용 방법
Linux screen
명령을 사용하면 실행중인 터미널 애플리케이션을 백그라운드로 푸시하고보고 싶을 때 앞으로 당길 수 있습니다. 또한 분할 화면 디스플레이를 지원하고 연결을 끊었다가 다시 연결 한 후에도 SSH 연결을 통해 작동합니다!
화면 명령은 무엇입니까?
이 screen
명령은 터미널 멀티플렉서이며 절대적으로 옵션으로 가득 차 있습니다. 많은 것을 할 수 있다고 말하는 것은 과소 표현의 할아버지입니다. 매뉴얼 페이지는 4,100 줄이 넘습니다.
다음은 screen
명령을 사용하는 가장 일반적인 경우이며이 문서에서 더 자세히 다룰 것입니다.
- 표준 작업은 셸이 포함 된 새 창을 만들고 명령을 실행 한 다음 창을 백그라운드로 푸시하는 것입니다 ( "분리"라고 함). 프로세스가 어떻게 진행되고 있는지 확인하려면 창을 다시 전경으로 끌어 와서 ( "재 연결") 다시 사용할 수 있습니다. 이것은 터미널 창을 닫아 실수로 종료하지 않으려는 긴 프로세스에 유용합니다.
- 당신이있어 일단
screen
세션 실행, 당신은 새 창을 생성하고 다른 프로세스를 실행할 수 있습니다. 창 사이를 쉽게 이동하여 진행 상황을 모니터링 할 수 있습니다. 또한 터미널 창을 수직 또는 수평 영역으로 분할하고 다양한screen
창을 하나의 창에 표시 할 수 있습니다. - 원격 시스템에 연결하고
screen
세션을 시작하고 프로세스를 시작할 수 있습니다. 원격 호스트에서 연결을 끊고 다시 연결할 수 있으며 프로세스는 계속 실행됩니다. screen
서로 다른 두 SSH 연결간에 세션을 공유하여 두 사람이 실시간으로 동일한 것을 볼 수 있습니다.
화면 설치
screen
우분투에 설치하려면 다음 명령을 사용하십시오.
sudo apt-get 설치 화면
screen
Manjaro에 설치하려면 다음 명령을 사용하십시오.
sudo pacman -Sy 화면
Fedora에서 다음을 입력합니다.
sudo dnf 설치 화면
화면 시작하기
시작하려면 screen
아래 표시된대로 입력하고 Enter 키를 누르십시오.
화면
라이선스 정보 페이지가 표시됩니다. 스페이스 바를 눌러 두 번째 페이지를 읽거나 Enter 키를 눌러 명령 프롬프트로 돌아갈 수 있습니다.
명령 프롬프트에 남아 있으며 아무 일도 일어나지 않은 것 같습니다. 그러나 이제 다중 터미널 에뮬레이터 내에서 셸을 실행하고 있습니다. 이것이 좋은 이유는 무엇입니까? 완료하는 데 시간이 오래 걸리는 프로세스를 시작하겠습니다. 최신 Linux 커널의 소스 코드를 다운로드하여 latest_kernel.zip
.
이를 위해 다음을 입력합니다.
curl //cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz> latest_kernel.zip
다운로드가 시작되고 curl
출력에 진행 상황이 표시됩니다.
다음 비트의 이미지는 키 입력 시퀀스이기 때문에 표시 할 수 없습니다. Ctrl + A를 입력하고 해당 키를 놓은 다음 d를 눌러 화면을 분리합니다.
다운로드 프로세스는 여전히 실행 중이지만 다운로드를 표시하는 창이 제거됩니다. screen
세션 을 시작한 터미널 창으로 돌아갑니다 . screen
레이블 23167.pts-0.howtogeek
이 지정된 창이 분리되었음을 알리는 메시지가 표시 됩니다.
다시 연결하려면 창 이름의 시작 부분에있는 번호가 필요합니다. 잊어 버린 경우 -ls
아래 그림과 같이 항상 (list) 옵션을 사용하여 분리 된 창 목록을 가져올 수 있습니다.
screen -ls
준비가되면 다음 -r
과 같이 (재 연결) 옵션과 세션 번호를 사용하여 다시 연결할 수 있습니다 .
화면 -r 23167
백그라운드에서 작동하던 창은 이제 마치 한 번도 떠나지 않은 것처럼 터미널 창으로 다시 돌아옵니다.
결론에 도달 할 프로세스라면 결국 완료 될 것입니다. 연속적인 프로세스라면 결국 종료하는 것이 좋습니다. 어느 쪽이든 프로세스가 종료되면 입력 exit
하여 screen
. 또는 Ctrl + A를 누른 다음 K를 눌러 창을 강제로 종료 할 수 있습니다.
다음 명령을 입력하십시오.
출구
이전 터미널 창으로 돌아 가면 창을 다시 연결하는 데 사용한 명령이 계속 표시됩니다. 분리 된 유일한 창을 닫았 기 때문에 screen
종료 되는 메시지 가 표시됩니다.
관련 : Linux 명령 줄에서 파일을 다운로드하기 위해 curl을 사용하는 방법
명명 된 화면 세션 사용
-S
(세션 이름) 옵션을 사용하여 세션 이름을 지정할 수 있습니다 screen
. 세션의 숫자 ID 대신 기억에 남는 이름을 사용하는 경우 세션에 다시 연결하는 것이 더 편리합니다. 다음을 입력하여 세션 이름을 "bigfile"로 지정합니다.
화면 -S bigfile
때 screen
출시 우리의 세션, 우리는 프롬프트 명령을 빈 창을 참조하십시오. 큰 파일을 다운로드 할 것이므로 장기 실행 프로세스를 예로 사용할 수 있습니다.
다음을 입력합니다.
curl //ipv4.download.thinkbroadband.com/1GB.zip> bigfile.zip
다운로드가 시작되면 Ctrl + A를 누른 다음 D를 눌러 세션을 분리합니다. -ls
(list) 옵션 을 사용하여 screen
분리 된 세션의 세부 정보를 보려면 다음을 입력합니다 .
screen -ls
숫자 식별자 (23266) 뒤에 세션 이름 (bigfile)이 표시됩니다. 세션 이름을 포함하여 다음을 입력하여 다시 연결합니다.
screen -r bigfile
다운로드 창에 다시 연결되었으며 긴 다운로드가 아직 진행중인 것을 확인했습니다.
다운로드가 완료되면 입력 exit
하여 세션 창을 닫습니다.
여러 창에서 화면 사용
지금까지 screen
분리 된 창에서 백그라운드에 단일 프로세스를 배치했습니다. 그러나 screen
그 이상을 할 수 있습니다. 다음으로 컴퓨터의 일부 측면을 모니터링 할 수있는 몇 가지 프로세스를 실행합니다.
다음을 입력하여 "모니터"라는 화면 세션을 시작합니다.
화면 -S 모니터
새 창 세션의 명령 프롬프트에서 (사람이 읽을 수있는) 및 (새 메시지 대기) 옵션을 시작 dmesg
하고 사용합니다 . 그러면 커널 버퍼 메시지가 표시됩니다. 새 메시지가 발생하면 나타납니다.-H
-w
다음을 입력합니다.
dmesg -H -w
기존 메시지가 나타납니다. 이 (가) dmseg
새 메시지를 기다리고 있기 때문에 명령 프롬프트로 돌아 가지 않고 메시지가 도착하면 표시합니다.
관련 : Linux에서 dmesg 명령을 사용하는 방법
다른 응용 프로그램을 실행하려고하므로 새 screen
창이 필요합니다 . Ctrl + A를 누른 다음 C를 눌러 새 창을 만듭니다. 을 ( watch
를) 반복적으로 실행하는 데 사용할 vmstat
것이므로 컴퓨터의 가상 메모리 사용량에 대한 자주 업데이트 된 표시를 얻습니다.
새 명령 프롬프트에서 다음을 입력합니다.
vmstat보기
vmstat
출력이 나타나고 2 초마다 업데이트됩니다.
이제 두 프로세스가 실행 중입니다. screen
창 사이를 이동하려면 Ctrl + A와 창 번호를 누릅니다. 우리가 만든 첫 번째는 창 0 (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 , Tab : 하단 영역으로 이동합니다.
- 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 [email protected]
원격 컴퓨터에서 인증하고 로그인 한 후 다음을 입력하여 screen
"ssh-geek"라는 세션 을 시작합니다 .
화면 -S ssh-geek
데모 목적으로 창 top
에서 실행 screen
되지만 장기 실행 또는 끝없는 프로세스를 시작할 수 있습니다.
다음을 입력합니다.
상단
top
창에서가 실행 되면 Ctrl + A를 누른 다음 D를 눌러 창을 분리합니다.
원래 원격 터미널 창으로 돌아갑니다.
exit
아래와 같이 입력 하면 SSH 세션 연결이 끊어지고 로컬 컴퓨터로 돌아갑니다.
출구
다시 연결하려면 다음을 입력합니다.
ssh [email protected]
다시 연결하고 로그인 한 후 다음을 입력하여 screen
세션 을 다시 연결할 수 있습니다 .
화면 -r ssh-geek
이제 여전히 실행중인의 인스턴스에 다시 연결되었습니다 top
.
한 컴퓨터에서 프로세스를 시작한 다음 다른 컴퓨터에서 중단 한 부분부터 다시 시작하려는 경우 유용합니다.
관련 : Linux 셸에서 SSH 키를 만들고 설치하는 방법
스크린 세션 공유
screen
세션을 사용하여 두 사람이 동일한 창을보고 상호 작용할 수 있습니다. 컴퓨터에서 Fedora를 실행하는 누군가가 Ubuntu 서버에 연결하려고한다고 가정 해 보겠습니다.
그는 다음을 입력합니다.
ssh [email protected]
연결되면 -S (세션 이름) 옵션을 사용하여 "ssh-geek"라는 화면 세션을 시작합니다. 또한 -d
(분리) 및 -m
(강제 생성) 옵션을 사용하여 screen
이미 분리 된 새 세션 을 만듭니다 .
그는 다음을 입력합니다.
화면 -d -m -S ssh-geek
그는 유형은 다음을의 사용 -X
세션을 연결하는 옵션을 (멀티 스크린 모드) :
화면 -X ssh-geek
Manjaro 컴퓨터에서 다른 사람이 아래와 같이 동일한 계정 자격 증명을 사용하여 Ubuntu 컴퓨터에 연결합니다.
ssh [email protected]
연결되면 다음 screen
과 같이 명령을 입력하고 -X (멀티 스크린 모드) 옵션을 사용하여 동일한 창 세션에 참가합니다.
화면 -X ssh-geek
이제 두 사람 모두 입력하면 다른 사람이 볼 수 있습니다. 예를 들어 한 사람이 date 명령을 실행하면 두 사람 모두 입력 된대로 출력과 함께 해당 명령을 볼 수 있습니다.
두 사람은 이제 screen
원격 Ubuntu 컴퓨터에서 실행 되는 세션을 공유하고 있습니다.
1987 년에 처음으로 빛을 본 소프트웨어의 경우 screen
여전히 생산성이 우수합니다. 그것에 익숙해지면 시간이 많이 걸릴 것입니다!
관련 : 알아야 할 37 가지 중요한 Linux 명령