msys – tput 함수 구현

msys2에는.. tput이 있으나.. msys에는 없다..
아래와 같이.. /etc/proflile 파일에 넣어두고..

if ! which tput 2> /dev/null ; then
	tput () {
		case "$1" in
			bold)
				echo -ne "\033[1m" ;;
			setaf)
				echo -ne "\033[0;3$2m" ;;
			sgr0)
				echo -ne "\033(\033[m" ;;
		esac
	}
fi

아래와 같이 프롬프트를 셋팅해본다..

export PS1="\[\e]0;$(gcc -dumpmachine) $(gcc -dumpversion) : \w\a\]\n\[$(tput bold)\]\[$(tput setaf 1)\][\[$(tput setaf 3)\]\u\[$(tput setaf 2)\]@\[$(tput setaf 4)\]\h \[$(tput setaf 5)\]\W\[$(tput setaf 1)\]]\[$(tput setaf 7)\]\\$ \[$(tput sgr0)\]"

아래와 같이 나온다..

tput

Msys2

난 자칭 MinGW 골수팬이다. ㅎ
MinGW와 함께 최고의 조합으로 여겨지는 msys가 msys2 로 업그레이드 되었다.
이제 더욱 쾌적하게 개발을 할수 있게 되었다.
msys2는 cygwin의 기능들이 대부분 이식이 되었고..
Arch 리눅스의 패키지관리 시스템(pacman)이 (우분투의 apt-get과 같은..) 이식 되었다.

msys2 설치

msys2 다운로드 받기: http://sourceforge.net/projects/msys2/files/Base/

현재 20140910 버전이 최신이다. 셋업 파일을 받아도 되나.. 난 tar.xz 파일을 받은후
c:\msys64 에 압축을 풀었다.
아무래도 셋업 파일보단 포터블 버전을 선호한다.
압축 해제후에 msys2_shell.bat 를 실행하면 msys2 환경이 초기 설정이 되고..

1

완료된후 다시 msys2_shell.bat 를 실행시켜주면 깔끔한 msys2 화면을 볼수 있다.

터미널 에뮬레이터 셋팅

msys2는 기본적으로 putty를 포팅한 msys에 최적화된 mintty를 터미널 에뮬레이터로 사용하고 있다.
다음 적절히 mintty를 셋팅 한다. 사용해보니 msys2의 mintty는 한글도 지원이 충실하다.

난 폰트를 나눔고딕코딩이나 Fixedsys 폰트를 좋아하는데
나눔고딕코딩 폰트는 아래에서 다운로드한 후 mintty 에서 셋팅한다.

나눔고딕코딩: http://dev.naver.com/projects/nanumfont/

2

커서 모양도 셋팅하고.. 투명 스타일도 지정하고.. Locale (C), Character set (eucKR) 도 지정한다.
아래는 셋팅후 화면이다. 아주 그럴싸하다.. 리눅스 환경이 부럽지 않다. ㅎㅎ

3

이제 터미널 셋팅이 그럭저럭 된것 같다.

패키지 데이타 베이스 동기화 및 msys2 업그레이드

msys2는 Arch 리눅스의 pacman을 도입하였다.

우선 패키지 데이타 베이스를 동기화 및 msys2를 업그레이드를 한다.

% pacman -Syu

6

만약 msys2 업그레이드시에.. 아래의 에러를 본다면.. 이럴땐 다시 msys2를 실행해주면 된다.
7

다음 지원되는 패키지 목록을 본다.

% pacman -Sl

5

다음 개발시 필요한 패키지를 설치한다. 이정도면 되지 않을까..

% pacman -S wget vim swig mc pkg-config subversion python2 git curl tar binutils autoconf make libtool automake mingw-w64-i686-gcc mingw-w64-x86_64-gcc

의존성도 검사해서 자동 설치해준다.. 이 얼마나 감격스러운가..
8

참고로 gcc는 각 arch 별로 아래에 설치가 된다.
mingw32: mingw-w64-i686-gcc
mingw64: mingw-w64-x86_64-gcc

9

참고로 mingw32_shell.bat를 실행하면 mingw32 폴더의 mingw-w64-i686-gcc를 사용하며,
12
mingw64_shell.bat를 실행하면 mingw64 폴더의 mingw-w64-x86_64-gcc를 사용한다.
13

또한 mingw32_shell.bat와 mingw64_shell.bat를 동시에 실행할수도 있다.
(기존 msys 에서는 동시에 사용이 안됐었다..)

필요 없는 패키지 삭제는 다음과 같이한다.

% pacman -R <package_name>

기타 편의 셋팅

1. .bashrc 셋팅

% vim ~/.bashrc

case "$MSYSTEM" in
        MINGW32)
                export TERMINFO=/mingw32/share/terminfo
                ;;
        MINGW64)
                export TERMINFO=/mingw64/share/terminfo
                ;;
esac

alias ls='ls -hF --color=tty'
alias dir='ls --color=auto --format=vertical'
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'
export PS1="\[\e]0;$(gcc -dumpmachine) $(gcc -dumpversion) : \w\a\]\n\[$(tput bold)\]\[$(tput setaf 1)\][\[$(tput setaf 3)\]\u\[$(tput setaf 2)\]@\[$(tput setaf 4)\]\h \[$(tput setaf 5)\]\W\[$(tput setaf 1)\]]\[$(tput setaf 7)\]\\$ \[$(tput sgr0)\]"

아래와 같이 취향대로 셋팅.
15

2. fstab 설정

% vim /etc/fstab

아래와 같이 자주 사용되는 윈도우즈 폴더를 링크한다.
11
저장후 msys2를 다시 실행하면 C:\Works 폴더를 /works 폴더로 접근할 수 있다.

또한 fstab 기능과 상관 없는 기능인데..
기본적으로 msys2 (msys도 마찬가지..) 에서는 윈도우즈 드라이브를 아래와 같이 접근가능하다.

# C:\Windows
$ ls /c/Windows

# D:\Works
$ ls /d/Works

3. .vimrc 설정

vim 기본 설정은 아무것도 안되어 있으므로..
syntax highlight 켜주고.. 백업 파일 안생기게 해주고..

$ vim ~/.vimrc

syntax on
set nobackup