본문 바로가기

tmux

tmux 입문

예정대로라면 git의 brach기능을 먼저 포스팅했어야 했을 테지만

유튜브를 보다가 vim과 tmux에 대한 영상을 발견하게 됐다

뭔가 굉장히 그럴싸해보이고 쓸 만도 하겠다 싶은 생각이 들었다

 

그래서 tmux의 입문 부분을 기록해둘 것이다

사실 쓸 내용이라 해봐야 세션기능과 단축키에 관련된 부분이지만

이게 진짜 첫걸음은 맞다

안 써두면 분명 까먹을 것이다

git branch처럼 귀찮아져서 쓰지 않을지도 모르기 때문에 얼른 써둬야겠다

 

일단 tmux는 터미널을 예쁘게 쓸 수 있게 해주는 친구 같아보인다

 

일상 생활에서 필기할 때를 생각해보자

A4용지에 필기정리를 한다고 치면

A4용지가 과목마다 또는 주제마다 여러 장 필요할 것이고

한 장 내에서도 공간을 분할하여 이것저것 끼적일 것이다

이 짓을 편하게 만들어주는 것이 tmux라고 생각해보자

 

분리된 A4용지들은 각각 독립적으로 돌아가고

버리지 않는 한 다른 A4용지를 꺼내서 새로 작업해도

이전 작업 상황을 유지한다

 

이제 tmux를 써볼 것이다

기본만 잘 배워두면 겉멋 내고 기분 내는 데는 아주아주 훌륭할 것임 흐하하

 

나는 맥북을 쓰고 있지만 맥북을 잘 몰라서

맥OS에서 뭘 잘 안 하는 편이다

Ubuntu 가상환경에서는 혹시라도 이런 짓을 하다가 터트려도 괜찮기 때문에

이번에도 Ubuntu에서 가지고 놀 것이다

 

일단 tmux를 받아야 한다

터미널을 열어서 sudo apt-get install tmux

 

나는 이미 설치했다

 

설치했으니까 실행해본다

cdspacenoob@cdspacenoob-VirtualBox:~$ tmux

그냥 단순하게 tmux라고 입력하면 tmux가 실행될 것이다

 

 

황량한 화면 하나가 뜰 것이다

왼쪽 아래에 보면

0:bash* 라고 나온다

0번째 A4용지, 이 종의 이름은 bash라는 뜻이다

 

왼쪽의 [4]는 이따 알려줄 것임

 

여러 장의 A4용지를 쓸 수가 있는데

이것도 이따 보도록 할 것임

 

먼저현재의 0번 A4 용지에서 공간을 분할해보자

Control+B 를 누른다

 

이게 맥북이라 command+B 했다가 Ubuntu 꺼질 뻔함;

 

아무튼 이것으론 아무런 일도 일어나지 않는데

이 상황에서 %(shift랑 5를 동시에 누르면 됨)를 입력하면

공간이 두 쪽으로 나뉜다

 

 

매우 신기하다

당연히 개별적으로 작동한다

이제 여기서 왼쪽 오른쪽으로 왔다리갔다리 할 수 있어야겠다

control+B를 누른 상태에서

우리가 이동할 때 쓰는 화살표 키 좌우를 누르면 이동이 가능하다

 

이쯤 되면 control+B가 커맨드 입력모드로 진입한다는 걸 알게 된다

처음부터 아는 사람도 있겠지만 나는 이 때 알았던 것 같다

 

아무튼 좌우로 화면이 분할된 상태에서 공간을 상하로 또 쪼갤 수가 있다

control+B 눌러 놓은 상태에서

큰따옴표 "(shift랑 ' 동시에 누르면 됨)를 입력한다

 

 

ㄹㅇ 찢었다;

상하로도 분할이 되는 걸 볼 수가 있다

여기서 이동하는 것도 앞과 마찬가지

control+B를 누른 상태에서 상하 화살표 키를 누르면 된다

화살표 키를 연속으로 호다닥 빠르게 누르면 계속 이동이 가능하고

이동을 그만하면 자동으로 그 공간에 머물게 된다

contol+B 상태 즉, 커맨드 모드가 자동으로 해제된다

 

이걸 닫는 건 간단하다

닫고 싶은 공간에서 exit를 입력하면 닫힌다

 

여러 공간으로 분할해서 여러 것들을 실행해 놓으면

겉멋이 매우 상승할 것으로 기대된다

 

이제는 0번 A4용지를 잠시 놔두고 새로운 A4용지를 꺼내볼 것이다

커맨드 모드(control+B, 이제 안 적을 거임)로 진입한 상태에서 C를 입력한다

커맨드 모드 + c

 

 

아래에 초록색 줄을 보면 1:bash*라고 새로 생긴 게 보인다

0번 A4용지도 왼쪽에 보인다

새로운 A4용지를 꺼낸 것이다

애스터리크스(*)는 현재 작업하고 있는 A4용지가 뭔지 표시해주는 것이다

여기서도 저 앞에서 했었던 짓들을 똑같이 할 수가 있다

좌우로 쪼개고 상하로 쪼개고 아무튼 마음대로 쪼갤 수 있다

 

이제 종이가 두 장이 되었으니 얘들 간에도 왔다리갔다리 할 수가 있어야한다

종이에는 번호가 지정되어 있다

0:bash 1:bash 이런 식으로 말이다

커맨드 모드에 진입하고

사용할 종이에 지정된 숫자를 입력하면 종이 간에도 이동이 가능해진다

이거는 스크린샷 찍기 정말 귀찮으니까 보는 사람이 있다면 알아서 해봐야 함

 

근데 종이에 번호는 지정되어 있는데 주제나 과목이름이 뭔지 헷갈린다

