맥 터미널에서 색상 강조 사용하기(ls, vim)

기본적으로 터미널에서 ls와 vi 또는 vim (이하 vim)이 단일 색상으로 텍스트가되어 가독성이 떨어진다.

리눅스 터미널 환경처럼 색상을 사용하려면 아래와 같이 설정해 주면 된다.


1. ls


Bash 환경설정 파일에(~/.bash_profile) 아래와 같이 추가해 준다.

alias ls='ls -FG'


ls 명령을 치면 ls -FG 명령을 수행하라는 뜻인데, -F 옵션은 디렉토리에는 '/'를 실행파일에는 '*' 심볼릭링크에는 '@' 등의 표시를 해주는 옵션이고 -G 옵션은 Color를 사용하겠다는 옵션이다.


위 내용을 적용하려면 shell에 다시 로그인 하거나 아래와 같은 명령을 수행하면 된다.

$ source ~/.bash_profile



2. vi (vim)


vim 환경설정 파일에(~/.vimrc) 아래 두줄만 추가를 해주면 syntax highlighting 기능을 사용할 수 있다.

filetype on

syntax on


또는 아래와 같이 예제파일을 복사해 와도 된다.

$ cp /usr/share/vim/vim73/vimrc_example.vim ~/.vimrc


만약 해당 디렉토리가 존재하지 않는다면 vim73대신 설치되어 있는 버전(vimXX)을 사용하면 된다.

^M문자 없애기

^M문자없애기

      vi로 문서를 보다 보면 줄끝마다 ^M 이 보이는 경우가 있습니다.
      이는 윈도우시리즈(도스포함)에서 작성된 문서를 유닉스로 볼때 생기는 현상 입니다.

      이런 현상이 왜 생기는 이유는 윈도우와 유닉스에서의 ASCII화일 형식이 서로 다릅니다.

      일단 윈도우에서는 엔터시에 한줄을 내리고 커서를 앞으로 보내주지만 즉,엔터 한번으로
      두 명령이 입력되는거죠..

      하지만 유닉스에서는 엔터치면 단지 줄만 바뀌죠..즉 한번의 엔터는 단지 한번의 명령일 뿐 입니다..^^;

      그래서 도스파티션에 있는 화일을 그냥 카피하면 ^M자들이 지저분하게 보이죠..

      반대로 유닉스용 화일을 도스로 카피해서 도스용 에디터로 보면 전부 한줄로 붙어서 나타나게 된답니다.

      아래는 몇가지 방법입니다.

      1. vi 에디터를 이용해서 ^M 문자 없애는 방법

             1) tr 을 이용합니다.
                vi 에디터에서 다음과 같이 입력합니다. 여기서 1G는 첫라인으로 간다는
                뜻이고, 느낌표부터는 쉘명령 tr을 이용한다는 겁니다.

                1G!Gtr -d ^M

             2) ed 명령을 사용합니다.
                vi 에디터에서 다음과 같이 입력합니다. 여기서 : 는 아시다시피
                명령모드로 가는 거구, 1은 첫라인을 $는 마지막 라인을 의미합니다.
                그러므로 여기서 1,$ 는 첫라인부터 마지막라인까지라는 뜻이겠죠?
                s는 substitute의 약자로써 다음의 /피대체어/대체어/ 에서
                피대체어를 대체어로 바꾼다는 것입니다. 여기서는 ^M을 없애라는
                뜻이겠죠? 마지막의 g는 global의 약자로 각 라인에서 해당문자열이
                나올때마다 몽땅 바꾸라는 의미.

                :1,$s/^M//g


      2. perl 을 이용하는 방법

             perl -pi -e 's/\r//' inputfile


      3. sed 를 이용하는 방법

             1 번 vi 에디터를 이용하는 방법에서 언급 되었습니다. 커맨드라인상에서
             바로 수정하는 방법.

             sed 's/^M//g' inputfile > outputfile


      4. awk 를 이용하는 방법

             print $0 는 문서전체를 의미합니다.

             awk '{print $0,"\r"}' inputfile > outputfile


      5. tr 을 이용하는 방법

             1 번 vi 에디터를 이용하는 방법에서도 언급되었지만 에디터를 부르지
             않고 커맨드라인상에서 바로 고치는 방법입니다. -d 옵션은 delete를 의미.

             tr -d '\015' < inputfile > outputfile


      6. mcopy 이용시 옵션을 주는 방법

             -t 옵션을 이용하면 mcopy로 복사할때 ^M 문자가 없어지고 copy됩니다.
         
             mcopy -t a:/test.cap .

      7. fromdos 명령을 이용하는 방법

             간단히 리눅스에 포함되어있는 유틸리티를 이용하는 방법입니다. fromdos는
             도스용 문서를 리눅스(유닉스)용으로, todos는 리눅스에서 도스용으로 변환
             할때 사용할 수 있습니다.

             fromdos inputfile

            
      참고 : ^M 의 입력은 [Ctrl+V][Ctrl+M] 입니다.


      또다른 방법하나.

      //g$s/
      요렇게 하면 몽땅 지워집니다.
      1 은 첫라인부터
      $ 은 마지막라인까지
      s 는 다음과 같이 바꾸는데...
      ^M 은 입력할때 Ctrl+V M 요렇게 해야허구...
      // 는 원래 요사이에 뭔 string이 들어가야하지만
        없애야하기에 암껏두 안썼음.
      g 는 문서전체에 걸쳐 몽땅...

      이게 귀찮으시면 그냥 fromdos 명령 사용하세요~


      저는 보통 vi 편집기 명령모드에서 :1,$s/^M//g 이걸로 ^M을 없애고 있습니다..


'system > unix' 카테고리의 다른 글

su 명령 사용 허가하기  (0) 2008.09.17
bash 환경 설정  (0) 2008.09.17
Unix Shell 종류  (0) 2008.09.17
시스템에서 사용하는 port 1024 개  (0) 2007.11.09
[HP-UX] 시스템 명령어  (0) 2007.10.31