병풍과 물고기
By SeukWon Kang
라고 쓰면 뭔소리여 하고 궁금해들 하실꺼라고 생각해서.^^
fish shell 과 byobu 이야깁니다.
사용자 친화적 21세기 다운 명령행 처리기 ( command line shell ) https://fishshell.com/
tmux 나 screen을 쓰기 편하게 wrapping한 byobu ( 일본어로 병풍이라는 군요. ) 홈페이지가 죽어 있는 관계로 https://en.wikipedia.org/wiki/Byobu_(software)
저는 linux를 주 작업용으로 쓰는 관계로 shell 에서 작업할 일이 많습니다. ( 윈도는 아예 안씁니다. - 라이선스는 사둔 것이 있지만 )
fish shell은 아마도 bash에서 git prompt 를 설정하다가 우연히 발견 했던 것 같습니다.
bash git prompt 등으로 검색하다가 우연히 zsh 용 oh my zsh을 발견하고 써볼까 하고 생각하던차에 http://ohmyz.sh/
좀 더 찾아보니 거기서 더 나간 fish shell을 발견 했습니다.
간단히 테스트를 위해 설치 ( sudo apt-get install fish ^^ ) 해보고 써봤는데 이건 완전히 신세계더군요.
일단 shell에서 tab으로 auto completion이 됩니다. !
명령어와 파일 이름 만이 아니고 명령어의 option 역시 됩니다.
fish_update_completions 를 사용하면 man page를 분석? 해서 (man page가 있는 )모든 명령어의 옵션의 자동완성이 됩니다.
주저 없이 기본 shell을 fish shell로 바꾼후 지금까지 잘 쓰고 있습니다.
which fish
의 결과를
chsh -s /usr//bin/fish
와 같이 사용하면 됩니다.
주의 할점음 bash과 100% 호환성을 유지 하지 않기 때문에 차이 점을 숙지해 가면 써야 합니다.
vim을 사용하면
.vimrc 파일 등에 if $SHELL =~ ‘bin/fish’ set shell=/bin/sh endif
을 넣어 주어야 합니다.
fish_prompt
도 한번 실행해 보시면 좋습니다. ^^
그리고 byobu 이야기
byobu는 screen 과 tmux 를 wrapping해서 쓰기 편하게 해주는 프로그램 입니다.
local에서 사용해도 좋지만 진가는 ssh(telnet?)으로 remote 에 접속 했을때 발휘 됩니다.
작업하다보면 이런 저런 디렉토리를 오가면 작업을 할 일이 많은데
local이면 그냥 terminal을 여러개 열고 작업 하면 됩니다.
문제는 ssh등으로 remote에 접속해서 작업 하는 경우인데
그냥 ssh 접속을 여러개 해서 작업해도 되긴 하겠지만 ( 그럴 수 없는 경우 도 많고 )
byobu 를 사용하면 1개의 ssh 접속 만으로 여러개의 shell을 열고 전환해 가며 작업할 수 있습니다.
알아야 할 단축 키는
F2 : 새 shell 탭을 엽니다.
F3 : 압 탭으로 이동
F4 : 뒤 탭으로 이동
종료는 shell답게 ctrl-d 로 하면 됩니다.
이렇게 편하기 때문에 remote작업 머신의 기본 shell을 byobu로 바꾸고 작업하는 경우가 많았습니다.
byobu-config 를 사용하면 간단히 설정할 수 있습니다.
문제는 fish shell과 byobu를 같이 기본으로 설정하려고 할 때 생깁니다.
기본설정을 하지 않고 타이핑으로 fish를 실행후 byobu 를 실행 하는 경우 는 아무 문제 없이 잘 작동합니다.
기본 설정을 하려고 하면 서로 기본 shell을 자신으로 설정하기 때문에 두개를 동시에 기본으로 설정할 수 가 없습니다.
그래서 드디어 이 글을 쓴 이유 fish shell 과 byobu를 동시에 기본으로 지정하기
https://askubuntu.com/questions/296377/how-do-i-change-the-default-shell-used-in-byobu-tmux
링크의 글은 zsh 이야기지만 fish에도 잘 적용 됩니다.
홈폴더의 .byobu/.tmux.conf 파일에
set -g default-shell /usr/bin/fish
set -g default-command /usr/bin/fish
를 추가해 주면 됩니다.
사족)
저는 fish shell , byobu에 terminator 까지 같이 사용하고 있습니다.
https://gnometerminator.blogspot.com/p/introduction.html