BASH_BUILTINS

Section: User Commands (1)
Updated: 1996 March 20
Index
Return to Main Contents
 

이름

bash, :, ., alias, bg, bind, break, builtin, case, cd, command, continue, declare, dirs, disown, bash-echo, enable, eval, exec, exit, bash-export, fc, fg, for, getopts, hash, help, history, if, jobs, bash-kill, let, local, logout, popd, pushd, bash-pwd, read, readonly, return, set, shift, shopt, source, suspend, bash-test, times, trap, type, typeset, ulimit, umask, unalias, unset, until, wait, while - bash built-in 명령어들, bash(1)를 참고하라.  

BASH BUILTIN 명령어들

: [인수들]
아무런 효과도 없다; 인수들 을 확장하고 명시된 리다이렉션을 행하는 것을 제외하고 아무 일도 하지 않는다. 종료 상태값 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 이 있다. vivi-command와 같다; emacsemacs-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 값을 사용한다. 둘 다 설정되어 있지 않으면 를 사용한다. 편집을 마친 후에는 편집한 명령들이 화면에 표시되고 실행된다.

두번째 형태에서, 명령패턴치환텍스트로 교체된 후에 다시 실행된다. 유용한 앨리어스로는 ``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 또는 스크립트에서 실행한 마지막 명령의 종료 상태값을 스크립트의 종료 상태값으로 반환한다. 함수 밖에서 사용했으며 .로 실행한 스크립트가 아니라면 반환 상태값은 거짓이 된다.
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이름 이 명령 이름으로 사용되었을 때 실행될 디스크 파일 이름을 반환하거나, -typefile 을 반환하지 않을 때에는 아무 것도 반환하지 않는다. 명령이 해쉬된 상태이면, -pathPATH 상에서 처음으로 나오는 파일이 아니라 해쉬 값을 반환할 것이다. -all 플래그를 사용하면, type이름 이라는 이름을 포함하는 실행 파일이 포함된 모든 장소를 포함한다. -path 플래그를 함께 사용하지 않을 때에만, 앨리어스와 함수를 포함한다. -all 을 사용할 때에는 해쉬 명령 테이블을 참조하지 않는다. type-all, -type, 과 -path 대신 각각 -a, -t, 과 -p 를 받아들인다. -- 인수는 그 뒤에 나오는 인수에 대한 옵션 점검을 하지 않도록 한다. type 은 인수를 발견했을 때에만 참을 반환하고 발견하지 못했을 때에는 거짓을 반환한다.
ulimit [-SHacdfmstpnuv [제한]]
Ulimit 은 제한 기능을 지원하는 시스템 상에서 쉘과 쉘이 실행한 프로세스에 대하여 사용 자우너을 제한할 수 있도록 해 준다. 제한 값은 각 자원에 대한 단위 값이거나 unlimited 라는 값을 가질 수 있다. HS 옵션은 주어진 자원에 대한 하드(hard) 또는 소프트(soft) 설정을 명시한다. 하드 제한은 일단 설정되면 더 이상 늘릴 수 없다; 한편 소프트 제한은 하드 제한 값까지 늘릴 수도 있다. HS 중 아무 것도 명시되어 있지 않으면 소프트 제한이라고 간주한다. 제한 을 생략하면 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 이다. 그렇지 않으면, 반환값은 기다렸던 마지막 프로세스 또는 작업의 종료 상태값이 된다.
 

관련 항목

bash(1), sh(1)  

역자

배성훈 <plodder@kldp.org>, 2000-08-20


 

Index

이름
BASH BUILTIN 명령어들
관련 항목
역자

This document was created by man2html, using the manual pages.
Time: 08:06:58 GMT, March 25, 2004