발생일: 2015.01.02 키워드: hexdump 문제: 파일 내용을 바이트 단위로 보고 싶다. 해결책: 아래 링크를 보면 여러 가지 방법이 있긴 한데, http://unix.stackexchange.com/questions/10826/shell-how-to-read-the-bytes-of-a-binary-file-and-print-as-hexadecimal 요게 포맷팅해서 보기 가장 좋은 것 같다. $ hexdump -C filename
발생일: 2015.01.02 키워드: CR, LF, CRLF 문제: 줄바꿈 문자열에 대해선 대충 아래 정도만 알고 있었다. 윈도우는 캐리지리턴(CRLF, \r\n), 유닉스/리눅스에선 리턴(LF, \n). git 에서 어떤 라이브러리를 체크아웃 받았더니 자꾸 라인피드가 충돌난다는 워닝이 뜨더라. 이거 원인을 찾아보다가 우연히 줄바꿈 문자열에 대한 히스토리를 찾아보게 됐다. 해결책: CR = Carriage Return LF = Line Feed CR 과 LF 는 줄바꿈을 의미하는 컨트롤 캐릭터이고, 각각 0x0D (13 decimal), 0x0A (10 decimal)를 가리킨다. 윈도우는 CR LF 를, 유닉스는 LF를, 맥의 초기 버전(9 버전 이하)은 CR을 사용한다. 이 두 키는 오래 전 타자기 ..
발생일: 2014.10.07 키워드: shell, bash, 쉘 문제: 서버 셋팅 스크립트를 작성하고 있는데, `imagemagick`이 인스톨되어 있지 않는 경우에만 인스톨하도록 하려고 한다. 특정 커맨드가 실행 가능한지 확인하는 방법으로 체크하려고 하는데, 쉘에서 프로그램이 존재하는지를 어떻게 확인하면 될까? 해결책: which, command, type, hash 등 여러 방법으로 확인할 수 있는데, OS나 쉘 종류에 따라 그 결과가 다른 모양이다. 그나마 가장 적합해보이는 건, `command` 명령어를 사용하는 것이다. $ command -v [command] 2>/dev/null 유효한 명령일 경우, 해당 커맨드의 절대 경로가 출력된다. 나는 `imagemagick`에서 사용하는 `conver..
발생일: 2014.05.27 키워드: awk 문제: 쉘 스크립트에서 정규식으로 특정 부분을 가져와 처리하려고 한다. `awk`로 간단히 처리할 수 있다고 알고 있는데, 이참에 정확한 사용 방법을 알아봐야겠다. 해결책: awk ‘/정규식 패턴/ {액션} /정규식 패턴/ {액션}’ file 1. awk 명령은 매 라인 단위로 실행되며, 정의한 정규식과 액션을 순서대로 수행한다. 2. 싱글 쿼테이션은 해당 값이 커맨드로 인식되지 않도록 하는 역할을 한다. 3. 정규식이 매칭될 때에만 해당 액션을 수행한다. 4. 정규식이 매칭되지 않으면 아무 액션을 수행하지 않는다. 5. 액션이 정의되어 있지 않으면 기본적으로 print를 수행한다. 예) $ awk ‘/foo/ /bar/‘ sample.txt foo와 bar가..
발생일: 2014.07.26 키워드: 커버로스, kerberos 문제: 쉘 스크립트로 커버로스 로그인을 자동으로 처리하려고 한다. 아이디와 로우 패스워드만 받을 수 있는 환경이라, 직접 패스워드를 전달하는 방식으로 작성해야 한다. 어떻게 하면 될까? 해결책: `kinit`에 `password-file` 옵션이 있다. 아래와 같이 echo로 password 출력 후, 표준입력으로 건내주면 된다. echo | knit --password-file=STDIN 추가) 위 코드는 Mac OS에서 테스트한 것이었는데, Cent OS의 kinit 에서는 password-file 옵션을 제공하지 않는다. 참고: http://apple.stackexchange.com/questions/50653/how-can-i-use..
발생일: 2014.05.23 키워드: bash, shell, shell script, sub shell, 서브쉘 문제: 쉘 스크립트에서 다른 명령을 실행하려고 하는데, 현재 쉘의 환경에서 해당 스크립트의 결과도 함께 출력되도록 하고 싶다. 어떻게 하면 될까? 해결책: 기존에는 다른 스크립트를 실행하려고 할 때 `명령`이나 $(명령) 과 같이 호출해왔었다. 이렇게 호출할 땐, 서브쉘에서 실행하는 거라 아웃풋을 현재 쉘에서 받을 수 없었는데, 찾아보니 현재 쉘에서 실행할 수 있는 방법이 있더라. $(명령) - 서브쉘에서 실행 { 명령; 명령; } - 현재 쉘에서 실행 위 문제 상황에서는, 서브 쉘에서 실행하는 것보다 현재 쉘에서 실행하는 게 더 적합했던 터라, { 명령; } 처럼 호출하는 걸로 처리했다.
발생일: 2013.12.13 키워드: CPU, 코어 개수 문제: 패신저라고, 웹서버인 nginx와 루비/노드 등의 앱서버를 쉽게 엮어주는 모듈을 살펴보고 있었다. 난 노드 앱을 띄울 생각을 하고 있었는데, 노드는 싱글 스레드라 앱서버의 인스턴스를 띄울 때 코어 개수만큼 띄우는 게 가장 효율적이라고 하더라. 가만, 코어 개수를 어떻게 가져오지? 해결책: 맥에서 코어 개수를 가져오려면. $ sysctl hw | grep cpu 참고: https://www.ibm.com/developerworks/community/blogs/brian/entry/linux_show_the_number_of_cpu_cores_on_your_system17?lang=en http://osxdaily.com/2011/07/15/g..
발생일: 2014.02.15 키워드: curl 문제: curl로 특정 요청을 보낸 후 응답으로 받은 쿠키를 저장하고, 그 쿠키를 재사용해 다음 요청을 보내고 싶다. curl 매뉴얼을 보니 다 있다. :)이참에 쓸만한 옵션들을 보기 쉽게 좀 정리했다. 해결책: 요약 정리 # page1.example.com 으로 요청을 보내고, 응답 쿠키를 cookie.txt에 저장한다.$ curl -c cookie.txt http://page1.example.com # 저장한 쿠키(cookie.txt)를 헤더에 추가해서, page2.example.com 으로 요청한다.$ curl -b cookie.txt http://page2.example.com 요청 데이터 관련 -X, —request HTTP 메서드를 설정할 수 있다..
발생일: 2014.01.14 키워드: ssh-add 문제: `ssh-add` 명령을 사용하던 중에 아래 오류를 만났다. Could not open a connection to your authentication agent. 어떻게 해결해야할까? 해결책: 어떤 `ssh-agent`를 사용해야 할 지 모르기 때문이다.머신에서 한 번도 설정하지 않은 경우에 발생할 수 있다.아래 명령으로 `ssh-agent`를 설정해주면 된다. $ eval $(ssh-agent) 참고:https://coderwall.com/p/rdi_wq