tool

나의 CLI

gimslab.com 2012. 6. 10. 17:02

언젠가부터 약간씩 마우스보다는 키보드에 의존적인 습관을 들이고 싶어하는 마음이 생긴 것 같다.

사실 컴퓨터로 개발이나 시스템 운영 작업등을 하다보면 마우스는 정말 거추장스러운 동작을 불러 일으킨다. 가장 효율적인 자세로 고정시킨 나의 팔꿈치와 손목 등을 클릭하기 위해 다시 들어올려 마우스위로 가야하고 클릭이나 드래그가 끝난 후에는 다시 J키에 검지손가락을 위치시키기 위해 잠시지만 머뭇거려야한다.

물론 마우스는 정말 획기적인 발명품임에 틀림없다. 사람들의 시각을 통해 직관적으로 컴퓨터에게 지시를 내리게 해줄수 있는 꼭 필요한 도구이다. 그리고 GUI환경 역시 컴퓨터의 활용을 더욱 극대화 시켜줄 수 있도록 해주는 인터페이스이다. 터미널 창을 용도에 따라 여러개 띄워 한 화면에서 볼 수 있게 해주는것만해도 얼마나 대단한 효과인가! 또한 웹사이트를 빠르게 탐색할때는 마우스가 정말 필요하다.

하지만 일반 사용자가 아닌 프로그램 개발이나 시스템 운영 작업을 할 때라면 컴퓨터와 좀 더 긴밀하게 대화를 나눌 수록 작업효율은 좀 더 올라갈 수 있으리라 생각된다. 제일 좋은건 나의 뇌파를 감지하여 PC가 동작한다면 제일 빠를것이다. 이런 걸 구현했다는 이야기는 들었지만, 아직은 키보드를 이용하여 컴퓨터에게 지시하는 것보다 빠른 방법은 없는 것 같다. 물론 디자인 작업이라든지 하는 업무적 특성에 따른 예외는 있겠지만..

누가 보면 정말 대단한 해커라도 되는냥 들리겠지만, 그런건 아니고 그냥 살다보니 이러한 습성과 생각이 생기게 되었다.

내가 보기에 잘 만들어진 프로그램일수록 단축키를 꼭 빠뜨리지 않고 지원한다. 그런 측면에서 보면 구글 캘린더나 Gmail같은 웹기반의 애플리케이션에도 단축키를 아주 체계적으로 지원하는 걸 보면 뭔가 구글은 다르다는 생각을 하게 되기도 한다. 그리고 내가 즐겨쓰는 MoniWiki 같은 경우에도 단축키가 없으면 그 매력이 반감되었을 것이다. 어떤 화면에서든 'e' 키를 누르는 순간 편집모드로 전환되고 'f'키를 누르면 첫화면, '/'를 누르면 검색모드로 들어가니 정말로 위키를 위키답게 쓸수 있도록 해주는 특징이 아닌가 생각한다.

어릴 때 정말 멋진 프로그램이라고 생각했던 프로그램인 'Lotus 1-2-3'가 기억난다. 키보드로만 그 복잡한 메뉴를 탐색하고 기능을 사용할 수 있었다. 하지만 그 시장을 잠식한 MS Excel 역시 아직도 대부분의 기능을 키보드 단축키로 제공하고 있다.

이야기가 자꾸 산으로 가는듯하여 이만 각설하고 나의 CLI 환경을 한 번 정리해보고자 한다.

다른 사람들과의 업무 공유때문에 그리고 회사 규정상 나는 회사에서 Win XP를 쓴다. (집에서는 가족용 XP와 개인용 Ubuntu 노트북을 같이 쓴다.)

윈도우를 쓰면 가장 불편한것이 유닉스나 리눅스에서 제공되는 여러가지 강력한 명령어이다. 그래서 몇 년 전부터 나는 윈도우 설치 뒤 필수로 설치하는 것이 cygwin 이 되었다. 기본적인 명령부터 ssh 데몬까지 제공하는, 윈도우 내에서 사용할수 있는 강력한 CLI 환경이다.

기본적으로 cygwin만 설치하면 setup 화면을 통해 필요한 각종 툴을 추가로 설치할 수 있다. 내가 많이 쓰는 명령은 이런 것 들이다.

ls (윈도우임에도 서버작업을 많이 하는 사람들은 아마 도스창에서 실수로 ls 명령을 많이 칠것이다.)

cat

find (윈도우에도 약간 다른 기능의 find명령이 있기때문에 cfind.cmd 를 만들어 쓰고 있다.)

vim (키보드만으로 강력한 텍스트 편집기능을 사용할 수 있는 프로그램)

rm

du

mv

wget

curl

gvim (윈도우상에서 다른 프로그램과 같이 쓰기에 적합한 vim)

grep

xargs

sort (역시 윈도우에도 같은 이름의 명령이 있어 csort.cmd를 만들어서 사용하고 있다.)


뭐 나열해놓고 보니 자주 쓰는게 몇개 안되는군. ^^ 하지만 가끔씩이지만 리눅스의 강력한 텍스트 처리 명령어들을 윈도우에서 사용할 수 있다는 것, 그리고 bash 스크립트를 만들어 쓸 수 있다는 것.. 등 이러한 장점 때문에 cygwin은 나의 CLI 환경의 기본이라고 할 수 있다.

참 그리고 집의 PC에는 cygwin을 통해서 설치한 sshd를 이용해 원격 관리에 활용하고 있다.


그외에 윈도우의 배치 프로그램(*.bat, *.cmd)도 많이 활용하고 있다. 그래서 이러한 윈도우 스크립트를 %USERPROFILE%\bin 이란 폴더를 만들어 모아두고 해당 위치를 PATH에 잡아 두었다.

그 중 몇가지 소개하면 윈도우용 hosts 파일을 수정하기 위한 스크립트, hosts 파일을 많이 활용하는 편이라, 이 파일 한 번 열때마다 그 복잡다단한 위치 찾기가 항상 불만이었다. 그래서 만든 edithosts.cmd (백업기능도 같이 넣어두었다.)

또 비슷한 류로는 Oracle DB에서 네트워크 정보 설정파일인 tnsnames.ora 파일 수정을 쉽게 하기위한 editoratn.cmd

커맨드 라인에서 해당 위치의 탐색기를 열때 쓰는 e.cmd ee.cmd 그리고 반대로 탐색기에서 해당 위치의 커맨트창을 띄우기 위한 마우스 오른쪽 메뉴 생성(레지스트리 등록)

PC 끌 때는 shutdown.exe 명령

usb제거하는 스크립트

그리고 한 두개의 파일을 서버로 바로 올리고 내릴때는 cygwin에 포함된 scp 명령이나 putty와 함께 배포되는 pscp 등이 편하다.

프로그램 별 전체화면 전환 단축키 정리


거창하게 쓸것처럼 시작했다가 그냥 메모성 글로 끝나는 듯해서 씁쓸하네요. ^^ 하지만 생각나는대로 막 내갈기는 기분도 괜찮군. 아무래도 난 블로그보다는 위키가 더 맞는듯..

해피해킹 중고 싸게 파실분 없나요?