발생일: 2011.09.20 문제: 터미널에서 입력 상태를 종료할 때엔, Ctrl+D를 눌러 종료한다. 그러다가 문득, Ctrl+D 가 무슨 뜻인지 궁금해졌다. 뭔가 d로 시작하는 약자인가? 그러고보면, Ctrl+C 랑은 어떤 차이가 있는 거지? 해결책: Ctrl+D (^D) 는 "end of file" 을 의미한다. 터미널이 입력 상태이고, 라인의 맨 처음일 때에만 작동한다. Ctrl+C (^C) 는 "interrupt" 를 의미한다. 실질적으로는 stop 명령을 내리는 INT signal 을 보낸다. 비슷하게 Ctrl+\ (^\) 로 QUIT signal을 보내서 종료할 수도 있다. Ctrl+Z (^Z) 는 현재 진행 중인 작업을 백그라운드로 보낸다. (종료되는 것이 아니다) #. 참고. - What..
발생일: 2011.09.19 문제: 유닉스 가이드를 읽던 중 아래와 같은 예제 구문이 나왔다. $cat notexist > /dev/null 2>&1 저 /dev/null 2>&1 형태는 예전에 크론탭 동작하는 쉘에서도 언뜻 본 기억이 있는데,.. 정확히 무슨 뜻일까? 해결책: 위 구문을 이해하기 위해 일단 유닉스의 파일 디스크립터(File Descriptor)에 대해 알아보자. 유닉스 프로그램이 파일에 뭔가 작업을 하기 위해서는 일단 파일을 열어야 한다. 이 때, 유닉스는 열려있는 파일을 구분하기 위해 파일에 간단한 숫자를 붙인다. 이 숫자를 파일 디스크립터라고 하고, 0부터 9까지 존재한다. 유닉스 프로그램은 기본적으로 아래 3개의 "파일"을 열어둔다. - Standard Input (표준 입력, S..
발생일: 2011.09.18 문제: 유닉스에서 파일 권한(permission 또는 mode) 변경하는 방법에 대해 알아보자. 해결책: 일단 현재 파일의 상태가 어떤 지 알아보기 위해 조회해본다. ls -l ("Long format" 으로 조회) 목록 중 가장 왼쪽의 컬럼이 현재 파일에 대한 권한(file mode) 정보를 나타내는 것이다. -rwxr-xr-- 위 문자열은 각각 아래를 의미한다. - rwx rwx rwx 파일타입 user 권한 group 권한 other 권한 파일 타입(file type)에는 아래와 같은 종류가 있다. (여기서는 - 와 d 만 알고 있어도 충분하다.) - : plain file. 일반 파일. 실행 파일도 포함한다. d : directory. 디렉토리 형식. l : link...
발생일: 2011.09.16 문제: 맥에서 루비를 돌려보려고 하는데 버전 업데이트부터 막힌다. 터미널에서 이것 저것 설정해야 하는데, 맥 터미널이 아직 익숙치가 않다. 맥은 표준 유닉스 기반이라는데, 일단 디렉토리 구조가 어떻게 생겼는지 알아봐야겠다. 해결책: 아래는 유닉스 계열의 파일 시스템의 계층 구조 중 중요한 것 몇 가지를 정리한 것이다. / "root". 루트 디렉토리 /bin "binary"의 약자. 유닉스에서 실행 가능하게 컴파일 된 바이너리 실행 파일. /dev "device". 하드웨어 디바이스 관련 파일. /etc "etcetera". 설정 파일이 저장되는 장소. '기타'라는 의미가 적당하지 않아 혹자들은 "editable text configuration"의 약자로 의미. /home ..
발생일: 2011.09.15 문제: 뒷 자리 과장님에게 맥에서 에디터는 뭘 쓰냐고 여쭤봤더니 맥빔(MacVim)을 쓴다고 하신다. '빔'이라는데, 이게 뭐지? vi 의 확장판인가? 해결책: VIM은 vi를 확장한 유닉스 문서 편집기라고 한다. (위키: http://ko.wikipedia.org/wiki/Vim) MacVim은 맥용 vim 에디터이다. (http://code.google.com/p/macvim/) 사용하고 있는 OS에 맞는 스냅샷을 다운로드 받은 후, - MacVim.app 은 애플리케이션 폴더로~ - mvim 쉘스크립트는 적당한 폴더로 옮긴 후, path를 설정해주면 된다. vi 에디터와 사용 방법은 비슷하고, 그 외에도 강력한 기능이 있다고 한다. (아직 경험은... -_-) 처음엔 좀..
발생일: 2010.01.19 문제: unix 에서 현재 날짜를 출력하려면 date 커맨드를 날리면 된다. 그렇다면 포맷은 어떻게 지정해야 할까? 해결책: How to format date for display or to use in a shell script 이 포스트에 굉장히 잘 정리되어 있으니 참고해보자. 간단하게, date +FORMAT 형태로 사용하면 된다. 예를 들어, 10-01-19 23:11:12 를 표시하고 싶을 경우, date "+%y-%m-%d %T" 와 같이 표현하면 된다.
발생일: 2009.11.09 문제: 이번에 서버 변경 작업을 하면서 기존 서버에 crontab 으로 등록되어 있는 내용을 똑같이 옮겨왔다. 정해진 시간에 몇 개의 쉘 프로그램을 실행시키는 구문이었는데, 이 놈들이 정상적으로 실행되지 않는다. 확인해보니, 각 쉘 프로그램에서는 자바의 루트 디렉토리를 칭하는 JAVA_HOME 환경 변수를 사용하는데, 이번 서버 변경 작업때문에 자바의 디렉토리 위치가 변경되었기 때문이었다. 어쩔 수 없이 각 파일을 열어 JAVA_HOME 변수를 설정하다가 문득, '환경 변수를 왜 모든 쉘 프로그램에 각각 등록해둔 거지..?' 라고 생각하면서 JAVA_HOME 변수를 .profile 에 환경 변수로 추가하고 쉘 프로그램에 등록되어 있던 JAVA_HOME 은 삭제했다. 테스트로 ..
발생일: 2009.10.26 문제: UNIX 에서 Shell 파일을 생성했다. 실행하려고 shell 파일 명령어를 수행하니 실행할 수 없다고 나온다. 왜 안되는 걸까...? 해결책: 유닉스에서 최초로 파일을 실행했을 때에 기본적으로 Read 권한 밖에 주지 않는다. (예: -rw-r--r--) 따라서 파일을 생성 후 chmod 명령어를 수행해 파일 실행권한을 주도록 한다. chmod 755 파일명 권한을 준 후 실행하면 정상적으로 실행이 된다. 여기서 chmod 는 권한 변경(change mode)에 대한 명령어이며, 권한에 대한 숫자는 아래와 같이 계산하면 쉽다. Read Write Execute 4 2 1 또한 위의 755 는 각각 소유자, 그룹, 일반 사용자를 나타낸다. 자세한 내용은 chmod 명..
발생일: 2009.10.23 문제: 온라인 보안 강좌를 보다가 SSL 적용에 관한 이야기가 나왔다. 가만,.. 예전에 https 인증서를 cafe24에서 구입하려고 봤더니 돈을 쫌 내라고 했었는데 말이야. 검색을 좀 해보니까, 사설 인증서를 만들어도 되는 모양이다... 이참에 관련 내용들을 좀 뽑아서 정리해두어야 겠다. 해결책: IBM 컬럼 : SSL은 무엇인가? 사설 인증서와 관련된 포스트 Configuring Tomcat to Support SSL (With OpenSSL)
발생일: 2009.09.22 문제: unix 명령어에는 친숙하지가 않다. tar 로 압축을 풀 때에 한꺼번에 여러 파일을 압축 풀고 난 후에, 폴더 내의 파일 개수를 세고 싶다... 우찌해야 할까. 해결책: 여러 파일을 찾기 위해서는 아래와 같이 실행하면 되겠다. (여러 파일 압축 풀기에서 참고) find . -name "*.tar" -exec tar wvf {} \; 아래와 같은 형식으로 조회해보면, 파일의 개수를 알 수 있다. (파일 개수 알아보기에서 참고) find . -name "*.tar" -print | wc -l find 구문을 알아두면 쏠쏠하겠다. 검색해보니 HP 사이트에 find에 대한 굉장히 좋은 튜토리얼이 있다. 위 튜토리얼을 포함하고 있는 HP 사이트의 HP-UX 사용 설명서를 한 ..