저는 컴퓨터 사용 시 정규표현식을 많이 사용하는 편입니다. 

처음 정규 표현식에 대해 공부할때 Perl을 사용하였습니다. 

그러다 보니 평소에 펄 스타일의 정규표현식을 주로 시도하는 편인데~ 오늘 알고보니 POSIX 에서는 일부 Perl 스타일의 정규표현식들이 정상적으로 동작하지 않더군요. 

Bash Shell 에서 정규표현식을 사용할 때 숫자를 매칭 할 때는 Perl 스타일로 \d 를 사용하면 안 된다는 것을 알게 되었습니다. 또한 word 를 매칭하는 경우도 \w 를 사용하면 안되더군요. 

위 내용을 비롯한 차이들은 아래 주소에서 확인 할 수 있습니다. 


https://en.wikipedia.org/wiki/Regular_expression#Character_classes


Bash Shell 에서 숫자를 매칭하는 경우에는 [0-9] 또는 [:digit:] 를 사용해야 하고~

워드를 매칭하고 싶은경우에는 \w 가 아닌 [A-Za-z0-9_] 를 사용해야 합니다. 

알파벳만 매칭하고 싶다면 [:alpha:] 나 [A-Za-z] 를 사용하면 됩니다.


윈도우에서 Command Line 을 종종 사용하시겠지만 cmd.exe 프로그램이 그리 편리하진 않죠~

 

그래서 요즘은 저는 powershell 을 주로 사용하긴 하는데~

 

근래에 찾아보니 clink 라는 프로그램이 있어서 소개 드리려 합니다.

 

clink 는 아래 주소에서 다운로드 받을 수 있습니다.

 

http://mridgers.github.io/clink/

 

소개에 나와 있는 바와 같이 cmd.exe 프로그램을 Bash-style 로 사용할 수 있도록 해주는 프로그램인데요~

 

위 공식 홈페이지뿐만 아니라 이전에 소개했던 chocolatey 을 사용하여~

 

http://iamaman.tistory.com/1303

 

아래 명령어들로 설치 할 수 있습니다. Portable 버전을 사용하고 싶다면 첫 번째 명령어를 install 버전을 사용하고 싶다면 두 번째 명령어를 사용하면 됩니다.

 

choco install clink.portable

OR

choco install clink.install

 

 

Ctrl-V 을 사용하여 붙여 넣기를 할 수도 있고~

 

명령어를 타이핑 하다가 TAB 을 누르면 아래 그림과 같이 자동으로 해당 명령어들이 나옵니다. 저는 이 기능이 cmd.exe 에서 특히 고팠던 건데 자동으로 명령어들이 나오니 편리하더군요.

 

다음으로 Bash Shell 에서와 같이 CTRL + L 을 누르면 창 clear 되고~ CTRL + W 을 누르면 커서 앞의 한 단어가 지워 집니다.

 

그리고~ Alt + H 을 누르면 clink 에서 사용 할 수 있는 명령어 리스트 들이 나옵니다.

 

명령어가 무지하게 많으니 천천히 사용해 보면서 익히면 될 것 같네요.

리눅스 데스크톱 사용시 요즘은 GUI 을 많이 사용하곤 하지만

 

그래도~ 리눅스는 터미널이죠~

 

보통의 경우 리눅스 터미널은 bash shell 을 사용하곤 하는데~ bash 에서 cd(change directory) 명령을 통해 디렉터리를 자주 왔다리 갔다리 하는데… 이게 참… 불편합니다.

 

그래서 좀 찾아보니 역시 어딘가에 답은 있더군요. 아래 글을 보니 commacd 라는 툴에 대해 소개 하더군요.

 

http://shyiko.com/2014/10/10/commacd/

 

말 그래도 ,( comma) 을 사용하여 directory 를 이동하는 건데~ 이게 써보니 무지하게 획기적이더군요.

 

commacd의 공식 사이트는 아래 주소와 같습니다.

 

https://github.com/shyiko/commacd

 

저는 지금 윈도우에서 사용 중이라 Cygwin 에서 진행을 해 봤습니다. 물론 리눅스에서도 똑같이 하면 됩니다.

 

위 페이지에서 Installation 부분을 보시면 아시겠지만 일단 curl 이 설치가 되어 있어야 합니다.

 

https://github.com/shyiko/commacd#installation

 

curl 이 설치되어 있는 분은 위 설명 대로 아래 명령어를 통해 설치하면 되고~

 

curl https://raw.githubusercontent.com/shyiko/commacd/master/commacd.bash -o ~/.commacd.bash && \

