Linux의 화면 명령을 사용하는 방법

Linux screen 명령을 사용하면 실행 중인 터미널 애플리케이션을 백그라운드로 푸시하고 보고 싶을 때 앞으로 끌어올 수 있습니다. 또한 분할 화면 디스플레이를 지원하고 연결을 끊었다가 다시 연결한 후에도 SSH 연결을 통해 작동합니다!

화면 명령이란 무엇입니까?

화면 명령은 터미널 멀티플렉서, 그리고 그것은 절대적으로 옵션으로 가득 차 있습니다. 그것이 많은 것을 할 수 있다고 말하는 것은 과소 평가의 할아버지입니다. 매뉴얼 페이지 4,100 라인 이상 실행.

다음은 screen 명령을 사용하는 가장 일반적인 경우이며 이 문서에서 더 자세히 다룰 것입니다.

표준 작업은 쉘이 있는 새 창을 만들고 명령을 실행한 다음 창을 배경으로 밀어내는 것입니다(“분리”라고 함). 프로세스가 어떻게 수행되고 있는지 확인하려면 창을 다시 전경으로 가져오고(“다시 연결”) 다시 사용할 수 있습니다. 이는 터미널 창을 닫아 실수로 종료하지 않으려는 긴 프로세스에 유용합니다.
스크린 세션이 실행되면 새 창을 만들고 그 안에서 다른 프로세스를 실행할 수 있습니다. 창 사이를 쉽게 이동하여 진행 상황을 모니터링할 수 있습니다. 터미널 창을 수직 또는 수평 영역으로 분할하고 다양한 화면 창을 하나의 창에 표시할 수도 있습니다.
원격 시스템에 연결하고 화면 세션을 시작하고 프로세스를 시작할 수 있습니다. 원격 호스트에서 연결을 끊고 다시 연결할 수 있으며 프로세스는 계속 실행됩니다.
두 사람이 실시간으로 같은 것을 볼 수 있도록 두 개의 다른 SSH 연결 간에 화면 세션을 공유할 수 있습니다.

설치 화면

우분투에 화면을 설치하려면 다음 명령을 사용하십시오.

sudo apt-get install screen

그만큼

Manjaro에 화면을 설치하려면 다음 명령을 사용하십시오.

sudo pacman -Sy screen

그만큼

Fedora에서 다음을 입력합니다.

sudo dnf install 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

그만큼 터미널 창에서 최신_커널.zip” 명령.’ 너비=”646″ 높이=”77″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);” onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”>

다운로드가 시작되고 curl 출력에 진행 상황이 표시됩니다.

의 출력 터미널 창에서 최신_커널.zip” 명령.’ 너비=”646″ 높이=”247″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);” onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”>

  iPhone, iPad 및 Mac에서 AirPod를 자동으로 전환하는 방법

다음 비트의 이미지는 키 입력 시퀀스이기 때문에 보여드릴 수 없습니다. Ctrl+A를 입력하고 해당 키를 놓은 다음 d를 눌러 화면을 분리합니다.

다운로드 프로세스는 여전히 실행 중이지만 다운로드를 표시하는 창이 제거되었습니다. 화면 세션을 시작한 터미널 창으로 돌아갑니다. 23167.pts-0.wdzwdz라는 레이블이 붙은 화면 창이 분리되었다는 메시지가 표시됩니다.

다시 연결하려면 창 이름 시작 부분의 번호가 필요합니다. 잊어버린 경우 아래 표시된 것처럼 항상 -ls(목록) 옵션을 사용하여 분리된 창 목록을 가져올 수 있습니다.

screen -ls

그만큼

준비가 되면 다음과 같이 -r(재연결) 옵션과 다시 연결할 세션 번호를 사용할 수 있습니다.

screen -r 23167

그만큼

백그라운드에서 작동하던 창이 이제 터미널 창으로 돌아가지 않은 것처럼 다시 나타납니다.

그것이 결론에 이르기까지 진행되는 과정이라면 결국 완료될 것입니다. 지속적인 프로세스라면 결국 종료하고 싶을 것입니다. 어느 쪽이든 프로세스가 끝나면 exit를 입력하여 화면을 종료할 수 있습니다. 또는 Ctrl+A를 누른 다음 K를 눌러 창을 강제로 종료할 수 있습니다.

다음 명령을 입력합니다.

exit

그만큼

창을 다시 연결하는 데 사용한 명령이 계속 표시되는 이전 터미널 창으로 돌아갑니다. 하나뿐인 분리된 창을 닫았기 때문에 화면이 종료되고 있다는 메시지가 나타납니다.

그만큼

명명된 화면 세션 사용

-S(세션 이름) 옵션을 사용하여 화면 세션의 이름을 지정할 수 있습니다. 세션의 숫자 ID보다 기억하기 쉬운 이름을 사용하면 세션에 다시 연결하는 것이 더 편리합니다. 세션 이름을 “bigfile”로 지정하기 위해 다음을 입력합니다.

screen -S bigfile

그만큼

screen이 세션을 시작하면 명령 프롬프트가 있는 빈 창이 표시됩니다. 장기 실행 프로세스를 예로 사용할 수 있도록 큰 파일을 다운로드할 것입니다.

다음을 입력합니다.

curl http://ipv4.download.thinkbroadband.com/1GB.zip > bigfile.zip

그만큼 터미널 창에서 bigfile.zip” 명령.’ 너비=”646″ 높이=”77″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);” onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”>

다운로드가 시작되면 Ctrl+A를 누른 다음 D를 눌러 세션을 분리합니다. 분리된 세션의 세부 정보를 보기 위해 screen과 함께 -ls(list) 옵션을 사용하기 위해 다음을 입력합니다.

