개인용으로 우분투 서버를 운용하면서 파일을 이동하거나 복사하는 등의 작업을 할때 SSH를 통해 접속하는 경우가 많다. 아니, 서버에 마우스와 키보드를 달아 놓지 않았기 때문에 초기 설치 때를 제외하고는 거의 대부분 SSH를 통해서 접속하여 필요한 작업을 하게 된다.

윈도우에서 Putty 등을 통하여 서버에 접속하고 파일 복사 등의 작업을 진행할 때, 진행 중에 터미널을 꺼버리거나 하면 진행되던 작업이 해당 시점에서 멈추는 것이 우분투를 이제 막 배워가는 '우분투알못'인 나로써는 엄청나게 불편했다. 파일 복사를 시켜놓고 터미널을 켜두어야 하기 때문에 대용량 파일을 복사해야 할 경우에는 복사가 다 될때까지 메인 컴퓨터를 켜놓고 자는 경우도 많았다.

하지만 Screen 이라는 프로그램을 통해 이러한 불편함에 더불어 한개의 터미널에 한개의 작업밖에 할 수 없는 문제 또한 한번에 해결할 수 있었다. 이러한 문제를 해결하기 위해 검색을 하게 되면 nohup 이라는 명령어를 사용하라는 글이 많이 나온다. nohup 은 현재 수행중인 커맨드를 백그라운드로 돌리라는 명령어인데, 이것을 사용하면 터미널이 종료되어도 작업이 계속된다는 점에서 일차적인 목적은 달성할 수 있지만, nuhup은 진행 상황을 볼 수 없다는 단점을 가지고 있다. 파일 복사 작업을 백그라운드로 돌려 두고 언제 완료되는지를 확인하기 위해서는 파일이 제대로 옮겨졌는지를 확인하는 수 밖에 없어 매우 불편할 수 밖에 없다.

Screen

Screen 은 Linux 에서 물리적인 터미널을 여러개의 가상 터미널로 다중화 해주는 도구이다. 각각의 가상 터미널은 백그라운드로 이동해도 독립적으로 작동하게 된다. 쉽게말하면 새로운 화면을 띄워 해당 화면에서 작업을 진행하고, 해당 화면을 종료하는 명령을 내리기 전까지는 터미널을 종료해도 작업이 계속되게 된다.

설치

Ubuntu 시스템 (Ubuntu 20.04)에서는 간단하게

sudo apt-get install screen

만 입력해주면 설치가 완료된다.

사용법

주요 커맨드는 아래와 같다.

# 새로운 스크린 만들기. 스크린을 만들고 바로 해당 스크린으로 들어가진다.
screen -S name

# 현재 열어둔 스크린 목록 확인
screen -ls

# 기존 스크린 접속하기
screen -r name

# 스크린 나가기(스크린 및 진행중인 작업 유지)
Ctrl + a => d

# 스크린 종료하기(진행중인 작업 종료)
exit

# 스크린 종료하기 (스크린으로부터 나와있는 상태에서)
screen -S name -X quit
# 스크린 내에 새로운 윈도우 추가하기
Ctrl + a => c

# 스크린 내의 윈도우 목록 확인
Ctrl + a + w

# 윈도우 전환하기(바로 전 윈도우)
Ctrl + a + a

# 다음 윈도우
Ctrl + a + n

# 이전 윈도우
Ctrl + a + p

# 원하는 윈도우로 넘어가기
Ctrl + a + 번호

'스크린'이라는 이름과 '윈도우'라는 이름에서 짐작할 수 있듯, 스크린을 하나의 화면, 윈도우를 그 안에 떠있는 창이라고 생각하면 구조를 이해하기 쉽다. 스크린을 만드는 것은 하나의 새로운 화면을 여는 것과 같고 스크린 안에 여러개의 윈도우에서 각기 다른 작업을 할 수 있다. 물론 스크린 또한 여러개를 만들 수 있다.

Screen 을 이용하면 GUI 환경에서 창을 여러개 띄워두고 작업하듯 여러 스크린과 윈도우를 드나들며 멀티태스킹이 가능하다. 사실 개인적인 목적에 있어서는 이 장점은 덤이고, 터미널을 실수로든 의도적으로든 종료해도 작업이 종료되지 않으며, 다시 터미널로 접속하여 스크린 목록을 확인하면 진행중이던 작업 화면으로 돌아갈 수 있다 것이 가장 큰 장점이라고 볼 수 있다.

참고 : Linux > 기본명령어 > screen

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기