ls 결과를 색깔로 구분해서 표시하기

Mac OS X 에 설치되어 있는 ls 명령은 -G 설정 혹은 CLICOLOR 환경 변수와 함께 사용되면, 결과들을 색깔별로 구분해서 나열할 수 있습니다. 여기에 표시되는 색깔들의 구분은 LSCOLORS 환경 변수를 따로 지정해서 사용자의 입맛에 맞게 변경할 수도 있답니다.

그래서, 예를 들어 만약 디렉토리 표시 색깔을 기본 파란색에서 노란색(원래 d값은 갈색을 나타내지만, 실제로는 노란색과 비슷하게 표시됩니다)으로 바꾸려면 터미널 초기 설정 파일(tcsh: ~/.cshrc, bash: ~/.profile)에 다음과 같이 설정해 줍니다.

tcsh shell일 경우:

코드:

setenv CLICOLOR 1
# use yellow for directories listing
setenv LSCOLORS dxfxcxdxbxegedabagacad

bash shell일 경우:

코드:

export CLICOLOR=1
# use yellow for directories listing
export LSCOLORS=dxfxcxdxbxegedabagacad

여기에 더해서, alias인 alias ls="ls -G" 설정을 추가해 주면 매번 ls 명령을 입력할 때마다, -G 설정을 입력할 필요가 없게 됩니다.

참고로, 기본 LSCOLORS의 설정값은 "exfxcxdxbxegedabagacad"이며, 변수의 속성들은 각기 쌍을 이루며 글자색배경색으로 묶여 있습니다. 여러 속성들의 순서는, 다음과 같습니다:

1. directory  2. symbolic link  3. socket  4. pipe  5. executable  6. block special  7. character special 
8. executable with setuid bit set  9. executable with setgid bit set 
10. directory writable to others, with sticky bit  11. directory writable to others, without sticky bit


그리고, 색깔을 나타내는 지시자들은 다음과 같습니다:

a     black
b     red
c     green
d     brown
e     blue
f     magenta
g     cyan
h     light grey
A     bold black, usually shows up as dark grey
B     bold red
C     bold green
D     bold brown, usually shows up as yellow
E     bold blue
F     bold magenta
G     bold cyan
H     bold light grey
x     bdefault foreground or background

그 래서, 예를 들어 기본 설정값인 "exfxcxdxbxegedabagacad"는 일반 디렉토리의 경우, 파란색 글자(e)로 기본 배경색(x)을 바탕으로 표시되고, 심볼릭 링크(symbolic link)는 심홍색 글자(f-magenta)에 기본 배경색(x)을 바탕으로 표시되며, 뒤의 기타 속성들도 이러한 형식을 취합니다.
자세한 ls 관련 설명은 man ls로 설명서를 불러내어 읽어보시기 바랍니다.

Posted by 배고파씨
일단 Unix호환 어플리케이션(커맨드 라인 툴 포함)은 전부 Xcode에서 개발, 빌드 및 실행과 디버깅 까지 가능며 몇가지만 알고 계시면 정말 쉽게 이용하실 수 있습니다. 예전에 Unix 어플리케이션 개발을 할때는 KDevelop을 주로 이용했습니다만 맥을 사용한 이후로는 그럴 필요가 없을 정도로 아주 편리하다고 하겠습니다.

먼저 왠만한 Unix프로그램은 처음에 프로젝트 생성하실 때 New Project에서 Command Line Utility 밑의 Standard Tool을 선택하여 프로젝트를 생성하시는 것으로 해결이 됩니다. 지금 올려주신 화면을 보았을 때 unistd.h의 getpid()를 사용하시는 것 같아서 그것만 간단히 pid를 찍는 프로그램을 만들어 봤는데 아무런 설정 없이 잘 컴파일 되고 동작했습니다.

문제는 스탠다드 라이브러리가 아닌 다른 라이브러리를 이용할 때인데, 이 때는 손품을 좀 팔아 주시면 됩니다. Xcode의 메인 프로젝트 창의 왼쪽 Groups & Files의 최상위에 위치한 프로젝트 항목을 오른쪽 클릭하고 Get Info 윈도우를 띄운 다음 Build 탭을 보시면 프로젝트를 빌드하는데 사용되는 각종 옵션들이 많이 있습니다. gcc로 개발을 해 보셨으면 아시겠지만 외부 라이브러리를 이용할 경우 -I, -L, -l 등의 옵션이 반드시 들어가게 됩니다. (순서대로 대문자 아이, 대문자 엘, 소문자 엘 입니다.) 이 옵션이 컴파일러와 링커에게 헤더와 라이브러리 패스 및 링크할 라이브러리를 일러주는데 이 옵션 역시 Build 탭 안에 있습니다.

-I (대문자 아이)와 -L은 Search Path 하위 항목을 보시면 쉽게 찾으실 수 있습니다. (Xcode 2에서는 앞의 하이픈과 옵션까지 적어줬던 것으로 기억하는데 3에서는 잘 모르겠습니다.) 또한 -l의 경우는 (소문자 엘) Linking 밑의 Other Linker Flags에 적어주시면 됩니다.

예를 들어 X11 라이브러리를 이용할 경우
-I/usr/X11/include -L/usr/X11/lib -lx11
gcc에 위와 같은 옵션을 주게 되는데 각각 앞에서 말씀드린 항목에 예쁘게 정자로 적어 주시면 되겠습니다.

그리고 실행에 대한 말씀을 하셨는데 그냥 Run하면 실행됩니다. 혹시 실행 위치라던가 하는 부분도 역시 프로젝트 옵션에서 정해줄 수 있고요, 만약 콘솔이 보고 싶으신 것이라면 Run 메뉴 밑의 Console을 선택하시면 됩니다.

PS) 예전엔 프로젝트 생성하자마자 ZeroLink를 끄는 게 일이었는데 언제부턴가 디폴트로 꺼져 나오더니 3 부터는 아예 안 쓰는 쪽으로 가기로 했나 봅니다.
Posted by 배고파씨
박종암님께서 번역하신 한국어판 PDF 문서 입니다.

현재로서는 Objective-C 관련 자료 중에 한국어로 된 유일한 자료 입니다.

현재 버전이 비록 2.0 이기는 해도 이문서로 충분히 학습이 가능합니다.

이 문서를 보신 후 2.0 문서를 추가로 보시면서 변경되거나 추가된 부분만 학습 하셔도 충분 합니다.


Posted by 배고파씨