웹사이트 검색

Linux 터미널을 관리하기 위한 20가지 화면 명령 예


요약: 이 가이드에서는 화면 명령의 몇 가지 유용한 예를 설명합니다. 이 가이드가 끝나면 사용자는 단일 Linux 터미널 창을 사용하여 여러 셸 세션으로 작업할 수 있습니다.

Linux 사용자로서 우리는 대용량 파일 다운로드 또는 복사, 시간이 많이 걸리는 데이터베이스 쿼리 실행 등과 같은 장기 실행 작업을 수행해야 하는 경우가 많습니다. 때로는 세션 시간 초과로 인해 이러한 중요한 작업이 갑자기 종료되는 경우가 있습니다.

이러한 시나리오를 완화하기 위해 screen 명령을 사용할 수 있습니다. 이 명령은 여러 프로세스(일반적으로 대화형 셸) 간에 물리적 콘솔을 다중화하는 데 사용할 수 있는 전체 화면 소프트웨어 프로그램입니다. 단일 터미널 창 관리자 내에서 여러 개의 개별 터미널 인스턴스를 열 수 있는 기능을 사용자에게 제공합니다.

screen 애플리케이션은 명령줄 인터페이스에서 여러 프로그램을 처리하고 터미널 셸에서 프로그램을 분리하는 경우 매우 유용합니다. 또한 다른 사용자와 세션을 공유하고 터미널 세션을 분리/연결할 수도 있습니다.

이 가이드에서는 Linux 시스템에서 screen 명령을 설치, 구성 및 사용하는 방법을 설명합니다. 이 가이드 전반에 걸쳐 실제 예를 통해 화면 명령의 사용법과 이점을 이해하게 됩니다.

그럼 시작해 보겠습니다.

Linux에 화면 명령 설치

Ubuntu Server Edition에는 screen 명령이 기본적으로 설치되어 있습니다. 하지만 Linux Mint에는 기본적으로 화면이 설치되어 있지 않으므로 사용하기 전에 apt-get 명령을 사용하여 먼저 설치해야 합니다. .

화면을 설치하려면 배포판 설치 절차를 따르십시오.

