Skip to main content

Posts

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 현재 세션의 윈도...
Recent posts

tmux 설정

gnu screen를 약 20년간 사용해 왔다. 하지만 screen은 재시작할 때, 이전 창 사이즈 정보가 불러오지 못 해 putty를 실행할 때마다 다시 창 크기를 변경해야 하는 불편함이 있었다. 그래서 알아보니 tmux 라는 새로운 프로그램을 알게 됐다. 그리고 tmux는 pane이라는 새로운 개념을 도입해서 창 내부에서 분할 창(pane)를 조정할 수 있어서, screen보다 UX/UI 적으로 더 편한 것 같다. 앞으로는 tmux를 사용해야 겠다. 아래는 나의 ~/.tmux.conf 파일 내용이다. #set -g mouse on set -g history-limit 10000 set -g status on set -g status-position bottom set -g status-interval 1 set -g base-index 1 setw -g pane-base-index 1 set -g default-terminal "screen-256color" bind r source-file ~/.tmux.conf \; display-message "tmux.conf reloaded" # 상태줄 기본 set -g status on set -g status-position bottom set -g status-interval 1 #set -g status-style fg=white,bg=black # 왼쪽 -> 호스트명 set -g status-left '#[fg=black,bg=red,bold] #H #[default]' # 일반 창 #setw -g window-status-format '#[fg=white,bg=black] #I #W ' # 현재 창 setw -g window-status-current-format '#[fg=black,bg=cyan,bold] #I* #W ' # 오른쪽 -> 날짜/시간 set -g status-right '#[fg=black,...

mariadb 설정

  vim /etc/mysql/mariadb.conf.d/50-server.cnf 에서 bind-address = 127.0.0.1 를 bind-address = 0.0.0.0 로 변경해야 외부에서 접속 가능한다. time-zone 변경 default-time-zone='+9:00' 수정한 다음, #>sudo systemctl enable mariadb.service #>sudo systemctl start mariadb.service 해서 반영된 점을 확인한다. #> cat /etc/mysql/mariadb.conf.d/50-server.cnf # # These groups are read by MariaDB server. # Use it for options that only the server (but not clients) should see # this is read by the standalone daemon and embedded servers [server] # this is only for the mysqld standalone daemon [mysqld] # # * Basic Settings # user = mysql pid-file = /run/mysqld/mysqld.pid basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql lc-messages = en_US skip-external-locking # Broken reverse DNS slows down connections considerably and name resolve is # safe to skip if there...

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>하면 대부분 해결될 것이다. 그럼 오늘도 유익한 하루 되시길..   

vim에 git diff 표시하기

  먼저 gitgutter 팩을 설치 $> mkdir -p ~/.vim/pack/airblade/start $> cd ~/.vim/pack/airblade/start $> git clone https://github.com/airblade/vim-gitgutter.git $> vim -u NONE -c "helptags vim-gitgutter/doc" -c q   .vimrc 설정하기    function! GitStatus()   let [a,m,r] = GitGutterGetHunkSummary()   return printf('+%d ~%d -%d', a, m, r)   endfunction   set statusline=%<%f\ %m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=P%l,%c%V%8P,\ %{GitStatus()} highlight GitGutterAdd    guifg=#009900 ctermfg=2 highlight GitGutterChange guifg=#bbbb00 ctermfg=3 highlight GitGutterDelete guifg=#ff2222 ctermfg=1 set signcolumn=yes highlight link GitGutterChangeLine DiffText highlight link GitGutterChangeLineNr Underlined highlight link GitGutterAddIntraLine DiffAdd