발생일: 2014.01.14 키워드: unix, eval 문제: 지금은 잘 생각나지 않는데, 어떤 쉘 스크립트 코드를 보다보니 `eval`이란 커맨드를 쓰더라.쉘에서 `eval` 커맨드가 뭘 의미하는 걸까? 해결책: 커맨드에 쉘에서 처리해야 할 값(예: 변수)가 문자열로 포함된 경우에 유용하다.아래 코드를 보면 이해할 수 있다. $ n=1$ s='$n' # 문자열로 $n을 갖도록 한다. $ echo $n1$ echo $s$n$ eval echo $s1 참고:http://www.unix.com/shell-programming-scripting/66063-eval-shell-scripting.html
발생일: 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.16 문제: 맥에서 루비를 돌려보려고 하는데 버전 업데이트부터 막힌다. 터미널에서 이것 저것 설정해야 하는데, 맥 터미널이 아직 익숙치가 않다. 맥은 표준 유닉스 기반이라는데, 일단 디렉토리 구조가 어떻게 생겼는지 알아봐야겠다. 해결책: 아래는 유닉스 계열의 파일 시스템의 계층 구조 중 중요한 것 몇 가지를 정리한 것이다. / "root". 루트 디렉토리 /bin "binary"의 약자. 유닉스에서 실행 가능하게 컴파일 된 바이너리 실행 파일. /dev "device". 하드웨어 디바이스 관련 파일. /etc "etcetera". 설정 파일이 저장되는 장소. '기타'라는 의미가 적당하지 않아 혹자들은 "editable text configuration"의 약자로 의미. /home ..
발생일: 2009.09.22 문제: unix 명령어에는 친숙하지가 않다. tar 로 압축을 풀 때에 한꺼번에 여러 파일을 압축 풀고 난 후에, 폴더 내의 파일 개수를 세고 싶다... 우찌해야 할까. 해결책: 여러 파일을 찾기 위해서는 아래와 같이 실행하면 되겠다. (여러 파일 압축 풀기에서 참고) find . -name "*.tar" -exec tar wvf {} \; 아래와 같은 형식으로 조회해보면, 파일의 개수를 알 수 있다. (파일 개수 알아보기에서 참고) find . -name "*.tar" -print | wc -l find 구문을 알아두면 쏠쏠하겠다. 검색해보니 HP 사이트에 find에 대한 굉장히 좋은 튜토리얼이 있다. 위 튜토리얼을 포함하고 있는 HP 사이트의 HP-UX 사용 설명서를 한 ..