죄다 기본이 bash로 지정되니 이름을 지정해주고 싶다

커맨드 모드로 진입한 상태에서 콤마 , 를 누르면

초록색이었던 아래쪽 라인이 황색으로 변한다

 

 

bash라고 적혀 있던 것을 지우고 원하는 이름을 지정하면 되겠다

 

이름 바꾸길 원하는 종이로 진입해서 써야 한다

1번 종이의 이름을 바꾸려고 하는 사람이 0번 종이에서 이름을 바꿔놓고

이거 1번 이름 바꾸기 외않됌? 이라고 하면 앞날이 순탄치 않을 것으로 보인다

 

아 근데 생각해보니 나 새 종이는 필요 없을 것 같다 싶으면

그 종이를 깨끗하게 비운 상태에서 exit를 입력하면 된다

그러면 그 종이에서 벗어나면서 그 앞의 종이로 자동으로 진입된다

이것도 안 찍었다 그냥 하면 됨

 

자 근데 내가 잠시 tmux를 멈추고 딴 짓을 하고 싶다?

아니면 강제로 갑자기 터미널이 꺼졌다거나 뭐 아무튼 그런 상황이 있다?

그래도 괜찮다

얘들은 하나의 프로세스로서 보존된다

제일 위에 써놓았듯이 종이를 버리지 않는 한 유지된다

즉, 시스템을 종료할 때까지는 보존된다

커맨드 입력 모드에서 d를 눌러보자

 

 

이렇게 tmux밖으로 기어나와 신선한 terminal의 공기를 느낄 수가 있다

이렇게 끄면 안에서 작업하던 거 다 날아가는 거 아님요??

ㄴㄴ 다들 잘 살아있다

tmux ls

이 명령어를 통해 확인해보자

 

 

다들 잘 지내고 있음을 알 수 있다

나도 몇 개 켜 놓은 것을 볼 수가 있다면

tmux ls를 통해 현재 tmux로 실행되고 있는 프로세스들의 상태를 볼 수 있다

 

그런데 이렇게 시원하게 공기를 맛볼 것만이 아니라

다시 들어갈 수도 있어야 한다

 

tmux ls의 결과를 다시 보자

 

cdspacenoob@cdspacenoob-VirtualBox:~$ tmux ls
4: 1 windows (created Sun Oct 24 20:33:07 2021) [80x23]
base: 1 windows (created Sun Oct 24 19:49:19 2021) [188x43]
docker: 1 windows (created Sun Oct 24 20:01:58 2021) [188x43]

 

얘들이 책상의 이름 즉, 세션의 이름이다

원하는 책상으로 돌아가려면

 

tmux attach -t (세션이름)

 

여기서 나는 이름이 '4'인 세션으로 돌아갈 것이기 때문에

tmux attach -t 4

이렇게 명령어를 입력할 것이다

 

 

내가 원래 작업한 곳으로 되돌아 왔다

아! 하단 초록색 줄 맨 앞의 대괄호[] 사이에 있는 건 세션의 이름이었구나!

 

자 그러면 책상 즉, 세션의 이름도 바꿔보자

이건 터미널로 나가서 해야하는 것 같다

커맨드 모드에서 d를 입력하여 터미널로 간다

 

tmux rename-session -t (기존 세션 이름) (내가 원하는 세션 이름)

 

나는 '4'라는 세션의 이름을 'A4s'로 변경할 것이기 때문에

tmux rename-session -t 4 A4s 라고 입력할 것이다

 

 

입력 후 tmux ls를 통해 상태를 알아보면 세션의 이름이 바뀐 것을 볼 수 있다

아주 좋았다 매우 달달하다

극한의 겉멋이 눈앞이다

앞에서 나는 이미 몇 개의 세션들을 만들어 놓은 것을 볼 수 있다

 

세션을 새로 만들면서 진입하고 싶을 때는 터미널에서 아래의 명령어를 입력한다

 

tmux new -s (만들 세션 이름)

 

나는 status라는 이름을 가진 세션을 만들고 싶다

tmux new -s status

이렇게 입력해주면

 

 

하단 초록색 라인 대괄호[] 안에 status라는 이름으로 새로운 세션이 만들어진다

이는 커맨드 모드 +  d로 터미널로 빠져나가

tmux ls를 입력하여 확인할 수 있다

 

 

원하는 세션으로 들어가고 싶을 때는 다시 tmux attach -t (세션이름) 명령어를 활용하면 되겠다

 

세션 생성

세션의 이름 바꾸기

윈도우 생성

윈도우의 이름 바꾸기

윈도우 공간의 분할

 

모두 해보았다

마지막으로 세션을 종료하는 명령어만 알면 된다

 

tmux kill-session -t (종료할 세션의 이름)

 

나는 status 세션을 한번 종료시켜 보겠다

tmux kill-session -t status

 

 

status 세션이 사라진 것을 볼 수 있다

 

이것으로 기본적인 생성 종료 변경 분할에 대한 내용은 다 알아봤다

이제 남은 것은 몫 좋은 곳에 가서 tmux를 띄우고

그럴싸함과 겉멋을 즐기는 것이다

 

나는 부끄러움이 많은 사람이라 그렇게 하지 못할 테지만

이 글을 보는 사람이 혹시나 있다면

tmux로 겉멋을 제대로 즐길 사람이 있다면 꼭 시도해보면 좋겠다

 

다음 글로 git branch와 git hub에 대해서 쓰긴 써야 한다

근데 난 코딩도 꽝이고 패키지 install도 아직 어벙벙한데

쓸데없는 짓만 골라서 하고 있다는 게 마음에 걸린다

그래도 언젠간 쓸 것 같다

 

다음 포스팅은 아마 git에 대한 건 아닐 것 같다