sudo apt-get install screen      [On Debian, Ubuntu and Mint]
sudo yum install screen          [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/screen   [On Gentoo Linux]
sudo apk add screen              [On Alpine Linux]
sudo pacman -S screen            [On Arch Linux]
sudo zypper install screen       [On OpenSUSE]    

이제 명령이 성공적으로 설치되었는지 확인해 보겠습니다.

screen --version

Screen version 4.8.00 (GNU) 05-Feb-20

실제로 screen은 수백 개의 Linux 명령 안에 숨겨져 있는 Linux의 매우 훌륭한 터미널 멀티플렉서 프로그램입니다.

다음 예를 통해 Linux에서 screen 명령의 사용법을 살펴보겠습니다.

화면 명령 구문

screen 명령의 구문은 다음과 같습니다.

screen [OPTIONS] [ CMD [ ARGS ] ]

위 구문에서 모든 매개변수는 옵션이며 대괄호 ([])로 표시되어 있음을 알 수 있습니다.

1. 최초 시작 화면

명령 프롬프트에 화면을 입력하면 됩니다. 그러면 화면에 명령 프롬프트와 똑같은 인터페이스가 표시됩니다.

screen

2. 화면 매개변수 표시

화면에 들어가면 일반 명령줄 환경에서와 마찬가지로 모든 작업을 수행할 수 있습니다. 그러나 화면은 애플리케이션이므로 명령이나 매개변수가 있습니다.

'Ctrl-A' 및 '?'를 따옴표 없이 입력하세요. 그러면 화면에 모든 명령이나 매개변수가 표시됩니다.

도움말 화면에서 나가려면 "스페이스바 " 버튼을 누르거나 "Enter"를 누르세요. ("Ctrl-A "를 사용하는 모든 단축키는 따옴표 없이 수행됩니다.)

3. 열려 있는 모든 창을 나열하는 방법

이전 예에서는 screen 명령을 사용하여 새 셸 세션을 시작했습니다. 이제 ctrl-a + " 키 조합을 사용하여 현재 화면 세션의 열려 있는 모든 창을 나열해 보겠습니다.

위 출력에서 창의 번호와 이름을 볼 수 있습니다. 첫 번째 열은 창 번호를 나타내며 0부터 시작합니다.

다음 열은 창의 이름을 나타내며 기본 형식은 @:입니다.

4. 스크린 윈도우 세션을 종료하는 방법

ctrl-a + k 키 조합을 사용하여 활성 창 세션을 종료할 수 있습니다. 이 작업은 현재 가상 창에서 명령 실행을 중단한다는 점에 유의하는 것이 중요합니다.

위 출력에서 screen 명령이 사용자의 확인을 기다리고 있는 것을 볼 수 있습니다. 왼쪽 하단에 경고 메시지가 표시됩니다.

다른 Linux 명령과 마찬가지로 'y'를 사용하여 작업을 계속하거나 'n'을 사용하여 작업을 중단할 수 있습니다.

5. 이름으로 Screen 세션을 시작하는 방법

screen 명령을 사용하면 사용자 정의 이름으로 세션을 생성할 수 있으며, 이는 사용 가능한 세션이 여러 개 있을 때 유용합니다.

따라서 명령의 -S 옵션을 사용하여 명명된 세션을 생성해 보겠습니다.

screen -S demo-screen

위 명령에서 demo-screen은 세션 이름입니다.

6. 화면으로 터미널 세션 분리

스크린의 장점 중 하나는 분리가 가능하다는 것입니다. 그런 다음 화면에서 수행한 작업을 잃지 않고 복원할 수 있습니다. 샘플 시나리오는 다음과 같습니다.

서버에서 SSH를 수행하는 중입니다. wget 명령을 사용하여 시스템에 대한 400MB 패치를 다운로드한다고 가정해 보겠습니다.

다운로드 과정은 2시간 정도 소요될 것으로 예상됩니다. SSH 세션 연결을 끊거나 실수로 갑자기 연결이 끊어지면 다운로드 프로세스가 중지됩니다. 처음부터 다시 시작해야 합니다. 이를 방지하기 위해 스크린을 사용하여 분리할 수 있습니다.

이 명령을 살펴보십시오. 먼저 화면에 들어가야 합니다.

screen

그런 다음 다운로드 프로세스를 수행할 수 있습니다. 예를 들어 Linux Mint에서 apt 명령을 사용하여 dpkg 패키지를 업그레이드하고 있습니다.

sudo apt install dpkg
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following packages will be upgraded:
  dpkg
1 upgraded, 0 newly installed, 0 to remove and 1146 not upgraded.
Need to get 2,583 kB of archives.
After this operation, 127 kB of additional disk space will be used.
Get:1 http://debian.linuxmint.com/latest/ 
testing/main dpkg i386 1.16.10 [2,583 kB]
47% [1 dpkg 1,625 kB/2,583 kB 47%]     14,7 kB/s

다운로드가 진행되는 동안 "Ctrl-A" 및 "d"를 누를 수 있습니다. 해당 버튼을 누르면 아무 것도 표시되지 않습니다. 출력은 다음과 같습니다:

[detached from 5561.pts-0.mint]
pungki@mint ~ $

7. Screen을 사용하여 터미널 세션을 다시 연결합니다.

화면을 분리한 후 SSH 세션 연결을 끊고 집으로 간다고 가정해 보겠습니다. 집에서 서버에 다시 SSH를 시작하고 다운로드 프로세스의 진행 상황을 확인하려고 합니다. 그러기 위해서는 화면을 복원해야 합니다. 다음 명령을 실행할 수 있습니다.

pungki@mint ~ $ screen -r

그리고 떠난 프로세스가 여전히 실행 중임을 알 수 있습니다.

스크린 세션이 1개 이상인 경우 스크린 세션 ID를 입력해야 합니다. 화면 -ls를 사용하여 사용 가능한 화면 수를 확인하세요.

pungki@mint ~ $ screen -ls
pungki@mint ~ $ screen -ls
There are screens on:
        7849.pts-0.mint (10/06/2021 01:50:45 PM)        (Detached)
        5561.pts-0.mint (10/06/2021 11:12:05 AM)        (Detached)
2 Sockets in /var/run/screen/S-pungki

화면 7849.pts-0.mint를 복원하려면 다음 명령을 입력하세요.

pungki@mint ~ $ screen -r 7849

8. 다중 화면 터미널 Windows 사용

작업을 수행하기 위해 1개 이상의 화면이 필요할 때 가능합니까? 예, 그렇습니다. 동시에 여러 화면 창을 실행할 수 있습니다. 이를 수행하는 방법에는 2가지가 있습니다.

먼저, 첫 번째 화면을 분리하고 실제 터미널에서 다른 화면을 실행할 수 있습니다. 둘째, 그림과 같이 중첩된 화면을 만듭니다.

새 창을 만들려면 ctrl-a + c 키 조합을 두 번 사용하여 두 개의 새 창을 만듭니다. 다음으로 ctrl-a + " 키 조합을 사용하여 모든 활성 창을 나열해 보겠습니다.

위 출력에서 이제 세 개의 창이 있는 것을 볼 수 있습니다.

9. 화면 창 이름을 바꾸는 방법

이전 예에서는 두 개의 새 창을 만들었습니다. 그러나 기본 이름은 이에 대한 세부 정보를 제공하지 않습니다. 그러한 경우에는 의미 있는 이름을 할당할 수 있습니다.

ctrl-a + A 키 조합을 사용하여 현재 창 세션의 이름을 바꿀 수 있습니다. 이 키 조합은 사용자에게 창 제목을 설정하라는 메시지를 표시합니다.

10. 스크린 터미널 창 간 전환

이전 예에서는 여러 개의 창을 만들었습니다. 이제 이들 사이를 전환하는 방법을 살펴보겠습니다.

먼저 ctrl-a + " 키 조합을 사용하여 모든 활성 창을 나열하겠습니다. 그런 다음 위쪽 또는 아래쪽 화살표 키를 사용하여 해당 창을 선택합니다. 마지막으로 Enter 키를 눌러 선택한 창으로 전환합니다. 창문.

이 예에서는 제목이 db-query인 창을 선택했습니다.

11. 다음 화면 창으로 이동하는 방법

ctrl-a + n 키 조합을 사용하여 다음 창으로 이동할 수 있습니다. 예를 들어 이것을 이해해 봅시다.

먼저 첫 번째 창으로 전환하고 ctrl-a + " 키 조합을 사용하여 확인하세요.

이제 ctrl-a + n 키 조합을 두 번 눌러 세 번째 창으로 이동하고 ctrl-a + " 키 조합을 사용하여 동일한지 확인해 보겠습니다.

위 출력에서 이제 세 번째 창에 있음을 알 수 있습니다.

12. 이전 화면 창으로 이동하는 방법

비슷한 방식으로 ctrl-a + p 조합을 사용하여 이전 창으로 전환할 수 있습니다.

현재 우리는 세 번째 창에 있습니다. 이제 ctrl-a + p 키 조합을 두 번 사용하고 첫 번째 창에 다시 있는지 확인해 보겠습니다.

위 출력에서 이제 첫 번째 창으로 돌아왔음을 알 수 있습니다.

13. 현재 창과 이전 창 간을 전환하는 방법

때로는 두 창 사이를 전환하고 싶을 때도 있습니다. 이러한 경우 ctrl-a + ctrl-a 키 조합을 사용할 수 있습니다.

이를 이해하려면 먼저 첫 번째 창으로 전환하세요.

다음으로 마지막 창으로 전환합니다.

마지막으로 ctrl-a + ctrl-a 키 조합을 사용하여 첫 번째 창으로 다시 이동합니다.

14. 특정 화면 창으로 이동하는 방법

이전 예에서는 창 간을 전환하는 다양한 방법을 살펴보았습니다. 그러나 때로는 특정 창으로 이동하고 싶을 때도 있습니다. 이러한 시나리오에서는 창 번호를 사용할 수 있습니다.

먼저 ctrl-a + " 키 조합을 사용하여 창 번호를 찾으세요.

위 출력에서 첫 번째 열은 창 번호를 나타냅니다. 화면 명령의 번호는 0부터 시작된다는 점에 유의하는 것이 중요합니다.

이제 ctrl-a + 2 키 조합을 사용하여 세 번째 창으로 이동하고 올바른 창에 있는지 확인하겠습니다.

15. 화면 창을 가로로 분할하는 방법

일반 터미널과 마찬가지로 화면 창을 분할할 수도 있습니다. ctrl-a + S 키 조합을 사용하여 창을 가로로 분할할 수 있습니다.

이제 ctrl-a + tab 키 조합을 사용하여 영역 간에 이동할 수 있습니다.

마지막으로 ctrl-a + X 키 조합을 사용하여 현재 지역을 제거할 수 있습니다. 여기서는 대문자 X 문자를 사용해야 한다는 점에 유의하는 것이 중요합니다.

16. 화면 창을 수직으로 분할하는 방법

마찬가지로 ctrl-a + | 키 조합을 사용하여 현재 창을 수직으로 분할할 수 있습니다.

이 외에도 ctrl-a + tab 키 조합을 사용하여 영역을 전환하고 ctrl-a + X 키 조합을 사용하여 현재 영역을 닫을 수도 있습니다.

17. Linux에서 화면 로깅 활성화

때로는 콘솔에 있는 동안 수행한 작업을 기록하는 것이 중요합니다. 당신이 다수의 Linux 서버를 관리하는 Linux 관리자라고 가정해 보겠습니다.

화면 로깅을 사용하면 수행한 모든 명령을 일일이 기록할 필요가 없습니다. 화면 로깅 기능을 활성화하려면 "Ctrl-A"와 "H"를 누르기만 하면 됩니다. (주의하세요. 대문자 'H' 문자를 사용합니다. 대문자가 아닌 'h'를 사용하면 hardcopy라는 다른 파일에만 화면 스크린샷이 생성됩니다.) .

화면 왼쪽 하단에 'screenlog.0' 로그 파일 생성 중 좋아요를 누르라는 알림이 표시됩니다. 홈 디렉터리에서 screenlog.0 파일을 찾을 수 있습니다.

이 기능은 화면 창에 있는 동안 수행하는 모든 작업을 추가합니다. 실행 중인 활동을 기록하기 위해 화면을 닫으려면 “Ctrl-A”와 “H”를 다시 누르십시오.

로깅 기능을 활성화하는 또 다른 방법은 화면을 처음 실행할 때 “-L” 매개변수를 추가하는 것입니다. 명령은 다음과 같습니다.

pungki@mint ~ $ screen -L

18. Linux 터미널 화면 잠금

화면에는 화면을 잠그하는 바로가기도 있습니다. “Ctrl-A” 및 “x” 단축키를 눌러 화면을 잠글 수 있습니다. 화면을 빠르게 잠그고 싶을 때 유용합니다. 다음은 바로가기를 누른 후의 잠금 화면 출력 샘플입니다.

Screen used by Pungki Arianto  on mint.
Password:

Linux 비밀번호를 사용하여 잠금을 해제할 수 있습니다.

19. 화면 세션에 비밀번호 추가

보안상의 이유로 화면 세션에 비밀번호를 입력할 수 있습니다. 화면을 다시 연결할 때마다 비밀번호를 묻는 메시지가 표시됩니다. 이 비밀번호는 위의 잠금 화면 메커니즘과 다릅니다.

화면 비밀번호를 보호하려면 "$HOME/.screenrc" 파일을 편집하면 됩니다. 파일이 없으면 수동으로 만들 수 있습니다. 구문은 다음과 같습니다.

password crypt_password

위의 "crypt_password"를 생성하려면 Linux에서 "mkpasswd" 명령을 사용할 수 있습니다. 비밀번호가 "pungki123"인 명령은 다음과 같습니다.

pungki@mint ~ $ mkpasswd pungki123
l2BIBzvIeQNOs

mkpasswd는 위와 같이 해시 비밀번호를 생성합니다. 해시 비밀번호를 얻으면 이를 “.screenrc” 파일에 복사하여 저장할 수 있습니다. 따라서 “.screenrc” 파일은 다음과 같습니다.

password l2BIBzvIeQNOs

다음에 화면을 실행하고 분리할 때 다시 연결하려고 하면 아래와 같이 비밀번호를 묻는 메시지가 표시됩니다.

pungki@mint ~ $ screen -r 5741
Screen password:

비밀번호 'pungki123'을 입력하면 화면이 다시 다시 연결됩니다.

이 화면 비밀번호를 구현하고 "Ctrl-A"와 "x"를 누르면 출력은 다음과 같습니다.

Screen used by Pungki Arianto on mint.
Password:
Screen password:

비밀번호를 두 번 묻습니다. 첫 번째 비밀번호는 Linux 비밀번호이고, 두 번째 비밀번호는 .screenrc 파일에 입력한 비밀번호입니다.

20. 스크린 터미널 세션 나가기

화면에서 나가는 방법은 2(두 가지)입니다. 먼저 “Ctrl-A”와 “d”를 사용하여 화면을 분리합니다. 둘째, 종료 명령을 사용하여 화면을 종료할 수 있습니다. 또한 "Ctrl-A" 및 "K"를 사용하여 화면을 종료할 수도 있습니다.

화면 명령 치트 시트

screen -S <session_name>

세션 이름으로 새 세션을 시작합니다.

screen -ls

실행 중인 세션/화면을 나열합니다.

screen -x

실행 중인 세션에 연결합니다.

screen -r <session_name>

이름을 사용하여 실행 중인 세션에 연결합니다.

screen -d <session_name>

실행 중인 세션을 분리합니다.

Ctrl-a c

새 창을 만듭니다.

Ctrl-a Ctrl-a

마지막으로 방문한 활성 창으로 변경합니다.

Ctrl-a <number>

번호별 창으로 변경합니다.

Ctrl-a ' <number or title>

번호나 이름으로 창을 변경합니다.

Ctrl-a n or Ctrl-a <space>

목록의 다음 창으로 변경합니다.

Ctrl-a p or Ctrl-a <backspace>

목록의 이전 창으로 변경합니다.

Ctrl-a "

창 목록을 참조하세요.

Ctrl-a w

창 표시줄을 표시합니다.

Ctrl-a k

현재 창을 종료합니다.

Ctrl-a \

모든 창을 종료합니다.

Ctrl-a A

현재 창의 이름을 바꿉니다.

Ctrl-a S

디스플레이를 가로로 분할합니다.

Ctrl-a | or Ctrl-a V

디스플레이를 수직으로 분할합니다.

Ctrl-a tab

다음 표시 영역으로 이동합니다.

Ctrl-a X

현재 지역을 제거합니다.

Ctrl-a Q

현재 지역을 제외한 모든 지역을 제거합니다.

Ctrl-a H

스크린 세션에서 로그인을 활성화합니다.

Ctrl-a x

잠금(비밀번호 보호) 표시.

이는 매일 사용되는 screen 명령의 일부입니다. 화면 명령에는 여전히 많은 기능이 있습니다. 자세한 내용은 화면 매뉴얼 페이지를 참조하세요.

Linux의 screen 명령에 대한 다른 최고의 예를 알고 계십니까? 아래 댓글로 여러분의 의견을 알려주세요.