Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

터미널 탭에 현재 디렉토리 표시하기

예전에는 요즘같이 GUI가 좋은 시대에 왜 터미널인가? 라는 생각을 했던 적도 있지만 요즘은 터미널을 참 많이 쓰고 물론 GUI 도구들이 좋은 작업들이 있지만 반대로 터미널에서 하는 작업이 훨씬 편한 것들이 있다.(사실 터미널이 좋아도 윈도우에서는 터미널이 구려서 쓸 수가 없다.) 맥에서 iTerm을 주로 쓰기는 하지만 대부분의 터미널 프로그램은 탭기능을 지원하기 때문에 여러가지 작업별로 탭을 띄우서 작업하다 보면 금새 다음과 같이 되어버린다.

모든 탭이 bash로 표시되는 터미널

보통 풀스크린으로 작업을 하기는 하지만 탭을 전환해야 할때는 어느 탭인지 몰라서 매번 어느 탭인지를 찾아야 했다. 좀 불편하긴 하지만 그냥 어차피 화면에 나오긴 하니까 불편한대로 사용하고 있었는데 어느 날 트위터에 TJ Holowaychuk이 다음과 같은 트윗을 올린 것을 발견했다.

사용자 삽입 이미지

트윗을 보는 순간 필요하던건라서 표시해뒀다가 이제야 적용을 해봤다. 이 스크립트는 Gist에 올라와있다.

function tabname {
  printf "\e]1;$1\a"
}

if [ x`type -t cd` == "xfunction" ]; then
  # previously wrapped cd
  eval $(type cd | grep -v 'cd is a function' | sed 's/^cd/original_cd/' | sed 's/^}/;}/' )
else
  # builtin
  eval "original_cd() { builtin cd \$*; }"
fi

cd() {
  original_cd "$*"
  tabname $(basename $(pwd))
}

이 스크립트를 .bashrc.bash_profile에 넣어서 터미널을 띄울때 자동으로 실행되도록 해주면 된다.

탭이름에 디렉토리명이 표시된 터미널

이제 탭이 위처럼 변형해서 어떤 디렉토리에서 작업중인지 알 수 있다. 프로젝트가 아니라 디렉토리를 보여주는 것이므로 상황에 따라 일반적인 폴더가 보일수도 있겠지만 큰 문제는 되지 않아보이고 괄호안에 실행되는 프로세스가 표시되어서 더욱 확인하기가 쉽다. 물론 스크립트 내용에서 보듯이 cd 명령어를 기반으로 탭이름을 지정하기 때문에 cd로 이동하지 않고 바로 탭을 띄웠을 때는 탭이름이 아직 나오지 않지만 cd명령어는 뭐 언제든 사용하게 되므로 별 문제가 되지 않는다. 이제 원하는 탭으로 바로 이동하기가 훨씬 쉬워졌다. 그리고 TJ의 트윗에 답변단 내용들을 보니 폴더 대신에 Git정보를 기반으로 보여주는 스크립트나 좀 더 깔끔한 형태의 스크립트도 올라와 있다.
2012/10/25 02:37 2012/10/25 02:37