반달가면

Sources

Posts

427 posts

[bash: timeout] 특정 명령어/프로세스에 대한 실행 시간 제한 설정

반달가면|2017년 3월 27일

특정 명령어 또는 프로세스의 실행 시간을 제한해야 할 경우 timeout을 이용할 수 있다. 어떤 작업이 일정 시간 안에 끝나지 않으면 강제로라도 끝내야 하는 상황이 있을 경우, 또는 특정 프로세스가 버그 등으로 인해 무한히 끝나지 않고 헤멜 가능성이 있다고 생각될 경우에 요긴하다. 아래의 예시를 보자. # 실행 시간 제한 3.5초 timeout 3.5s sleep 10 # 종료 상태(exit status) 확인 echo $? 124 위의 예시를 보면 sleep으로 10초간 대기하라는 명령이지만 실행 시간 제한을 3.5초로 설정했으므로 3.5초후에 sleep 프로세스는 강제 종료된다. 예시를 하나 더 보자. # 실행 시간 제한 2분 timeout 2m sleep 10

리눅스에서 exFAT 파일 시스템으로 포맷하기(데비안/우분투 계열)

반달가면|2017년 3월 20일

데비안/우분투 계열 리눅스 배포판에 USB 메모리를 exFAT 파일 시스템으로 포맷하는 방법이다. exFAT으로 포맷된 USB메모리를 인식하고 사용하기 위해서는 exfat-fuse 패키지가 필요했는데(이전 게시물을 참고하자. 여기로), 포맷을 하려면 추가적으로 exfat-utils 패키지를 설치해 주어야 한다. 터미널창에서 아래와 같이 입력해서 패키지를 설치한다. # exfat-utils 패키지 설치 sudo apt-get install exfat-utils 이제 포맷을 해 보자. 포맷하고자 하는 usb 메모리가 /dev/sdc1이라면, 아래와 같이 하면 될 것이다. # /dev/sdc1을 exFAT으로 포맷 sudo mkfs.exfat /dev/sdc1 볼륨명(volum

xpstopdf - 리눅스에서 xps 파일을 pdf로 변환

반달가면|2017년 3월 16일

윈도우에서 문서를 인쇄할 때, 프린터를 "Microsoft XPS Document Writer"로 선택하면 xps 파일로 저장을 하게 된다. 리눅스에서 이 파일을 pdf 파일로 변환시킬 수 있는 도두가 xpstopdf다. 우선 설치를 먼저 해야 한다. 데비안/우분투 기준으로 xpstopdf는 libgxps-utils 패키지에 포함되어 있다. 터미널창에서 아래와 같이 입력해서 설치. sudo apt-get install libgxps-utils 실행은 간단히 아래와 같이 하면 된다. 변환하고자 하는 파일이 my_doc.xps라고 하고, 이 파일을 my_doc.pdf로 변환하는 경우다. # my_doc.xps를 my_doc.pdf로 변환 xpstopdf my_doc.xps my_doc.p

[bash: basename] 디렉토리는 제외하고 파일명만 추출하기

반달가면|2017년 3월 13일

특정 파일에 대해 작업을 할 때, 해당 파일의 디렉토리는 제외하고 파일명만 추출해야 할 필요가 있는 경우가 생기면 basename으로 간편하게 해결할 수 있다. 아래의 예시를 보자. # /home/john/Documents/my_doc.txt에서 파일명만 추출 basename "/home/john/Documents/my_doc.txt" my_doc.txt 만약 파일명 맨 뒤에 있는 확장자를 제거하고 싶다면 -s 옵션을 추가해 주자. # .txt 확장자 제거 basename -s ".txt" "/home/john/Documents/my_doc.txt" my_doc 여러개의 인자를 사용하고 싶다면 -a 옵션을 사용하면 된다. basename -a "/home/john/Docum

[bash: awk] awk에서 문자열을 분할하여 배열(array)에 저장하기 (split)

반달가면|2017년 3월 9일

awk에서 문자열 작업을 할 때, 한 행의 문자열을 분할해서 배열에 저장할 수 있다. 예를 들어 한 문장이 있을 때 단어별로 쪼개서 배열의 원소로 저장하는 경우다. awk에서 제공하는 split 함수를 이용하면 된다. split 함수의 형식은 아래와 같다. split(문자열, 배열 이름, 구분자) 예를 들어 입력 받은 행($0)을 콜론(:) 기준으로 분할해서 배열 arr에 저장하고자 한다면 아래와 같이 된다. split($0, arr, ":") 배열의 원소번호(index)는 1부터 시작한다. 위의 예시에서 첫번째 원소가 arr[1]에 있다. 아래의 예시를 보자. # 문자열을 콜론을 기준으로 분할, 배열 arr에 저장한 후 세번째 원소만 출력 echo "a:b:c:d:e" | aw