Skip to main content

tmux 주요 사용

20년가까이 screen를 사용하다가 최근 tmux 를 알게 되었다. screen은 세션을 복구하거나, 이전 윈도우 크기 복구 불가능 등 여러 불편한 점이 있었다. tmux는 이러한 문제를 개선은 새로운 툴로 여러 편의성을 제공하고 있어, 추천할 만 하다.


tmux 설치하기

$> sudo apt install tmux # for linux
$> brew install tmux # for mac


세션 관련 명령어

새로운 세션 만들기

tmux new 

또는

tmux new -s "세션명"


세션명 변경하기

[ctrl] + b, $


세션 detach

[ctrl] + b, d


세션 list

$> tmux ls

세션 attach

$> tmux attach -t "session name"
$> tmux attach -t 번호 # 세션명이 없는 경우, 세션 번호가 부여된 경우

세션 강제 종료, 터미널에서

$> tmux kill-session -t "session name"
가급적이면, 세션 내부에서 종료하는 게 좋음


세션 간 이동

<Ctrl> + b , (
이전 세션으로 전황

<Ctrl> + b + )
다음 세션으로 전황

이 기능이 screen 대시 강력함


세션 내부 윈도우 관련 명령어

무명 윈도우 생성

[ctrl] + b, c


윈도우 이름 변경

[ctrl] + b, ,


윈도우 종료

[ctrl] + b, &   --> 가급적이면 이것을 사용할 것 [ctrl] + d 는 종종 실수를 함.

[ctrl] + d


다음 윈도우로 이동

[ctrl] + b, n


이전 윈도우로 이동

[ctrl] + b, p


직전 윈도우로 이동

[ctrl] + b, l


특정 윈도우로 이동

[ctrl] + b, [0-9]


번호로 윈도우 이동

[ctrl] + b, '

index가 나타날 때, 번호를 누르면 해당 윈도우 전환


전체 윈도우 리스트

[ctrl] + b, w

현재 세션의 윈도우 뿐만 아니라, OS상의 모든 tmux 세션의 윈도우 목록을 볼 수 있고, 심지어 다른 세션 윈도우로 이동도 가능함. 이 기능이 screen 대비 매우 강력함.


윈도우 창 내부 분할 및 조작

현재 창 좌우로 분할

[ctrl] + b, %


현재 창 상하로 분할

[ctrl] + b, "


분할 창 다음 탭으로 이동

[ctrl] + b, o


분할 창 직전 탭으로 이동

[ctrl] + b, ;


현재 포커스가 있는 분할 탭을 탭이 아닌 윈도우로 분리

[ctrl] + b, !


현재 탭 표시(색상 강조)

[ctrl] + b, m


현재 탭 화면 전체 확대하기 및 취소

[ctrl] + b, z # 한번 더 하면 취소됨


현재 탭 닫기

$> exit  또는

[ctrl] + b, x


기타

tmux 명령어 입력

[ctrl] + b, :


tmux 시계 표시

[ctrl] + b, t


copy mode 진입

[ctrl] + b, [

하면, 윈도우 이름 [tmux]로 변경됨


copy mode 빠져나오기

copy mode에서 [esc] q 로 빠져나옴












Comments

Popular posts from this blog

Linux Resources Monitoring

dstat Requirements:python Dstat is a versatile replacement for iostat, vmstat and ifstat http://linux.softpedia.com/get/System/Diagnostics/Dstat-1401.shtml  - download the source file  - tar -xvjf dstate-0.7.2.tar.bz2  - cd dstate-0.7.2  - sudo make install 사용법 dstat -cdngys --top-io-adv --top-bio-adv 창넓이가 크면 dstat -cdngys --top-io --top-bio dstat 기본옵션은 -cdngy 2. pktstat requirements: libpcap-devel, ncurses-devel pktstat man page 사용법:sudo pktstat -i eth0 -T -l 실행결과 interface: eth0    total: 43.9Mb (3s) cur: 12.3M (78%) min: 12.3M max: 15.8M avg: 14.5M bps    bps    %      b desc   1.4k   0%   4.3k arp  591.8   0%   1.2k ip proto 88 55.101.66.3 <-> igrp-routers  91.3k   0%  91.3k tcp a100236:4478 <-> console:ssh  42.6k   0% 216.4k tcp a100390:mailprox <-> console:ssh   1.1k   0%   ...

SQLITE Result Codes

#define SQLITE_OK 0 /* Successful result */ /* beginning-of-error-codes */ #define SQLITE_ERROR 1 /* SQL error or missing database */ #define SQLITE_INTERNAL 2 /* Internal logic error in SQLite */ #define SQLITE_PERM 3 /* Access permission denied */ #define SQLITE_ABORT 4 /* Callback routine requested an abort */ #define SQLITE_BUSY 5 /* The database file is locked */ #define SQLITE_LOCKED 6 /* A table in the database is locked */ #define SQLITE_NOMEM 7 /* A malloc() failed */ #define SQLITE_READONLY 8 /* Attempt to write a readonly database */ #define SQLITE_INTERRUPT 9 /* Operation terminated by sqlite3_interrupt()*/ #define SQLITE_IOERR 10 /* Some kind of disk I/O error occurred */ #define SQLITE_CORRUPT 11 /* The database disk image is malformed */ #define SQLITE_NOTFOUND 12 /* NOT USED. Table or record not found */ #define SQLITE_FULL 13 /* Insertion failed because data...

nginx로 다중 포트 설정 및 다중 react app 설정

nginx에 다중 포트 설정하기 react로 여러 webapp를 개발하고, 동일한 서버에 실행시킬 필요가 있다. 이때 간단히 nginx에서 다중포트로 여러 webapp를 동일한 서버에서 실행시킬 수 있다. /etc/nginx/sites-available/에 default 파일이 있다. 보통 port 80로 설정되어 있다. 이 파일을 복사해서 sub로 명명한다.   아래와 같이 포트 8080으로 정하고, react app를 build한 디렉터리를 root <dir>로 지정하고, $> sudo service nginx restart 하면 된다. $>sudo systemctl status nginx.service 로 nginx 상태 확인이 가능하면, $> netstat -ano | grep 8080 으로 8080 포트가 살아있는 또는 외부PC에서  $>telnet ip 8080으로 telnet 접속이 되는지 확인하면 된다. 종종 Nginx 500 Interval Server Error가 발생하는데, 이는 1) root <dir>에서 <dir> 주소가 정확하지 않거나, 2) 파일 권한이 없거나이다. chmod 755 <dir>하면 대부분 해결될 것이다. 그럼 오늘도 유익한 하루 되시길..