이 름
bash − GNU Bourne−Again SHell
개 요
bash [옵 션 ] [파 일 ]
저 작 권
Bash is Copyright (C) 1989, 1991 by the Free Software Foundation, Inc.
설 명
Bash 는 sh−호 환 의 명 령 언 어 해 석 기 로 서 표 준 입 력 또 는 파 일 로 부 터 읽 어 들 인 명 령 을 실 행 한 다 . Bash 는 또 한 콘 쉘 과 C 쉘 (ksh, csh)로 부 터 유 용 한 기 능 을 도 입 하 였 다 .
Bash 는 IEEE POSIX 쉘 과 도 구 명 세 (IEEE Working Group 1003.2)에 호 환 되 도 록 쉘 을 구 현 하 겠 다 는 목 표 를 가 지 고 있 다 .
옵 션
set 내 부 명 령 기 술 부 분 에 서 설 명 하 고 있 는 단 일 문 자 쉘 옵 션 외 에 도 bash는 실 행 될 때 다 음 플 래 그 (flag)도 해 석 한 다 (역 자 주 : 앞 으 로 option은 옵 션 , flag는 플 래 그 , parameter는 매 개 변 수 , 그 리 고 argument는 전 달 인 수 또 는 간 단 히 인 수 로 해 석 한 다 ):
−c 문 자 열 |
−c 플 래 그 가 있 으 면 , 문 자 열 로 부 터 명 령 을 읽 어 들 인 다 . 문 자 열 뒤 에 전 달 인 수 가 있 으 면 , 그 전 달 인 수 는 $0 부 터 시 작 하 여 위 치 매 개 변 수 로 지 정 된 다 . | ||
−i |
−i 플 래 그 가 있 으 면 , 쉘 은 대 화 형 (interactive)모 드 로 동 작 한 다 . | ||
−s |
−s 플 래 그 가 있 을 때 또 는 옵 션 처 리 후 에 남 은 인 수 가 없 을 때 에 는 표 준 입 력 으 로 부 터 명 령 을 읽 어 들 인 다 . 이 옵 션 을 사 용 하 여 대 화 형 쉘 을 실 행 시 킬 때 위 치 매 개 변 수 를 설 정 할 수 있 다 . | ||
− |
− 한 글 자 는 옵 션 이 끝 났 음 을 알 리 는 표 시 이 며 더 이 상 옵 션 처 리 를 하 지 않 도 록 지 시 한 다 . − 다 음 의 인 수 는 모 두 파 일 이 름 과 인 수 로 받 아 들 여 진 다 . 글 자 그 대 로 −라 는 인 수 를 표 현 하 려 면 −− 를 사 용 한 다 . |
Bash 는 또 한 여 러 글 자 옵 션 을 해 석 한 다 . 이 옵 션 을 인 식 시 키 려 면 명 령 행 에 서 단 일 글 자 옵 션 보 다 앞 에 적 어 야 한 다 .
−norc |
쉘 이 대 화 형 모 드 일 때 개 인 초 기 화 파 일 인 ~/.bashrc 실 행 하 지 않 도 록 한 다 . 쉘 을 실 행 할 때 sh 라 는 이 름 으 로 실 행 하 면 기 본 적 으 로 이 옵 션 이 켜 진 다 . |
−noprofile
시 스 템 전 역 시 동 파 일 /etc/profile 또 는 ~/.bash_profile, ~/.bash_login, ~/.profile 와 같 은 모 든 개 인 초 기 화 파 일 을 읽 지 않 도 록 한 다 . bash 가 로 그 인 쉘 로 실 행 될 때 에 는 기 본 적 으 로 이 모 든 파 일 을 읽 는 다 .( 뒤 에 나 오 는 INVOCATION 참 고 ).
−rcfile 파 일
쉘 이 대 화 형 모 드 일 때 ( INVOCATION 참 고 ) 표 준 적 인 개 인 초 기 화 파 일 인 ~/.bashrc 대 신 파 일 의 명 령 을 실 행 한 다 .
−version |
실 행 할 때 bash 의 버 전 번 호 를 보 여 준 다 . | ||
−quiet |
시 작 할 때 상 세 한 정 보 를 보 여 주 지 않 는 다 .(즉 쉘 버 전 과 기 타 정 보 를 표 시 하 지 않 는 다 .) 기 본 값 이 다 . | ||
−login |
bash 가 마 치 로 그 인 쉘 로 시 작 된 것 처 럼 행 동 하 게 한 다 . |
−nobraceexpansion
중 괄 호 확 장 을 하 지 않 는 다 . ( 뒤 에 나 오 는 중 괄 호 (Brace) 확 장 참 고 ).
−nolineediting
대 화 형 모 드 에 서 명 령 을 읽 을 때 GNU readline 라 이 브 러 리 를 사 용 하 지 않 는 다 .
−posix |
기 본 적 으 로 POSIX 1003.2 표 준 과 다 른 bash의 행 동 방 식 을 바 꾸 어 표 준 에 부 합 되 도 록 지 시 한 다 . |
인 수
옵 션 처 리 후 남 은 인 수 가 있 거 나 −c 또 는 −s 옵 션 이 없 는 경 우 에 는 , 첫 번 째 인 수 를 쉘 명 령 을 포 함 하 고 있 는 파 일 이 름 으 로 간 주 한 다 . bash 가 이 런 방 식 을 실 행 되 면 , is invoked in this fashion, $0 는 파 일 의 이 름 으 로 설 정 되 고 위 치 매 개 변 수 는 남 은 인 수 로 설 정 된 다 . Bash 는 이 파 일 의 명 령 을 실 행 하 고 종 료 한 다 . 스 크 립 트 에 서 실 행 된 마 지 막 명 령 의 종 료 상 태 가 Bash 의 종 료 상 태 로 된 다 .
정 의
공 백 (blank)
스 페 이 스 또 는 탭 .
단 어 (word)
쉘 에 의 해 하 나 의 단 위 로 간 주 되 는 연 속 된 문 자 들 . 토 큰 (token) 이 라 고 부 르 기 도 한 다 .
이 름 (name)
알 파 벳 , 숫 자 문 자 와 언 더 스 코 어 (_)로 만 이 루 어 져 있 고 알 파 벳 문 자 와 언 더 스 코 어 로 첫 문 자 를 시 작 하 는 단 어 를 말 한 다 . 식 별 자 (identifier) 라 고 부 르 기 도 한 다 .
메 타 문 자 (metacharacter)
쿼 우 트
(quote) 처 리 하 지 않
을 때 단 어 을 구
별 하 게 만 드 는
문 자 . 다 음 과 같
다 :
| & ; ( ) < > 스 페 이 스
탭
제 어 연 산 자 (control operator)
제 어 기
능 을 수 행 하 는
토 큰 이 다 . 다
음 기 호 에 해 당
한 다 :
|| & && ; ;; ( ) | <newline>
예 약 어 (RESERVED WORDS)
예 약 어 란 쉘 에 있 어 특 별 한 의 미 를 갖 는 단 어 를 말 한 다 . 다 음 단 어 는 쿼 우 트 하 지 않 으 면 예 약 어 로 인 식 하 거 나 또 는 간 단 한 명 령 의 첫 번 째 단 어 또 는 case 나 for 명 령 의 세 번 째 단 어 로 인 식 한 다 : ( 쉘 문 법 참 고 )
! case do done elif else esac fi for function if in select then until while { }
쉘 문 법 (SHELL GRAMMAR)
간
단 한 명 령
간 단 한 명 령 이
란 변 수 지 정 (선
택 적 , 역 자 주 : 원
어 로 optional이 며 있
어 도 되 고 없 어
도 된 다 는 의 미
로 사 용 한 다 .) 다
음 에 공 백 으 로
구 분 된 단 어 와
리 다 이 렉 션 이
뒤 따 르 고 제 어
문 자 로 끝 나 는
연 속 된 문 자 열
을 말 한 다 . 첫 번
째 단 어 는 실 행
할 명 령 이 된 다 .
나 머 지 단 어 는
실 행 명 령 에 인
수 로 전 달 된 다 .
간 단 한 명 령 의 반 환 값 은 종 료 상 태 이 거 나 시 그 널 n. 로 종 료 된 경 우 에 는 128+n이 된 다 .
파
이 프 라 인
파 이 프 라 인 이
란 | 문 자 로 구
분 된 한 개 이 상
의 명 령 이 연 속
되 어 나 오 는 것
을 말 한 다 . 파 이
프 라 인 의 형 식
은 다 음 과 같 다 :
[ ! ] 명 령 [ | 명 령 2 ... ]
명 령 의 표 준 출 력 은 명 령 2 의 표 준 입 력 으 로 연 결 된 다 . 파 이 프 라 인 연 결 은 명 령 에 서 명 시 한 리 다 이 렉 션 이 전 에 수 행 된 다 . ( 리 다 이 렉 션 참 고 ).
예 약 어 인 ! 가 파 이 프 라 인 앞 에 나 오 면 파 이 프 라 인 의 종 료 상 태 값 을 마 지 막 명 령 의 종 료 상 태 에 대 한 논 리 적 인 NOT으 로 설 정 한 다 . 그 렇 지 않 은 일 반 적 인 경 우 에 는 마 지 막 명 령 의 종 료 상 태 값 이 파 이 프 라 인 의 종 료 상 태 값 로 된 다 . 쉘 은 값 을 반 환 하 기 전 에 파 이 프 라 인 에 연 결 되 어 있 는 모 든 명 령 이 종 료 하 기 를 기 다 린 다 .
파 이 프 라 인 의 각 명 령 은 개 별 적 인 프 로 세 스 로 실 행 된 다 .(즉 , 각 자 의 서 브 쉘 안 에 서 실 행 된 다 .)
리
스 트 (Lists)
리 스 트 란 한 개
이 상 의 파 이 프
라 인 이 ;, &,
&&, ⎪⎪ 연 산
자 중 하 나 에 의
해 구 분 되 고 ;,
&, <개 행 문 자
> 중 하 나 로 끝
나 는 연 속 된 문
자 열 을 말 한 다 .
리 스 트 연 산 자 중 에 서 , && 와 ⎪⎪ 는 같 은 우 선 권 을 가 지 고 있 으 며 그 다 음 으 로 ; 와 & 가 같 은 우 선 권 을 가 지 고 있 다 .
명 령 이 제 어 연 산 자 인 & 로 끝 나 면 , 쉘 은 그 명 령 을 서 브 쉘 에 서 백 그 라 운 드 로 실 행 한 다 . 쉘 은 명 령 이 종 료 하 길 기 다 리 지 않 으 면 반 환 값 은 0 이 다 . ; 로 구 분 된 명 령 들 은 순 차 적 으 로 실 행 된 다 ; 쉘 은 차 례 대 로 각 명 령 이 종 료 하 기 를 기 다 린 다 . 반 환 상 태 값 은 마 지 막 으 로 실 행 한 명 령 의 종 료 상 태 값 을 따 른 다 .
제 어 연 산 자 && 와 ⎪⎪ 는 각 각 AND 리 스 트 와 OR 리 스 트 를 나 타 낸 다 . AND 리 스 트 는 다 음 과 같 은 형 태 를 가 진 다 .
명 령 && 명 령 2
명 령 2 는 명 령 이 0 이 라 는 종 료 상 태 값 을 반 환 할 때 에 만 실 행 된 다 .
OR 리 스 트 는 다 음 과 같 은 형 태 를 가 진 다 .
명 령 ⎪⎪ 명 령 2
명 령 2 는 명 령 의 종 료 상 태 값 이 0 이 아 닌 값 일 때 에 만 실 행 된 다 . AND와 OR 리 스 트 의 반 환 상 태 값 은 리 스 트 에 서 마 지 막 으 로 실 행 된 명 령 의 종 료 상 태 값 을 따 른 다 .
복
합 명 령
복 합 명 령 이 란
다 음 중 하 나 를
말 한 다 :
(리 스 트 )
리 스 트 가 서 브 셀 안 에 서 실 행 된 다 . 명 령 이 완 료 된 후 에 는 쉘 의 환 경 에 영 향 이 미 치 는 변 수 지 정 과 내 부 명 령 의 효 과 가 사 라 진 다 . 반 환 상 태 값 은 리 스 트 의 종 료 상 태 값 을 따 른 다 .
{ 리 스 트 ; }
리 스 트 는 그 냥 현 재 의 쉘 환 경 에 서 실 행 된 다 . known as a 그 룹 명 령 이 라 고 부 르 기 도 한 다 . 반 환 상 태 값 은 리 스 트 의 종 료 상 태 값 을 따 른 다 .
for 이 름 [ in 단 어 ; ] do 리 스 트 ; done
in 다 음 의 단 어 리 스 트 가 확 장 되 어 처 리 항 목 리 스 트 를 생 성 한 다 . 리 스 트 가 실 행 될 때 마 다 변 수 이 름 에 리 스 트 의 원 소 가 순 서 대 로 설 정 된 다 . in 단 어 가 생 략 되 면 for 명 령 은 설 정 된 각 위 치 매 개 변 수 에 대 하 여 리 스 트 를 한 번 씩 실 행 한 다 . ( PARAMETERS 참 고 ).
select 이 름 [ in 단 어 ; ] do 리 스 트 ; done
in 다 음 의 단 어 리 스 트 가 확 장 되 어 처 리 항 목 리 스 트 를 생 성 한 다 . 확 장 된 단 어 목 록 에 숫 자 를 붙 여 표 준 에 러 로 출 력 한 다 . in 단 어 가 생 략 되 면 위 치 매 개 변 수 를 출 력 한 다 . ( PARAMETERS 참 고 ). PS3 프 롬 프 트 가 표 시 되 고 표 준 입 력 으 로 부 터 한 줄 을 입 력 받 는 다 . 입 력 행 의 내 용 에 표 시 된 단 어 중 하 나 에 해 당 하 는 숫 자 가 포 함 되 어 있 으 면 이 름 은 그 단 어 로 설 정 된 다 . 빈 줄 일 때 에 는 단 어 리 스 트 와 프 롬 프 트 가 다 시 표 시 된 다 . EOF를 만 나 면 명 령 이 종 료 한 다 . 그 밖 의 다 른 값 이 입 력 되 면 이 름 이 널 (null)로 설 정 된 다 . 읽 어 들 인 행 은 변 수 REPLY 에 저 장 된 다 . break 또 는 return 명 령 을 만 나 기 전 까 지 각 각 의 선 택 에 대 하 여 리 스 트 가 실 행 된 다 . select 의 종 료 상 태 값 은 리 스 트 안 에 서 실 행 된 마 지 막 명 령 의 종 료 상 태 값 이 거 나 또 는 아 무 명 령 도 실 행 되 지 않 은 경 우 0 이 된 다 .
case 단 어 in [ 패 턴 [ | 패 턴 ] ... ) 리 스 트 ;; ] ... esac
case 명 령 은 우 선 단 어 를 확 장 한 다 음 , 경 로 명 확 장 에 서 와 똑 같 은 일 치 규 칙 을 사 용 하 여 차 례 대 로 패 턴 과 의 매 치 를 시 도 한 다 . ( Pathname Expansion 참 고 ). 일 치 하 는 것 이 발 견 되 면 해 당 하 는 리 스 트 가 실 행 된 다 . 첫 번 째 일 치 후 에 는 다 음 일 치 내 용 을 찾 지 않 는 다 . 아 무 패 턴 과 도 일 치 하 지 않 으 면 0 이 라 는 종 료 상 태 값 을 갖 는 다 . 일 치 하 는 것 이 있 을 때 에 는 리 스 트 에 서 실 행 된 마 지 막 명 령 의 종 료 상 태 값 을 따 른 다 .
if 리 스
트 then 리 스 트 [
elif 리 스 트 then
리 스 트 ] ... [ else
리 스 트 ]
fi
if 리 스 트 가 실 행 된 다 . 그 종 료 상 태 값 이 0 이 면 then 리 스 트 를 실 행 하 고 명 령 을 마 친 다 . 0 이 아 니 면 elif 리 스 트 가 있 는 경 우 이 부 분 을 실 행 한 다 . 종 료 상 태 값 은 마 지 막 실 행 명 령 의 종 료 상 태 값 이 되 거 나 테 스 트 한 조 건 이 하 나 도 참 이 아 닌 경 우 에 는 0 이 된 다 .
while 리
스 트 do 리 스
트 done
until 리 스 트 do
리 스 트 done
while 명 령 은 리 스 트 의 마 지 막 명 령 결 과 가 0 인 동 안 do 리 스 트 를 계 속 실 행 한 다 . until 명 령 은 while 명 령 과 같 으 나 테 스 트 결 과 를 반 대 로 처 리 한 다 . do 리 스 트 는 리 스 트 의 마 지 막 명 령 이 0 아 닌 종 료 상 태 값 을 가 지 는 동 안 실 행 된 다 . while과 until 명 령 의 종 료 상 태 값 은 마 지 막 do 리 스 트 명 령 의 상 태 종 료 값 을 따 른 다 . 또 는 아 무 것 도 실 행 되 지 않 은 경 우 0 이 된 다 .
[ function ] 이 름 () { 리 스 트 ; }
이 름 의 함 수 를 정 의 한 다 . 함 수 의 몸 체 부 분 은 { 와 } 사 이 에 있 는 명 령 리 스 트 이 다 . 간 단 한 명 령 의 이 름 으 로 이 름 이 나 올 때 마 다 이 리 스 트 가 실 행 된 다 . 함 수 의 종 료 상 태 값 은 몸 체 안 에 서 실 행 된 마 지 막 명 령 의 종 료 상 태 값 을 따 른 다 . ( FUNCTIONS 참 고 .)
주 석 (COMMENTS)
비 −대 화 형 쉘 또 는 set 내 부 기 능 을 작 동 하 도 록 하 기 위 해 -o interactive−comments 옵 션 을 주 어 실 행 한 대 화 형 쉘 안 에 서 , # 로 시 작 하 는 단 어 와 그 행 의 모 든 단 어 는 무 시 한 다 . -o interactive−comments 옵 션 없 이 대 화 형 쉘 을 시 작 하 면 주 석 을 사 용 할 수 없 다 .
쿼 우 팅 (QUOTING)
쿼 우 팅 은 쉘 에 있 어 특 별 한 의 미 를 갖 는 문 자 나 단 어 의 그 의 미 를 제 거 할 때 사 용 한 다 . 또 한 특 수 문 자 에 대 한 특 별 한 처 리 를 하 지 못 하 게 하 고 예 약 된 단 어 의 예 약 적 의 미 를 없 애 고 매 개 변 수 확 장 을 하 지 못 하 도 록 할 때 에 도 쿼 우 팅 을 사 용 한 다 . (역 자 주 : Quote에 대 하 여 여 러 가 지 한 글 번 역 이 가 능 하 겠 으 나 유 닉 스 쉘 에 서 의 특 별 한 의 미 를 전 달 할 수 없 다 고 판 단 하 여 그 냥 발 음 나 는 대 로 쿼 우 트 라 고 번 역 하 였 다 .)
DEFINITIONS 섹 션 에 나 열 한 메 타 문 자 각 각 은 쉘 에 서 특 별 한 의 미 를 갖 고 있 기 때 문 에 글 자 그 대 로 를 표 현 하 려 면 쿼 우 트 해 야 한 다 . 3 가 지 쿼 우 트 메 커 니 즘 이 있 다 : 이 스 케 이 프 (escape) 문 자 , 싱 글 쿼 우 트 , 더 블 쿼 우 트 가 있 다 .
쿼 우 트 하 지 않 은 백 슬 래 쉬 (\)가 이 스 케 이 프 문 자 이 다 . <개 행 문 자 >를 제 외 하 고 이 스 케 이 프 문 자 는 그 다 음 에 뒤 따 라 오 는 문 자 의 글 자 그 대 로 의 의 미 를 보 존 한 다 . \<개 행 문 자 >가 나 오 고 백 슬 래 쉬 를 쿼 우 트 하 지 않 았 을 때 에 는 \<개 행 문 자 >를 행 계 속 (역 자 주 : 긴 명 령 을 한 줄 에 적 을 수 없 을 때 행 끝 에 서 \<개 행 문 자 >를 입 력 하 면 다 음 줄 에 계 속 해 서 입 력 할 수 있 다 ) 을 뜻 한 다 .(즉 , 그 자 체 는 쉘 에 의 해 무 시 된 다 .)
싱 글 쿼 우 트 의 묶 는 문 자 는 묶 인 문 자 의 보 이 는 그 대 로 의 값 을 보 존 한 다 . 백 슬 래 쉬 를 앞 에 적 는 다 해 도 싱 글 쿼 우 트 안 에 싱 글 쿼 우 트 가 다 시 들 어 갈 수 는 없 다 .
더 블 쿼 우 트 의 묶 는 문 자 는 몇 가 지 예 외 를 제 외 하 고 쿼 우 트 안 에 들 어 있 는 모 든 문 자 의 보 이 는 그 대 로 의 의 미 를 보 존 한 다 . $, ’, 와 \ 는 예 외 의 경 우 이 다 . $ 와 ’ 문 자 는 더 블 쿼 우 트 안 에 서 도 특 별 한 의 미 를 유 지 한 다 . 백 슬 래 쉬 는 그 뒤 에 다 음 문 자 가 뒤 따 라 나 올 때 에 만 특 별 한 의 미 를 갖 는 다 : $, ’, ", \, 또 는 <개 행 문 자 >. 더 블 쿼 우 트 안 의 더 블 쿼 우 트 는 백 슬 래 쉬 를 사 용 하 여 포 함 시 킬 수 있 다 .
특 별 한 매 개 변 수 인 * 와 @ 는 더 블 쿼 우 트 안 에 서 특 별 한 의 미 를 지 닌 다 . ( PARAMETERS 참 고 ).
매 개 변 수 (PARAMETERS)
매 개 변 수 란 값 을 저 장 하 는 개 체 로 서 기 존 의 프 로 그 램 언 어 에 서 의 변 수 와 어 느 정 도 비 슷 하 다 . 이 름 , 숫 자 , 또 는 특 별 한 매 개 변 수 (Special Parameters) 섹 션 에 서 나 열 한 특 수 문 자 중 하 나 가 될 수 있 다 . 쉘 에 있 어 변 수 란 이 름 으 로 가 리 키 는 매 개 변 수 이 다 .
값 을 지 정 하 면 매 개 변 수 가 설 정 된 다 . 널 문 자 열 도 유 효 한 값 으 로 간 주 한 다 . 일 단 변 수 가 설 정 되 면 unset 내 부 명 령 을 통 해 서 만 설 정 해 제 할 수 있 다 . ( 쉘 내 부 명 령 (SHELL BUILTIN COMMANDS) 참 고 ).
A 변 수 는 다 음 과 같 은 문 장 을 통 해 지 정 할 수 있 다 .
이 름 =[값 ]
If 값 을 지 정 하 지 않 으 면 변 수 는 널 문 자 열 을 값 으 로 갖 게 된 다 . 모 든 변 수 는 틸 드 확 장 , 매 개 변 수 와 변 수 확 장 , 명 령 치 환 , 연 산 에 의 한 확 장 , 쿼 우 트 제 거 등 의 과 정 을 거 친 다 음 , 그 결 과 를 저 장 한 다 . 변 수 의 −i 속 성 이 설 정 되 어 있 는 상 태 라 면 ( 쉘 내 부 명 령 섹 션 의 declare 참 고 ) 값 은 $[...] 문 법 이 아 니 더 라 도 연 산 에 의 한 확 장 을 거 친 다 . 특 별 한 매 개 변 수 섹 션 에 서 설 명 할 "$@"를 제 외 하 고 단 어 분 리 는 하 지 않 는 다 . 경 로 명 확 장 은 이 루 어 지 지 않 는 다 .
위
치 매 개 변 수
위 치 매 개 변 수
란 0 하 나 만 적 는
것 을 제 외 하 고
숫 자 로 지 시 하
는 매 개 변 수 를
말 한 다 . 위 치 매
개 변 수 는 쉘 이
실 행 될 때 인 수
로 부 터 지 정 되
거 나 또 는 set 내
부 명 령 을 사 용
하 여 재 지 정 할
수 있 다 . 위 치 매
개 변 수 는 변 수
지 정 문 장 을 사
용 하 여 지 정 할
수 없 다 . 위 치 매
개 변 수 는 쉘 함
수 가 실 행 될 때
일 시 적 으 로 치
환 된 다 . ( 함 수
(FUNCTIONS) 참 고 ).
1 개 이 상 의 숫 자 로 구 성 된 위 치 매 개 변 수 를 확 장 할 때 에 는 중 괄 호 로 묶 어 주 어 야 한 다 . ( 확 장 (EXPANSION) 참 고 ).
특
별 한 매 개 변 수
쉘 은 몇 가 지 매
개 변 수 를 특 별
하 게 처 리 한 다 .
이 러 한 매 개 변
수 는 참 조 만 가
능 할 뿐 값 을 지
정 할 수 는 없 다 .
* |
1 부 터 시 작 하 여 위 치 매 개 변 수 로 확 장 한 다 . 더 블 쿼 우 트 에 서 확 장 이 이 루 어 지 면 각 매 개 변 수 값 을 한 단 어 로 확 장 한 다 . 각 단 어 는 IFS 특 별 변 수 의 첫 번 째 문 자 로 구 분 한 다 . 다 시 말 해 , ’’$*’’ 는 ’’$1c$2c...’’ 와 같 다 . 여 기 서 c 는 IFS 변 수 의 첫 번 째 문 자 이 다 . IFS 가 널 이 거 나 해 제 되 어 있 으 며 매 개 변 수 는 스 페 이 스 로 구 분 한 다 . | ||
@ |
1 부 터 시 작 하 여 위 치 매 개 변 수 로 확 장 한 다 . 더 블 쿼 우 트 안 에 서 확 장 이 이 루 어 질 때 에 는 각 매 개 변 수 가 개 별 적 인 단 어 로 확 장 한 다 . 즉 ’’ $@’’ 는 ’’$1’’ ’’$2’’ ... 와 같 다 . 위 치 매 개 변 수 가 없 을 때 에 는 ’’$@’’ 와 $@ 은 아 무 것 으 로 도 확 장 되 지 않 는 다 .(즉 , 없 었 던 것 처 럼 제 거 된 다 .) | ||
# |
십 진 수 로 위 치 매 개 변 수 의 갯 수 로 확 장 한 다 . | ||
? |
최 근 에 실 행 된 포 그 라 운 드 파 이 프 라 인 의 상 태 값 으 로 확 장 한 다 . | ||
− |
실 행 하 자 마 자 set 내 부 명 령 을 통 해 또 는 쉘 자 체 에 의 해 (예 를 들 어 −i 플 래 그 ) 설 정 된 현 재 옵 션 플 래 그 로 확 장 한 다 . | ||
$ |
쉘 의 프 로 세 스 ID로 확 장 한 다 . () 서 브 쉘 에 서 는 서 브 쉘 이 아 닌 현 재 쉘 의 프 로 세 스 ID로 확 장 한 다 . | ||
! |
최 근 에 실 행 한 백 그 라 운 드 (비 동 기 ) 명 령 의 프 로 세 스 ID로 확 장 한 다 . | ||
0 |
쉘 또 는 쉘 스 크 립 트 의 이 름 으 로 확 장 한 다 . 쉘 초 기 화 과 정 중 에 설 정 된 다 . bash 이 명 령 을 포 함 하 는 파 일 이 름 으 로 실 행 되 었 다 면 , $0 는 그 파 일 의 이 름 으 로 설 정 된 다 . bash 가 −c 옵 션 을 가 지 고 실 행 되 었 다 면 $0 는 실 행 될 문 자 열 (있 는 경 우 ) 뒤 첫 번 째 인 수 로 설 정 된 다 . 그 렇 ㅈ 않 은 경 우 bash 를 실 행 할 때 0 번 인 수 로 주 어 진 경 로 명 으 로 설 정 된 다 . | ||
_ |
지 난 번 명 령 의 마 지 막 인 수 (확 장 되 고 난 형 태 )로 확 장 된 다 . 실 행 된 각 명 령 의 완 전 한 경 로 명 으 로 도 설 정 되 며 그 명 령 에 게 export한 환 경 에 위 치 한 다 . (역 자 주 : 쉘 의 용 어 에 서 export의 마 땅 한 한 글 번 역 을 찾 지 못 한 상 태 이 다 ) |
쉘
변 수
다 음 변 수 는 쉘
에 의 해 설 정 된
다 :
PPID |
쉘 의 부 모 프 로 세 스 ID. | ||
PWD |
cd 명 령 으 로 설 정 된 현 재 작 업 디 렉 토 리 . | ||
OLDPWD |
cd 명 령 에 의 해 설 정 되 며 바 로 이 전 작 업 디 렉 토 리 . | ||
REPLY |
인 수 가 제 공 되 지 않 은 경 우 read 내 부 명 령 으 로 읽 어 들 인 입 력 행 으 로 설 정 | ||
UID |
현 재 사 용 자 의 사 용 자 ID로 확 장 . 쉘 시 동 시 초 기 화 됨 . | ||
EUID |
현 재 사 용 자 의 유 효 사 용 자 ID로 확 장 . 쉘 시 동 시 초 기 화 됨 . | ||
BASH |
현 재 실 행 중 인 bash 를 실 행 할 때 사 용 한 완 전 한 경 로 명 으 로 확 장 . |
BASH_VERSION
현 재 실 행 중 인 bash 인 스 턴 스 (instance)의 버 전 번 호 로 확 장 .
SHLVL |
bash 인 스 턴 스 를 실 행 할 때 마 다 1 씩 증 가 하 는 변 수 | ||
RANDOM |
이 매 개 변 수 를 참 조 할 때 마 다 무 작 위 정 수 가 발 생 된 다 . 무 작 위 정 수 의 순 서 는 RANDOM 에 값 을 지 정 하 면 초 기 화 된 다 . If RANDOM 를 unset하 면 특 별 한 속 성 을 잃 게 된 다 . 그 뒤 에 다 시 설 정 해 도 잃 은 속 성 은 돌 아 오 지 않 는 다 . |
SECONDS
이 매 개 변 수 를 참 조 할 때 마 다 쉘 이 시 작 한 시 점 부 터 경 과 된 시 간 을 반 환 한 다 . SECONDS 에 값 을 지 정 하 면 , 그 다 음 부 터 는 지 정 한 시 점 으 로 부 터 경 과 한 시 간 더 하 기 지 정 한 값 이 반 환 된 다 . SECONDS 를 unset 하 면 특 별 한 속 성 을 잃 게 된 다 . 그 뒤 에 다 시 설 정 해 도 잃 은 속 성 은 돌 아 오 지 않 는 다 .
LINENO |
참 조 할 때 마 다 쉘 은 이 변 수 를 스 크 립 트 또 는 함 수 내 에 서 의 지 금 현 재 시 점 에 서 의 순 차 적 인 행 번 호 (1부 터 시 작 )을 십 진 수 로 치 환 해 준 다 . 스 크 립 트 나 함 수 안 이 아 닌 경 우 , 이 값 은 의 미 가 없 다 . 함 수 안 에 서 의 값 은 명 령 이 소 스 에 서 위 치 하 는 행 번 호 가 아 니 며 (이 정 보 는 함 수 가 실 행 될 때 사 라 진 다 .) 현 재 함 수 내 에 서 실 행 된 간 단 한 명 령 의 갯 수 에 대 한 근 사 값 이 라 고 생 각 하 면 된 다 . If LINENO 를 unset 하 면 특 별 한 속 성 을 잃 게 된 다 . 그 뒤 에 다 시 설 정 해 도 잃 은 속 성 은 돌 아 오 지 않 는 다 . |
HISTCMD
현 재 명 령 의 히 스 토 리 번 호 또 는 히 스 토 리 리 스 트 에 서 의 인 덱 스 . HISTCMD 를 unset 하 면 특 별 한 속 성 을 잃 게 된 다 . 그 뒤 에 다 시 설 정 해 도 잃 은 속 성 은 돌 아 오 지 않 는 다 .
OPTARG |
getopts 내 부 명 령 에 의 해 처 리 된 마 지 막 옵 션 인 수 의 값 ( 쉘 내 부 명 령 참 고 ). | ||
OPTIND |
getopts 내 부 명 령 에 의 해 처 리 된 다 음 인 수 의 인 덱 스 ( 쉘 내 부 명 령 참 고 ). |
HOSTTYPE
자 동 으 로 bash 가 실 행 중 인 머 신 의 타 입 을 기 술 하 는 고 유 한 문 자 열 로 지 정 됨 . 기 본 값 은 시 스 템 에 따 라 다 르 다 .
OSTYPE |
자 동 으 로 bash 가 실 행 중 인 운 영 체 제 의 타 입 을 기 술 하 는 고 유 한 문 자 열 로 지 정 됨 . 기 본 값 은 시 스 템 에 따 라 다 르 다 . |
다 음 변 수 는 쉘 에 서 사 용 한 다 . 몇 몇 경 우 bash 는 변 수 에 기 본 값 을 지 정 한 다 ; 이 런 경 우 에 대 해 서 는 언 급 한 다 .
IFS |
내 부 필 드 구 분 자 (Internal Field Separator) 는 확 장 후 에 단 어 를 분 리 하 고 read 내 부 명 령 으 로 읽 은 행 을 분 리 할 때 사 용 된 다 . that is used 기 본 값 은 ’’<스 페 이 스 ><탭 ><개 행 문 자 >’’이 다 . | ||
PATH |
명 령 을 찾 을 검 색 경 로 이 다 . 쉘 이 명 령 을 찾 아 볼 디 렉 토 리 목 록 을 콜 론 으 로 구 분 하 여 지 정 한 다 . ( 명 령 실 행 (COMMAND EXECUTION) 참 고 ). 기 본 값 은 시 스 템 에 따 라 다 르 며 관 리 bash 를 설 치 하 는 관 리 자 가 설 정 할 수 있 다 . 일 반 적 으 로 ’’/usr/gnu/bin:/usr/local/bin: /usr/ucb:/bin:/usr/bin:’’ 라 는 값 을 갖 는 다 . | ||
HOME |
현 재 사 용 자 의 홈 디 렉 토 리 ; cd 내 부 명 령 의 기 본 인 수 이 다 . | ||
CDPATH |
cd 명 령 에 서 사 용 하 는 검 색 경 로 . cd 명 령 에 서 사 용 한 목 적 지 디 렉 토 리 를 찾 아 볼 디 렉 토 리 를 콜 론 으 로 구 분 하 여 적 는 다 . 예 를 들 어 ’’.:~:/usr’’와 같 은 값 으 로 설 정 한 다 . | ||
ENV |
bash가 쉘 스 크 립 트 를 실 행 할 때 매 개 변 수 가 설 정 되 어 있 으 면 , 그 값 은 .bashrc 와 같 이 쉘 을 초 기 화 하 는 명 령 을 담 고 있 는 파 일 의 이 름 으 로 해 석 한 다 . The value of ENV 의 값 은 경 로 명 으 로 해 석 되 기 전 에 매 개 변 수 확 장 , 명 령 치 환 , 연 산 확 장 을 거 쳐 설 정 된 다 . 결 과 로 나 오 는 경 로 명 검 색 에 서 PATH 는 사 용 하 지 않 는 다 . | ||
|
이 매 개 변 수 가 파 일 이 름 으 로 설 정 되 어 있 고 MAILPATH 변 수 는 설 정 되 어 있 지 않 으 면 , bash 는 그 파 일 을 보 고 메 일 의 도 착 여 부 를 사 용 자 에 게 알 려 준 다 . |
MAILCHECK
얼 마 나 자 주 (초 단 위 로 ) bash 가 메 일 을 점 검 할 것 인 지 결 정 한 다 . 기 본 값 은 60 초 이 다 . 메 일 을 점 검 할 때 가 되 면 프 롬 프 트 를 보 여 주 기 전 에 실 행 한 다 . 변 수 를 unset하 면 메 일 점 검 을 하 지 않 는 다 .
MAILPATH
메 일 이
왔 는 지 점 검 하
기 위 해 사 용 하
는 경 로 명 을 콜
론 으 로 구 분 하
여 설 정 한 다 . 출
력 할 메 시 지 는
경 로 명 다 음 에
’?’를 적 고 그 다
음 에 적 어 설 정
할 수 있 다 . $_ 는 현
재 사 용 하 고 있
는 메 일 파 일 의
이 름 을 표 시 한
다 . 예 :
MAILPATH=’/usr/spool/mail/bfox?"You have
mail":~/shell-mail?"$_ has mail!"’
Bash 가 이 변 수 에
대 한 기 본 값 을
제 공 하 지 만 사
용 자 메 일 파 일
의 위 치 는 시 스
템 에 따 라 다 르
다 . (예 를 들 어 ,
/usr/spool/mail/$USER).
MAIL_WARNING
이 변 수 가 설 정 되 어 있 고 bash가 메 일 을 점 검 할 때 사 용 하 는 파 일 을 지 난 번 점 검 시 간 이 후 , 접 근 한 적 이 있 다 면 , ’’The mail in 메 일 파 일 has been read’’라 는 메 시 지 가 출 력 된 다 .
PS1 |
이 매 개 변 수 의 값 을 확 장 하 여 ( PROMPTING 참 고 ) 주 프 롬 프 트 문 자 열 로 사 용 한 다 . 기 본 값 은 ’’bash\$ ’’이 다 . | ||
PS2 |
이 매 개 변 수 의 값 을 확 장 하 여 2차 프 롬 프 트 문 자 열 로 사 용 한 다 . 기 본 값 은 ’’> ’’이 다 . | ||
PS3 |
매 개 변 수 값 을 확 장 하 여 select 명 령 의 프 롬 프 트 로 사 용 한 다 . (앞 서 나 온 쉘 문 법 참 고 ). | ||
PS4 |
매 개 변 수 값 을 확 장 하 여 실 행 추 적 중 bash 가 각 명 령 을 표 시 하 기 전 에 그 값 을 사 용 한 다 . PS4 의 첫 번 째 문 자 는 여 러 레 벨 을 표 시 하 기 위 해 필 요 한 만 큼 반 복 하 여 표 시 한 다 . 기 본 값 은 ’’+ ’’. |
HISTSIZE
명 령 히 스 토 리 에 서 기 억 해 둘 명 령 의 갯 수 ( 히 스 토 리 (HISTORY) 참 고 ) 기 본 값 은 500.
HISTFILE
명 령 히 스 토 리 를 저 장 할 파 일 이 름 . ( HISTORY 참 고 .) 기 본 값 은 ~/.bash_history. unset 하 면 대 화 형 쉘 이 종 료 할 때 명 령 히 스 토 리 를 저 장 하 지 않 는 다 .
HISTFILESIZE
히 스 토 리 파 일 의 최 대 행 갯 수 . 값 을 지 정 하 면 필 요 한 경 우 그 값 에 맞 게 파 일 을 잘 라 쓴 다 (truncate). 기 본 값 은 500.
OPTERR |
1로 설 정 하 면 bash 는 getopts 내 부 명 령 에 서 발 생 한 에 러 메 시 지 를 표 시 한 다 . ( 쉘 내 부 명 령 참 고 ). 쉘 이 실 행 되 거 나 쉘 스 크 립 트 가 실 행 될 때 OPTERR 는 1로 초 기 화 된 다 . |
PROMPT_COMMAND
설 정 하 면 주 프 롬 프 트 를 출 력 하 기 전 에 지 정 한 명 령 을 실 행 한 다 .
IGNOREEOF
입 력 행 에 EOF 문 자 만 입 력 되 었 을 때 쉘 이 어 떤 행 동 을 보 일 것 인 지 제 어 한 다 . 설 정 하 면 값 으 로 지 정 한 횟 수 만 큼 입 력 행 의 처 음 에 EOF 문 자 가 연 속 적 으 로 입 력 될 때 bash 가 종 료 한 다 . 변 수 는 존 재 하 지 만 숫 자 값 이 아 니 거 나 아 무 런 값 도 갖 지 않 을 때 에 는 기 본 값 10 을 사 용 한 다 . 존 재 하 지 않 으 면 EOF 은 쉘 에 게 입 력 의 끝 을 의 미 한 다 . 대 화 형 쉘 에 서 만 효 과 를 지 닌 다 .
TMOUT |
0 보 다 큰 값 으 로 설 정 하 면 주 프 롬 프 트 가 표 시 된 후 설 정 한 값 만 큼 의 초 를 기 다 린 다 . 그 동 안 아 무 런 입 력 도 없 으 면 Bash 이 종 료 한 다 . | ||
FCEDIT |
fc 내 부 명 령 의 기 본 편 집 기 . |
FIGNORE
파 일 명 완 성 을 수 행 할 때 무 시 할 꼬 리 말 의 목 록 을 콜 론 으 로 구 분 하 여 나 열 한 다 . ( READLINE 참 고 ) FIGNORE 에 설 정 되 어 있 는 꼬 리 말 을 가 진 파 일 명 은 일 치 하 는 파 일 명 목 록 으 로 부 터 제 외 된 다 . 예 를 들 어 ’’.o:~’’와 같 은 값 을 사 용 할 수 있 다 .
INPUTRC
기 본 값 인 ~/.inputrc 대 신 readline 시 동 파 일 로 사 용 할 파 일 명 . ( READLINE 참 고 ).
notify |
설 정 하 면 , If set, bash 는 종 료 된 백 그 라 운 드 작 업 에 대 한 보 고 를 그 다 음 주 프 롬 프 트 표 시 전 까 지 기 다 리 지 않 고 즉 시 한 다 . ( set 내 부 명 령 의 −b 옵 션 참 고 ) |
history_control
HISTCONTROL
ignorespace 라 는 값 으 로 설 정 하 면 스 페 이 스 문 자 로 시 작 하 는 행 은 히 스 토 리 목 록 에 넣 지 않 는 다 . ignoredups 로 설 정 하 면 마 지 막 히 스 토 리 행 과 일 치 하 는 행 은 히 스 토 리 목 록 에 넣 지 않 는 다 . ignoreboth 는 두 옵 션 을 합 한 것 과 같 다 . unset하 거 나 위 에 서 말 한 값 이 아 닌 값 으 로 설 정 하 면 파 서 (parser)에 서 읽 어 들 인 모 든 행 을 히 스 토 리 목 록 에 저 장 한 다 .
command_oriented_history
설 정 하 면 , bash 는 여 러 행 으 로 이 루 어 진 명 령 의 모 든 행 을 똑 같 은 히 스 토 리 항 목 으 로 저 장 한 다 . 이 렇 게 하 면 여 러 행 으 로 이 루 어 진 명 령 을 다 시 편 집 할 때 편 하 다 .
glob_dot_filenames
설 정 하 면 , bash 경 로 명 확 장 의 결 과 에 서 ’.’로 시 작 하 는 파 일 명 도 포 함 시 킨 다 .
allow_null_glob_expansion
설 정 하 면 , bash 일 치 하 는 파 일 이 없 는 경 로 명 패 턴 을 그 대 로 놔 두 지 않 고 널 문 자 열 로 확 장 해 준 다 . ( 경 로 명 확 장 참 고 )
histchars
히 스 토 리 확 장 과 토 큰 화 를 제 어 하 는 둘 또 는 세 개 의 문 자 . ( 히 스 토 리 확 장 참 고 ) 첫 번 째 문 자 는 히 스 토 리 확 장 문 자 (history expansion character) 로 서 , 즉 히 스 토 리 확 장 의 시 작 을 알 리 는 문 자 이 며 보 통 ’! 이 다 . 두 번 째 문 자 는 빠 른 치 환 (quick substitution) 문 자 로 서 입 력 했 던 이 전 명 령 을 다 시 실 행 하 고 한 문 자 열 을 명 령 의 다 른 문 자 열 로 치 환 하 는 데 사 용 하 는 단 축 문 자 이 다 . 기 본 값 은 ’^’ 이 다 . 선 택 적 인 세 번 째 문 자 는 단 어 의 첫 문 자 로 사 용 할 때 행 의 나 머 지 부 분 은 주 석 임 을 알 리 는 데 사 용 하 는 문 자 로 서 , 보 통 ’#’를 사 용 한 다 . 히 스 토 리 주 석 문 자 를 사 용 하 면 히 스 토 리 치 환 를 할 때 행 의 나 머 지 부 분 에 대 하 여 치 환 를 하 지 않 고 건 너 뛰 도 록 한 다 . 이 기 능 을 사 용 하 기 위 해 꼭 쉘 파 서 (parser)로 하 여 금 행 의 나 머 지 부 분 을 주 석 으 로 처 리 하 도 록 해 둘 필 요 는 없 다 .
nolinks
설 정 하 면 , 현 재 작 업 디 렉 토 리 를 변 경 하 는 명 령 을 실 행 할 때 쉘 이 심 볼 릭 링 크 는 따 라 가 지 않 도 록 한 다 . 대 신 물 리 적 인 디 렉 토 리 구 조 를 사 용 하 도 록 한 다 . 기 본 적 으 로 bash 는 cd 와 같 은 현 재 디 렉 토 리 변 경 명 령 을 실 행 할 때 논 리 적 인 디 렉 토 리 사 실 을 따 른 다 . set 내 부 명 령 의 −P 옵 션 에 대 한 설 명 을 참 고 하 라 . ( 쉘 내 부 명 령 참 고 )
hostname_completion_file
HOSTFILE
/etc/hosts 과 같 은 형 식 의 파 일 로 서 쉘 이 호 스 트 이 름 을 완 성 할 때 사 용 한 다 . 파 일 이 름 은 그 때 그 때 변 경 할 수 있 다 ; 다 음 번 에 호 스 트 이 름 완 성 을 시 도 할 때 bash 는 새 로 운 파 일 의 내 용 을 기 존 데 이 터 베 이 스 에 추 가 한 다 .
noclobber
설 정 하 면 , bash 는 >, >&, <> 와 같 은 리 다 이 렉 션 연 산 자 로 기 존 의 파 일 을 덮 어 쓰 지 않 는 다 . > 대 신 >| 리 다 이 렉 션 연 산 자 를 사 용 하 여 출 력 파 일 을 만 들 때 에 는 이 변 수 값 에 상 관 없 이 덮 어 쓴 다 . ( set 내 부 명 령 의 −C 옵 션 에 대 해 서 도 알 아 보 라 .)
auto_resume
쉘 이 사 용 자 와 작 업 제 어 에 대 한 상 화 대 화 를 어 떻 게 할 것 인 지 제 어 한 다 . 변 수 를 설 정 하 면 , 리 다 이 렉 션 을 사 용 하 지 않 은 단 일 단 어 의 간 단 한 명 령 을 기 존 의 중 단 된 작 업 재 개 를 위 한 후 보 로 간 주 한 다 . 모 호 한 것 은 허 용 되 지 않 는 다 ; 입 력 한 문 자 열 로 시 작 하 는 작 업 이 여 러 개 일 때 에 는 최 근 에 접 근 한 적 있 는 작 업 이 선 택 된 다 . 여 기 서 중 단 된 작 업 의 이 름 이 란 작 업 을 시 작 했 을 때 사 용 한 명 령 행 을 말 한 다 . exact 라 는 값 으 로 설 정 하 면 , 입 력 한 문 자 열 이 중 단 된 작 업 의 이 름 과 정 확 하 게 일 치 해 야 한 다 ; substring 이 라 는 값 으 로 설 정 하 면 , 입 력 한 문 자 열 이 중 단 된 작 업 이 름 의 일 부 와 일 치 해 도 된 다 ; substring 값 은 %? job id 와 유 사 한 기 능 을 제 공 한 다 . ( 작 업 제 어 (JOB CONTROL) 참 고 ) 다 른 값 으 로 설 정 하 면 입 력 한 문 자 열 은 중 단 된 작 업 이 름 의 머 리 말 이 어 야 한 다 ; % job id 와 유 사 한 기 능 을 제 공 한 다 .
no_exit_on_failed_exec
이 변 수 를 설 정 하 면 , exec 내 부 명 령 에 서 주 어 진 파 일 을 실 행 할 수 없 을 때 에 도 비 대 화 형 쉘 이 종 료 하 지 않 는 다 . exec 에 실 패 할 때 대 화 형 쉘 은 종 료 하 지 않 는 다 .
cdable_vars
이 변 수 를 설 정 하 면 cd 내 부 명 령 의 인 수 가 디 렉 토 리 가 아 닐 때 는 , 이 동 하 고 자 하 는 디 렉 토 리 를 값 으 로 갖 고 있 는 변 수 이 름 으 로 간 주 한 다 .
확 장 (EXPANSION)
확 장 은 명 령 행 을 단 어 로 분 리 한 후 실 행 된 다 . 다 음 과 같 은 몇 가 지 확 장 이 수 행 된 다 : 중 괄 호 확 장 (brace expansion), 틸 드 확 장 (tilde expansion), 매 개 변 수 와 변 수 확 장 , 명 령 치 환 , 연 산 확 장 , 단 어 분 리 , 경 로 명 확 장 .
확 장 의 순 서 는 중 괄 호 확 장 , 틸 드 확 장 , 매 개 변 수 , 변 수 , 명 령 그 리 고 연 산 치 환 (왼 쪽 에 서 오 른 쪽 방 향 으 로 ), 단 어 분 리 , 경 로 명 확 장 순 이 다 .
이 기 능 을 지 원 하 는 시 스 템 에 서 는 프 로 세 스 치 환 (process substitution)와 같 은 추 가 확 장 기 능 이 있 다 .
중 괄 호 확 장 , 단 어 분 리 , 경 로 명 확 장 만 이 확 장 시 에 단 어 의 갯 수 를 변 화 시 킬 수 있 다 ; 다 른 확 장 은 한 단 어 를 한 단 어 로 확 장 한 다 . 유 일 한 예 외 로 는 앞 서 설 명 한 바 있 는 ’’$@’’ 확 장 을 들 수 있 다 . ( 매 개 변 수 참 고 ).
중
괄 호 확 장 (Brace Expansion)
중 괄 호 확 장 은
임 의 의 문 자 열
을 생 성 시 킬 수
있 는 메 커 니 즘
이 다 . 이 메 커 니
즘 은 경 로 명 확
장 과 유 사 하 지
만 파 일 이 름 이
존 재 하 지 않 아
도 된 다 는 점 에
서 다 르 다 . 중 괄
호 확 장 할 패 턴
은 다 음 과 같 은
형 태 를 띤 다 . 선
택 적 인 preamble 다 음
에 콤 마 로 구 분
된 문 자 열 을 둘
러 싼 중 괄 호 가
나 오 고 선 택 적
인 postamble 이 따 라
나 온 다 . preamble은 중
괄 호 안 에 있 는
각 문 자 열 앞 에
추 가 되 고 postamble은
왼 쪽 에 서 오 른
쪽 으 로 각 각 의
결 과 문 자 열 뒤
에 추 가 된 다 .
중 괄 호 확 장 은 중 첩 할 수 있 다 . 확 장 된 각 문 자 열 의 결 과 는 정 렬 되 지 않 는 다 ; 왼 쪽 에 서 오 른 쪽 으 로 라 는 순 서 는 보 존 된 다 . 예 를 들 어 a{d,c,b}e는 ’ade ace abe’로 확 장 된 다 .
중 괄 호 확 장 은 다 른 확 장 보 다 먼 저 수 행 되 며 다 른 확 장 에 특 별 한 의 미 를 갖 는 문 자 열 은 보 존 된 다 . 중 괄 호 확 장 은 엄 격 하 게 글 자 그 대 로 이 루 어 진 다 . Bash 는 확 장 상 황 이 나 중 괄 호 안 의 텍 스 트 에 대 하 여 문 법 적 인 해 석 을 시 도 하 지 않 는 다 .
올 바 른 형 식 의 중 괄 호 확 장 에 는 쿼 우 트 하 지 않 은 상 태 로 여 는 중 괄 호 , 닫 는 중 괄 호 가 있 고 역 시 쿼 우 트 하 지 않 은 하 나 이 상 의 콤 마 가 포 함 된 다 . 올 바 르 지 않 은 형 태 의 중 괄 호 확 장 은 그 대 로 놔 둔 다 .
중 괄 호 확 장 형 식 은 보 통 다 음 예 에 서 처 럼 문 자 열 의 공 통 머 리 말 부 분 이 훨 씬 긴 경 우 짧 게 축 약 하 기 위 해 사 용 된 다 :
mkdir /usr/local/src/bash/{old,new,dist,bugs}
또 는
chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}
중 괄 호 확 장 은 전 통 적 인 버 전 의 sh, 본 쉘 (Bourne shell)과 약 간 의 비 호 환 성 을 가 져 왔 다 . sh 는 중 괄 호 가 단 어 의 일 부 로 나 타 날 때 특 별 하 게 처 리 하 지 않 고 그 대 로 보 존 하 여 출 력 한 다 . Bash 는 단 어 로 부 터 중 괄 호 를 제 거 하 고 중 괄 호 확 장 을 한 다 . 예 를 들 어 sh 에 서 file{1,2}는 출 력 에 서 도 그 대 로 file{1,2} 이 다 . bash 에 서 는 같 은 단 어 에 대 하 여 중 괄 호 확 장 을 하 여 file1 file 로 보 여 준 다 . 만 약 sh 과 의 철 저 한 호 환 성 을 원 할 때 에 는 bash 를 시 작 할 때 −nobraceexpansion 플 래 그 를 붙 여 실 행 하 라 . −nobraceexpansion ( 앞 서 나 온 옵 션 참 고 ) 또 는 set 명 령 에 서 +o braceexpand 옵 션 을 주 어 중 괄 호 확 장 기 능 을 해 제 할 수 있 다 . ( 쉘 내 부 명 령 참 고 )
틸
드 확 장 (Tilde Expansion)
단 어 가 틸 드 문
자 (’~’)로 시 작
하 면 , 첫 번 째 슬
래 쉬 앞 에 있 는
모 든 문 자 (또 는
슬 래 쉬 가 없 는
경 우 에 는 모 든
문 자 )는 가 능 한
로 그 인 이 름 으
로 간 주 한 다 . 로
그 인 이 름 이 널
문 자 열 인 경 우
에 는 HOME 매
개 변 수 의 값 으
로 틸 드 를 치 환
한 다 . HOME 가
설 정 되 어 있 지
않 을 때 에 는 쉘
을 실 행 중 인 사
용 자 의 홈 디 렉
토 리 로 대 신 치
환 한 다 .
틸 드 다 음 에 ’+’가 뒤 따 르 면 , 틸 드 와 ’+’를 PWD 의 값 으 로 치 환 한 다 . ’−’이 오 는 경 우 에 는 OLDPWD 변 수 값 으 로 치 환 된 다 . 틸 드 다 음 에 나 오 는 값 이 유 효 한 로 그 인 이 름 일 때 에 는 틸 드 와 로 그 인 이 름 을 그 이 름 을 갖 는 사 용 자 의 홈 디 렉 토 리 로 치 환 한 다 . 이 름 이 유 효 하 지 않 을 때 에 는 틸 드 확 장 이 실 패 할 것 이 며 그 때 에 는 단 어 를 그 대 로 놔 둔 다 .
변 수 지 정 을 시 행 할 때 마 다 : 또 는 = 다 음 에 나 오 는 쿼 우 트 하 지 않 은 틸 드 를 점 검 한 다 . 이 경 우 틸 드 확 장 이 시 행 된 다 . 따 라 서 PATH, MAILPATH, CDPATH 지 정 에 서 틸 드 와 함 께 경 로 명 을 사 용 할 수 있 으 며 쉘 은 그 확 장 된 값 을 지 정 해 준 다 .
매
개 변 수 확 장 (Parameter
Expansion)
’$’ 문 자 는 매
개 변 수 확 장 , 명
령 치 환 , 연 산 확
장 을 시 행 하 도
록 한 다 . 확 장 할
매 개 변 수 이 름
또 는 기 호 는 중
괄 호 로 둘 러 쌀
수 도 있 다 . 확 장
할 변 수 뒤 에 따
라 오 는 문 자 들
을 이 름 의 일 부
로 해 석 하 지 않
도 록 보 호 할 때
사 용 한 다 .
${매 개 변 수 }
매 개 변 수 의 값 으 로 치 환 된 다 . 매 개 변 수 가 한 개 이 상 의 숫 자 로 된 위 치 매 개 변 수 이 거 나 , 매 개 변 수 다 음 에 문 자 열 로 함 께 해 석 하 지 않 아 야 할 문 자 가 뒤 따 라 나 오 는 경 우 에 는 중 괄 호 가 필 요 하 다 .
아
래 의 모 든 경 우
에 서 , 단 어 에
대 하 여 틸 드 확
장 , 매 개 변 수 확
장 , 명 령 치 환 , 연
산 치 환 가 시 행
된 다 . Bash 매 개 변
수 가 unset 상 태 인 지
널 인 지 점 검 한
다 ; 콜 론 을 빼 면
unset 상 태 의 매 개 변
수 에 대 한 점 검
만 행 한 다 .
${매 개 변 수
:−단 어 }
기 본 값 사 용 . If 매 개 변 수 가 unset 되 어 있 거 나 널 이 면 , 단 어 의 확 장 으 로 치 환 된 다 . 그 렇 지 않 을 때 에 는 매 개 변 수 의 값 으 로 치 환 된 다 .
${매 개 변 수 :=단 어 }
기 본 값 을 지 정 . 매 개 변 수 가 unset 되 어 있 거 나 널 이 면 , 단 어 의 확 장 이 매 개 변 수 로 지 정 된 다 . 그 러 면 매 개 변 수 의 값 자 체 가 치 환 된 다 . 위 치 매 개 변 수 와 특 별 한 매 개 변 수 는 이 런 방 식 으 로 지 정 할 수 없 을 것 이 다 .
${매 개 변 수 :?단 어 }
널 이 거 나 unset 이 면 에 러 를 출 력 한 다 . If 매 개 변 수 가 널 이 거 나 unset 상 태 면 , 단 어 의 확 장 (또 는 단 어 가 존 재 하 지 않 으 면 그 에 대 한 메 시 지 ) 이 표 준 에 러 와 쉘 에 출 력 하 고 대 화 형 모 드 가 아 닐 때 에 는 종 료 한 다 . 그 렇 지 않 으 면 매 개 변 수 의 값 이 치 환 된 다 .
${매 개 변 수 :+단 어 }
다 른 값 사 용 하 기 . 매 개 변 수 가 널 이 거 나 unset 이 면 , 아 무 것 도 치 환 되 지 않 고 그 렇 지 않 으 면 단 어 의 확 장 으 로 치 환 된 다 .
${#매 개 변 수 }
매 개 변 수 의 값 으 로 들 어 있 는 문 자 열 의 길 이 로 치 환 한 다 . 매 개 변 수 가 * 이 거 나 @ 일 때 에 는 , 더 블 쿼 우 트 안 에 서 * 이 확 장 되 었 을 때 의 길 이 로 치 환 한 다 .
${매 개 변
수 #단 어 }
${매 개 변 수
##단 어 }
경 로 명 확 장 에 서 처 럼 패 턴 을 만 들 기 위 해 단 어 가 확 장 된 다 . 만 약 패 턴 이 매 개 변 수 값 의 첫 부 분 과 일 치 하 면 , 매 개 변 수 값 에 서 가 장 짧 은 일 치 가 일 어 나 는 패 턴 내 용 을 삭 제 한 값 (’’#’’의 경 우 ) 또 는 가 장 긴 일 치 가 일 어 나 는 패 턴 을 삭 제 한 값 (’’##’’의 경 우 )으 로 확 장 한 다 .
${매 개 변
수 %단 어 }
${매 개 변 수
%%단 어 }
경 로 명 확 장 에 서 처 럼 패 턴 을 만 들 기 위 해 단 어 가 확 장 된 다 . 만 약 패 턴 이 매 개 변 수 값 의 뒷 부 분 과 일 치 하 면 , 매 개 변 수 값 에 서 가 장 짧 은 일 치 가 일 어 나 는 패 턴 내 용 을 삭 제 한 값 (’’%’’의 경 우 ) 또 는 가 장 긴 일 치 가 일 어 나 는 패 턴 을 삭 제 한 값 (’’%%’’의 경 우 )으 로 확 장 한 다 .
명
령 치 환
명 령 치 환 을 사
용 하 여 명 령 이
름 을 명 령 의 출
력 결 과 로 치 환
할 수 있 다 . 다 음
두 가 지 형 태 를
가 지 고 있 다 :
$(명 령 )
또 는
’명 령 ’
Bash 는 명 령 을 실 행 하 고 그 명 령 의 표 준 출 력 으 로 명 령 치 환 을 교 체 하 는 방 식 으 로 확 장 을 실 행 한 다 . 표 준 출 력 에 서 뒷 부 분 의 개 행 문 자 는 삭 제 한 다 .
구 식 백 쿼 우 트 형 식 을 사 용 할 때 , 백 슬 래 쉬 는 그 뒤 에 $, ’, \ 이 따 라 오 는 경 우 를 제 외 하 고 는 글 자 그 대 로 의 의 미 를 유 지 한 다 . $(명 령 ) 형 식 을 사 용 할 때 에 는 괄 호 사 이 에 있 는 모 든 글 자 가 명 령 을 구 성 한 다 ; 어 느 문 자 도 특 별 하 게 취 급 받 지 않 는 다 .
명 령 치 환 은 중 첩 할 수 있 다 . 구 식 형 태 에 서 중 첩 을 하 려 면 내 부 의 백 쿼 우 트 를 백 슬 래 쉬 로 해 석 금 지 시 켜 야 한 다 .
더 블 쿼 우 트 안 에 서 치 환 이 일 어 나 면 결 과 에 대 하 여 단 어 분 리 , 경 로 명 확 장 은 시 행 되 지 않 는 다 .
연
산 확 장
연 산 확 장 을 사
용 하 여 연 산 식
을 계 산 하 고 그
결 과 값 으 로 치
환 할 수 있 다 . 연
산 확 장 에 는 두
가 지 형 식 이 있
다 :
$[표 현 식 ]
$((표 현 식 ))
The 표 현 식 은 더 블 쿼 우 트 안 에 있 는 것 처 럼 취 급 한 다 . 그 러 나 중 괄 호 와 괄 호 안 에 놓 인 더 블 쿼 우 트 는 특 별 하 게 대 우 하 지 않 는 다 . 표 현 식 안 에 있 는 모 든 토 큰 은 매 개 변 수 확 장 , 명 령 치 환 , 쿼 우 트 제 거 과 정 을 거 친 다 . 연 산 치 환 은 중 첩 가 능 하 다 .
평 가 작 업 은 뒤 에 나 올 연 산 평 가 (ARITHMETIC EVALUATION) 에 서 나 열 한 규 칙 에 따 라 시 행 된 다 . 표 현 식 이 유 효 하 지 않 을 때 bash 는 실 패 를 뜻 하 는 메 시 지 를 출 력 하 고 더 이 상 치 환 을 하 지 않 는 다 .
프
로 세 스 치 환
프 로 세 스 치 환
은 명 명 된 파 이
프 (FIFOs) 또 는 오 픈
한 파 일 을 명 명
하 는 /dev/fd 방 식 을
갖 고 있 는 시 스
템 에 서 지 원 된
다 . <(리 스 트
) 또 는 >(리 스
트 )의 형 식 을
띤 다 . 프 로 세 스
리 스 트 는 입 력
또 는 출 력 을 FIFO
또 는 /dev/fd의 파 일
에 연 결 하 여 실
행 한 다 . 확 장 의
결 과 로 이 파 일
의 이 름 이 현 재
명 령 의 인 수 로
전 달 된 다 .
>(리 스 트 )
형 식 을 사 용 하
면 파 일 에 쓰 는
내 용 이 리 스 트
에 대 한 입 력 이
된 다 . <(리 스
트 ) 형 식 을 사
용 하 면 리 스 트
의 출 력 을 얻 기
위 해 인 수 로 전
달 된 파 일 을 읽
을 수 있 어 야 한
다 .
이 를 지 원 하 는 시 스 템 에 서 프 로 세 스 치 환 은 매 개 변 수 와 변 수 확 장 , 명 령 치 환 , 연 산 확 장 과 동 시 에 일 어 난 다 .
단
어 분 리
쉘 은 단 어 분 리
를 위 하 여 더 블
쿼 우 트 안 에 서
일 어 나 지 않 은
매 개 변 수 확 장 ,
명 령 치 환 , 연 산
확 장 의 결 과 를
조 사 한 다 .
쉘 은 IFS 값 으 로 들 어 있 는 각 글 자 를 구 분 자 (delimeter)로 사 용 하 여 다 른 확 장 의 결 과 를 단 어 로 분 리 한 다 . IFS 의 값 이 정 확 히 <스 페 이 스 ><탭 ><개 행 문 자 > 즉 기 본 값 이 라 면 , IFS 문 자 의 어 떠 한 조 합 도 단 어 를 구 분 하 게 해 준 다 . IFS 의 값 이 기 본 값 아 닌 값 을 가 지 고 있 는 경 우 에 는 , 화 이 트 스 페 이 스 문 자 가 IFS 값 에 포 함 되 어 있 는 한 , 단 어 의 앞 뒤 에 오 는 화 이 트 스 페 이 스 문 자 스 페 이 스 와 탭 을 무 시 한 다 . IFS ( IFS 화 이 트 스 페 이 스 문 자 ). IFS 화 이 트 스 페 이 스 가 아 닌 IFS 속 의 모 든 문 자 와 인 접 한 IFS 화 이 트 스 페 이 스 문 자 는 하 나 의 필 드 로 구 분 한 다 . IFS 화 이 트 스 페 이 스 문 자 의 연 속 도 구 분 자 로 간 주 한 다 . IFS 값 이 널 이 면 단 어 분 리 는 일 어 나 지 않 는 다 . IFS 는 unset 할 수 없 다 .
명 시 적 인 널 인 수 는 ("" 또 는 ’’) 그 대 로 유 지 한 다 . 매 개 변 수 의 확 장 결 과 만 들 어 지 는 널 인 수 는 제 거 된 다 .
확 장 이 일 어 나 지 않 은 경 우 에 는 단 어 분 리 도 일 어 나 지 않 는 다 는 사 실 을 잘 알 아 두 어 야 한 다 .
경
로 명 확 장
단 어 분 리 후 에
는 −f 옵 션 이 설
정 되 어 있 지 않
는 한 , bash 는 단
어 를 검 색 하 면
서 *, ?, [ 문 자
를 찾 는 다 . 이 러
한 문 자 중 하 나
가 나 타 나 면 그
단 어 는 패 턴 으
로 간 주 하 고 패
턴 과 일 치 하 는
경 로 명 을 알 파
벳 순 으 로 정 렬
한 리 스 트 로 치
환 한 다 . 일 치 하
는 경 로 명 이 발
견 되 지 않 고 쉘
변 수 allow_null_glob_expansion 가
unset되 어 있 으 면 단
어 를 변 경 하 지
않 고 그 대 로 놔
둔 다 . 이 변 수 가
설 정 되 어 있 기
는 하 지 만 일 치
하 는 것 이 없 다
면 , 단 어 를 제 거
한 다 . 경 로 명 생
성 시 에 패 턴 이
사 용 될 때 , 이 름
의 시 작 부 분 또
는 슬 래 쉬 바 로
다 음 에 나 오 는
’’.’’ 문 자
에 대 해 서 는 쉘
변 수 glob_dot_filenames 가
설 정 되 어 있 지
않 은 한 , 명 시 적
인 일 치 가 이 루
어 져 야 한 다 . 슬
래 쉬 문 자 는 항
상 명 시 적 인 일
치 여 야 한 다 . 다
른 경 우
’’.’’ 문 자
는 특 별 하 게 취
급 하 지 않 는 다 .
특 수 한 패 턴 문 자 는 다 음 과 같 은 의 미 를 지 닌 다 :
* |
널 문 자 열 을 포 함 한 모 든 문 자 열 과 일 치 한 다 . | ||
? |
모 든 단 일 문 자 와 일 치 한 다 . | ||
[...] |
대 괄 호 안 의 어 떤 문 자 와 도 일 치 한 다 . 문 자 가 운 데 마 이 너 스 부 호 가 있 는 경 우 에 는 범 위 를 뜻 한 다 ; 두 문 자 사 이 의 사 전 적 순 서 에 의 거 하 여 위 치 하 는 모 든 문 자 (두 문 자 포 함 )에 대 하 여 일 치 가 일 어 난 다 . [ 다 음 에 나 오 는 첫 번 째 문 자 가 ! 이 거 나 ^ 이 면 괄 호 안 에 있 는 모 든 문 자 에 대 하 여 일 치 가 일 어 나 지 않 는 다 . − 또 는 ] 에 대 하 여 일 치 를 시 키 려 면 괄 호 안 에 서 첫 번 째 또 는 마 지 막 문 자 로 포 함 시 키 면 된 다 . |
쿼
우 트 제 거
앞 서 말 한 확 장
이 일 어 난 후 , 쿼
우 트 하 지 않 은
모 든 \, ’, "
문 자 는 제 거 한
다 .
리 다 이 렉 션 (REDIRECTION)
명 령 이 실 행 되 기 에 앞 서 쉘 에 의 해 특 별 하 게 해 석 되 는 표 시 를 사 용 하 여 입 력 과 출 력 을 방 향 전 환 또 는 리 다 이 렉 트 할 수 있 다 . 현 재 쉘 실 행 환 경 에 대 하 여 파 일 을 열 고 닫 는 용 도 로 리 다 이 렉 션 을 사 용 할 수 도 있 다 . 다 음 에 나 오 는 리 다 이 렉 션 연 산 자 는 간 단 한 명 령 의 앞 또 는 중 간 에 오 거 나 명 령 의 뒤 에 온 다 . 리 다 이 렉 션 은 왼 쪽 부 터 오 른 족 으 로 나 타 난 순 서 대 로 처 리 한 다 .
다 음 설 명 에 있 어 파 일 기 술 자 번 호 가 생 략 되 어 있 고 리 다 이 렉 션 연 산 자 의 첫 번 째 문 자 가 < 이 면 이 리 다 이 렉 션 은 표 준 입 력 (파 일 기 술 자 0 번 )을 가 리 킨 다 . 리 다 이 렉 션 연 산 자 의 첫 번 째 문 자 가 > 이 면 이 리 다 이 렉 션 은 표 준 출 력 (파 일 기 술 자 1 번 )을 가 리 킨 다 .
리 다 이 렉 션 연 산 자 다 음 에 나 오 는 단 어 는 중 괄 호 확 장 , 틸 드 확 장 , 매 개 변 수 확 장 , 명 령 치 환 , 연 산 확 장 , 쿼 우 트 제 거 , 경 로 명 확 장 을 거 친 다 . 한 개 이 상 의 단 어 로 확 장 될 때 에 는 bash 가 에 러 를 보 고 한 다 .
리 다 이 렉 션 의 순 서 가 매 우 중 요 하 다 . 예 를 들 어 , 다 음 명 령
ls > dirlist 2>&1
는 표 준 출 력 과 표 준 에 러 모 두 dirlist 파 일 로 보 내 지 만 다 음 명 령
ls 2>&1 > dirlist
오 로 지 표 준 출 력 만 dirlist 파 일 로 보 낸 다 . 왜 냐 하 면 표 준 출 력 이 dirlist 파 일 로 방 향 전 환 되 기 전 에 표 준 에 러 가 표 준 출 력 으 로 복 제 되 었 기 때 문 이 다 .
입
력 리 다 이 렉 션
입 력 리 다 이 렉
션 은 파 일 기 술
자 n 또 는 n 이
생 략 된 경 우 표
준 입 력 (파 일 기
술 자 0)으 로 읽 기
위 해 단 어 를 확
장 하 여 나 온 이
름 의 파 일 을 오
픈 하 게 만 든 다 .
입 력 리 다 이 렉 션 의 일 반 적 인 형 식 은 다 음 과 같 다 :
[n]<단 어
출
력 리 다 이 렉 션
출 력 리 다 이 렉
션 은 파 일 기 술
자 n 또 는 n 이
생 략 된 경 우 표
준 출 력 (파 일 기
술 자 1)으 로 쓰 기
위 해 단 어 를 확
장 하 여 나 온 이
름 의 파 일 을 오
픈 하 게 만 든 다 .
출 력 리 다 이 렉 션 의 일 반 적 인 형 식 은 다 음 과 같 다 :
[n]>단 어
리 다 이 렉 션 연 산 자 를 >| 와 같 이 적 으 면 , set 내 부 명 령 에 대 한 -C 옵 션 값 을 점 검 하 지 않 고 파 일 생 성 을 시 도 한 다 . ( 위 에 서 나 온 쉘 변 수 섹 션 의 noclobber 설 명 을 참 고 )
추
가 출 력 리 다 이
렉 션
추 가 출 력 리 다
이 렉 션 은 파 일
기 술 자 n 또 는
n 이 생 략 된 경
우 표 준 출 력 (파
일 기 술 자 1)으 로
추 가 하 기 위 해
단 어 를 확 장 하
여 나 온 이 름 의
파 일 을 오 픈 하
게 만 든 다 . 파 일
이 존 재 하 지 않
으 면 생 성 한 다 .
출 력 추 가 하 기 의 일 반 적 인 형 식 은 다 음 과 같 다 :
[n]>>단 어
표
준 출 력 과 표 준
에 러 리 다 이 렉
션
Bash 는 지 금 설 명
할 표 기 법 을 사
용 하 여 표 준 출
력 (파 일 기 술 자
1)과 표 준 에 러 출
력 (파 일 기 술 자 2)
둘 다 단 어 의 확
장 결 과 나 오 는
이 름 의 파 일 로
방 향 전 화 시 킬
수 있 다 .
표 준 출 력 과 표 준 에 러 를 동 시 에 리 다 이 렉 트 하 는 두 가 지 형 식 이 있 다 :
&>단 어
and
>&단 어
두 가 지 형 식 중 첫 번 째 것 을 선 호 한 다 . Of the two forms, the first is preferred. 위 형 식 은 다 음 과 문 법 적 으 로 동 일 하 다 .
>단 어 2>&1
HERE
문 서
이 유 형 의 리 다
이 렉 션 은 쉘 로
하 여 금 자 신 의
현 재 소 스 로 부
터 단 어 (뒤 에
공 백 이 없 이 ) 만
나 오 는 줄 이 나
올 때 가 지 입 력
으 로 읽 어 들 이
도 록 지 시 한 다 .
이 지 점 까 지 의
모 든 행 은 명 령
에 대 한 표 준 입
력 으 로 사 용 된
다 .
HERE 문 서 의 형 식 은 다 음 과 같 다 :
<<[−]단
어
HERE−문 서
구 분 자
단 어 에 대 해 서 는 어 떠 한 매 개 변 수 확 장 , 명 령 치 환 , 경 로 명 확 장 , 또 는 연 산 확 장 도 시 행 되 지 않 는 다 . 단 어 안 의 문 자 에 대 하 여 쿼 우 트 된 것 이 있 다 면 구 분 자 는 단 어 로 부 터 쿼 우 트 를 제 거 한 결 과 이 며 HERE 문 서 의 행 은 확 장 되 지 않 는 다 . 그 렇 지 않 을 때 에 는 HERE 문 서 의 모 든 행 에 대 하 여 매 개 변 수 확 장 , 명 령 치 환 , 연 산 치 환 이 시 행 된 다 . 후 자 의 경 우 , \<개 행 문 자 > 는 무 시 하 며 \, $, ’ 문 자 를 쿼 우 트 할 때 에 는 \ 를 사 용 한 다 .
리 다 이 렉 션 연 산 자 가 <<− 라 면 , 입 력 행 과 구 분 자 를 포 함 하 는 행 에 서 앞 에 나 오 는 모 든 탭 문 자 를 제 거 한 다 . 이 기 능 을 사 용 하 면 쉘 스 크 립 트 내 부 의 HERE 문 서 에 서 도 자 연 스 럽 게 들 여 쓰 기 를 사 용 할 수 있 다 .
파
일 기 술 자 복 제
하 기
다 음 리 다 이 렉
션 연 산 자
[n]<&단 어
는 입 력 파 일 기 술 자 를 복 제 할 때 사 용 한 다 . 단 어 가 한 개 이 상 의 숫 자 로 확 장 되 면 , n 이 가 리 키 는 파 일 기 술 자 는 그 파 일 기 술 자 의 복 사 본 이 된 다 . 만 약 단 어 의 결 과 가 − 라 면 , 파 일 기 술 자 n 은 닫 힌 다 . n 를 명 시 하 지 않 으 면 , 표 준 입 력 (파 일 기 술 자 0)을 사 용 한 다 .
다 음 연 산 자
[n]>&단 어
는 마 찬 가 지 로 출 력 파 일 기 술 자 를 복 제 할 때 사 용 한 다 . n 이 생 략 되 어 있 으 면 표 준 출 력 (파 일 기 술 자 1)이 사 용 된 다 . 특 별 한 경 우 로 서 , n이 생 략 되 어 있 고 단 어 가 한 개 이 상 의 숫 자 로 확 장 되 지 않 을 때 에 는 앞 에 서 설 명 한 것 처 럼 표 준 출 력 과 표 준 에 러 가 리 다 이 렉 트 된 다 .
읽
기 쓰 기 를 위 해
파 일 기 술 자 열
기
다 음 리 다 이 렉
션 연 산 자
[n]<>단 어
는 읽 기 와 쓰 기 를 위 해 파 일 기 술 자 n 또 는 n 이 생 략 된 경 우 표 준 입 력 과 표 준 출 력 으 로 단 어 의 확 장 결 과 로 나 오 는 이 름 을 가 진 파 일 을 오 픈 하 도 록 한 다 . 파 일 이 존 재 하 지 않 는 경 우 생 성 된 다 .
함 수 (FUNCTIONS)
앞 서 나 온 쉘 문 법 섹 션 에 서 정 의 한 바 있 는 쉘 함 수 는 이 후 의 실 행 을 위 해 명 령 의 나 열 을 저 장 해 둔 다 . 함 수 는 현 재 쉘 상 황 에 서 실 행 된 다 ; 함 수 를 해 석 하 기 위 해 새 로 운 프 로 세 스 가 만 들 어 지 지 는 않 는 다 .(이 는 쉘 스 크 립 트 실 행 과 대 조 적 이 다 .) 함 수 가 실 행 되 면 실 행 중 에 는 함 수 에 대 한 인 수 가 위 치 매 개 변 수 로 바 뀐 다 . 특 별 한 매 개 변 수 인 # 는 이 변 화 를 반 영 하 기 위 해 갱 신 된 다 . 위 치 매 개 변 수 0 은 바 뀌 지 않 는 다 .
함 수 에 지 역 적 인 변 수 는 내 부 명 령 local 을 사 용 하 여 선 언 할 수 있 다 . 보 통 은 변 수 와 그 값 은 함 수 와 호 출 한 자 가 공 유 한 다 .
내 부 명 령 return 이 함 수 안 에 서 실 행 되 면 함 수 는 실 행 을 완 료 하 고 함 수 호 출 바 로 다 음 부 터 실 행 이 재 개 된 다 . 함 수 실 행 이 완 료 되 면 위 치 매 개 변 수 와 특 별 한 매 개 변 수 # 의 값 이 함 수 호 출 이 전 상 태 로 복 원 된 다 .
함 수 이 름 과 정 의 는 내 부 명 령 declare 또 는 typeset 명 령 에 −f 옵 션 을 주 어 나 열 할 수 있 다 . 내 부 명 령 export 에 −f 옵 션 을 주 면 서 브 쉘 에 서 도 자 동 으 로 정 의 되 도 록 함 수 를 export할 수 있 다 .
함 수 는 재 귀 호 출 할 수 있 다 . 재 귀 호 출 의 횟 수 에 대 한 제 한 사 항 은 없 다 .
앨 리 어 스 또 는 별 칭 (ALIASES)
쉘 은 내 부 명 령 alias 와 unalias 로 설 정 하 고 해 제 할 수 있 는 앨 리 어 스 (aliases) 목 록 을 관 리 한 다 . ( 쉘 내 부 명 령 참 고 ). 쿼 우 트 하 지 않 은 각 명 령 의 첫 번 째 단 어 에 대 해 서 는 앨 리 어 스 가 있 는 지 점 검 한 다 . 앨 리 어 스 가 있 으 면 그 단 어 는 앨 리 어 스 의 텍 스 트 내 용 으 로 치 환 된 다 . 앨 리 어 스 이 름 과 치 환 텍 스 트 는 메 타 문 자 를 포 함 하 여 유 효 한 쉘 입 력 을 포 함 할 수 있 다 . 그 러 나 예 외 적 으 로 앨 리 어 스 이 름 에 =를 포 함 할 수 없 다 . 치 환 텍 스 트 의 첫 번 째 단 어 에 대 하 여 앨 리 어 스 가 있 는 지 점 검 한 다 . 그 러 나 확 장 하 려 는 앨 리 어 스 와 똑 같 은 단 어 는 두 번 확 장 하 지 않 는 다 . 즉 , 다 음 과 같 이 ls 의 앨 리 어 스 를 다 음 과 같 이 ls −F 라 고 정 의 할 수 있 으 며 bash 는 치 환 텍 스 트 를 회 귀 적 으 로 확 장 하 려 하 지 않 는 다 . 앨 리 어 스 값 의 마 지 막 문 자 가 공 백 이 면 , 앨 리 어 스 다 음 에 나 오 는 명 령 단 어 에 대 해 서 도 앨 리 어 스 확 장 여 부 를 점 검 한 다 .
앨 리 어 스 는 alias 명 령 을 사 용 하 여 만 들 고 열 거 하 며 unalias 명 령 을 사 용 하 여 제 거 한 다 .
csh 에 서 처 럼 치 환 텍 스 트 에 서 인 수 를 사 용 하 게 해 주 는 메 커 니 즘 은 없 다 . 인 수 가 필 요 할 때 에 는 쉘 함 수 를 사 용 해 야 한 다 .
쉘 이 대 화 형 모 드 가 아 닐 때 에 는 앨 리 어 스 를 확 장 하 지 않 는 다 .
앨 리 어 스 의 정 의 와 사 용 법 에 대 한 규 칙 은 약 간 혼 란 스 럽 다 . Bash 는 항 상 어 떤 행 에 존 재 하 는 명 령 을 실 행 하 기 에 앞 서 최 소 한 완 전 한 한 행 을 읽 는 다 . 앨 리 어 스 를 실 행 할 때 가 아 니 라 명 령 을 읽 어 들 일 때 확 장 된 다 . 따 라 서 , 다 른 명 령 과 같 은 행 에 나 타 나 는 앨 리 어 스 정 의 는 다 음 행 을 읽 을 때 까 지 효 력 을 발 휘 하 지 않 는 다 . 같 은 행 에 서 앨 리 어 스 정 의 다 음 에 나 오 는 명 령 은 새 로 운 앨 리 어 스 의 영 향 을 받 지 않 는 다 . 이 행 동 방 식 은 함 수 가 실 행 될 때 에 도 문 제 가 된 다 . 함 수 정 의 자 체 가 복 합 명 령 이 기 때 문 에 함 수 를 실 행 할 때 가 아 니 라 함 수 정 의 를 읽 을 때 앨 리 어 스 를 확 장 한 다 . 결 과 적 으 로 함 수 안 에 정 의 된 앨 리 어 스 는 다 른 함 수 를 실 행 하 기 전 까 지 는 사 용 되 지 않 는 다 . 안 전 하 게 하 기 위 해 앨 리 어 스 정 의 는 항 상 개 별 적 인 행 에 적 고 복 합 명 령 에 서 는 앨 리 어 스 를 사 용 하 지 말 라 .
거 의 모 든 용 도 에 서 앨 리 어 스 대 신 함 수 를 사 용 하 는 것 이 좋 다 는 점 을 기 억 하 라 .
작 업 제 어 (JOB CONTROL)
작 업 제 어 란 선 택 적 으 로 프 로 세 스 의 실 행 을 멈 추 고 (일 시 중 지 (suspend)) 나 중 에 중 단 된 실 행 을 계 속 하 도 록 할 수 있 는 (작 업 재 개 (resume)) 기 능 을 말 한 다 . 사 용 자 는 일 반 적 으 로 시 스 템 의 터 미 널 드 라 이 버 와 bash 에 서 제 공 하 는 대 화 형 인 터 페 이 스 를 통 해 이 기 능 을 사 용 한 다 .
쉘 은 각 파 이 프 라 인 에 작 업 을 연 관 시 킨 다 . 쉘 은 현 재 실 행 중 인 작 업 도 표 를 지 니 고 있 으 며 jobs 명 령 을 사 용 하 여 나 열 해 볼 수 있 다 . bash 가 작 업 을 비 동 기 적 으 로 ( 백 그 라 운 드 로 ) 시 작 할 때 는 , 다 음 과 유 사 한 행 을 출 력 한 다 :
[1] 25647
이 작 업 의 작 업 번 호 가 1 이 며 이 작 업 과 연 관 된 파 이 프 라 인 의 마 지 막 프 로 세 스 의 프 로 세 스 ID가 25647 이 라 는 사 실 을 알 려 준 다 . Bash 는 작 업 제 어 를 위 해 그 기 초 로 서 작 업 추 상 화 를 사 용 한 다 .
작 업 제 어 에 대 한 사 용 자 인 터 페 이 스 를 구 현 을 할 수 있 도 록 시 스 템 에 서 는 현 재 터 미 널 프 로 세 스 그 룹 ID라 는 것 을 관 리 한 다 . 이 프 로 세 스 그 룹 의 멤 버 (자 신 의 프 로 세 스 그 룹 ID가 현 재 터 미 널 프 로 세 스 그 룹 ID와 동 일 한 프 로 세 스 들 )는 SIGINT 와 같 이 키 보 드 를 통 해 발 생 시 키 는 시 그 널 을 받 는 다 . 이 러 한 프 로 세 스 는 포 그 라 운 드 에 놓 여 있 다 고 말 한 다 . 백 그 라 운 드 프 로 세 스 란 자 신 의 프 로 세 스 그 룹 ID가 터 미 널 의 프 로 세 스 그 룹 ID와 다 른 프 로 세 스 를 말 한 다 ; 이 프 로 세 스 는 키 보 드 를 통 해 발 생 시 키 는 시 그 널 에 면 역 을 가 진 다 . 오 로 지 포 그 라 운 드 프 로 세 스 만 이 터 미 널 로 부 터 읽 고 터 미 널 에 쓸 수 있 다 . 터 미 널 로 부 터 읽 거 나 쓰 려 고 시 도 하 는 백 그 라 운 드 프 로 세 스 는 터 미 널 드 라 이 버 가 보 내 는 SIGTTIN (SIGTTOU) 시 그 널 을 받 는 다 . 그 리 고 이 를 잡 아 처 리 하 지 않 으 면 프 로 세 스 를 일 시 중 지 시 킨 다 .
bash 가 실 행 중 인 운 영 체 제 에 서 작 업 제 어 를 지 원 하 면 bash 는 여 러 분 으 로 하 여 금 작 업 제 어 기 능 을 사 용 할 수 있 도 록 해 준 다 . 프 로 세 스 실 행 중 일 시 중 지 문 자 ( 보 통 ^Z, Control-Z)를 누 르 면 프 로 세 스 가 멈 추 고 여 러 분 에 게 bash 프 롬 프 트 가 나 온 다 . 지 연 된 일 시 중 지 (delayed suspend) 문 자 를 누 르 면 (보 통 ^Y, Control-Y)프 로 세 스 가 터 미 널 로 부 터 입 력 을 받 으 려 고 할 때 중 지 되 며 bash 로 제 어 권 이 넘 어 온 다 . 그 다 음 에 는 bg 명 령 을 사 용 하 여 백 그 라 운 드 에 서 실 행 을 계 속 하 도 록 하 거 나 fg 명 령 을 사 용 하 여 포 그 라 운 드 에 서 실 행 을 계 속 하 도 록 또 는 kill 명 령 을 사 용 하 여 죽 이 는 등 작 업 의 상 태 를 제 어 할 수 있 다 . ^Z는 즉 시 효 력 을 발 휘 하 며 아 직 출 력 되 지 않 은 내 용 과 타 이 핑 을 했 으 나 입 력 처 리 되 지 않 은 내 용 은 버 린 다 .
쉘 에 서 어 떤 작 업 을 지 시 하 는 방 법 은 몇 가 지 있 다 . % 문 자 는 작 업 이 름 과 관 련 있 다 . 작 업 번 호 n 은 %n 으 로 표 시 한 다 . 또 한 작 업 을 시 작 할 때 사 용 했 던 이 름 의 앞 글 자 나 명 령 행 의 일 부 문 자 열 을 사 용 하 여 가 리 킬 수 있 다 . 예 를 들 어 , %ce 는 중 단 된 ce 작 업 을 가 리 킨 다 . job. 접 두 어 가 하 나 이 상 의 작 업 과 일 치 할 때 에 는 bash 가 에 러 를 보 고 한 다 . 한 편 %?ce 를 사 용 하 면 , 명 령 행 중 간 에 ce 를 포 함 하 고 있 는 작 업 을 가 리 킨 다 . 그 일 부 문 자 열 과 일 치 하 는 작 업 이 여 러 개 일 때 에 는 bash 가 에 러 를 보 고 한 다 . %% 표 시 와 %+ 표 시 는 쉘 에 서 포 그 라 운 드 에 있 던 동 안 중 단 된 가 장 최 신 의 작 업 을 가 리 키 며 현 재 작 업 (current job) 이 라 부 른 다 . 이 전 작 업 (previous job) 은 %− 표 시 를 통 해 가 리 킬 수 있 다 . 작 업 을 가 리 키 는 출 력 내 용 에 서 (예 를 들 어 , jobs 명 령 의 출 력 내 용 ) 현 재 작 업 은 항 상 + 로 표 시 하 고 , 이 전 작 업 은 − 로 표 시 한 다 .
간 단 히 작 업 이 름 을 지 칭 하 기 만 해 도 작 업 이 포 그 라 운 드 로 돌 아 온 다 : %1 는 ’’fg %1’’와 같 은 뜻 이 며 , 작 업 1 번 을 백 그 라 운 드 에 서 포 그 라 운 드 로 오 게 한 다 . 마 찬 가 지 로 ’’%1 &’’ 는 작 업 1 번 을 백 그 라 운 드 에 서 작 업 재 개 를 하 도 록 하 며 ’’bg %1’’ 와 같 다 .
쉘 은 작 업 이 상 태 를 바 꿀 때 마 다 그 상 황 을 안 다 . 보 통 의 경 우 , bash 는 다 른 출 력 내 용 을 방 해 하 지 않 기 위 해 프 롬 프 트 를 출 력 할 때 까 지 기 다 렸 다 가 작 업 의 상 태 의 변 화 를 보 고 한 다 . set 내 부 명 령 에 -b 옵 션 을 주 었 다 면 , bash 는 변 화 내 용 을 즉 시 보 고 한 다 . (앞 서 나 온 쉘 변 수 섹 션 의 notify 설 명 을 참 고 하 라 .)
작 업 이 중 단 된 상 태 에 서 bash 를 종 료 하 려 고 하 면 , 쉘 은 경 고 메 시 지 를 출 력 한 다 . 여 러 분 은 jobs 명 령 을 사 용 하 여 작 업 의 상 태 를 조 사 할 수 있 다 . 이 명 령 을 실 행 하 거 나 곧 바 로 다 시 종 료 를 시 도 하 면 경 고 는 나 오 지 않 으 며 중 단 된 작 업 은 종 료 한 다 .
시 그 널 (SIGNALS)
bash가 대 화 형 모 드 일 때 에 는 SIGTERM 는 무 시 하 고 (따 라 서 kill 0해 도 대 화 형 쉘 은 죽 지 않 는 다 ), SIGINT 는 잡 아 서 처 리 한 다 .(따 라 서 wait 내 부 명 령 은 인 터 럽 트 가 능 하 다 ) 어 떤 경 우 든 bash는 SIGQUIT 를 무 시 한 다 . 작 업 제 어 중 일 때 bash 는 SIGTTIN, SIGTTOU, SIGTSTP 를 무 시 한 다 .
bash가 시 작 한 동 기 화 된 작 업 은 부 모 로 부 터 쉘 에 의 해 상 속 받 은 값 으 로 시 그 널 을 설 정 한 다 . 작 업 제 어 중 이 아 닐 때 백 그 라 운 드 작 업 은 ( & 로 시 작 한 작 업 ) SIGINT , SIGQUIT 를 무 시 한 다 . 명 령 대 체 의 결 과 로 실 행 된 명 령 은 키 보 드 에 의 해 발 생 하 는 작 업 제 어 시 그 널 인 SIGTTIN, SIGTTOU, SIGTSTP 를 무 시 한 다 .
명 령 실 행 (COMMAND EXECUTION)
명 령 이 단 어 로 분 리 된 후 , 그 결 과 간 단 한 명 령 과 인 수 목 록 이 나 오 면 , 다 음 행 동 이 취 해 진 다 .
명 령 이 름 에 슬 래 쉬 가 포 함 되 어 있 지 않 으 면 쉘 을 명 령 의 위 치 를 찾 는 다 . 만 약 그 이 름 을 가 진 쉘 함 수 가 존 재 하 면 FUNCTIONS 섹 션 에 서 설 명 한 것 처 럼 함 수 가 실 행 된 다 . 그 런 함 수 가 없 으 면 쉘 내 부 명 령 목 록 을 검 색 한 다 . 만 약 일 치 하 는 것 이 발 견 되 면 내 부 명 령 이 실 행 된 다 .
쉘 함 수 또 는 내 부 명 령 중 어 느 것 과 도 일 치 하 지 않 고 슬 래 쉬 를 포 함 하 고 있 지 않 으 면 , bash 는 그 이 름 을 가 진 실 행 파 일 이 들 어 있 는 디 렉 토 리 를 찾 기 위 해 PATH 의 각 원 소 를 검 색 한 다 . 검 색 에 실 패 하 면 쉘 은 에 러 메 시 지 를 출 력 하 고 0 아 닌 종 료 상 태 값 을 반 환 한 다 .
검 색 에 성 공 하 거 나 또 는 명 령 이 름 에 하 나 이 상 의 슬 래 쉬 가 포 함 되 어 있 을 때 에 는 그 이 름 을 가 진 프 로 그 램 을 실 행 한 다 . 전 달 인 수 0 는 그 이 름 으 로 설 정 되 고 , 나 머 지 전 달 인 수 가 있 다 면 명 령 에 대 한 전 달 인 수 로 설 정 된 다 .
실 행 파 일 형 식 이 아 니 거 나 디 렉 토 리 가 아 니 어 서 실 행 이 실 패 하 면 쉘 명 령 을 포 함 하 고 있 는 쉘 스 크 립 트 로 간 주 한 다 . 쉘 스 크 립 트 를 실 행 하 기 위 해 서 브 쉘 을 생 성 한 다 . 서 브 쉘 자 체 로 다 시 초 기 화 하 기 때 문 에 부 모 쉘 이 기 억 하 고 있 는 명 령 위 치 를 기 억 한 다 는 점 을 제 외 하 고 , 나 머 지 사 항 에 대 해 서 는 스 크 립 트 를 처 리 하 기 위 해 새 로 운 쉘 이 실 행 된 것 이 나 다 름 없 다 . ( 쉘 내 부 명 령 섹 션 의 hash 참 고 )
만 약 프 로 그 램 이 #! 로 시 작 하 는 파 일 이 라 면 , 첫 번 째 행 의 나 머 지 부 분 은 그 프 로 그 램 에 대 한 해 석 기 이 다 . 쉘 은 이 실 행 파 일 형 식 을 그 자 체 로 다 루 지 못 하 는 운 영 체 제 상 에 서 주 어 진 해 석 기 를 실 행 한 다 . 해 석 기 에 대 한 전 달 인 수 는 프 로 그 램 의 첫 번 째 행 에 서 해 석 기 이 름 다 음 에 나 오 는 단 일 옵 션 , 그 다 음 의 프 로 그 램 이 름 으 로 구 성 되 며 명 령 인 수 가 따 라 나 오 면 그 것 도 포 함 한 다 .
환 경 (ENVIRONMENT)
프 로 그 램 이 실 행 될 때 프 로 그 램 은 환 경 이 라 고 부 르 는 문 자 열 배 열 을 받 는 다 . 이 름 =값 의 형 식 을 갖 는 이 름 −값 의 쌍 으 로 이 루 어 진 목 록 이 다 .
쉘 에 서 여 러 가 지 방 법 으 로 환 경 을 조 작 할 수 있 는 방 법 을 제 공 한 다 . 실 행 할 때 , 쉘 은 자 신 의 환 경 변 수 를 검 색 한 후 각 이 름 에 대 하 여 매 개 변 수 를 생 성 하 고 자 식 프 로 세 스 에 게 export 하 기 위 해 자 동 으 로 표 시 해 둔 다 . export 와 declare −x 명 령 을 사 용 하 여 매 개 변 수 와 함 수 를 환 경 에 추 가 하 거 나 삭 제 할 수 있 다 . 환 경 의 매 개 변 수 값 을 변 경 하 면 새 로 운 값 이 예 전 값 을 치 환 하 여 환 경 의 일 부 가 된 다 . 실 행 한 명 령 이 상 속 한 환 경 은 쉘 의 초 기 환 경 (값 을 변 경 할 수 있 음 )에 서 unset 명 령 으 로 제 거 한 것 을 빼 고 export 와 declare −x 명 령 을 통 해 추 가 한 것 으 로 이 루 어 진 다 .
간 단 한 명 령 또 는 함 수 에 대 한 환 경 은 매 개 변 수 섹 션 에 서 설 명 한 것 처 럼 매 개 변 수 지 정 문 을 앞 에 두 어 임 시 로 추 가 할 수 있 다 . 이 러 한 지 정 문 은 그 명 령 의 환 경 에 대 해 서 만 유 효 하 다 .
−k 플 래 그 가 설 정 되 어 있 으 면 ( 아 래 의 set 내 부 명 령 참 고 ) 명 령 앞 에 적 은 것 만 이 아 니 라 모 든 매 개 변 수 지 정 문 이 명 령 에 대 한 환 경 에 놓 이 게 된 다 .
bash 가 외 부 명 령 을 실 행 할 때 _ 변 수 는 명 령 의 완 전 한 경 로 명 으 로 설 정 되 고 그 명 령 의 환 경 에 전 달 된 다 .
종 료 상 태
쉘 에 있 어 종 료 상 태 값 0 인 명 령 은 성 공 으 로 간 주 한 다 . 0 이 라 는 종 료 상 태 값 은 성 공 을 뜻 한 다 . 0 이 아 닌 종 료 상 태 값 은 실 패 를 가 리 킨 다 . 심 각 한 시 그 널 을 받 아 명 령 이 종 료 하 면 bash는 종 료 상 태 값 으 로 128+시 그 널 값 을 사 용 한 다 .
명 령 을 찾 을 수 없 을 때 그 명 령 을 실 행 하 기 위 해 생 성 한 자 식 프 로 세 스 는 127 이 라 는 값 을 반 환 한 다 . 명 령 을 찾 았 으 나 실 행 파 일 이 아 는 경 우 에 는 126 을 반 환 한 다 .
bash 그 자 체 는 문 법 오 류 때 문 에 0 아 닌 값 을 반 환 하 는 경 우 가 아 니 라 면 , 실 행 한 마 지 막 명 령 의 종 료 상 태 값 을 반 환 한 다 . 뒤 에 나 오 는 exit 내 부 명 령 도 참 고 하 라 .
프 롬 프 트 (PROMPTING)
대 화 형 모 드 로 실 행 하 면 서 , bash 는 명 령 을 읽 을 준 비 가 되 어 있 을 때 주 프 롬 프 트 인 PS1 를 표 시 하 고 명 령 을 완 성 하 기 위 해 추 가 입 력 이 필 요 할 때 에 는 두 번 째 프 롬 프 트 인 PS2 를 표 시 한 다 . Bash 는 다 음 과 같 이 해 석 되 는 백 슬 래 쉬 −해 석 금 지 된 특 수 문 자 를 이 용 하 여 프 롬 프 트 를 정 의 하 여 사 용 할 수 있 도 록 해 준 다 :
\t |
현 재 시 간 을 HH:MM:SS 형 식 으 로 표 시 | ||
\d |
날 자 를 "요 일 월 일 " 형 식 으 로 표 시 (예 , "Tue May 26") | ||
\n |
개 행 문 자 | ||
\s |
쉘 의 이 름 , $0 의 베 이 스 이 름 (마 지 막 슬 래 쉬 뒷 부 분 ) | ||
\w |
현 재 작 업 디 렉 토 리 | ||
\W |
현 재 작 업 디 렉 토 리 의 베 이 스 이 름 | ||
\u |
현 재 사 용 자 의 사 용 자 명 | ||
\h |
호 스 트 이 름 | ||
\# |
이 명 령 의 명 령 번 호 | ||
\! |
이 명 령 의 히 스 토 리 번 호 | ||
\$ |
유 효 UID가 0 이 면 if the effective UID is 0, a #, 그 렇 지 않 으 면 $ | ||
\nnn |
팔 진 수 nnn에 해 당 하 는 문 자 | ||
\\ |
백 슬 래 쉬 | ||
\[ |
비 출 력 문 자 의 시 퀀 스 를 시 작 한 다 . 프 롬 프 트 에 터 미 널 제 어 시 퀀 스 를 넣 을 때 사 용 한 다 . | ||
\] |
비 출 력 문 자 의 시 퀀 스 를 마 친 다 . |
명 령 번 호 와 히 스 토 리 번 호 는 일 반 적 으 로 다 르 다 : 명 령 의 히 스 토 리 번 호 는 히 스 토 리 목 록 에 서 의 위 치 로 서 이 목 록 에 는 히 스 토 리 파 일 로 부 터 복 원 된 명 령 들 이 들 어 있 을 수 있 는 반 면 , ( 뒤 에 나 오 는 히 스 토 리 (HISTORY) 참 고 ) 명 령 번 호 는 현 재 의 쉘 세 션 동 안 실 행 한 명 령 순 서 에 서 의 위 치 이 다 . 문 자 열 을 해 독 한 후 , 매 개 변 수 확 장 , 명 령 대 체 , 연 산 확 장 , 단 어 분 리 를 통 해 확 장 한 다 .
READLINE
−nolineediting 옵 션 을 주 지 않 은 한 , 대 화 형 쉘 에 서 입 력 을 읽 기 를 처 리 해 주 는 라 이 브 러 리 이 다 . 기 본 적 으 로 행 편 집 명 령 은 이 맥 스 의 명 령 과 비 슷 하 다 . vi 스 타 일 의 행 편 집 인 터 페 이 스 도 제 공 된 다 .
이 섹 션 에 서 키 입 력 을 표 기 할 때 이 맥 스 스 타 일 의 표 기 방 법 을 사 용 한 다 . 컨 트 롤 키 는 C−키 로 표 기 한 다 . 예 를 들 어 C−n은 컨 트 롤 −N을 뜻 한 다 . 마 찬 가 지 로 , 메 타 키 는 M−키 로 표 기 하 며 따 라 서 M−x는 메 타 −X를 뜻 한 다 . ( 메 타 키 가 없 는 키 보 드 에 서 M−x는 ESC x를 뜻 한 다 . 이 스 케 이 프 키 를 누 른 다 음 x 키 를 누 른 다 . ESC는 메 타 접 두 어 이 다 . M−C−x 조 합 은 ESC−컨 트 로 −x 또 는 이 스 케 이 프 키 를 누 른 후 컨 트 롤 키 를 누 른 채 x 키 를 누 르 는 것 을 뜻 한 다 .)
기 본 키 -바 인 딩 은 ~/.inputrc 파 일 을 사 용 하 여 변 경 할 수 있 다 . 쉘 변 수 INPUTRC 이 설 정 되 어 있 으 면 그 값 을 ~/.inputrc 대 신 사 용 한 다 . 이 라 이 브 러 리 를 사 용 하 는 다 른 프 로 그 램 에 서 자 신 만 의 명 령 과 바 인 딩 을 추 가 할 수 있 다 .
예 를 들 어
M−Control−u: universal−argument
또 는
C−Meta−u: universal−argument
를 ~/.inputrc 에 적 으 면 M−C−u이 readline 명 령 인 universal−argument 을 실 행 하 게 된 다 .
다 음 의 심 볼 문 자 이 름 을 인 식 한 다 : RUBOUT, DEL, ESC, LFD, NEWLINE, RET, RETURN, SPC, SPACE, TAB. 명 령 이 름 에 덧 붙 여 , readline은 키 에 다 문 자 열 을 결 합 하 여 키 를 누 르 면 문 자 열 이 삽 입 되 도 록 해 준 다 .(매 크 로 )
readline은 초 기 화 파 일 에 명 령 을 넣 어 조 정 하 여 사 용 할 수 있 다 . 이 파 일 의 이 름 은 INPUTRC 변 수 의 값 으 로 부 터 취 한 다 . 변 수 가 unset 상 태 이 면 기 본 값 은 ~/.inputrc 이 다 . readline 라 이 브 러 리 를 사 용 하 는 프 로 그 램 이 시 동 하 면 초 기 화 파 일 을 읽 고 키 바 인 딩 과 변 수 를 설 정 한 다 . readline 초 기 화 파 일 에 서 는 몇 가 지 기 본 적 인 구 조 만 사 용 할 수 있 다 . 공 백 행 은 무 시 한 다 . #로 시 작 하 는 행 은 주 석 이 다 . $로 시 작 하 는 행 은 조 건 구 조 이 다 . 이 외 의 행 은 키 바 인 딩 또 는 변 수 설 정 을 나 타 낸 다 .
~/.inputrc 파 일 안 에 서 키 바 인 딩 을 제 어 하 는 문 법 은 간 단 하 다 . 명 령 의 이 름 또 는 결 합 되 는 매 크 로 와 키 시 퀀 스 의 텍 스 트 만 이 필 요 하 다 . 이 름 은 두 가 지 중 한 가 지 방 식 을 사 용 하 여 명 시 할 수 있 다 : Meta- 또 는 Control- 접 두 어 를 사 용 하 는 심 볼 키 이 름 또 는 키 시 퀀 스 이 다 . 키 이 름 :함 수 -이 름 또 는 매 크 로 형 식 을 사 용 할 때 , 키 이 름 이 란 영 어 로 된 키 이 름 이 다 . 예 를 들 어 :
Control-u:
universal−argument
Meta-Rubout: backward-kill-word
Control-o: ">&output"
위 예 에 서 , C-u 는 universal−argument 라 는 함 수 에 결 합 된 다 . M-DEL 은 backward−kill−word 함 수 에 결 합 되 고 , C-o 는 오 른 쪽 에 적 은 매 크 로 를 실 행 하 도 록 결 합 된 다 .(즉 , >&output 라 는 텍 스 트 를 행 에 추 가 한 다 .)
두 번 째 형 태 인 , "키 시 퀀 스 ":함 수 -이 름 또 는 매 크 로 에 서 , 키 시 퀀 스 는 전 체 키 시 퀀 스 를 더 블 쿼 우 트 안 에 넣 어 표 시 할 수 있 다 는 점 에 서 키 이 름 과 다 르 다 . 다 음 예 에 서 처 럼 일 부 GNU 이 맥 스 스 타 일 의 키 이 스 케 이 프 를 사 용 할 수 있 다 .
"\C-u":
universal−argument
"\C-x\C-r": re−read−init−file
"\e[11~": "Function Key 1"
이 예 에 서 , C-u 는 universal−argument 함 수 에 결 합 된 다 . C-x C-r 는 re−read−init−file 함 수 에 결 합 되 고 , ESC [ 1 1 ~ 는 Function Key 1 라 는 텍 스 트 를 입 력 하 도 록 결 합 된 다 . 이 스 케 이 프 시 퀀 스 는 다 음 과 같 다 :
\C− |
컨 트 롤 접 두 어 |
|||
\M- |
메 타 접 두 어 |
|||
\e |
이 스 케 이 프 문 자 |
|||
\\ |
백 슬 래 쉬 |
|||
\" |
글 자 그 대 로 의 " |
|||
\’ |
글 자 그 대 로 의 ’ |
매 크 로 텍 스 트 를 넣 을 때 에 는 매 크 로 정 의 라 는 것 을 지 시 하 기 위 해 싱 글 또 는 더 블 쿼 우 트 를 사 용 해 야 한 다 . 쿼 우 트 하 지 않 은 텍 스 트 는 함 수 이 름 이 라 고 간 주 한 다 . 백 슬 래 쉬 는 " 와 ’ 를 포 함 하 여 매 크 로 텍 스 트 안 의 모 든 문 자 를 쿼 우 트 할 수 있 다 .
Bash 에 서 는 bind 내 부 명 령 을 사 용 하 여 현 재 의 readline 키 바 인 딩 을 표 시 하 거 나 수 정 할 수 있 다 . set 내 부 명 령 에 −o 옵 션 을 주 어 대 화 형 모 드 에 서 편 집 모 드 를 전 환 할 수 있 다 . ( 쉘 내 부 명 령 참 고 )
Readline에 는 행 동 방 식 을 좀 더 변 경 할 수 있 도 록 해 주 는 변 수 가 있 다 . 이 변 수 는 inputrc 파 일 에
set 변 수 −이 름 값 의 형 식 을 갖 는 문 장 을 통 해 설 정 할 수 있 다 .
특
별 히 거 론 하 는
경 우 를 제 외 하
고 readline 변 수 는 On
또 는 Off 의 값 을
취 한 다 . 변 수 와
각 기 본 값 은 다
음 과 같 다 :
horizontal−scroll−mode (Off)
On으 로 설 정 하 면 readline은 한 줄 로 화 면 에 표 시 하 며 화 면 폭 보 다 긴 입 력 에 대 해 서 는 자 동 으 로 줄 바 꿈 하 지 않 고 수 평 방 향 으 로 스 크 롤 한 다 .
editing−mode (emacs)
readline이 emacs 와 vi와 유 사 한 키 바 인 딩 집 합 중 어 느 것 으 로 시 작 할 것 인 지 제 어 한 다 . editing−mode 모 드 는 emacs 또 는 vi 이 가 능 하 다 .
mark−modified−lines (Off)
On로 설 정 하 면 히 스 토 리 중 수 정 된 사 항 은 그 앞 에 애 스 테 리 스 크 (*)를 넣 어 표 시 한 다 .
bell−style (audible)
readline에 서 터 미 널 벨 을 울 리 고 자 할 때 어 떻 게 할 것 인 지 제 어 한 다 . none으 로 설 정 하 면 소 리 를 내 지 않 는 다 . visible로 설 정 하 면 사 용 가 능 한 경 우 비 주 얼 벨 을 사 용 한 다 . audible로 설 정 하 면 터 미 널 의 벨 기 능 을 시 도 한 다 .
comment−begin (’’#’’)
vi−comment 명 령 이 실 행 될 때 vi 모 드 에 서 삽 입 되 는 문 자 열
meta−flag (Off)
On으 로 설 정 하 면 터 미 널 의 지 원 여 부 와 상 관 없 이 8 비 트 입 력 을 가 능 케 한 다 .(즉 읽 어 들 이 는 문 자 의 상 위 비 트 를 자 르 지 않 는 다 .)
convert−meta (On)
On으 로 설 정 하 면 8 비 트 문 자 를 8 번 째 비 트 제 거 한 ASCII 키 시 퀀 스 앞 에 이 스 케 이 프 문 자 를 넣 어 변 환 한 다 .(실 제 로 메 타 접 두 어 를 이 스 케 이 프 로 사 용 한 다 .)
output−meta (Off)
On으 로 설 정 하 면 8 번 째 비 트 를 포 함 하 고 있 는 문 자 열 을 표 시 할 때 메 타 접 두 어 를 사 용 한 이 스 케 이 프 시 퀀 스 로 표 시 하 지 않 고 그 대 로 직 접 표 시 한 다 .
completion−query−items (100)
possible−completions 명 령 에 의 하 여 발 생 된 가 능 한 완 성 목 록 의 갯 수 가 몇 개 를 넘 으 면 사 용 자 에 게 물 어 볼 것 인 지 결 정 한 다 . 0 보 다 크 거 나 같 은 정 수 로 설 정 한 다 . 가 능 한 완 성 의 갯 수 가 이 변 수 의 값 보 다 크 면 사 용 자 에 게 전 체 를 볼 것 인 지 아 닌 지 묻 는 다 ; 그 렇 지 않 을 때 에 는 그 냥 터 미 널 에 나 열 한 다 .
keymap (emacs)
현 재 readline 키 맵 을 설 정 한 다 . 가 능 한 키 맵 이 름 으 로 는 emacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move, vi-command, vi-insert 가 있 다 . vi는 vi-command와 같 다 ; emacs는 emacs-standard와 같 다 . 기 본 값 은 emacs 이 다 ; editing−mode 의 값 이 또 한 기 본 키 맵 에 영 향 을 준 다 .
show−all−if−ambiguous (Off)
완 성 함 수 의 기 본 행 동 방 식 을 변 경 한 다 . on 으 로 설 정 하 면 하 나 이 상 의 완 성 이 가 능 한 단 어 에 대 하 여 소 리 를 내 지 않 고 즉 시 그 목 록 을 보 여 준 다 .
expand−tilde (Off)
on으 로 설 정 하 면 단 어 완 성 을 시 도 할 때 틸 드 확 장 을 한 다 .
Readline은 키 바 인 딩 과 변 수 설 정 을 테 스 트 의 결 과 에 따 라 수 행 하 게 해 주 는 C 전 처 리 기 의 조 건 적 컴 파 일 과 유 사 한 기 능 을 구 현 하 고 있 다 . 3 가 지 파 서 지 시 자 가 사 용 된 다 .
$if |
$if 구 조 를 사 용 하 여 편 집 모 드 , 사 용 하 고 있 는 터 미 널 , readline을 사 용 하 는 애 플 리 케 이 션 에 따 라 바 인 딩 을 다 르 게 할 수 있 다 . 테 스 트 텍 스 트 는 행 의 끝 까 지 이 다 ; 테 스 트 텍 스 트 를 다 른 것 과 구 분 하 는 문 자 는 없 다 . |
mode
$if 지 시 자 의 mode= 형 태 는 readline이 이 맥 스 모 드 인 가 vi 모 드 인 가 테 스 트 할 때 사 용 한 다 . 예 를 들 어 , set keymap 명 령 과 함 께 사 용 하 여 readline이 이 맥 스 모 드 로 시 작 했 을 때 에 만 emacs-standard의 바 인 딩 과 emacs-ctlx 키 맵 을 설 정 하 도 록 할 수 있 다 . | |||
term |
term= 형 태 는 터 미 널 의 펑 션 키 에 키 시 퀀 스 출 력 을 결 합 하 는 등 의 특 정 터 미 널 키 바 인 딩 에 서 사 용 한 다 . = 의 오 른 쪽 단 어 를 터 미 널 의 완 전 한 이 름 과 이 름 중 첫 번 째 −의 앞 부 분 과 테 스 트 한 다 . 예 를 들 어 , sun 은 sun 과 sun−cmd 둘 다 일 치 하 게 된 다 . |
application
application 구
조 는 애 플 리 케
이 션 별 설 정 을
포 함 할 때 사 용
한 다 . readline 라 이 브
러 리 를 사 용 하
는 각 프 로 그 램
은 애 플 리 케 이
션 이 름 을 설 정
하 며 초 기 화 파
일 에 서 이 특 정
값 을 테 스 트 할
수 있 다 . 특 정 프
로 그 램 에 서 유
용 한 함 수 에 키
시 퀀 스 를 결 합
하 는 데 사 용 된
다 . 예 를 들 어 , 다
음 명 령 은 bash에 서
현 재 또 는 이 전
단 어 를 쿼 우 트
하 는 키 시 퀀 스
를 추 가 한 다 :
$if Bash
# Quote the current or previous word
"\C-xq": "\eb\"\ef\""
$endif
$endif |
이 명 령 은 앞 에 서 본 것 처 럼 $if 명 령 을 종 결 한 다 . | ||
$else |
이 가 지 에 속 한 명 령 은 $if 지 시 자 의 테 스 트 에 실 패 했 을 때 실 행 된 다 . |
Readline 명 령 에 는 수 치 인 수 를 줄 수 있 는 데 일 반 적 으 로 반 복 횟 수 를 의 미 한 다 . 하 지 만 종 종 인 수 의 부 호 가 중 요 할 때 가 있 다 . 앞 방 향 으 로 동 작 하 는 명 령 (예 , kill−line) 에 음 수 인 수 를 전 달 하 면 뒷 방 향 으 로 동 작 한 다 . 전 달 한 인 수 에 따 라 명 령 의 행 동 방 식 이 바 뀌 는 것 에 대 해 서 는 언 급 한 다 .
어 떤 명 령 이 텍 스 트 를 죽 인 다 (kill)라 고 할 때 , 삭 제 된 그 텍 스 트 는 나 중 에 불 러 사 용 할 것 을 위 해 저 장 된 다 .(yanking이 라 고 부 른 다 ) 죽 인 텍 스 트 는 kill−ring이 라 는 곳 에 보 관 된 다 . 연 속 적 으 로 텍 스 트 를 죽 이 면 한 단 위 로 축 적 되 어 한 번 에 다 시 yank할 수 있 다 . 텍 스 트 를 죽 이 지 않 는 명 령 은 kill−ring에 서 텍 스 트 를 서 로 분 리 한 다 .
다 음 은 명 령 이 름 과 기 본 값 으 로 결 합 되 어 있 는 키 시 퀀 스 목 록 이 다 .
이
동 을 위 한 명 령
beginning−of−line (C−a)
현 재 행 의 처 음 으 로 이 동
end−of−line (C−e)
현 재 행 의 끝 으 로 이 동
forward−char (C−f)
한 문 자 앞 으 로 이 동
backward−char (C−b)
한 문 자 뒤 로 이 동
forward−word (M−f)
다 음 단 어 의 끝 으 로 전 진 이 동 . 단 어 는 알 파 벳 숫 자 문 자 로 구 성 된 다 . (문 자 와 숫 자 )
backward−word (M−b)
현 재 단 어 또 는 이 전 단 어 의 처 음 으 로 후 진 이 동 . 단 어 는 알 파 벳 숫 자 문 자 로 구 성 된 다 . (문 자 와 숫 자 )
clear−screen (C−l)
현 재 행 을 화 면 상 단 에 두 고 화 면 을 지 운 다 . 인 수 가 있 으 면 화 면 을 지 우 지 않 은 채 현 재 행 을 갱 신 한 다 .
redraw−current−line
현 재 행 을 갱 신 한 다 . 기 본 적 으 로 결 합 된 키 가 없 다 .
히
스 토 리 처 리 명
령
accept−line (Newline, Return)
커 서 가 어 디 에 있 든 행 을 받 아 들 인 다 . 빈 행 이 아 니 면 HISTCONTROL 변 수 의 상 태 에 따 라 히 스 토 리 목 록 에 추 가 한 다 . 만 약 히 스 토 리 행 을 수 정 한 것 이 라 면 히 스 토 리 행 을 원 래 상 태 로 복 원 한 다 .
previous−history (C−p)
히 스 토 리 목 록 에 서 뒤 로 이 동 하 여 이 전 명 령 을 가 져 온 다 .
next−history (C−n)
히 스 토 리 목 록 에 서 앞 으 로 이 동 하 여 다 음 명 령 을 가 져 온 다 .
beginning−of−history (M−<)
히 스 토 리 의 첫 번 째 행 으 로 이 동
end−of−history (M−>)
입 력 히 스 토 리 의 끝 으 로 이 동 . 즉 , 현 재 입 력 하 고 있 던 행 으 로 돌 아 옴
reverse−search−history (C−r)
현 재 행 부 터 시 작 하 여 히 스 토 리 를 올 라 가 면 서 후 방 으 로 검 색 한 다 . 누 적 검 색 이 다 .
forward−search−history (C−s)
현 재 행 부 터 시 작 하 여 히 스 토 리 를 내 려 가 면 서 전 방 으 로 검 색 한 다 . 누 적 검 색 이 다 .
non−incremental−reverse−search−history (M−p)
현 재 행 부 터 시 작 하 여 히 스 토 리 를 후 방 으 로 검 색 하 되 누 적 검 색 을 하 지 않 는 다 .
non−incremental−forward−search−history (M−n)
현 재 행 부 터 시 작 하 여 히 스 토 리 를 전 방 으 로 검 색 하 되 누 적 검 색 을 하 지 않 는 다 .
history−search−forward
현 재 행 의 시 작 부 터 현 재 점 까 지 의 문 자 열 을 히 스 토 리 에 서 전 방 으 로 검 색 한 다 . 누 적 검 색 을 하 지 않 는 다 . 기 본 적 으 로 결 합 되 어 있 지 않 다 .
history−search−backward
현 재 행 의 시 작 부 터 현 재 점 까 지 의 문 자 열 을 히 스 토 리 에 서 후 방 으 로 검 색 한 다 . 누 적 검 색 을 하 지 않 는 다 . 기 본 적 으 로 결 합 되 어 있 지 않 다 .
yank−nth−arg (M−C−y)
현 재 커 서 지 점 에 서 이 전 명 령 에 대 한 첫 번 째 인 수 를 삽 입 한 다 . (보 통 이 전 행 의 두 번 째 단 어 에 해 당 된 다 .) 인 수 n 을 적 으 면 이 전 명 령 으 로 부 터 n 번 째 단 어 를 삽 입 한 다 .(이 전 명 령 의 단 어 는 0 부 터 순 서 를 매 긴 다 ) 음 수 인 경 우 이 전 명 령 의 끝 에 서 n 번 째 단 어 를 삽 입 한 다 .
yank−last−arg (M−., M−_)
이 전 명 령 의 마 지 막 인 수 를 삽 입 한 다 .(이 전 행 의 마 지 막 단 어 ) 인 수 를 주 면 yank-nth-arg과 동 일 하 게 동 작 한 다 .
shell−expand−line (M−C−e)
쉘 이 입 력 을 받 는 동 안 하 는 것 처 럼 행 을 확 장 한 다 . 모 든 쉘 단 어 확 장 은 물 론 앨 리 어 스 , 히 스 토 리 확 장 을 수 행 한 다 . 히 스 토 리 확 장 에 대 해 서 는 뒤 에 나 오 는 히 스 토 리 확 장 을 참 고 하 라 .
history−expand−line (M−^)
현 재 행 에 대 하 여 히 스 토 리 확 장 을 수 행 한 다 . 히 스 토 리 확 장 에 대 해 서 는 뒤 에 나 오 는 히 스 토 리 확 장 을 참 고 하 라 .
insert−last−argument (M−., M−_)
yank−last−arg와 동 의 어
operate-and-get-next (C−o)
현 재 행 을 받 아 들 여 실 행 하 고 편 집 을 위 하 여 히 스 토 리 로 부 터 현 재 행 에 대 하 여 다 음 행 을 가 져 온 다 . 모 든 인 수 는 무 시 한 다 .
텍
스 트 변 경 명 령
delete−char (C−d)
커 서 아 래 있 는 문 자 를 삭 제 한 다 . 행 의 시 작 부 분 에 있 을 때 , 행 에 아 무 런 글 자 도 없 을 때 그 리 고 마 지 막 문 자 를 입 력 하 지 않 았 을 때 C−d 는 EOF 를 반 환 한 다 .
backward−delete−char (Rubout)
커 서 뒤 에 있 는 문 자 를 삭 제 한 다 . 수 치 인 수 를 주 면 kill−ring에 삭 제 한 텍 스 트 를 저 장 한 다 .
quoted−insert (C−q, C−v)
이 다 음 부 터 타 이 핑 하 는 문 자 를 행 에 있 는 그 대 로 추 가 한 다 . 예 를 들 어 , C−q와 같 은 문 자 를 삽 입 할 때 사 용 한 다 .
tab−insert (C-v TAB)
탭 문 자 를 삽 입 한 다 .
self−insert (a, b, A, 1, !, ...)
입 력 한 문 자 를 삽 입 한 다 .
transpose−chars (C−t)
입 력 점 에 앞 에 있 는 문 자 와 입 력 점 에 놓 인 문 자 를 서 로 교 환 한 다 . 입 력 점 도 앞 으 로 전 진 한 다 . 입 력 점 이 행 의 끝 에 있 으 면 입 력 점 앞 에 있 는 두 문 자 를 치 환 한 다 . 음 수 인 수 는 작 동 하 지 않 는 다 .
transpose−words (M−t)
커 서 뒤 에 있 는 단 어 를 커 서 앞 으 로 끌 어 놓 는 다 . 커 서 또 한 이 동 한 다 .
upcase−word (M−u)
현 재 (또 는 뒤 에 나 오 는 ) 단 어 를 대 문 자 화 한 다 . 음 수 인 수 를 주 면 앞 단 어 에 대 하 여 대 문 자 화 를 진 행 하 지 만 입 력 점 은 움 직 이 지 않 는 다 .
downcase−word (M−l)
현 재 (또 는 뒤 에 나 오 는 ) 단 어 를 소 문 자 화 한 다 . 음 수 인 수 를 주 면 앞 단 어 에 대 하 여 소 문 자 화 를 진 행 하 지 만 입 력 점 은 움 직 이 지 않 는 다 .
capitalize−word (M−c)
현 재 (또 는 뒤 에 나 오 는 ) 단 어 의 첫 글 자 를 대 문 자 화 한 다 . 음 수 인 수 를 주 면 앞 단 어 에 대 하 여 수 행 하 며 입 력 점 은 움 직 이 지 않 는 다 .
죽
이 기 와 붙 이 기
(Killing, Yanking)
kill−line (C−k)
현 재 커 서 위 치 로 부 터 행 끝 까 지 텍 스 트 를 죽 인 다 .
backward−kill−line (C−x C−Rubout)
현 재 커 서 위 치 로 부 터 행 의 앞 까 지 텍 스 트 를 죽 인 다 .
unix−line−discard (C−u)
현 재 입 력 점 으 로 부 터 행 의 앞 까 지 텍 스 트 를 죽 인 다 .
kill−whole−line
커 서 가 어 디 에 있 든 현 재 행 의 모 든 문 자 를 죽 인 다 . 기 본 적 으 로 결 합 되 어 있 지 않 는 다 .
kill−word (M−d)
커 서 위 치 로 부 터 현 재 단 어 의 끝 까 지 또 는 단 어 중 간 인 경 우 그 다 음 단 어 의 끝 까 지 죽 인 다 . 단 어 경 계 는 forward−word 에 서 사 용 하 는 것 과 동 일 하 다 .
backward−kill−word (M−Rubout)
커 서 뒤 의 단 어 를 죽 인 다 . 단 어 경 계 는 forward−word 에 서 사 용 하 는 것 과 동 일 하 다 .
unix−word−rubout (C−w)
화 이 트 스 페 이 스 를 단 어 경 계 로 하 여 커 서 뒤 의 단 어 를 죽 인 다 . 단 어 경 계 는 backward−kill−word에 서 와 다 르 다 .
delete−horizontal−space
입 력 점 주 변 의 모 든 스 페 이 스 와 탭 을 삭 제 한 다 . 기 본 적 으 로 키 와 결 합 되 어 있 지 않 다 .
yank (C−y)
kill ring의 상 단 에 놓 인 것 을 커 서 위 치 의 버 퍼 에 붙 인 다 .
yank−pop (M−y)
kill−ring을 순 환 시 킨 후 상 단 의 것 을 붙 인 다 . yank 또 는 yank−pop 다 음 에 만 동 작 한 다 .
수
치 인 수
digit−argument (M−0, M−1, ...,
M−−)
이 미 축 적 중 인 인 수 에 이 숫 자 를 더 하 거 나 새 로 운 인 수 를 시 작 한 다 . M−− 는 음 수 인 수 를 시 작 한 다 .
universal−argument
실 행 할 때 마 다 인 수 갯 수 에 4 를 곱 한 다 . 인 수 갯 수 는 처 음 에 1 이 다 . 따 라 서 한 번 실 행 하 면 인 수 갯 수 가 4 가 된 다 . 기 본 적 으 로 키 에 결 합 되 어 있 지 않 다 .
완
성
complete (TAB)
입 력 점 앞 의 텍 스 트 에 대 하 여 완 성 을 시 도 한 다 . Bash 는 텍 스 트 를 순 서 대 로 변 수 ($로 텍 스 트 가 시 작 하 면 ), 사 용 자 이 름 (~로 시 작 하 면 ), 호 스 트 이 름 (@로 시 작 하 면 ) 또 는 명 령 (앨 리 어 스 와 함 수 포 함 )으 로 취 급 하 여 완 성 을 시 도 한 다 . 일 치 하 는 것 이 없 을 때 에 는 파 일 이 름 완 성 을 시 도 한 다 .
possible−completions (M-?)
입 력 점 앞 의 텍 스 트 에 대 한 완 성 후 보 목 록 을 보 여 준 다 .
insert−completions
possible−completions로 만 들 어 질 수 있 는 모 든 완 성 텍 스 트 를 입 력 점 앞 에 삽 입 한 다 . 기 본 적 으 로 키 와 결 합 되 어 있 지 않 다 .
complete−filename (M−/)
입 력 점 앞 의 텍 스 트 에 대 하 여 파 일 이 름 완 성 을 시 도 한 다 .
possible−filename−completions (C−x /)
입 력 점 앞 의 텍 스 트 를 파 일 이 름 으 로 간 주 하 고 완 성 후 보 목 록 을 보 여 준 다 .
complete−username (M−~)
입 력 점 앞 의 텍 스 트 에 대 하 여 사 용 자 이 름 완 성 을 시 도 한 다 .
possible−username−completions (C−x ~)
입 력 점 앞 의 텍 스 트 를 사 용 자 이 름 으 로 간 주 하 고 완 성 후 보 목 록 을 보 여 준 다 .
complete−variable (M−$)
입 력 점 앞 의 텍 스 트 에 대 하 여 쉘 변 수 완 성 을 시 도 한 다 .
possible−variable−completions (C−x $)
입 력 점 앞 의 텍 스 트 를 쉘 변 수 로 간 주 하 고 완 성 후 보 목 록 을 보 여 준 다 .
complete−hostname (M−@)
입 력 점 앞 의 텍 스 트 에 대 하 여 호 스 트 이 름 완 성 을 시 도 한 다 .
possible−hostname−completions (C−x @)
입 력 점 앞 의 텍 스 트 를 호 스 트 이 름 으 로 간 주 하 고 완 성 후 보 목 록 을 보 여 준 다 .
complete−command (M−!)
입 력 점 앞 의 텍 스 트 에 대 하 여 명 령 완 성 을 시 도 한 다 . 명 령 완 성 은 텍 스 트 를 앨 리 어 스 , 예 약 어 , 쉘 함 수 , 내 부 명 령 , 마 지 막 으 로 실 행 파 일 이 름 순 으 로 일 치 를 시 도 한 다 .
possible−command−completions (C−x !)
입 력 점 앞 의 텍 스 트 를 명 령 이 름 으 로 간 주 하 고 완 성 후 보 목 로 을 보 여 준 다 .
dynamic−complete−history (M-TAB)
입 력 접 앞 의 텍 스 트 를 히 스 토 리 목 록 의 행 과 비 교 하 여 완 성 을 시 도 한 다 .
complete−into−braces (M−{)
파 일 이 름 완 성 을 수 행 하 고 완 성 후 보 목 록 을 쉘 에 서 사 용 할 수 있 도 록 중 괄 호 안 에 넣 는 다 . ( 앞 서 나 온 중 괄 호 확 장 을 참 고 )
키
보 드 매 크 로
start−kbd−macro (C-x ()
입 력 하 는 문 자 를 현 재 키 보 드 매 크 로 에 저 장 하 기 시 작 한 다 .
end−kbd−macro (C-x ))
현 재 키 보 드 매 크 로 에 저 장 하 기 를 멈 추 고 정 의 내 용 을 저 장 한 다 .
call−last−kbd−macro (C-x e)
최 근 에 정 의 한 키 보 드 매 크 로 를 다 시 실 행 하 여 마 치 키 보 드 로 입 력 한 것 처 럼 매 크 로 안 의 문 자 를 보 여 준 다 .
기
타
re−read−init−file (C−x
C−r)
여 러 분 의 초 기 화 파 일 내 용 을 다 시 읽 어 모 든 바 인 딩 과 변 수 지 정 을 현 재 환 경 에 추 가 한 다 .
abort (C−g)
현 재 진 행 중 인 편 집 명 령 을 중 지 하 고 터 미 널 벨 을 울 린 다 . ( bell−style 설 정 에 따 라 벨 이 울 릴 것 인 지 여 부 는 달 라 진 다 )
do−uppercase−version (M−a, M−b, ...)
해 당 하 는 대 문 자 와 결 합 된 명 령 을 실 행 한 다 .
prefix−meta (ESC)
다 음 입 력 하 는 문 자 를 메 타 화 한 다 . ESC f 는 메 타 −f 와 동 일 하 다 .
undo (C−_, C−x C−u)
각 행 에 대 하 여 기 억 된 내 용 으 로 누 증 편 집 명 령 되 돌 리 기 를 행 한 다 .
revert−line (M−r)
행 에 가 해 진 모 든 변 화 내 용 을 취 소 하 고 원 래 대 로 돌 려 놓 는 다 . 행 의 초 기 상 태 로 돌 려 놓 기 위 해 undo 명 령 을 여 러 번 실 행 한 것 과 같 다 .
tilde−expand (M−~)
현 재 단 어 에 대 한 틸 드 확 장 을 수 행 한 다 .
dump−functions
readline 출 력 스 트 림 에 모 든 함 수 와 키 바 인 딩 을 출 력 한 다 . 수 치 인 수 를 주 면 inputrc 파 일 에 넣 을 수 있 는 형 태 로 형 식 화 해 서 출 력 해 준 다 .
display−shell−version (C−x C−v)
현 재 실 행 중 인 bash 의 버 전 정 보 를 보 여 준 다 .
히 스 토 리 (HISTORY)
대 화 형 모 드 에 서 쉘 은 이 전 에 입 력 한 명 령 목 록 인 명 령 히 스 토 리 를 접 근 할 수 있 도 록 해 준 다 . 최 근 HISTSIZE 갯 수 의 명 령 텍 스 트 는 (기 본 500) 히 스 토 리 목 록 에 저 장 된 다 . 쉘 은 각 명 령 에 대 하 여 매 개 변 수 확 장 과 변 수 확 장 전 에 히 스 토 리 목 록 에 저 장 한 다 . ( 확 장 참 고 ) 그 러 나 command_oriented_history 와 HISTCONTROL 변 수 의 값 에 따 라 히 스 토 리 확 장 을 수 행 한 후 에 저 장 하 기 도 한 다 . 시 동 할 때 , 히 스 토 리 는 HISTFILE 변 수 가 가 리 키 는 파 일 로 부 터 초 기 화 된 다 . (기 본 값 ~/.bash_history). HISTFILESIZE 보 다 커 지 지 않 도 록 필 요 할 때 에 는 HISTFILE 파 일 을 잘 라 낸 다 . 내 부 명 령 fc ( 쉘 내 부 명 령 참 고 )을 사 용 하 여 히 스 토 리 를 보 거 나 일 부 명 령 을 편 집 하 여 재 실 행 할 수 있 다 . history 내 부 명 령 을 사 용 하 여 히 스 토 리 목 록 을 표 시 하 고 히 스 토 리 파 일 을 조 작 할 수 있 다 . 명 령 행 편 집 을 사 용 할 때 각 모 드 마 다 히 스 토 리 목 록 을 검 색 할 수 있 는 명 령 이 있 다 . 대 화 형 쉘 을 종 료 하 면 최 근 HISTSIZE 행 만 큼 이 히 스 토 리 목 록 으 로 부 터 HISTFILE 로 복 사 된 다 . HISTFILE 을 unset하 거 나 히 스 토 리 파 일 에 쓸 수 없 을 때 는 히 스 토 리 를 저 장 하 지 않 는 다 .
히 스 토 리 확 장 (HISTORY EXPANSION)
쉘 에 서 는 csh 의 히 스 토 리 확 장 과 유 사 한 히 스 토 리 확 장 기 능 을 지 원 한 다 . 이 섹 션 에 서 는 사 용 가 능 한 기 능 의 문 법 을 설 명 한 다 . 대 화 형 쉘 에 서 는 기 본 동 작 하 며 +H option to the set 내 부 명 령 에 +H 옵 션 을 주 어 해 제 할 수 있 다 . ( 쉘 내 부 명 령 참 고 ) 비 대 화 형 모 드 쉘 에 서 는 히 스 토 리 확 장 을 수 행 하 지 않 는 다 .
히 스 토 리 확 장 은 완 전 한 행 이 읽 히 고 쉘 이 단 어 로 분 리 하 기 전 에 즉 시 수 행 된 다 . 두 부 분 에 서 일 어 난 다 . 우 선 이 전 히 스 토 리 로 부 터 어 떤 행 을 가 져 가 치 환 에 사 용 할 것 인 지 결 정 한 다 . 두 번 째 는 현 재 행 에 포 함 시 키 기 위 해 그 행 의 일 부 분 을 선 택 한 다 . 이 전 히 스 토 리 로 부 터 선 택 된 행 을 이 벤 트 (event)라 하 며 행 동 이 취 해 질 그 행 의 일 부 분 을 단 어 (words)라 고 한 다 . 행 은 입 력 을 읽 어 들 일 때 와 같 은 방 식 으 로 단 어 로 분 리 되 며 따 라 서 몇 가 지 메 타 문 자 에 의 해 구 분 된 단 어 가 쿼 우 트 로 둘 러 싸 이 면 는 하 나 의 단 어 로 취 급 한 다 . 오 로 지 백 슬 래 쉬 (\)와 싱 글 쿼 우 트 만 이 히 스 토 리 이 스 케 이 프 문 자 를 (기 본 값 !) 쿼 우 트 할 수 있 다 .
히 스 토 리 확 장 메 커 니 즘 에 서 사 용 하 는 다 양 한 문 자 를 제 어 할 수 있 다 . ( 쉘 변 수 섹 션 에 서 histchars 설 명 참 고 )
이
벤 트 지 시 자 (Event
Designators)
이 벤 트 지 시 자
는 히 스 토 리 목
록 의 명 령 행 항
목 에 대 한 참 조
이 다 .
! |
그 뒤 에 공 백 , 개 행 문 자 , = 또 는 ( 가 나 오 는 경 우 를 제 외 하 고 히 스 토 리 치 환 을 시 작 하 도 록 한 다 . | ||
!! |
이 전 명 령 을 가 리 킨 다 . ’!−1’와 동 의 어 이 다 . | ||
!n |
n 번 명 령 행 을 가 리 킨 다 . | ||
!−n |
현 재 명 령 행 에 서 n 를 뺀 행 을 가 리 킨 다 . |
!문 자 열
문 자 열 로 시 작 하 는 가 장 최 근 명 령 을 가 리 킨 다 .
!?문 자 열 [?]
문 자 열 을 포 함 하 는 가 장 최 근 명 령 을 가 리 킨 다 .
^ 문 자 열 1 ^ 문 자 열 2 ^
빠 른 치 환 . 지 난 번 명 령 에 대 하 여 문 자 열 1 을 문 자 열 2 로 바 꾸 어 실 행 한 다 . ’’!!:s/문 자 열 1/문 자 열 2/’’와 같 다 . (변 경 자 (Modifiers) 참 고 ).
!# |
지 금 까 지 입 력 한 전 체 명 령 행 . |
단
어 지 시 자
: 는 단 어 지 시 자
로 부 터 이 벤 트
명 시 를 분 리 한
다 . 단 어 지 시 자
가 ^, $, *, % 로
시 작 할 때 에 는
생 략 할 수 있 다 .
단 어 는 행 의 처
음 부 터 시 작 하
여 세 며 첫 번 째
단 어 는 0(숫 자 영 )
으 로 나 타 낸 다 .
0 (숫 자 영 )
0 번 째 단 어 . 쉘 에 있 어 명 령 단 어 에 해 당 한 다 .
n |
n번 째 단 어 . | ||
^ |
첫 번 째 인 수 즉 단 어 1 이 다 . | ||
$ |
마 지 막 인 수 . | ||
% |
가 장 최 근 의 ’?문 자 열 ?’ 검 색 과 일 치 하 는 단 어 | ||
x−y |
단 어 의 범 위 ; ’−y’ 는 ’0−y’와 같 이 줄 여 쓴 다 . | ||
* |
0 번 째 를 제 외 한 모 든 단 어 . ’1−$’와 동 의 어 이 다 이 벤 트 에 단 어 하 나 만 있 을 때 에 도 * 를 사 용 하 는 것 은 에 러 가 아 니 다 ; 이 경 우 빈 문 자 열 이 반 환 된 다 . | ||
x* |
x−$를 줄 여 쓴 것 이 다 . | ||
x− |
x*와 같 이 x−$를 줄 여 쓴 것 이 지 만 마 지 막 단 어 를 제 외 한 다 . |
변
경 자 (Modifiers)
선 택 적 인 단 어
지 시 자 뒤 에 앞
에 ’:’를 붙 여 다
음 과 같 은 변 경
자 를 추 가 할 수
있 다 .
h |
머 리 부 분 만 남 기 도 뒷 부 분 경 로 명 부 분 을 제 거 한 다 . | ||
r |
베 이 스 이 름 만 남 기 고 .xxx 형 태 의 뒷 부 분 꼬 리 말 을 제 거 한 다 . | ||
e |
꼬 리 말 을 제 외 하 고 모 두 제 거 한 다 . | ||
t |
꼬 리 부 분 은 남 기 고 앞 에 나 오 는 모 든 경 로 명 부 분 을 제 거 한 다 . | ||
p |
새 로 운 명 령 을 출 력 하 지 만 실 행 하 지 는 않 는 다 . | ||
q |
치 환 된 단 어 를 쿼 우 트 하 여 더 이 상 치 환 이 일 어 나 지 않 도 록 해 석 금 지 시 킨 다 . | ||
x |
q 과 함 께 사 용 하 여 치 환 된 단 어 를 쿼 우 트 한 다 . 그 러 나 공 백 과 개 행 문 자 에 서 단 어 를 분 리 한 다 . |
s/예 전 것 /새 것 /
이 벤 트 행 에 서 처 음 나 오 는 예 전 것 을 새 것 으 로 교 체 한 다 . / 대 신 어 떤 분 리 자 도 사 용 가 능 하 다 . 마 지 막 분 리 자 가 이 벤 트 행 의 마 지 막 단 어 일 때 는 생 략 가 능 하 다 . 예 전 것 과 새 것 안 에 서 단 일 백 슬 래 쉬 를 사 용 하 여 분 리 자 를 쿼 우 트 할 수 있 다 . 새 것 안 에 & 이 있 으 면 그 문 자 는 예 전 것 으 로 치 환 된 다 . 단 일 백 슬 래 쉬 를 사 용 하 여 & 를 쿼 우 트 할 수 있 다 .
& |
이 전 치 환 을 반 복 한 다 . | ||
g |
변 화 내 용 을 전 체 이 벤 트 행 에 적 용 하 도 록 한 다 . ’:s’ (예 , ’:gs/예 전 것 /새 것 /’) 또 는 ’:&’와 사 용 한 다 . If used with ’:s’와 사 용 하 면 / 대 신 어 떤 분 리 자 든 사 용 할 수 있 으 며 마 지 막 분 리 자 가 이 벤 트 행 의 마 지 막 문 자 일 때 는 생 략 할 수 있 다 . |
산 술 평 가 (ARITHMETIC EVALUATION)
쉘 은 특 정 상 황 에 서 산 술 표 현 식 을 계 산 할 수 있 도 록 해 준 다 . ( let 내 부 명 령 과 연 산 확 장 참 고 ) 평 가 는 오 버 플 로 우 점 검 없 이 long 형 정 수 로 이 루 어 진 다 . 0 으 로 나 누 는 것 은 잡 아 내 어 에 러 로 표 시 한 다 . 다 음 연 산 자 목 록 은 같 은 우 선 순 위 를 갖 는 것 끼 리 모 았 다 . 나 열 한 순 위 는 내 림 차 순 이 다 .
− + |
단 일 마 이 너 스 와 플 러 스 |
|||
! ~ |
논 리 적 그 리 고 비 트 수 준 부 정 |
|||
* / % |
곱 하 기 , 나 누 기 , 나 머 지 연 산 |
|||
+ − |
더 하 기 , 빼 기 |
|||
<< >> |
왼 쪽 , 오 른 쪽 비 트 쉬 프 트 |
<= >= < >
비 교
== != |
같 다 , 같 지 않 다 |
|||
& |
비 트 수 준 AND |
|||
^ |
비 트 수 준 배 타 적 (exclusive) OR |
|||
| |
비 트 수 준 OR |
|||
&& |
논 리 적 AND |
|||
|| |
논 리 적 OR |
= *= /= %= += −= <<= >>= &= ^= |=
지 정
피 연 산 자 로 쉘 변 수 를 사 용 할 수 있 다 ; 표 현 식 을 평 가 하 기 전 에 매 개 변 수 확 장 이 수 행 된 다 . 매 개 변 수 의 갑 은 표 현 식 안 에 서 long 형 정 수 로 강 제 전 환 한 다 . 표 현 식 에 사 용 하 기 위 해 쉘 변 수 의 정 수 속 성 을 켤 필 요 는 없 다 .
0으 로 시 작 하 는 상 수 는 8 진 수 로 해 석 한 다 . 0x 또 는 0X로 시 작 하 면 16 진 수 를 뜻 한 다 . 그 외 의 경 우 에 대 해 서 는 [base#]n 형 태 로 숫 자 를 받 아 들 인 다 . 여 기 서 base는 진 법 을 나 타 내 는 2 부 터 36 사 이 의 10진 수 이 며 n는 그 진 법 안 에 서 의 숫 자 이 다 . base를 생 략 하 면 10 진 법 을 사 용 한 다 .
연 산 자 는 우 선 순 위 에 의 거 하 여 평 가 해 나 간 다 . 괄 호 안 의 서 브 표 현 식 은 먼 저 평 가 하 며 위 에 서 말 한 우 선 순 위 를 무 시 하 도 록 한 다 .
쉘 내 부 명 령 (SHELL BUILTIN COMMANDS)
: [인 수 들 ]
아 무 런 효 과 도 없 다 ; 인 수 들 을 확 장 하 고 명 시 된 리 다 이 렉 션 을 행 하 는 것 을 제 외 하 고 아 무 일 도 하 지 않 는 다 . 종 료 상 태 값 0 을 반 환 한 다 .
. 파 일
명 [인 수 들 ]
source 파 일 명 [인
수 들 ]
파 일 명 으 로 부 터 명 령 을 읽 어 현 재 쉘 환 경 안 에 서 실 행 한 다 . 파 일 명 에 서 읽 어 수 행 한 마 지 막 명 령 의 종 료 상 태 값 을 반 환 한 다 . 파 일 명 에 슬 래 쉬 가 없 으 면 PATH 변 수 에 들 어 있 는 경 로 명 을 사 용 하 여 파 일 명 을 검 색 한 다 . PATH 변 수 에 서 찾 는 파 일 이 실 행 파 일 일 필 요 는 없 다 . PATH 에 서 파 일 을 찾 을 수 없 으 면 현 재 디 렉 토 리 를 찾 는 다 . 인 수 들 을 적 으 면 파 일 을 실 행 할 때 위 치 매 개 변 수 로 사 용 한 다 . 그 렇 지 않 으 면 위 치 매 개 변 수 는 변 하 지 않 는 다 . 스 크 립 트 내 에 서 종 료 한 마 지 막 명 령 의 상 태 값 을 반 환 하 고 (아 무 명 령 도 실 행 되 지 않 았 으 면 0) 파 일 명 을 찾 을 수 없 으 면 거 짓 을 반 환 한 다 .
alias [이 름 [=값 ] ...]
아 무 런 인 수 없 이 Alias를 실 행 하 면 표 준 출 력 에 이 름 =값 의 형 식 으 로 앨 리 어 스 목 록 을 출 력 해 준 다 . 인 수 를 제 공 하 면 각 각 의 이 름 에 대 하 여 값 을 앨 리 어 스 로 정 의 한 다 . 값 뒤 에 스 페 이 스 를 두 면 앨 리 어 스 확 장 시 그 다 음 단 어 에 대 해 서 도 앨 리 어 스 확 장 이 가 능 한 지 점 검 하 도 록 할 수 있 다 . 인 수 목 록 에 서 값 을 주 지 않 은 이 름 에 대 해 서 는 앨 리 어 스 의 이 름 과 값 을 출 력 한 다 . 주 어 진 이 름 에 대 한 앨 리 어 스 가 정 의 되 어 있 지 않 은 경 우 가 아 니 라 면 참 값 을 반 환 한 다 .
bg [작 업 명 세 ]
& 를 붙 여 실 행 한 것 처 럼 작 업 명 세 가 가 리 키 는 작 업 을 백 그 라 운 드 로 보 낸 다 . 작 업 명 세 가 없 으 면 현 재 작 업 에 해 당 하 는 작 업 이 사 용 된 다 . bg 작 업 명 세 는 작 업 제 어 가 불 가 능 한 상 태 에 서 실 행 하 거 나 , 작 업 제 어 는 가 능 하 지 만 작 업 명 세 를 찾 을 수 없 거 나 작 업 제 어 없 이 시 작 한 경 우 를 제 외 하 고 0 을 반 환 한 다 .
bind [−m
키 맵 ] [−lvd] [-q
이 름 ]
bind [−m 키 맵 ]
-f 파 일 명
bind [−m 키 맵 ]
키 시 퀀 스 :함
수 이 름
readline 의
현 재 키 , 함 수 바
인 딩 을 표 시 하
거 나 readline 함 수 나
매 크 로 에 키 시
퀀 스 를 결 합 한
다 . 바 인 딩 문 법
은 .inputrc 의 문 법 과
같 지 만 각 바 인
딩 을 개 별 적 인
인 수 로 전 달 해
야 한 다 ; 예 를 들
어 , ’"\C-x\C-r":
re−read−init−file’. 옵
션 을 적 는 경 우
에 는 다 음 과 같
은 의 미 를 가 진
다 :
−m 키 맵
뒤 이 어 나 오 는 바 인 딩 에 의 해 영 향 을 받 는 키 맵 으 로 키 맵 을 사 용 한 다 . 가 능 하 키 맵 이 름 으 로 는 emacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move, vi-command, 그 리 고 vi-insert 이 있 다 . vi는 vi-command와 같 다 ; emacs는 emacs-standard와 같 다 .
−l |
모 든 readline 함 수 의 이 름 을 나 열 한 다 . | ||
−v |
현 재 함 수 이 름 과 바 인 딩 을 나 열 한 다 . | ||
−d |
다 시 읽 을 수 있 는 형 태 로 함 수 이 름 과 바 인 딩 을 덤 프 한 다 . |
−f 파 일 명
filename으 로 부 터 키 바 인 딩 을 읽 는 다 .
−q 함 수
함 수 를 실 행 시 키 는 키 에 대 하 여 알 아 본 다 .
알 수 없 는 옵 션 이 주 어 졌 거 나 에 러 가 발 생 한 경 우 가 아 닐 때 에 는 0 이 반 환 된 다 .
break [n]
for, while, until 루 프 안 에 서 탈 출 한 다 . n을 명 시 하 면 n 레 벨 을 탈 출 한 다 . n 은 ≥ 1 여 야 한 다 . n 이 둘 러 싸 고 있 는 루 프 의 갯 수 보 다 크 면 모 든 루 프 를 탈 출 한 다 . break 이 실 행 될 때 루 프 를 실 행 중 이 아 닌 경 우 를 제 외 하 고 0 을 반 환 한 다 .
builtin 쉘 −내 부 명 령 [인 수 들 ]
명 시 한 쉘 내 부 명 령 에 인 수 들 을 주 어 실 행 하 고 종 료 상 태 값 을 반 환 한 다 . 쉘 내 부 명 령 과 같 은 이 름 의 함 수 를 정 의 하 고 그 함 수 안 에 서 내 부 명 령 의 기 능 을 활 용 하 고 자 할 때 유 용 하 다 . 보 통 cd 내 부 명 령 을 이 런 식 으 로 재 정 의 하 곤 한 다 . 쉘 −내 부 명 령 이 쉘 내 부 명 령 이 아 닐 때 거 짓 을 반 환 한 다 .
cd [디 렉 토 리 ]
현 재 디 렉 토 리 를 디 렉 토 리 로 변 경 한 다 . HOME 변 수 값 이 기 본 디 렉 토 리 값 이 다 . CDPATH 변 수 는 디 렉 토 리 를 포 함 하 는 디 렉 토 리 에 대 한 검 색 경 로 를 정 의 한 다 . 서 로 다 른 디 렉 토 리 는 콜 론 (:)으 로 구 분 한 다 . CDPATH 에 널 디 렉 토 리 이 름 을 넣 으 면 현 재 디 렉 토 리 즉 ’’.’’와 같 다 . 디 렉 토 리 가 슬 래 쉬 (/)로 시 작 하 면 CDPATH 는 사 용 되 지 않 는 다 . 전 달 인 수 로 − 를 사 용 하 면 $OLDPWD 와 같 다 . 성 공 적 으 로 디 렉 토 리 를 변 경 하 면 참 , 그 렇 지 않 으 면 거 짓 을 반 환 한 다 .
command [-pVv] 명 령 [인 수 ...]
보 통 의 쉘 함 수 찾 아 보 기 를 하 지 않 고 명 령 을 인 수 와 함 께 실 행 한 다 . 내 부 명 령 또 는 PATH 에 서 찾 을 수 있 는 명 령 만 을 실 행 한 다 . are executed. If the −p 옵 션 을 주 면 PATH 의 기 본 값 을 사 용 하 여 명 령 에 대 한 검 색 을 하 므 로 표 준 유 틸 리 티 를 찾 을 수 있 도 록 보 장 해 준 다 . −V 또 는 −v 옵 션 을 주 면 명 령 에 대 한 설 명 을 출 력 한 다 . −v 옵 션 은 명 령 을 호 출 할 때 사 용 할 명 령 또 는 경 로 명 을 가 리 키 는 간 단 한 단 어 를 출 력 한 다 ; −V 옵 션 은 좀 더 자 세 한 설 명 을 출 력 한 다 . −− 를 전 달 인 수 로 적 으 면 나 머 지 인 수 에 대 한 옵 션 점 검 을 하 지 않 는 다 . −V 또 는 −v 옵 션 을 주 었 을 때 종 료 상 태 값 은 명 령 이 발 견 되 면 0, 그 렇 지 않 으 면 1 이 된 다 . 두 옵 션 모 두 없 고 에 러 가 발 생 하 거 나 명 령 을 찾 을 수 없 으 면 종 료 상 태 값 은 127 이 된 다 . 그 렇 지 않 을 때 command 내 부 명 령 의 종 료 상 태 값 은 명 령 의 종 료 상 태 값 이 다 .
continue [n]
둘 러 싸 고 있 는 for, while, until 루 프 의 다 음 순 차 작 업 을 재 개 한 다 . n 을 명 시 하 면 , n 번 째 루 프 를 재 개 한 다 . n 은 ≥ 1 여 야 한 다 . n 이 둘 러 싸 고 있 는 루 프 갯 수 보 다 크 면 가 장 바 깥 쪽 의 루 프 (’최 상 위 레 벨 ’ 루 프 )를 재 개 한 다 . continue 명 령 을 실 행 할 때 쉘 이 루 프 를 실 행 하 고 있 지 않 은 경 우 가 아 니 라 면 반 환 값 은 0 이 다 .
declare
[−frxi] [이 름
[=값 ]]
typeset [−frxi] [이 름
[=값 ]]
변 수 를 선 언 하 거 나 변 수 에 속 성 을 부 여 한 다 . 아 무 런 이 름 도 주 어 지 지 않 았 을 때 에 는 변 수 의 값 을 표 시 한 다 . 옵 션 을 사 용 하 여 특 정 속 성 의 변 수 에 대 해 서 만 출 력 하 도 록 제 한 할 수 있 다 .
−f |
함 수 이 름 만 사 용 | ||
−r |
이 름 을 읽 기 전 용 으 로 만 든 다 . 그 뒤 에 는 지 정 문 을 사 용 하 여 값 을 지 정 할 수 없 다 . | ||
−x |
이 름 을 그 뒤 에 나 오 는 명 령 에 게 환 경 을 통 해 export하 도 록 한 다 . | ||
−i |
변 수 를 정 수 처 럼 취 급 한 다 ; 변 수 에 값 을 지 정 하 면 산 술 평 가 ( 산 술 평 가 참 고 )를 수 행 한 다 . |
이 옵 션 을 끄 려 면 ’−’ 대 신 ’+’를 사 용 한 다 . 함 수 안 에 서 사 용 하 면 local 명 령 처 럼 이 름 을 지 역 적 으 로 만 든 다 . 잘 못 된 옵 션 을 만 났 다 든 지 , "-f foo=bar"를 사 용 하 여 함 수 를 정 의 하 려 고 시 도 했 다 든 지 , 이 름 이 적 접 한 쉘 변 수 이 름 이 아 니 라 든 지 , 읽 기 전 용 변 수 의 읽 기 전 용 상 태 를 해 제 하 려 한 다 든 지 , 또 는 -f 를 가 지 고 존 재 하 지 않 은 함 수 를 표 시 하 려 한 경 우 가 아 니 라 면 반 환 값 은 0 이 다 .
dirs [-l] [+/−n]
현 재 까 지 기 억 하 고 있 는 디 렉 토 리 목 록 을 표 시 한 다 . 디 렉 토 리 를 목 록 에 추 가 할 때 에 는 pushd 명 령 을 사 용 한 다 ; popd 명 령 은 목 록 으 로 부 터 최 근 디 렉 토 리 를 꺼 내 고 그 디 렉 토 리 로 이 동 하 도 록 한 다 .
+n |
옵 션 은 아 무 옵 션 없 이 dirs 를 실 행 했 을 때 보 이 는 목 록 의 왼 쪽 부 터 세 어 n번 째 항 목 을 보 여 준 다 . 0 부 터 시 작 한 다 . | ||
−n |
옵 션 은 아 무 옵 션 없 이 dirs 를 실 행 했 을 때 보 이 는 목 록 의 오 른 쪽 부 터 세 어 n번 째 항 목 을 보 여 준 다 . 0 부 터 시 작 한 다 . | ||
−l |
긴 목 록 을 만 들 어 보 여 준 다 ; 기 본 목 록 나 열 형 식 에 서 는 홈 디 렉 토 리 를 나 타 낼 때 틸 드 를 사 용 한 다 . |
틀 린 옵 션 을 주 거 나 n 이 디 렉 토 리 스 택 범 위 를 넘 어 서 는 경 우 가 아 니 라 면 반 환 값 은 0 이 된 다 .
echo [−neE] [인 수 ...]
스 페 이 스 로 구 분 되 어 있 는 인 수 들 을 출 력 한 다 . 반 환 값 은 항 상 0 이 다 . −n을 명 시 하 면 마 지 막 의 개 행 문 자 를 출 력 하 지 않 는 다 . −e 옵 션 을 주 면 백 슬 래 쉬 이 스 케 이 프 문 자 를 해 석 할 수 있 도 록 해 준 다 . −E 옵 션 은 시 스 템 에 서 기 본 적 으 로 이 스 케 이 프 문 자 를 해 석 하 는 상 황 이 라 할 지 라 도 이 스 케 이 프 문 자 를 해 석 하 지 않 도 록 지 시 한 다 .
\a |
경 고 (벨 ) |
|||
\b |
백 스 페 이 스 |
|||
\c |
마 지 막 개 행 문 자 를 생 략 함 |
|||
\f |
폼 피 드 |
|||
\n |
개 행 문 자 |
|||
\r |
캐 리 지 리 턴 |
|||
\t |
수 평 탭 |
|||
\v |
수 직 탭 |
|||
\\ |
백 슬 래 쉬 |
|||
\nnn |
ASCII 코 드 가 nnn (8진 수 )인 문 자 |
enable [−n] [−all] [이 름 ...]
쉘 내 부 명 령 을 켜 거 나 큰 다 . 이 기 능 을 사 용 하 면 쉘 내 부 명 령 과 같 은 이 름 을 갖 는 디 스 크 명 령 에 대 하 여 완 전 한 경 로 명 을 적 지 않 고 도 실 행 할 수 있 다 . −n을 사 용 하 면 각 이 름 의 사 용 을 끈 다 ; 그 렇 지 않 으 면 이 름 의 사 용 을 켠 다 . 예 를 들 어 , 쉘 내 부 명 령 버 전 대 신 PATH 에 서 찾 을 수 있 는 test 바 이 너 리 를 사 용 하 려 면 ’’enable -n test’’ 라 고 실 행 한 다 . 인 수 가 없 으 면 사 용 가 능 한 모 든 쉘 내 부 명 령 목 록 을 출 력 한 다 . −n만 주 면 사 용 불 능 상 태 의 내 부 명 령 목 록 을 출 력 한 다 . −all만 주 면 모 두 내 부 명 령 에 대 하 여 가 능 , 불 가 능 여 부 를 표 시 하 여 출 력 해 준 다 . enable 명 령 은 −all 대 신 −a 도 받 아 들 인 다 . 이 름 이 쉘 내 부 명 령 이 아 닌 경 우 를 제 외 하 고 반 환 값 은 0 이 다 .
eval [인 수 ...]
모 든 인 수 를 읽 어 하 나 의 명 령 으 로 결 합 한 다 . 그 다 음 이 명 령 을 읽 어 쉘 에 서 실 행 하 고 종 료 상 태 값 을 eval 명 령 의 반 환 값 으 로 돌 려 준 다 . 인 수 가 하 나 도 없 거 나 널 인 수 이 면 eval 은 참 을 반 환 한 다 .
exec [[−] 명 령 [인 수 ]]
명 령 을 명 시 하 면 그 명 령 으 로 쉘 프 로 세 스 를 교 체 한 다 . 새 로 운 프 로 세 스 는 만 들 어 지 지 않 는 다 . 인 수 는 명 령 의 인 수 가 된 다 . 첫 번 째 인 수 가 − 이 면 쉘 은 명 령 에 전 달 하 는 0 번 째 인 수 에 대 쉬 를 넣 는 다 . 이 과 정 은 로 그 인 이 하 는 일 과 같 다 . 어 떤 이 유 에 서 든 파 일 을 실 행 할 수 없 으 면 쉘 변 수 no_exit_on_failed_exec가 존 재 하 여 거 짓 을 반 환 하 는 경 우 를 제 외 하 고 비 대 화 형 쉘 은 종 료 한 다 . 파 일 을 실 행 할 수 없 을 때 대 화 형 쉘 은 거 짓 을 반 환 한 다 . 명 령 을 명 시 하 지 않 으 면 현 재 쉘 에 서 리 다 이 렉 션 만 효 력 을 발 휘 하 고 반 환 값 은 0 이 된 다 .
exit [n]
상 태 값 n을 가 지 고 쉘 을 종 료 한 다 . n 을 생 략 하 면 실 행 한 마 지 막 명 령 의 종 료 상 태 값 을 갖 는 다 . 쉘 을 종 료 하 기 전 에 EXIT 에 대 한 트 랩 (trap) 루 틴 이 실 행 된 다 .
export
[−nf] [이 름 [=단
어 ]] ...
export −p
나 열 한 이 름 을 그 다 음 에 나 오 는 명 령 들 의 환 경 에 자 동 적 으 로 export되 도 록 기 억 해 둔 다 . −f 옵 션 을 주 면 이 름 은 함 수 를 가 리 킨 다 . 아 무 런 이 름 도 적 지 않 거 나 또 는 −p 옵 션 을 주 면 쉘 에 서 export되 는 모 든 이 름 목 록 을 출 력 한 다 . −n 옵 션 은 주 어 진 이 름 의 변 수 로 부 터 export 속 성 을 제 거 하 도 록 한 다 . −− 인 수 를 주 면 그 나 머 지 인 수 에 대 한 옵 션 점 검 을 하 지 않 도 록 한 다 . 잘 못 된 옵 션 을 만 나 거 나 이 름 이 적 법 한 쉘 변 수 이 름 이 아 니 거 나 또 는 함 수 가 아 닌 이 름 에 대 하 여 −f 옵 션 을 준 경 우 가 아 니 라 면 export 는 종 료 상 태 값 0 을 반 환 한 다 .
fc [−e
편 집 기 이 름 ]
[−nlr] [처 음 ] [마
지 막 ]
fc −s [패 턴 =치
환 텍 스 트 ] [명
령 ]
명 령 을 수 정 한 다 . 첫 번 째 형 식 에 서 , 명 령 의 범 위 는 처 음 부 터 마 지 막 범 위 에 있 는 명 령 을 히 스 토 리 목 록 에 서 선 택 한 다 . 처 음 과 마 지 막 은 문 자 열 (그 문 자 열 로 시 작 하 는 최 근 명 령 을 찾 고 자 할 때 ) 또 는 숫 자 (히 스 토 리 목 록 의 인 덱 스 로 사 용 하 며 음 수 일 때 에 는 현 재 명 령 번 호 로 부 터 떨 어 진 만 큼 을 뜻 한 다 )로 명 시 할 수 있 다 . 마 지 막 을 명 시 하 지 않 으 면 현 재 명 령 으 로 설 정 되 고 (따 라 서 fc −l −10 은 최 근 10 개 의 명 령 을 출 력 하 게 된 다 ) 그 렇 지 않 으 면 처 음 까 지 출 력 한 다 . If 처 음 을 명 시 하 지 않 으 면 편 집 을 위 해 이 전 명 령 으 로 설 정 하 고 표 시 를 위 해 −16 을 설 정 한 다 .
−n 플 래 그 를 적 으 면 나 열 할 때 명 령 번 호 가 나 타 나 지 않 게 한 다 . −r 플 래 그 는 명 령 의 표 시 순 서 를 반 대 로 한 다 . −l 플 래 그 가 있 으 면 명 령 을 표 준 출 력 에 나 열 한 다 . 그 렇 지 않 을 때 에 는 편 집 기 이 름 이 가 리 키 는 편 집 기 에 서 이 명 령 들 을 포 함 하 는 파 일 을 열 면 서 시 작 한 다 . 편 집 기 이 름 이 없 으 면 FCEDIT 변 수 의 값 을 사 용 하 며 FCEDIT 가 설 정 되 어 있 지 않 을 때 에 는 EDITOR 값 을 사 용 한 다 . 둘 다 설 정 되 어 있 지 않 으 면 vi 를 사 용 한 다 . 편 집 을 마 친 후 에 는 편 집 한 명 령 들 이 화 면 에 표 시 되 고 실 행 된 다 .
두 번 째 형 태 에 서 , 명 령 은 패 턴 이 치 환 텍 스 트 로 교 체 된 후 에 다 시 실 행 된 다 . 유 용 한 앨 리 어 스 로 는 ’’r=fc −s’’가 있 다 . 앨 리 어 스 적 용 후 ’’r cc’’ 라 고 치 면 ’’cc’’로 시 작 하 는 최 근 명 령 을 실 행 하 고 ’’r’’이 라 고 치 면 마 지 막 명 령 을 다 시 실 행 하 게 된 다 .
첫 번 째 형 태 를 사 용 하 면 잘 못 된 옵 션 이 있 거 나 처 음 또 는 마 지 막 이 히 스 토 리 행 범 위 를 벗 어 나 지 만 않 으 면 반 환 값 0 을 갖 는 다 . −e 옵 션 을 주 면 마 지 막 실 행 명 령 의 값 이 반 환 값 이 되 거 나 명 령 의 임 시 파 일 에 서 오 류 가 발 생 하 는 경 우 실 패 값 을 가 진 다 . 두 번 째 형 태 를 사 용 하 면 명 령 이 유 효 한 히 스 토 리 행 을 가 리 키 지 못 하 여 fc 가 실 패 를 반 환 하 는 경 우 가 아 니 라 면 재 실 행 한 명 령 의 반 환 값 을 반 환 값 으 로 사 용 한 다 .
fg [작 업 스 펙 ]
작 업 스 펙 이 가 리 키 는 바 를 포 그 라 운 드 에 놓 고 현 재 작 업 이 되 도 록 한 다 . 작 업 스 펙 이 존 재 하 지 않 으 면 쉘 에 서 현 재 작 업 이 라 고 부 르 는 것 을 사 용 한 다 . 반 환 값 은 포 그 라 운 드 에 놓 인 명 령 의 반 환 값 이 거 나 작 업 제 어 불 가 능 상 태 에 서 실 행 된 경 우 에 는 실 패 이 다 . 그 리 고 작 업 제 어 가 능 한 상 태 에 서 도 작 업 스 펙 이 유 효 한 작 업 을 가 리 키 지 않 거 나 작 업 스 펙 이 작 업 제 어 없 이 실 행 된 작 업 을 가 리 킬 때 에 도 실 패 이 다 .
getopts 옵 션 문 자 열 이 름 [인 수 ]
getopts 는 위 치 매 개 변 수 를 파 싱 하 기 위 해 사 용 하 는 쉘 프 로 시 져 이 다 . 옵 션 문 자 열 은 인 식 하 고 자 하 는 옵 션 문 자 를 포 함 한 다 ; 문 자 뒤 에 콜 론 이 오 면 옵 션 다 음 에 화 이 트 스 페 이 스 로 분 리 된 인 수 가 온 다 는 뜻 이 다 . 매 번 실 행 될 때 마 다 , getopts 는 다 음 옵 션 을 쉘 변 수 이 름 에 넣 는 다 . 이 름 이 존 재 하 지 않 을 때 에 는 초 기 화 한 다 . 그 리 고 처 리 할 다 음 인 수 의 인 덱 스 는 OPTIND 변 수 에 넣 는 다 . OPTIND 는 쉘 또 는 쉘 스 크 립 트 가 실 행 될 때 마 다 1 로 초 기 화 된 다 . 옵 션 에 서 인 수 를 필 요 로 할 때 에 는 getopts 에 서 그 인 수 를 OPTARG 변 수 에 넣 는 다 . 쉘 이 자 동 으 로 OPTIND 변 수 를 재 설 정 하 지 는 않 는 다 ;같 은 쉘 실 행 상 태 에 서 새 로 운 매 개 변 수 집 합 을 사 용 하 려 면 getopts 를 부 를 때 마 다 수 동 으 로 재 설 정 해 주 어 야 한 다 .
getopts 는 두 가 지 방 식 으 로 오 류 를 보 고 할 수 있 다 . 옵 션 문 자 열 의 첫 번 째 문 자 가 콜 론 이 면 조 용 한 오 류 보 고 가 사 용 된 다 . 정 상 동 작 상 태 에 서 는 잘 못 된 옵 션 또 는 누 락 된 인 수 의 경 우 증 상 을 설 명 하 는 메 시 지 가 출 력 된 다 . OPTERR 변 수 를 0 으 로 설 정 하 면 옵 션 문 자 열 의 첫 번 째 문 자 가 콜 론 이 아 니 라 하 더 라 도 오 류 메 시 지 를 출 력 하 지 않 는 다 .
잘 못 된 옵 션 을 만 나 면 , getopts 는 이 름 에 ? 를 넣 고 조 용 하 게 보 고 하 는 상 태 가 아 닌 경 우 , 오 류 메 시 지 를 출 력 하 고 OPTARG 를 unset 한 다 . getopts 이 조 용 한 모 드 에 있 는 경 우 찾 아 낸 옵 션 문 자 를 OPTARG 에 넣 고 증 상 설 명 메 시 지 를 출 력 하 지 않 는 다 .
필 요 한 인 수 를 찾 을 수 없 으 며 getopts 가 조 용 한 모 드 에 있 지 않 을 때 에 는 물 음 표 를 (?) 이 름 에 넣 고 OPTARG 를 unset 하 며 증 상 설 명 메 시 지 를 출 력 한 다 . getopts 가 조 용 한 모 드 에 있 으 면 콜 론 을 (:) 이 름 에 넣 고 OPTARG 을 찾 아 낸 옵 션 문 자 로 설 정 한 다 .
getopts 는 보 통 위 치 매 개 변 수 를 파 싱 하 지 만 인 수 부 분 에 더 많 은 인 수 를 주 면 getopts 는 대 신 그 인 수 를 파 싱 한 다 . getopts 는 명 시 한 것 이 든 명 시 하 지 않 은 것 이 든 옵 션 을 찾 으 면 참 을 반 환 한 다 . 옵 션 의 끝 이 거 나 에 러 가 발 생 하 면 거 짓 을 반 환 한 다 .
hash [−r] [이 름 ]
각 이 름 에 대 하 여 , 그 이 름 이 가 리 키 는 명 령 의 완 전 한 경 로 명 을 결 정 하 여 기 억 해 둔 다 . −r 옵 션 을 주 면 기 억 해 둔 위 치 를 모 두 잊 도 록 지 시 한 다 . 아 무 런 인 수 도 적 지 않 으 면 기 억 해 둔 명 령 에 대 한 정 보 를 출 력 한 다 . −− 라 는 인 수 를 주 면 그 뒤 에 있 는 인 수 에 점 검 을 하 지 않 도 록 지 시 한 다 . 이 름 이 없 거 나 잘 못 된 옵 션 이 주 어 진 경 우 가 아 닌 경 우 에 는 참 을 반 환 한 다 .
help [패 턴 ]
내 부 명 령 에 대 한 도 움 말 을 출 력 한 다 . 패 턴 을 적 으 면 , help 는 패 턴 과 일 치 하 는 모 든 명 령 에 대 하 여 자 세 한 도 움 말 을 준 다 ; 패 턴 을 적 지 않 으 면 모 든 내 부 명 령 목 록 을 출 력 한 다 . 패 턴 과 일 치 하 는 명 령 이 없 는 경 우 를 제 외 하 고 반 환 값 은 0 이 다 .
history [n]
history −rwan [filename]
옵 션 이 없 으 면 , 행 번 호 와 함 께 명 령 히 스 토 리 목 록 을 표 시 한 다 . * 표 시 가 있 는 행 은 수 정 한 적 이 있 다 는 뜻 이 다 . n 인 수 를 주 면 최 근 n 행 만 을 표 시 한 다 . 옵 션 이 아 닌 인 수 를 적 으 면 , 히 스 토 리 파 일 이 름 으 로 간 주 한 다 ;없 으 면 HISTFILE 변 수 의 값 을 사 용 한 다 . 옵 션 이 있 는 경 우 다 음 과 같 은 뜻 을 갖 는 다 :
−a |
히 스 토 리 파 일 에 ’’새 로 운 ’’ 히 스 토 리 행 (현 재 bash 세 션 의 시 작 부 터 입 력 한 히 스 토 리 행 )을 추 가 한 다 . | ||
−n |
히 스 토 리 파 일 로 부 터 현 재 히 스 토 리 목 록 으 로 아 직 읽 어 들 이 지 않 는 히 스 토 리 행 을 읽 어 들 인 다 . 현 재 bash 세 션 시 작 부 터 히 스 토 리 파 일 에 추 가 한 행 을 말 한 다 . | ||
−r |
히 스 토 리 파 일 의 내 용 을 읽 어 현 재 히 스 토 리 로 사 용 한 다 . | ||
−w |
현 재 히 스 토 리 를 히 스 토 리 파 일 의 기 존 내 용 에 덮 어 쓴 다 . |
옵 션 을 잘 못 적 거 나 히 스 토 리 파 일 을 읽 거 나 쓰 는 도 중 오 류 가 발 생 한 경 우 를 제 외 하 고 반 환 값 은 0 이 다 .
jobs [−lnp]
[ 작 업 스 펙 ... ]
jobs −x 명 령 [ 인
수 ... ]
첫 번 째 형 태 는 활 동 중 인 작 업 을 나 열 한 다 . −l 옵 션 을 더 하 면 일 반 적 인 정 보 에 프 로 세 스 ID까 지 더 하 여 나 열 하 도 록 한 다 ; −p 옵 션 은 작 업 의 프 로 세 스 그 룹 리 더 의 프 로 세 스 ID만 나 열 하 도 록 한 다 . −n 옵 션 은 지 난 번 통 보 이 후 상 태 변 화 를 일 으 킨 작 업 만 표 시 하 도 록 한 다 . 작 업 스 펙 을 적 으 면 , 작 업 스 펙 에 맞 는 작 업 에 대 한 정 보 만 으 로 출 력 을 제 한 한 다 . 잘 못 된 옵 션 을 적 거 나 잘 못 된 작 업 스 펙 을 적 은 경 우 가 아 니 라 면 반 환 값 은 0 이 다 .
−x 옵 션 을 붙 이 면 , jobs 명 령 은 명 령 또 는 인 수 안 에 서 작 업 스 펙 을 발 견 할 때 마 다 해 당 프 로 세 스 그 룹 ID로 치 환 하 고 명 령 에 인 수 를 주 어 실 행 하 고 그 종 료 상 태 값 을 반 환 한 다 .
kill [-s 시
그 널 스 펙 | −시
그 널 스 펙 ] [pid |
작 업 스 펙 ] ...
kill −l [시 그 널 번
호 ]
pid 또 는 작 업 스 펙 이 가 리 키 는 프 로 세 스 에 게 시 그 널 스 펙 이 가 리 키 는 시 그 널 을 보 낸 다 . 시 그 널 스 펙 은 SIGKILL 과 같 은 시 그 널 이 름 또 는 시 그 널 번 호 이 다 . 시 그 널 스 펙 이 시 그 널 이 름 인 경 우 , 대 소 문 자 는 구 별 하 지 않 으 며 SIG 라 는 접 두 어 를 써 도 되 고 쓰 지 않 아 도 된 다 . 시 그 널 스 펙 이 없 으 면 , SIGTERM 이 라 고 가 정 한 다 . −l 인 수 를 적 으 면 시 그 널 이 름 을 나 열 해 준 다 . −l 이 있 을 때 에 는 어 떤 인 수 가 있 으 면 , 특 정 시 그 널 의 이 름 을 나 열 하 고 반 환 값 은 0 이 다 . −− 인 수 를 주 면 그 후 나 머 지 인 수 에 대 한 옵 션 점 검 을 하 지 않 도 록 강 제 한 다 . kill 최 소 한 한 개 의 시 그 널 을 성 공 적 으 로 전 송 했 으 면 참 을 반 환 한 다 . 오 류 가 발 생 하 거 나 잘 못 된 옵 션 을 만 나 면 거 짓 을 반 환 한 다 .
let 인 수 [인 수 ...]
각 각 의 인 수 는 계 산 한 수 치 표 현 식 이 다 .( 산 술 평 가 참 고 ). 마 지 막 인 수 를 평 가 하 여 그 결 과 가 0 이 면 , let 은 1 을 반 환 한 다 ; 나 머 지 경 우 에 는 0 을 반 환 한 다 .
local [이 름 [=값 ] ...]
각 인 수 에 대 하 여 이 름 이 라 는 지 역 변 수 를 만 들 고 값 을 할 당 한 다 . local 을 함 수 안 에 서 사 용 하 면 , 이 름 변 수 의 가 시 범 위 (scope)를 그 함 수 와 자 식 함 수 로 제 한 한 다 . 피 연 산 자 가 없 으 면 , local 은 지 역 변 수 목 록 을 표 준 출 력 으 로 출 력 한 다 . local 를 함 수 안 에 서 사 용 하 지 않 는 것 은 오 류 이 다 . local 을 함 수 외 부 에 서 사 용 했 거 나 잘 못 된 이 름 을 적 은 경 우 가 아 니 라 면 반 환 상 태 값 은 0 이 다 .
logout |
로 그 인 쉘 을 마 친 다 . |
popd [+/−n]
디 렉 토 리 스 택 에 서 항 목 을 제 거 한 다 . 인 수 가 없 으 면 스 택 의 최 상 위 디 렉 토 리 를 제 거 하 고 그 새 로 운 상 위 디 렉 토 리 로 cd 한 다 .
+n |
dirs 명 령 결 과 보 이 는 목 록 의 왼 쪽 부 터 세 기 시 작 하 여 n번 째 항 목 을 제 거 한 다 . 0 부 터 센 다 . 예 를 들 어 , ’’popd +0’’는 첫 번 째 디 렉 토 리 를 , ’’popd +1’’는 두 번 째 디 렉 토 리 를 제 거 한 다 . | ||
−n |
dirs 명 령 결 과 보 이 는 목 록 의 오 른 쪽 부 터 세 기 시 작 하 여 n번 째 항 목 을 제 거 한 다 . 0 부 터 센 다 . 예 를 들 어 , ’’popd -0’’는 맨 마 지 막 디 렉 토 리 를 , ’’popd -1’’는 맨 마 지 막 바 로 전 디 렉 토 리 를 제 거 한 다 . |
popd 명 령 이 성 공 적 이 면 , dirs 명 령 도 실 행 하 며 반 환 상 태 값 은 0 이 다 . popd 는 잘 못 된 옵 션 을 적 거 나 , 디 렉 토 리 스 택 이 비 어 있 거 나 , 존 재 하 지 않 는 디 렉 토 리 스 택 항 목 을 명 시 하 거 나 디 렉 토 리 이 동 이 실 패 할 경 우 거 짓 을 반 환 한 다 .
pushd [디
렉 토 리 ]
pushd +/−n
디 렉 토 리 를 디 렉 토 리 스 택 의 맨 위 에 추 가 하 거 나 , 스 택 을 회 전 시 켜 스 택 의 최 상 위 항 목 을 현 재 작 업 디 렉 토 리 로 만 든 다 . 인 수 가 없 으 면 , 최 상 위 두 디 렉 토 리 를 교 환 한 다 . 디 렉 토 리 스 택 이 비 어 있 지 않 으 면 0을 반 환 한 다 .
+n |
n번 째 디 렉 토 리 ( dirs 명 령 이 보 여 주 는 목 록 의 맨 왼 쪽 부 터 센 다 ) 이 맨 위 에 놓 이 도 록 스 택 을 회 전 시 킨 다 . ) | ||
−n |
n번 째 디 렉 토 리 (오 른 쪽 부 터 센 다 )가 맨 위 에 놓 이 도 록 스 택 을 회 전 시 킨 다 . |
디 렉 토 리
디 렉 토 리 를 디 렉 토 리 스 택 맨 위 에 추 가 하 여 새 로 운 작 업 디 렉 토 리 가 되 도 록 한 다 .
pushd 명 령 이 성 공 적 이 면 , dirs 명 령 도 수 행 한 다 . 첫 번 째 형 식 을 사 용 하 면 , pushd 는 디 렉 토 리 로 cd 하 는 것 을 실 패 하 지 않 는 한 , 0 을 반 환 한 다 . 두 번 째 형 식 을 사 용 하 면 , pushd 는 디 렉 토 리 스 택 이 비 어 있 거 나 , 존 재 하 지 않 는 디 렉 토 리 스 택 항 목 을 선 택 하 거 나 , 지 정 한 새 현 재 디 렉 토 리 로 이 동 하 는 데 실 패 한 경 우 가 아 니 면 0을 반 환 한 다 .
pwd |
현 재 디 레 토 리 의 절 대 경 로 명 을 출 력 한 다 . set 내 부 명 령 의 −P 옵 션 이 설 정 되 어 있 으 면 경 로 명 에 심 볼 릭 링 크 를 포 함 하 지 않 는 다 . ( 쉘 변 수 섹 션 에 서 nolinks 에 대 한 설 명 을 참 고 하 라 .) above). 현 재 디 렉 토 리 의 경 로 명 을 읽 는 도 중 오 류 가 발 생 하 지 않 았 다 면 결 과 반 환 값 은 0이 다 . |
read [−r] [이 름 ...]
표 준 입 력 으 로 부 터 한 줄 을 읽 어 들 여 그 첫 번 째 단 어 를 첫 번 째 이 름 에 할 당 하 고 두 번 째 단 어 를 두 번 째 이 름 에 할 당 하 고 나 머 지 남 은 단 어 들 을 마 지 막 이 름 에 할 당 한 다 . IFS 에 있 는 단 어 만 을 단 어 구 분 자 로 인 식 한 다 . 아 무 런 이 름 도 적 지 않 으 면 읽 어 들 인 행 을 REPLY 변 수 에 할 당 한 다 . 파 일 끝 문 자 를 만 난 경 우 를 제 외 하 고 반 환 값 은 0 이 다 . −r 옵 션 을 주 면 백 슬 래 쉬 -개 행 문 자 쌍 을 무 시 하 지 않 고 백 슬 래 쉬 를 행 의 일 부 로 인 식 한 다 .
readonly
[−f] [이 름 ...]
readonly -p
주 어 진 이 름 들 을 읽 기 전 용 으 로 표 기 하 고 다 음 에 나 올 대 입 문 에 의 해 이 름 들 의 값 이 바 뀌 지 않 도 록 해 준 다 . −f 옵 션 을 더 하 면 , 이 름 에 해 당 하 는 함 수 를 읽 기 전 용 으 로 표 기 한 다 . 아 무 런 인 수 도 없 거 나 −p 옵 션 을 주 어 져 있 는 경 우 에 는 , 모 든 읽 기 전 용 변 수 목 록 을 출 력 한 다 . −− 인 수 는 나 머 지 인 수 에 대 한 점 검 을 하 지 않 도 록 지 시 한 다 . 잘 못 된 옵 션 이 있 거 나 이 름 들 중 하 나 라 도 적 접 한 쉘 변 수 이 름 이 아 닌 경 우 또 는 −f 다 음 에 나 온 이 름 이 함 수 가 아 닌 경 우 를 제 외 하 고 는 반 환 상 태 값 이 0 이 다 .
return [n]
함 수 를 상 태 반 환 값 n 을 갖 고 종 료 하 도 록 한 다 . n 을 생 략 하 면 함 수 몸 체 안 에 서 실 행 한 마 지 막 명 령 의 반 환 상 태 값 을 사 용 한 다 . 함 수 밖 에 서 사 용 했 지 만 . (source) 명 령 으 로 실 행 한 스 크 립 트 에 서 사 용 하 면 , 쉘 은 그 스 크 립 트 실 행 을 멈 추 고 n 또 는 스 크 립 트 에 서 실 행 한 마 지 막 명 령 의 종 료 상 태 값 을 스 크 립 트 의 종 료 상 태 값 으 로 반 환 한 다 . 함 수 밖 에 서 사 용 했 으 며 .\[uB85C] 실 행 한 스 크 립 트 가 아 니 라 면 반 환 상 태 값 은 거 짓 이 된 다 .
set [−−abefhkmnptuvxldCHP] [-o 옵 션 ] [인 수 ...]
−a |
뒤 이 어 나 올 명 령 의 환 경 으 로 export하 기 위 해 수 정 또 는 생 성 할 변 수 를 자 동 으 로 표 기 한 다 . | ||
−b |
종 료 한 백 그 라 운 드 작 업 의 상 태 를 다 음 번 주 프 롬 프 트 전 에 보 여 주 는 것 이 아 니 라 즉 시 보 여 주 도 록 한 다 . ( 쉘 변 수 섹 션 에 서 notify 참 고 ) | ||
−e |
간 단 한 -명 령 ( 쉘 문 법 참 고 )이 0 아 닌 상 태 값 을 갖 고 종 료 하 면 즉 시 종 료 한 다 . 만 약 실 패 한 명 령 이 until 또 는 while 루 프 의 일 부 , if 문 의 일 부 , && 의 일 부 , or ⎪⎪ 목 록 의 일 부 이 거 나 또 는 명 령 의 반 환 값 이 ! 으 로 반 전 되 면 종 료 하 지 않 는 다 . | ||
−f |
경 로 명 확 장 을 하 지 않 는 다 . | ||
−h |
함 수 를 정 의 할 때 함 수 명 령 을 찾 아 기 억 해 둔 다 . 함 수 를 실 행 할 때 함 수 명 령 을 정 상 적 으 로 찾 아 본 다 . | ||
−k |
명 령 이 름 앞 에 적 은 것 뿐 아 니 라 , 모 든 키 워 드 인 수 를 명 령 의 환 경 에 둔 다 . | ||
−m |
모 니 터 (감 시 ) 모 드 . 작 업 제 어 를 사 용 한 다 . 지 원 하 는 시 스 템 에 서 실 행 하 는 대 화 형 쉘 에 대 해 서 는 이 플 래 그 가 자 동 으 로 켜 진 다 . ( 작 업 제 어 참 고 ). 백 그 라 운 드 작 업 은 별 도 의 프 로 세 스 그 룹 안 에 서 실 행 되 며 실 행 을 완 료 하 면 종 료 상 태 값 을 포 함 하 는 행 을 출 력 한 다 . | ||
−n |
명 령 을 읽 지 만 실 행 하 지 는 않 는 다 . 쉘 스 크 립 트 문 법 오 류 를 점 검 할 때 사 용 할 수 있 다 . 대 화 형 쉘 에 서 는 무 시 한 다 . |
−o 옵 션 -이 름
옵 션 -이
름 은 다 음 중 한
가 지 이 다 :
allexport
−a 와 같 다 .
braceexpand
쉘 이 중 괄 호 확 장 을 행 한 다 . ( 앞 서 나 온 중 괄 호 확 장 참 고 ) 선 택 하 지 않 아 도 기 본 값 이 다 .
emacs |
이 맥 스 스 타 일 의 명 령 행 편 집 인 터 페 이 스 를 사 용 한 다 . 쉘 을 시 작 할 때 −nolineediting 옵 션 을 붙 이 지 않 은 한 , 쉘 이 대 화 형 모 드 일 때 의 기 본 값 이 다 . | ||
errexit |
−e와 같 다 . |
histexpand
−H와 같 다 .
ignoreeof
마 치 쉘 명 령 ’IGNOREEOF=10’을 실 행 한 것 과 같 은 효 과 를 발 휘 한 다 . (앞 서 나 온 쉘 변 수 참 고 ).
interactive−comments
어 떤 단 어 를 # 로 시 작 하 면 그 단 어 와 그 뒤 의 모 든 문 자 를 대 화 형 쉘 에 서 무 시 하 도 록 한 다 . (앞 서 나 온 주 석 참 고 ).
monitor |
−m와 같 다 . |
noclobber
−C와 같 다 .
noexec |
−n와 같 다 . |
|||
noglob |
−f와 같 다 . |
|||
nohash |
−d와 같 다 . |
|||
notify |
−b와 같 다 . |
|||
nounset |
−u와 같 다 . |
physical
−P와 같 다 .
posix |
POSIX 1003.2 표 준 과 기 본 적 으 로 다 른 bash의 행 동 방 식 을 POSIX 표 준 을 따 르 도 록 만 든 다 . |
privileged
−p와 같 다 .
verbose |
−v와 같 다 . | ||
vi |
vi 스 타 일 의 명 령 행 편 집 인 터 페 이 스 를 사 용 한 다 . | ||
xtrace |
−x와 같 다 . |
옵 션 -이 름 을 적 지 않 으 면 현 재 옵 션 값 을 출 력 한 다 .
−p |
privileged 모 드 를 켠 다 . 이 모 드 에 서 는 $ENV 파 일 을 처 리 하 지 않 으 며 , 쉘 함 수 를 환 경 으 로 부 터 상 속 하 지 않 는 다 . 유 효 사 용 자 (그 룹 ) ID와 실 제 사 용 자 (그 룹 ) ID가 일 치 하 지 않 으 면 시 동 할 때 자 동 으 로 작 동 한 다 . 이 옵 션 을 끄 면 유 효 사 용 자 , 그 룹 ID를 실 제 사 용 자 , 그 룹 ID로 설 정 한 다 . | ||
−t |
명 령 하 나 를 읽 어 실 행 한 후 종 료 한 다 . | ||
−u |
매 개 변 수 확 장 시 설 정 되 어 있 지 않 은 변 수 를 오 류 로 간 주 한 다 . 미 설 정 변 수 에 대 한 확 장 을 시 도 하 면 , 쉘 은 에 러 메 시 지 를 출 력 하 고 대 화 형 모 드 가 아 니 면 0 아 닌 상 태 를 갖 고 종 료 한 다 . | ||
−v |
쉘 에 서 행 입 력 을 받 을 때 마 다 그 입 력 행 을 출 력 한 다 . | ||
−x |
각 각 의 간 단 한 -명 령 을 확 장 한 후 , bash PS4, 의 확 장 값 을 표 시 하 고 명 령 과 확 장 된 인 수 를 표 시 한 다 . | ||
−l |
for 이 름 [in 단 어 ] 명 령 의 이 름 바 인 딩 을 저 장 하 고 복 원 한 다 . (앞 서 나 온 쉘 문 법 참 고 ). | ||
−d |
실 행 하 기 위 해 참 조 하 는 명 령 해 쉬 를 사 용 하 지 않 는 다 . 보 통 명 령 을 해 쉬 테 이 블 에 기 억 해 두 고 일 단 발 견 하 면 다 시 는 참 조 할 필 요 없 다 . | ||
−C |
쉘 명 령 ’noclobber=’을 실 행 한 것 과 같 은 효 력 을 발 휘 한 다 . (앞 서 나 온 쉘 변 수 참 고 ). | ||
−H |
! 스 타 일 의 히 스 토 리 치 환 을 사 용 한 다 . 쉘 이 대 화 형 모 드 이 면 기 본 으 로 켜 지 는 플 래 그 이 다 . | ||
−P |
설 정 하 면 , 현 재 디 렉 토 리 를 변 경 하 는 cd 와 같 은 명 령 실 행 중 심 볼 릭 링 크 를 따 르 지 않 는 다 . 대 신 물 리 적 인 디 렉 토 리 를 사 용 한 다 . | ||
−− |
이 플 래 그 뒤 에 아 무 런 인 수 도 나 오 지 않 으 면 위 치 매 개 변 수 를 unset한 다 . 만 약 나 오 면 , − 로 시 작 하 는 것 이 있 다 할 지 라 도 위 치 매 개 변 수 를 인 수 로 설 정 한 다 . | ||
− |
옵 션 의 끝 을 나 타 내 며 , 그 뒤 에 나 오 는 모 든 인 수 들 을 위 치 매 개 변 수 로 설 정 한 다 . −x 와 −v 옵 션 이 꺼 진 다 . 만 약 아 무 런 인 수 도 없 다 면 , 위 치 매 개 변 수 는 그 대 로 이 다 . |
다 른 식 으 로 언 급 하 지 않 는 한 , 이 플 래 그 는 기 본 적 으 로 꺼 져 있 다 . − 대 신 + 를 사 용 하 면 플 래 그 를 끈 다 . 쉘 을 실 행 할 때 옵 션 으 로 적 을 수 있 다 . 현 재 플 래 그 상 태 는 $− 를 보 면 알 수 있 다 . 옵 션 인 수 를 처 리 한 후 , 나 머 지 n 개 의 인 수 는 위 매 개 변 수 의 값 으 로 간 주 하 고 차 례 대 로 $1, $2, ... $n 에 할 당 한 다 . 아 무 런 옵 션 도 없 고 인 수 도 없 으 면 모 든 쉘 변 수 를 출 력 한 다 . 잘 못 된 옵 션 이 없 는 한 , 반 환 상 태 값 은 항 상 참 이 다 .
shift [n]
n+1 부 터 의 위 치 매 개 변 수 이 름 을 $1 .... 로 변 경 한 다 . $#부 터 $#−n+1까 지 의 매 개 변 수 는 unset된 다 . n 이 0 이 면 , 매 개 변 수 의 변 화 는 없 다 . n 이 주 어 지 지 않 으 면 1 로 간 주 한 다 . n 은 $#보 다 작 거 나 같 은 음 수 아 닌 숫 자 여 야 한 다 . n 이 $#보 다 크 면 , 위 치 매 개 변 수 의 변 화 는 없 다 . n 이 $# 보 다 크 거 나 0 보 다 작 으 면 반 환 상 태 값 은 0 보 다 크 다 ; 그 렇 지 않 으 면 0 이 다 .
suspend [−f]
SIGCONT 시 그 널 을 받 을 때 까 지 쉘 의 실 행 을 정 지 시 킨 다 . −f 옵 션 은 로 그 인 쉘 이 라 할 지 라 도 불 평 메 시 지 를 출 력 하 지 않 도 록 한 다 ; 어 찌 되 었 든 일 시 정 지 한 다 . 쉘 이 로 그 인 쉘 이 면 서 도 −f 이 없 거 나 또 는 작 업 제 어 기 능 이 작 동 중 인 상 태 가 아 니 면 반 환 상 태 값 은 0 이 된 다 .
test 표
현 식
[ 표 현 식 ]
조 건 표
현 식 을 평 가 하
여 0 (참 ) 또 는 1 (거
짓 )을 상 태 값 으
로 반 환 한 다 . 표
현 식 은 일 항 또
는 이 항 표 현 식
일 수 있 다 . 일 항
표 현 식 은 주 로
파 일 의 상 태 를
점 검 할 때 사 용
한 다 . 문 자 열 연
산 자 와 수 치 비
교 연 산 자 도 있
다 . 각 연 산 자 와
피 연 산 자 는 개
별 적 인 인 수 형
태 를 띠 어 야 한
다 . 파 일 이
/dev/fd/n의 형 태 일 때
에 는 , 파 일 기 술
자 n를 점 검 한
다 .
−b 파 일
파 일 이 존 재 하 고 블 럭 특 수 파 일 이 면 참 .
−c 파 일
파 일 이 존 재 하 고 문 자 특 수 파 일 이 면 참 .
−d 파 일
파 일 이 존 재 하 고 디 렉 토 리 이 면 참 .
−e 파 일
파 일 이 존 재 하 면 참 .
−f 파 일
파 일 이 존 재 하 고 일 반 파 일 이 면 참 .
−g 파 일
파 일 이 존 재 하 고 set-group-id이 면 참 .
−k 파 일
파 일 에 ’’스 틱 키 (sticky)’’ 비 트 가 설 정 되 어 있 으 면 참 .
−L f파 일
파 일 이 존 재 하 고 심 볼 릭 링 크 이 면 참 .
−p 파 일
파 일 이 존 재 하 고 명 명 된 (named) 파 이 프 이 면 참 .
−r 파 일
파 일 이 존 재 하 고 읽 을 수 있 으 면 참 .
−s 파 일
파 일 이 존 재 하 고 그 크 기 가 0 보 다 크 면 참 .
−S 파 일
파 일 이 존 재 하 고 소 켓 이 면 참 .
−t fd |
fd (파 일 기 술 자 )가 열 린 상 태 이 고 터 미 널 이 면 참 . |
−u 파 일
파 일 이 존 재 하 고 set-user-id 비 트 가 설 정 되 어 있 으 면 참 .
−w 파 일
파 일 이 존 재 하 고 쓸 수 있 으 면 참 .
−x 파 일
파 일 이 존 재 하 고 실 행 가 능 하 면 참 .
−O 파 일
파 일 이 존 재 하 고 유 효 (effective) 사 용 자 ID의 소 유 이 면 참 .
−G 파 일
파 일 이 존 재 하 고 유 효 그 룹 ID의 소 유 이 면 참 .
파 일 1 −nt 파 일 2
파 일 1이 (수 정 일 시 에 의 거 하 여 ) 파 일 2보 다 새 로 운 파 일 이 면 참 .
파 일 1 −ot 파 일 2
파 일 1이 파 일 2보 다 오 래 된 파 일 이 면 참 .
파 일 1 −ef 파 일 2
파 일 1과 파 일 2가 같 은 장 치 이 며 아 이 노 드 번 호 가 같 으 면 참 .
−z 문 자 열
문 자 열 의 길 이 가 0이 면 참 .
−n 문 자 열
문 자 열 |
문 자 열 의 길 이 가 0이 아 니 면 참 . |
문 자 열 1 = 문 자 열 2
두 문 자 열 이 같 으 면 참 .
문 자 열 1 != 문 자 열 2
두 문 자 열 이 같 지 않 으 면 참 .
! 표 현 식
표 현 식 이 거 짓 이 면 참 .
표 현 식 1 −a 표 현 식 2
표 현 식 1 과 표 현 식 2 둘 다 참 이 면 참 .
표 현 식 1 −o 표 현 식 2
표 현 식 1 또 는 표 현 식 2 둘 중 하 나 가 참 이 면 참 .
인 수 1 연 산 자 인 수 2
연 산 자 는 −eq, −ne, −lt, −le, −gt, 또 는 −ge 중 하 나 이 다 . 위 와 같 은 수 치 이 항 연 산 자 는 각 각 인 수 1이 인 수 2와 같 거 나 , 같 지 않 거 나 , 작 거 나 , 작 거 나 같 거 나 , 크 거 나 , 크 거 나 같 을 때 에 참 이 다 . 인 수 1 과 인 수 2 는 양 의 정 수 , 음 의 정 수 또 는 −l 문 자 열 과 같 이 문 자 열 의 길 이 로 평 가 되 는 특 별 한 표 현 식 이 될 수 있 다 .
times |
쉘 과 쉘 로 부 터 실 행 한 프 로 세 스 들 에 대 하 여 사 용 자 영 역 에 서 의 소 모 시 간 , 시 스 템 영 역 에 서 의 소 모 시 간 을 출 력 한 다 . 반 환 값 은 0 이 다 . |
trap [−l] [인 수 ] [시 그 널 스 펙 ]
쉘 이 시 그 널 스 펙 이 가 리 키 고 있 는 시 그 널 을 받 으 면 인 수 로 주 어 진 명 령 을 읽 어 실 행 하 도 록 한 다 . 인 수 가 없 거 나 − 이 면 , 제 시 한 모 든 시 그 널 에 대 하 여 원 래 의 값 으 로 돌 아 간 다 . (즉 쉘 을 시 작 했 을 때 의 값 ) 인 수 가 널 문 자 열 이 면 쉘 과 쉘 이 실 행 한 명 령 이 그 시 그 널 을 무 시 해 버 린 다 . 시 그 널 스 펙 은 <signal.h>에 정 의 되 어 있 으 면 시 그 널 이 름 이 거 나 , 시 그 널 번 호 이 다 . 시 그 널 스 펙 이 EXIT (0) 이 면 인 수 로 주 어 진 명 령 을 쉘 종 료 시 에 실 행 한 다 . 아 무 런 인 수 도 없 으 면 , trap 은 각 시 그 널 번 호 와 연 관 된 명 령 목 록 을 출 력 한 다 . −l 옵 션 을 주 면 시 그 널 이 름 과 해 당 하 는 번 호 목 록 을 출 력 한 다 . −− 인 수 는 그 뒤 에 나 오 는 인 수 에 대 한 옵 션 점 검 을 하 지 않 도 록 한 다 . 쉘 을 시 작 할 때 무 시 한 시 그 널 에 대 해 서 는 가 로 채 거 나 재 설 정 할 수 없 다 . 가 로 챈 시 그 널 은 자 식 프 로 세 스 가 새 롭 게 생 성 될 때 원 래 의 값 으 로 재 설 정 된 다 . 가 로 채 기 이 름 또 는 번 호 가 유 효 하 지 않 으 면 거 짓 이 고 그 렇 지 않 으 면 trap 은 참 을 반 환 한 다 .
type [−all] [−type | −path] 이 름 [이 름 ...]
옵 션 없 이 사 용 하 면 , 이 름 이 명 령 이 름 으 로 사 용 하 였 을 때 어 떻 게 해 석 할 것 인 지 알 려 준 다 . −type 플 래 그 를 사 용 하 면 , type 은 이 름 이 각 각 앨 리 어 스 , 쉘 의 예 약 된 단 어 , 함 수 , 내 부 함 수 , 또 는 디 스 크 파 일 일 때 , alias, keyword, function, builtin, 그 리 고 file 중 하 나 를 출 력 한 다 . 이 름 을 찾 을 수 없 으 면 아 무 것 도 출 력 하 지 않 고 반 환 값 은 거 짓 이 된 다 . −path 플 래 그 를 사 용 하 면 , type 은 이 름 이 명 령 이 름 으 로 사 용 되 었 을 때 실 행 될 디 스 크 파 일 이 름 을 반 환 하 거 나 , −type 이 file 을 반 환 하 지 않 을 때 에 는 아 무 것 도 반 환 하 지 않 는 다 . 명 령 이 해 쉬 된 상 태 이 면 , −path 는 PATH 상 에 서 처 음 으 로 나 오 는 파 일 이 아 니 라 해 쉬 값 을 반 환 할 것 이 다 . −all 플 래 그 를 사 용 하 면 , type 은 이 름 이 라 는 이 름 을 포 함 하 는 실 행 파 일 이 포 함 된 모 든 장 소 를 포 함 한 다 . −path 플 래 그 를 함 께 사 용 하 지 않 을 때 에 만 , 앨 리 어 스 와 함 수 를 포 함 한 다 . −all 을 사 용 할 때 에 는 해 쉬 명 령 테 이 블 을 참 조 하 지 않 는 다 . type 은 −all, −type, 과 −path 대 신 각 각 −a, −t, 과 −p 를 받 아 들 인 다 . −− 인 수 는 그 뒤 에 나 오 는 인 수 에 대 한 옵 션 점 검 을 하 지 않 도 록 한 다 . type 은 인 수 를 발 견 했 을 때 에 만 참 을 반 환 하 고 발 견 하 지 못 했 을 때 에 는 거 짓 을 반 환 한 다 .
ulimit [−SHacdfmstpnuv [제 한 ]]
Ulimit 은 제 한 기 능 을 지 원 하 는 시 스 템 상 에 서 쉘 과 쉘 이 실 행 한 프 로 세 스 에 대 하 여 사 용 자 우 너 을 제 한 할 수 있 도 록 해 준 다 . 제 한 값 은 각 자 원 에 대 한 단 위 값 이 거 나 unlimited 라 는 값 을 가 질 수 있 다 . H와 S 옵 션 은 주 어 진 자 원 에 대 한 하 드 (hard) 또 는 소 프 트 (soft) 설 정 을 명 시 한 다 . 하 드 제 한 은 일 단 설 정 되 면 더 이 상 늘 릴 수 없 다 ; 한 편 소 프 트 제 한 은 하 드 제 한 값 까 지 늘 릴 수 도 있 다 . H 와 S 중 아 무 것 도 명 시 되 어 있 지 않 으 면 소 프 트 제 한 이 라 고 간 주 한 다 . 제 한 을 생 략 하 면 H 옵 션 이 없 는 한 , 자 원 의 현 재 소 프 트 제 한 값 을 출 력 한 다 . 여 러 개 의 자 원 을 명 시 했 다 면 값 앞 에 제 한 이 름 과 단 위 를 출 력 해 준 다 . 기 타 다 른 옵 션 은 다 음 과 같 이 해 석 한 다 :
−a |
모 든 현 재 제 한 사 항 을 보 고 한 다 . | ||
−c |
코 어 파 일 의 최 대 크 기 | ||
−d |
프 로 세 스 의 데 이 터 세 그 먼 트 의 최 대 크 기 | ||
−f |
쉘 이 만 들 수 있 는 파 일 의 최 대 크 기 | ||
−m |
상 주 설 정 (resident size) 최 대 크 기 | ||
−s |
최 대 스 택 크 기 | ||
−t |
초 단 위 의 최 대 CPU 시 간 | ||
−p |
512 바 이 트 블 럭 단 위 로 파 이 프 의 크 기 (설 정 가 능 하 지 않 을 수 있 음 ) | ||
−n |
열 수 있 는 파 일 기 술 자 의 최 대 크 기 (대 부 분 의 시 스 템 에 서 는 설 정 을 허 용 하 지 않 고 오 로 지 출 력 만 한 다 .) | ||
−u |
단 일 사 용 자 에 게 허 용 하 는 프 로 세 스 최 대 갯 수 | ||
−v |
쉘 에 허 용 하 는 가 상 메 모 리 의 최 대 량 |
−− 인 수 는 그 뒤 에 나 오 는 인 수 에 대 한 옵 션 점 검 을 금 지 한 다 . 제 한 이 주 어 지 면 , 명 시 한 자 원 에 대 한 새 로 운 값 이 된 다 .( −a 옵 션 은 표 시 할 때 만 사 용 한 다 .) 아 무 런 옵 션 도 없 으 면 −f 로 간 주 한 다 . 값 은 초 단 위 의 −t, 512 바 이 트 의 블 럭 단 위 인 −p, 그 리 고 단 위 가 없 는 −n 과 −u 를 제 외 하 고 , 1024 바 이 트 단 위 로 생 각 한 다 . 잘 못 된 옵 션 이 있 거 나 , 제 한 값 에 unlimited 이 외 의 수 치 아 닌 인 수 를 적 거 나 또 는 새 로 운 제 한 을 설 정 하 는 데 오 류 가 발 생 한 경 우 를 제 외 하 고 반 환 상 태 값 은 0 이 다 .
umask [−S] [모 드 ]
사 용 자 파 일 생 성 매 스 크 를 모 드 로 설 정 한 다 . 모 드 가 숫 자 로 시 작 하 면 8 진 수 로 해 석 한 다 . 그 렇 지 않 으 면 chmod(1) 와 비 슷 한 심 볼 릭 매 스 크 로 해 석 한 다 . 모 드 를 생 략 하 거 나 , −S 옵 션 을 적 으 면 , 현 재 의 매 스 크 값 을 출 력 한 다 . −S 옵 션 은 매 스 크 값 을 심 볼 릭 형 태 로 출 력 하 도 록 한 다 ; 기 본 출 력 형 태 는 8 진 수 이 다 . −− 인 수 는 뒤 에 나 오 는 인 수 에 대 한 옵 션 점 검 을 금 지 시 킨 다 . 모 드 를 성 공 적 으 로 변 경 하 거 나 아 무 런 모 드 값 도 적 지 않 으 면 반 환 상 태 값 은 0 이 고 그 나 머 지 경 우 에 대 해 서 는 거 짓 이 다 .
unalias [−a] [이 름 ...]
정 의 된 앨 리 어 스 목 록 에 서 이 름 을 제 거 한 다 . −a 를 적 으 면 모 든 앨 리 어 스 정 의 를 제 거 한 다 . 적 은 이 름 이 정 의 되 어 있 는 앨 리 어 스 가 아 닌 경 우 를 제 외 하 고 반 환 값 은 참 이 다 .
unset [−fv] [이 름 ...]
각 각 의 이 름 에 대 하 여 , 해 당 하 는 변 수 를 제 거 하 거 나 , −f 옵 션 의 경 우 함 수 를 제 거 한 다 . −− 인 수 는 뒤 에 나 오 는 인 수 에 대 한 옵 션 점 검 을 금 지 시 킨 다 . PATH, IFS, PPID, PS1, PS2, UID, 그 리 고 EUID 는 unset할 수 없 다 . RANDOM, SECONDS, LINENO, 또 는 HISTCMD 중 하 나 를 unset하 면 , 그 값 은 나 중 에 다 시 설 정 한 다 할 지 라 도 고 유 의 특 성 을 잃 게 된 다 . 이 름 이 존 재 하 지 않 거 나 unset할 수 없 는 것 이 아 닌 한 , 종 료 상 태 값 은 참 이 다 .
wait [n]
특 정 프 로 세 스 를 기 다 리 다 가 종 료 값 을 반 환 한 다 . n 은 프 로 세 스 ID이 거 나 작 업 스 펙 이 다 ; 작 업 스 펙 이 면 그 작 업 의 파 이 프 라 인 에 존 재 하 는 모 든 프 로 세 스 를 기 다 린 다 . n 을 적 지 않 으 면 , 현 재 활 성 중 인 모 든 프 로 세 스 를 기 다 리 며 반 환 값 은 0 이 다 . n 이 존 재 하 지 않 는 프 로 세 스 또 는 작 업 을 가 리 키 는 경 우 반 환 상 태 값 은 127 이 다 . 그 렇 지 않 으 면 , 반 환 값 은 기 다 렸 던 마 지 막 프 로 세 스 또 는 작 업 의 종 료 상 태 값 이 된 다 .
호 출 (INVOCATION)
로 그 인 쉘 이 란 0 번 째 인 수 의 첫 번 째 문 자 가 − 이 거 나 플 래 그 를 주 어 시 작 한 쉘 이 다 .
대 화 형 (interactive) 쉘 이 라 면 쉘 의 표 준 입 력 과 표 준 출 력 둘 다 터 미 널 에 연 결 되 어 있 는 쉘 (그 여 부 는 isatty(3) 를 통 해 판 단 한 다 .) 또 는 −i 옵 션 을 주 어 시 작 한 쉘 이 다 . bash 가 대 화 형 모 드 일 때 에 는 쉘 스 크 립 트 나 시 동 파 일 에 서 두 가 지 상 태 를 판 단 할 수 있 도 록 PS1 를 설 정 하 고 $− 에 i 를 포 함 한 다 .
로
그 인 쉘 :
로 그 인 할 때
(−noprofile 옵 션 에 따
라 달 라 진 다 ):
만 약 /etc/profile이 있
으 면 , 그 것 을 소
스 (source)한 다 .
만
약 ~/.bash_profile이 있 으
면 소 스 한 다 .
그 렇 지 않 고
~/.bash_login이 존 재 하
면 그 것 을 소 스
한 다 .
그 렇 지 않 고
~/.profile이 존 재 하
면 그 것 을 소 스
한 다 .
종
료 할 때 :
만 약 ~/.bash_logout이 존
재 하 면 소 스 한
다 .
로
그 인 이 아 닌 대
화 형 쉘 :
시 동 할 때
(−norc와 −rcfile 옵
션 에 따 라 달 라
진 다 ):
만 약 ~/.bashrc이 존 재
하 면 소 스 한 다 .
대
화 형 쉘 이 아 닌
쉘 :
시 동 할 때 :
if the environment variable ENV is non-null,
expand
만 약 환 경 변 수 ENV가 널 이 아 니 면 , 확 장 한 뒤 , 가 리 키 는 | ||
파 일 을 소 스 한 다 . 마 치 다 음 과 같 은 루 틴 이 라 고 보 면 된 다 . |
if [ "$ENV" ]; then . $ENV; fi
그 러 나 경 로 명 에 탐 색 을 위 해 서 는 PATH를 사 용 하 지 않 는 다 . | |
POSIX 모 드 로 시 동 하 지 않 았 다 면 , bash는 ENV를 찾 기 전 에 |
BASH_ENV를 찾 는 다 .
bash를 sh 라 는 이 름 으 로 호 출 하 면 , 가 능 한 최 대 한 sh 의 행 동 방 식 을 흉 내 내 려 한 다 . 로 그 인 쉘 의 경 우 , /etc/profile 와 ~/.profile, 만 을 순 서 대 로 소 스 한 다 . −noprofile 옵 션 을 주 면 이 런 행 동 방 식 을 방 지 할 수 있 다 . sh 라 는 이 름 으 로 호 출 할 쉘 은 기 타 다 른 시 동 파 일 을 소 스 하 지 않 는 다 .
−posix 명 령 행 옵 션 을 주 어 bash 를 posix 모 드 로 시 작 하 면 시 동 파 일 에 대 하 여 POSIX 표 준 에 따 른 다 . 이 모 드 에 서 는 ENV 변 수 를 확 장 하 여 그 파 일 을 소 스 한 다 ; 다 른 시 동 파 일 을 읽 지 않 는 다 .
참 고 사 항
Bash
Features, Brian Fox and Chet Ramey
The Gnu Readline Library, Brian Fox and Chet Ramey
The Gnu History Library, Brian Fox and Chet Ramey
A System V Compatible Implementation of 4.2
BSD Job Control, David
Lennert
Portable Operating System Interface (POSIX) Part 2: Shell
and
Utilities, IEEE
sh(1), ksh(1), csh(1)
emacs(1), vi(1)
readline(3)
파 일
/bin/bash
bash 실 행 파 일
/etc/profile
시 스 템 전 역 초 기 화 파 일 로 서 로 그 인 쉘 에 서 실 행
~/.bash_profile
개 인 초 기 화 파 일 로 서 로 그 인 쉘 에 서 실 행
~/.bashrc
각 각 의 대 화 형 쉘 에 대 한 개 별 시 동 파 일
~/.inputrc
개 별 적 인 readline 초 기 화 파 일
저 자
Brian Fox, Free
Software Foundation (주 개 발 자 )
bfox [AT] ai.Edu
Chet Ramey,
Case Western Reserve University
chet [AT] ins.Edu
버 그 보 고
bash 에 서 버 그 를 발 견 하 면 보 고 해 야 한 다 . 우 선 진 짜 로 버 그 인 지 확 실 히 하 고 최 신 버 전 의 bash 인 지 확 인 하 라 .
일 단 정 말 로 버 그 가 있 다 고 생 각 했 다 면 bashbug 명 령 을 사 용 하 여 버 그 를 보 고 한 다 . 고 친 내 용 이 있 다 면 그 내 용 을 메 일 로 보 낸 다 면 환 영 이 다 ! 제 안 사 항 이 나 ’철 학 적 인 ’ 버 그 보 고 는 bug-bash@prep.ai.MIT.Edu에 메 일 을 쓰 거 나 유 즈 넷 뉴 스 그 룹 인 gnu.bash.bug 에 글 을 적 는 다 .
모 든 버 그 보 고 는 다 음 을 포 함 해 야 한 다 :
bash의 버 전 번 호 |
||
하 드 웨 어 와 운 영 체 계 |
컴 파 일 시 사 용 한 컴 파 일 러
버 그 에 대 한 설 명 |
버 그 를 내 는 간 단 한 스 크 립 트 또 는 ’recipe’
bashbug 는 버 그 보 고 시 에 사 용 하 는 템 플 릿 에 처 음 나 오 는 3 가 지 항 목 을 자 동 으 로 추 가 해 준 다 .
매 뉴 얼 페 이 지 에 대 한 언 급 과 버 그 보 그 는 chet [AT] ins.Edu 로 보 낸 다 .
버 그
너 무 크 고 너 무 느 리 다 .
bash 와 전 통 적 인 sh 버 전 간 에 약 간 의 미 묘 한 차 이 점 이 존 재 한 다 . 그 중 대 부 분 은 POSIX 스 펙 에 의 한 것 이 다 .
앨 리 어 스 는 일 부 사 용 법 에 서 혼 란 스 럽 다 .
번 역 자
이
만 용 , 알 짜 리 눅
스
Man-Yong Lee, ALZZA LINUX
yong [AT] alzzalinux.com
geoman [AT] nownuri.net
번 역 에 대 한 버 그 보 고 또 는 제 한 사 항 은 위 메 일 로 보 내 기 바 란 다 .