우분투에는 화면을 나눠 터미널을 두개 이상 붙여 쓰는 기능이 없다. 맥에는 있는데...
그래서 대신 screen이나 terminator을 설치해서 사용한대서 먼저 screen을 써봤다.
지금 감상
한글을 섞어 쓰는 작업을 한다면 불편하다. 컴퓨터를 한 대만 쓰고, 장시간 걸리는 작업을 하지 않아서 screen의 이점을 크게 못 느끼겠다. 컴퓨터를 종료하거나 커넥션을 끊어도 screen 세션은 남아있다고 하는 건 서버가 따로 있고 그 서버에서 screen을 실행할 때의 이야기다.
neovim을 커스터마이징 해둔 상태였는데 screen 상태에서 neovim을 실행하니 포커싱된 라인과 바탕색이 색이 역전되고 편집을 종료해도 편집하던 내용이 터미널 상단에 남아있어서 보기에 복잡하다.
서버와 개인 노트북을 따로 쓸 때 screen이 가장 빛을 발할 것 같다. 찾은 자료 중에 가장 잘 설명되어 있는 참고 링크1과 참고 링크 2
이 참고 링크에서는 screen을 다양하게 커스터마이징해서 사용한다.
screen
설치하고 세션 만들기
$ sudo apt-get install screen # screen 설치
$ screen -S <세션명> # screen 세션 생성
세션을 생성하면 바로 들어가진다. 터미널 창의 title이 세션명으로 바뀌어 있다.
지금은 방금 만든 screen 세션 하나의 윈도우 하나(#0)를 띄워둔 상태이다. screen에 들어간 상태에서 명령어 단축키는 ctrl + a를 누른 다음 손을 떼고 다음 키를 누르는 식으로 사용한다.
ctrl + a, w # 윈도우 목록 확인하기
ctrl + a, c # 새 윈도우 생성하기
ctrl + a, <숫자> # 해당 번호의 윈도우로 변경하기
터미널 창 하나를 여러 영역으로 분할할 수 있다. 이게 내가 원하던 기능이다. 창을 가로, 세로로 나눌 수 있고, 왼편에 하나, 오른편에 위아래로 두개 이런 식의 구조도 가능하다. 분할한 창을 resize하는 것까진 안 해봤다.
ctrl + a, shift + s # 가로로 화면 분할
ctrl + a, shift + \ # 세로로 화면 분할
분할한 직후 새로 생긴 조각(?)엔 아무것도 안 떠있다. 거기로 커서를 옮기고 나서 윈도우를 띄워줘야 된다.
서 옮기는 건 마우스로는 안 된다. 이 액션뿐만 아니라 screen에 들어와 있는 상태에서는 터미널 안에서 마우스로 하는 모든 게 안 된다...
ctrl + a, tab # 분할 창 간 커서 이동 (시계 방향)
커서를 이동한 다음 새 윈도우를 만들거나(ctrl + a, c) 기존 윈도우를 불러내면(ctrl + a, <숫자>) 된다.
분할 창을 끄거나 또는 분할 없는 하나의 터미널로 돌아가고 싶다면 지금 커서가 어디 있는지 확인하고 ,
ctrl + a, shift + x # 현재 분할 창 닫기
ctrl + a, shift + q # 현재 윈도우만 남기고 나머지 분할 창 다 닫기
이 명령어는 윈도우를 종료하는 게 아니라 분할 창으로 띄운 것만 닫는다.
이렇게 분할 창을 닫았는데, 분할된 화면에서의 구분선이 점선으로 남아있는 문제를 발견했다. 이런 점선이 윈도우 바꾸다 갑자기 생기는 경우도 있었다.
마우스를 쓸 수 없으니 가장 힘든 건 스크롤과 영역째로 복사 붙여넣기다... screen에는 스크롤 모드가 따로 있다. 이 모드에서 방향키로 움직일 수 있고 PgUp, PgDn 버튼으로는 페이지 단위 이동을 할 수 있다.
ctrl + a, esc # 스크롤 모드
스크롤 모드를 어떻게 끄는지는 못 찾았다. esc/엔터/d/s 등 아무 키나 두세번 치니까 스크롤 모드가 풀렸다. 완전히 아무 키나 되는 건 아닌 것 같다. 스크롤 모드에서 a를 누르면 뭔 append 옵션만 오락가락한다.
윈도우에서 실행중인 쉘에 exit를 치면 해당 윈도우를 끝낸다. 만일 그게 해당 세션의 마지막 윈도우라면 screen 자체를 종료한다. 그러면 exit 친 세션을 포함한 모든 세션이 다 사라진다!!!!
$ exit
ctrl + a, d # 지금 세션을 detach 상태로 만들고 screen을 종료하지 않고 빠져나간다
ctrl + a, d를 실행했을 때 해당 세션을 attach 상태로 유지한 채 screen을 빠져나가는 문제가 한 번 있었다.
ctrl + a, k를 실행하면 screen을 종료하며 빠져나간다는데 써봤을 때 커서가 저 혼자서 난리치면서 아무 것도 안 되는 문제가 생겼다...
세션 목록을 보면 세션을 만들 때 입력한 세션명 앞에 숫자가 붙어 있다. 명령을 칠 때 세션명으로 이 숫자까지 붙여서 써야 된다.
$ screen -ls # 세션 목록 보기
$ screen -r <세션명> # detach 상태인 세션 attach로 만들고 접속하기
$ screen -x <세션명> # attach 상태인 세션 접속하기
screen 실행 상태에서 한글 문제
screen을 실행하고 윈도우 상에서 작업을 하고 있으면 대부분의 명령어를 ctrl + a와 다른 키의 조합으로 실행한다. 이 때 ctrl + a는 한영 상태와 상관 없이 되지만 그 후에 조합하는 키는 반드시 영어 입력 상태여야 명령어로 먹힌다. 한글 입력 상태라면 쉘에 입력되고, 명령은 실행되지 않는다.
만일 ctrl + a를 누르고 나서 한글 입력 상태로 잘못 눌렀을 때 명령어를 다시 칠 요량으로 ctrl + a를 한 번 더 누르면 ctrl + a, a 명령으로 인식이 된다. 그래서 한글로 잘못 눌렀을 때 ctrl + a를 또 누르지 말고, 바로 한영 전환하고 다시 조합 키를 누르면 된다.
결론.. 한영 전환해야 되는 작업을 반복하는 사람에겐 엄청 귀찮다.
참고 링크
shinobi.tistory.com/entry/SCREEN-%EC%82%AC%EC%9A%A9%EB%B2%95
www.incodom.kr/Linux/%EA%B8%B0%EB%B3%B8%EB%AA%85%EB%A0%B9%EC%96%B4/screen
erwinousy.medium.com/screen-command-%EC%82%AC%EC%9A%A9%EB%B2%95-linux-mac-62bf5dd23110
isukorea.com/blog/home/waylight3/435
egloos.zum.com/sulac/v/5623987
이제 terminator을 써봐야겠다.
'Ubuntu' 카테고리의 다른 글
postgresql 12 삭제, 9.6 설치 (0) | 2021.05.30 |
---|---|
port in use (0) | 2021.05.30 |
Ubuntu 20.04에 python 가상 환경 설정하기 (2) | 2021.01.25 |
Ubuntu 20.04 터미널 꾸미기 (0) | 2021.01.23 |
Ubuntu 20.04에 Node.js, Neovim 설치하기 (3) | 2021.01.21 |