tmux(terminal multiplexer)는 여러 터미널 세션을 하나의 창에서 관리할 수 있도록 도와주는 도구입니다. 원격 서버에서 작업하거나 여러 프로세스를 실행해야 할 때 유용합니다.

1. tmux 시작하기

tmux
  • 새로운 tmux 세션을 시작합니다.

2. 세션 관리

세션 생성

tmux new -s mysession
  • mysession이라는 이름으로 새로운 세션을 시작합니다.

실행 중인 세션 목록 확인

tmux list-sessions
  • 현재 실행 중인 tmux 세션 목록을 확인합니다.

세션에 연결하기

tmux attach -t mysession
  • mysession 세션에 다시 연결합니다.

세션에서 분리하기 (백그라운드 실행)

Ctrl + b  →  d
  • 현재 tmux 세션을 백그라운드로 보냅니다.

세션 종료

exit
  • tmux 세션을 종료합니다.

3. 창(Window) 및 창 분할(Pane)

새 창 만들기

Ctrl + b  →  c
  • 새로운 창을 생성합니다.

창 전환

Ctrl + b  →  n  # 다음 창으로 이동
Ctrl + b  →  p  # 이전 창으로 이동
Ctrl + b  →  w  # 창 목록 보기
Ctrl + b  →  숫자  # 특정 창으로 이동 (예: 0, 1, 2...)

창 닫기

Ctrl + b  →  &  
  • 현재 창을 닫습니다.

패널(창 분할) 만들기

Ctrl + b  →  %  # 수직 분할
Ctrl + b  →  "  # 수평 분할

패널 전환

Ctrl + b  →  방향키(←, →, ↑, ↓)

패널 크기 조절

Ctrl + b  →  :resize-pane -U  # 위로 크기 조절
Ctrl + b  →  :resize-pane -D  # 아래로 크기 조절
Ctrl + b  →  :resize-pane -L  # 왼쪽으로 크기 조절
Ctrl + b  →  :resize-pane -R  # 오른쪽으로 크기 조절

패널 닫기

Ctrl + b  →  x

4. 기타 유용한 명령어

설정 다시 불러오기

Ctrl + b  →  :source-file ~/.tmux.conf
  • ~/.tmux.conf 설정 파일을 다시 로드합니다.

tmux 종료

tmux kill-server
  • 모든 tmux 세션을 종료합니다.

tmux를 사용하면 원격 서버에서 작업할 때 SSH 연결이 끊겨도 실행 중인 작업이 유지되는 장점이 있습니다. 기본 단축키만 익혀도 효율적으로 활용할 수 있으니 한 번 사용해 보세요!


bunzip2, gzip 커맨드가 설치되어 있는 경우 다음과 같이 해결할 수 있다.


bunzip2 -c < input.bz2 | gzip -c > output.gz


변환할 파일이 많은 경우 파이썬 스크립트로 변환을 하도록 하자.

import os for i in range(1,100): print("bunzip2 -c < data-%05d.bz2 | gzip -c > data-%05d.gz" % (i, i)) os.system("bunzip2 -c < data-%05d.bz2 | gzip -c > data-%05d.gz" % (i, i))





화면이 깨지는 경우 인코딩 조절방법


mc를 설치해서 실행해봤더니 특수문자가 깨져나왔다. 

검색을 해보니 다음과 같이 실행하면 깨져보이지 않는다. 


$ LC_ALL=en mc


그래서 .bashrc에 alias를 걸어서 항상 위와 같이 실행되도록 하였다. 


alias mc='LC_ALL=en mc'


참고: http://serverfault.com/questions/475925/how-to-fix-putty-showing-garbled-characters



디렉토리 이동이 많은 경우 이전 디렉토리 혹은 특정 위치를 기억해 뒀다가 이동해야 하는 경우가 있다.

다음 커맨드로 커버 가능하다.

  • 바로 이전 디렉토리로 이동: cd -
  • 현재 디렉토리를 저장: pushd .
  • push한 디렉토리로 이동: popd


참고: http://superuser.com/questions/113219/go-back-to-previous-directory-in-shell



grep -rl "Delete" *.sh



+ Recent posts