screen -ls

그만큼

숫자 식별자(23266) 뒤에는 세션 이름(bigfile)이 표시됩니다. 세션 이름을 포함하여 다음을 입력하여 다시 연결합니다.

screen -r bigfile

그만큼

다운로드 창에 다시 연결되고 긴 다운로드가 아직 진행 중임을 확인합니다.

다운로드가 완료되면 exit를 입력하여 세션 창을 닫습니다.

다중 창에서 화면 사용

지금까지 분리된 창의 백그라운드에 단일 프로세스를 배치하기 위해 screen을 사용했습니다. 그러나 화면은 그 이상을 수행할 수 있습니다. 다음으로 컴퓨터의 일부 측면을 모니터링할 수 있는 몇 가지 프로세스를 실행합니다.

다음을 입력하여 “모니터”라는 화면 세션을 시작합니다.

screen -S monitor

그만큼

새 창 세션의 명령 프롬프트에서 dmesg를 시작하고 -H(사람이 읽을 수 있음) 및 -w(새 메시지 대기) 옵션을 사용합니다. 이것은 커널 버퍼 메시지 표시; 새로운 메시지가 나타날 때마다 나타납니다.

  Apple AirPods Pro를 모든 기기와 쌍으로 연결하는 방법

다음을 입력합니다.

dmesg -H -w

그만큼

기존 메시지가 나타납니다. dmseg가 새 메시지를 기다리고 있기 때문에 명령 프롬프트로 돌아가지 않고 도착하는 대로 표시합니다.

그만큼

다른 응용 프로그램을 실행하고 싶기 때문에 새 화면 창이 필요합니다. Ctrl+A를 누른 다음 C를 눌러 새 창을 만듭니다. 우리는 시계를 사용하여 반복적으로 실행 vmstat를 사용하여 자주 업데이트됩니다. 가상 메모리 사용량 표시 우리 컴퓨터에.

새 명령 프롬프트에서 다음을 입력합니다.

watch vmstat

그만큼

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

그만큼

이제 두 프로세스가 실행 중입니다. 화면 창 사이를 이동하려면 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 창을 표시합니다.

  Word에서 주석을 추가 및 제거하는 방법

ㅏ

영역에서 영역으로 이동하고 수직 또는 수평 분할을 추가할 수도 있습니다. 다음은 더 유용한 키 조합입니다.

Ctrl+A: 현재 영역과 이전 영역 사이를 앞뒤로 이동합니다.
Ctrl+A, Q: 현재 영역을 제외한 모든 영역을 닫습니다.
Ctrl+A, X: 현재 영역을 닫습니다.

SSH를 통한 화면 사용

screen을 사용하면 창 세션을 시작하고 분리하여 백그라운드에서 계속 실행하고 로그오프하거나 다시 로그인하고 세션을 다시 연결할 수 있습니다.

SSH를 만들어보자 우리 컴퓨터에 연결 ssh 명령으로 다른 것에서. 연결할 계정의 이름과 원격 컴퓨터의 주소를 제공해야 합니다.

이 예에서는 다음을 입력합니다.

ssh [email protected]

그만큼

원격 컴퓨터에서 인증하고 로그인한 후 다음을 입력하여 “ssh-geek”이라는 화면 세션을 시작합니다.

screen -S ssh-geek

그만큼

데모 목적으로 화면 창에서 맨 위로 실행되지만 장기 실행 또는 무한 프로세스를 시작할 수 있습니다.

다음을 입력합니다.

top

그만큼

상단이 창에서 실행되면 Ctrl+A를 누른 다음 D를 눌러 창을 분리합니다.

그만큼

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

아래와 같이 exit를 입력하면 SSH 세션의 연결이 끊기고 로컬 컴퓨터로 돌아갑니다.

exit

그만큼

다시 연결하려면 다음을 입력합니다.

ssh [email protected]

그만큼

다시 연결하고 로그인한 후 다음을 입력하여 화면 세션을 다시 연결할 수 있습니다.

screen -r ssh-geek

그만큼

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

그만큼

한 시스템에서 프로세스를 시작한 다음 다른 시스템에서 중단한 부분부터 다시 시작하려는 경우에 유용합니다.

화면 세션 공유

화면 세션을 사용하여 두 사람이 동일한 창을 보고 상호 작용하도록 할 수도 있습니다. 컴퓨터에서 Fedora를 실행하는 누군가가 Ubuntu 서버에 연결하려고 한다고 가정해 보겠습니다.

그는 다음을 입력할 것입니다:

ssh [email protected]

그만큼

연결한 후 -S(세션 이름) 옵션을 사용하여 “ssh-geek”이라는 화면 세션을 시작합니다. 그는 또한 -d(분리) 및 -m(강제 생성) 옵션을 사용하여 이미 분리된 새 화면 세션을 생성합니다.

그는 다음을 입력합니다.

screen -d -m -S ssh-geek

그만큼

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

screen -X ssh-geek

그만큼

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

ssh [email protected]

그만큼

연결되면 screen 명령을 입력하고 -X(다중 화면 모드) 옵션을 사용하여 다음과 같이 동일한 창 세션에 참여합니다.

screen -X ssh-geek

그만큼

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

그만큼

에서 출력

두 사람은 이제 원격 Ubuntu 컴퓨터에서 실행되는 화면 세션을 공유하고 있습니다.

1987년에 처음으로 빛을 본 소프트웨어의 경우 화면은 여전히 ​​우수한 생산성을 제공합니다. 익숙해지면 좋은 시간이 될 것입니다!