echo "source ~/.commacd.bash" >> ~/.bashrc

 

저처럼 아래와 같이 Cygwin에서 wget을 사용하여 설치 해도 됩니다. 주의할 점은 아래와 같이 –O 을 써야 한다는 겁니다.

 

wget https://raw.githubusercontent.com/shyiko/commacd/master/commacd.bash -O ~/.commacd.bash && \

echo "source ~/.commacd.bash" >> ~/.bashrc

 

 

vim ~/.bashrc 명령을 통해 .bashrc 파일을 확인 하면 아래 그림과 같이 source ~/.commacd.bash 라는 명령어가 추가 된 것을 확인 할 수 있습니다.

다음으로 bashrc 파일을 실행 합니다.

source ~/.bashrc

 

이제 commacd 을 사용하는 일만 남았군요.

 

Usage 을 보시면 간단한 사용 방법을 아실 텐데요~

 

https://github.com/shyiko/commacd#usage

 

주 사용방법은 , ,, ,,, 을 사용하는 겁니다.

 

, 는 하위 폴더로 가는 거고~ ,, 는 상위 폴더~ ,,, 는 상하위로 가는 명령어입니다.

 

, d 라는 명령어를 통해 현재 폴더 하위의 d 가 들어가 있는 폴더의 목록을 보여 주면 숫자로 선택 하면 됩니다.

 

, c 을 하면 c 로 시작하는 폴더가 나오고~ , p 라고 하면 p 로 시작하는 폴더가 나오죠~

 

그 하위로 갈 때도 일일이 path 을 다 치지 않고~ /usr/local/Cellar 폴더 가려면 , /u/l/ce 와 같이 일부만 쳐도 들어가더군요.

 

현재 저는 /cygdrive/c/Users/Administrator/Downloads 폴더에 있습니다. 현재 폴더의 상위 폴더인 /cygdrive/c 로 가기 위해서는

 

,, c 라고만 하면 상위에서 c 가 들어있는 최 하위 폴더로 가게 됩니다.

 

다음으로 ,,, 명령을 실행 해 볼 건데요. ,,, 명령을 통해 최상위 폴더 아래의 임의의 폴더로 접근 할 수 있습니다.

 

현재 저는 다음과 같이 /cygdrive/c/Program Files/AhnLab 폴더에 잇습니다.

 

그런데 /cygdrive/c/Windows 폴더에 접근 하고 싶다고 해보죠~

 

그럼 아래 그림과 같이 간단하게 ,,, c/win 라고만 타이핑 하면 해당 패턴을 가진 폴더가 나오고~ 아래 그림과 같이 0을 선택하여 해당 폴더로 이동 할 수 있습니다.

 

commacd 아~ 너무 편하고 좋네요. cd 의 혁명인 것 같습니다. 앞으로는 commacd 없으면 못 살 거 같네요.


리눅스를 사용하시는 분들이라면 비교적 쉘에서 명령어를 치는데 익숙하실 텐데요~

 

명령어에 익숙하더라도 도구를 제대로 사용하지 못한다면 생산성이 떨어질 수 밖에 없겠죠~

 

아래 주소에는 대표적인 리눅스 쉘인 Bash shell 의 단축키에 대해 설명이 있는데요~

 

http://www.howtogeek.com/howto/ubuntu/keyboard-shortcuts-for-bash-command-shell-for-ubuntu-debian-suse-redhat-linux-etc/

 

간단하게 한글로 번역해 봤습니다. Cygwin에서도 동일하게 적용되더군요.

 

Ctrl + A    현재 타이핑하는 라인의 처음으로 커서 이동

Ctrl + E    현재 타이핑하는 라인의 끝으로 커서 이동

Ctrl + L 스크린 Clear (clear 명령을 해도 현재 스크린이 지워짐)

Ctrl + U    현재 커서 이전 글자들을 다 지움

Ctrl + H    backspace 키와 동일

Ctrl + R    이전에 사용했던 명령어들을 검색

Ctrl + C    현재 실행되는 것을 강제로 멈춤

Ctrl + D    현재의 shell을 나감(종료)

Ctrl + Z    현재 실행되는 process 를 background process 로 돌림

Ctrl + W    커서 이전 한 단어를 지움

Ctrl + K    커서 이후의 글자들을 다 지움

Ctrl + T    커서 이전의 두 글자의 위치를 서로 바꿈

Esc + T    커서 이전의 마지막 두 단어의 위치를 서로 바꿈

Alt + F    전방으로 한 단어 이동

Alt + B    후방으로 한 단어 이동

Tab    파일 또는 폴더 명 자동 완성


+ Recent posts