발생일: 2013.10.11 문제: 서버가 죽으면 해당 로그를 파일로 저장해두려고 한다.파일명에 현재 시간을 포함해두려고 하는데, 쉘에선 날짜를 어떻게 포맷팅하지? 해결책: http://www.cyberciti.biz/faq/linux-unix-formatting-dates-for-display/ `date` 명령의 파라미터로 `+"포맷"`을 전달하면 된다. # 현재 시간을 `년월일-시분`으로 출력한다. 예) 131110-1530$ date +"%y%m%d-%H%M"
발생일: 2013.03.05 문제: 압축 파일을 다운로드 받아주는 간단한 쉘 스크립트를 작성하고 있다.아래와 같이 사용자 입력을 받아서, 다운로드 후 압축을 풀어주고 싶다. 압축을 해제할까요~? (y/n) 쉘 스크립트에서 프롬프트 입력은 어떻게 처리하면 될까? 해결책: read 커맨드를 사용하면 되고,위처럼 프롬프트 문자열 후에 한 글자만 받고 싶다면 아래와 같이 사용하면 된다. $ read -n 1 -p "Unzip all files? (y/N)" -n 옵션은 입력받을 캐릭터 수를 의미하고,-p 옵션은 프롬프트 전에 출력할 문자열을 의미한다. read 커맨드로 읽어온 문자열은 REPLY 변수에 저장된다.입력받은 문자열은 아래와 같은 방식으로 분기할 수 있다. $ [[ $REPLY == [yY] ]] &..
발생일: 2009.10.26 문제: UNIX 에서 Shell 파일을 생성했다. 실행하려고 shell 파일 명령어를 수행하니 실행할 수 없다고 나온다. 왜 안되는 걸까...? 해결책: 유닉스에서 최초로 파일을 실행했을 때에 기본적으로 Read 권한 밖에 주지 않는다. (예: -rw-r--r--) 따라서 파일을 생성 후 chmod 명령어를 수행해 파일 실행권한을 주도록 한다. chmod 755 파일명 권한을 준 후 실행하면 정상적으로 실행이 된다. 여기서 chmod 는 권한 변경(change mode)에 대한 명령어이며, 권한에 대한 숫자는 아래와 같이 계산하면 쉽다. Read Write Execute 4 2 1 또한 위의 755 는 각각 소유자, 그룹, 일반 사용자를 나타낸다. 자세한 내용은 chmod 명..