티스토리 뷰

개발/Linux

screen 빠르게 사용

Jaeyeon Baek 2021. 11. 15. 15:45

한 개의 터미널에서 여러 화면을 사용해야 할 때 screen은 매우 유용합니다. 백그라운드로 돌려야 하는 작업도 " > /dev/null 2>&1 " 같은 꼬리표보다 가끔은 screen이 편할 때도 있죠. 이번 글에서는 screen을 빠르게 사용하기 위한 기본 커맨드를 알아봅니다.


 

# screen 실행

screen -S sockname

screen은 이름을 갖습니다. 이름으로 구분해서 스크린을 사용할 수 있죠. 보통 여러 개의 스크린을 운영할 일은 드물기 때문에 적당히 본인만의 이름을 사용해도 크게 무리는 없습니다. 여기서는 sockname을 이름으로 사용했습니다.

 

# screen 빠져나오기

Ctrl + a + d

스크린을 빠져나올 때는 위의 커맨드를 순서대로 눌러주면 됩니다. 마치 영어를 AD를 입력할 때 Shift를 입력한 상태로 a, d를 순서대로 누르는 느낌이랄까요?

 

# screen 다시 접속

screen -r sockname

빠져나왔던 스크린에 다시 접속하는 옵션입니다. -R 을 사용하면 스크린이 없는 경우 신규로 생성하고, 이미 존재한다면 해당 스크린으로 접속하는 용도로 쓸 수도 있습니다.

 

# screen 종료

exit

스크린을 종료시킵니다. 

 

# screen 목록보기

screen -list

현재 시스템에 운영되는 스크린 목록을 확인할 수 있습니다. 스크린 이름을 확인하고 접속해보세요.

 

# screen 로그를 파일로 출력

screen -S batch -L -Logfile foo.txt

screen에서 출력되는 모든 내용을 파일에 기록합니다. 프로그램을 실행시켜놓고 어떤 로그가 찍히고 있는지 굳이 스크린에 접속해서 확인할 필요 없이 파일로 확인하실 수 있습니다.

 

 


 

이외에도 다양한 옵션이 존재합니다. 필요한 건 그때그때 찾아서 사용하면 되겠지만, 사실 대부분 자주 사용하는 것들이 아니라서 위에서 설명한 접속, 종료, 목록보기 같은 기본 명령어만 알아도 충분합니다. screen -h로 살펴보면 멍해질 정도로 많은 옵션이 나열되어 있는데 빠르게 screen을 익힐 필요가 있는 분들께는 도움이 되겠죠 :)  

$ screen -h
Use: screen [-opts] [cmd [args]]
 or: screen -r [host.tty]

Options:
-a            Force all capabilities into each window's termcap.
-A -[r|R]     Adapt all windows to the new display width & height.
-c file       Read configuration file instead of '.screenrc'.
-d (-r)       Detach the elsewhere running screen (and reattach here).
-dmS name     Start as daemon: Screen session in detached mode.
-D (-r)       Detach and logout remote (and reattach here).
-D -RR        Do whatever is needed to get a screen session.
-e xy         Change command characters.
-f            Flow control on, -fn = off, -fa = auto.
-h lines      Set the size of the scrollback history buffer.
-i            Interrupt output sooner when flow control is on.
-list         or -ls. Do nothing, just list our SockDir.
-L            Turn on output logging.
-m            ignore $STY variable, do create a new screen session.
-O            Choose optimal output rather than exact vt100 emulation.
-p window     Preselect the named window if it exists.
-q            Quiet startup. Exits with non-zero return code if unsuccessful.
-r            Reattach to a detached screen process.
-R            Reattach if possible, otherwise start a new session.
-s shell      Shell to execute rather than $SHELL.
-S sockname   Name this session <pid>.sockname instead of <pid>.<tty>.<host>.
-t title      Set title. (window's name).
-T term       Use term as $TERM for windows, rather than "screen".
-U            Tell screen to use UTF-8 encoding.
-v            Print "Screen version 4.00.03 (FAU) 23-Oct-06".
-wipe         Do nothing, just clean up SockDir.
-x            Attach to a not detached screen. (Multi display mode).
-X            Execute <cmd> as a screen command in the specified session.
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday