bash쉘 5

[리눅스 바이블] 16. 스크립트 제어

신호 처리 bash 쉘에게 전달되는 신호 다음은 널리 쓰이는 리눅스 신호이다. 신호 값 설명 1 SIGHUP 프로세스를 끊는다 2 SIGINT 프로세스를 중지시킨다 3 SIGQUIT 프로세스를 중단시킨다 9 SIGKILL 무조건 프로세스를 종료한다 15 SIGTERM 가능하면 프로세스를 종료한다 17 SIGSTOP 무조건 프로세스를 중단하지만 종료하지는 않는다 18 SIGSTP 프로세스를 중단 / 일시 중지하지만 종료하지는 않는다 19 SIGCONT 중단되었던 프로세스를 계속한다 신호 만들기 프로세스를 중지시키는 SIGINT 신호를 만들어내기 위해서는 Ctrl + C 키 조합을 누른다. 프로세스를 일시 중지시키는 SIGSTP 신호를 만들어내기 위해서는 Ctrl + Z 키 조합을 사용한다. ps를 통해 실..

[리눅스 바이블] 15. 데이터 보여주기

입력 및 출력 이해하기 리눅스 시스템은 모든 개체를 파일로 다루며 파일 디스크립터를 사용하여 각 파일 개체를 식별한다. 각 프로세스는 한 번에 최대 9개의 파일 디스크립터를 열 수 있다. 파일 디스크립터 0은 STDIN 파일 디스크립터 1은 STDOUT 파일 디스트립터 2는 STDERR STDIN 파일 디스크립터는 쉘의 표준 입력을 의미한다. 터미널 인터페이스에서 표준 입력은 키보드이다. STDOUT 파일 디스크립터는 쉘의 표준 출력을 뜻한다. 터미널 인터페이스에서 표준 출력은 모니터이다. STDERR 파일 디스크립터는 쉘의 표준 오류 출력을 의미한다. 기본적으로 STDOUT 파일 디스크립터와 같은 곳을 가리킨다. 오류만 리다이렉트하기 위해서는 2> 기호를 사용한다. 정상 출력을 리다이렉트하기 위해서는 ..

[리눅스 바이블] 13. 반복문 사용하기

for 명령 다음은 bash 쉘 for 문의 기본 형식이다. for var in list do commands done #!/bin/bash for test in A B C D E do echo "test: $test" done 다만 목록안에 홑따옴표(')가 있다면 bash 쉘은 이를 구분자로 인식한다. 따라서 \를 써서 이스케이프 처리를 해주거나, 곁따옴표로 둘러싸야 한다. 또는 우리가 원하는 데이터 값 사이에 빈칸이 있다면 이를 겹따옴표로 감싸야 한다. 직접적인 목록말고도 명령의 출력을 사용할 수도 있다. #!/bin/bash file="states" for state in $(cat $file) do echo "Visit beautiful $state" done 위처럼 명령의 출력을 읽을 때도 구분..

[리눅스 바이블] 12. 조건문 사용하기

if-then 구문 사용하기 구조적 명령의 가장 기본은 if-else 구문이다. 형식은 다음과 같다. if command then command1 command2 ... elif command then command3 command4 ... else command5 command6 ... fi 일반적인 프로그래밍 언어에서는 if문 다음에 오는 객체는 True/False 값을 평가하는 표현식이나, bash 쉘의 if문은 그 줄에 정의된 명령을 실행한다. 이 명령의 종료 상태가 0이라면 then 뒤에 명령이 실행되고, 0이 아니라면 실행되지 않는다. test 명령 사용하기 위의 방법은 bash의 if-then 구문이 명령의 종료 상태 코드말고도 다른 조건은 평가할 수 없다. 하지만 test 명령을 사용함으로..

[리눅스 바이블] 11. 스크립트 구축의 기초

여러 명령 사용하기 두 개의 명령을 함께 실행하고 싶다면 같은 프롬프트 라인에 세미콜론(;)으로 둘을 구분하여 입력한다. 스크립트 파일 만들기 쉘 스크립트 파일을 만들 때에는 파일의 첫 번째 줄에 사용하고 있는 쉘을 지정해야 한다. #!/bin/bash date whoami 보통의 쉘 스크립트 라인에서 #은 주석으로 사용되지만, 첫 번째 줄은 # 기호 다음에 느낌표를 쓰면 쉘에게 이 스크립트가 어떤 쉘에서 실행되는지를 알려준다. 스크립트 파일을 실행하기 위해서는 PATH 환경변수안에 있는 쉘 스크립트 파일이 있는 디렉토리를 추가하거나, 프롬프트에서 쉘 스크립트 파일의 절대/상대 경로를 명시해야 한다. 또한 쉘이 쉘 스크립트 파일을 실행하기 위해서는 실행권한을 줘야하는데, 주로 chmod 명령을 사용한다...