| HOME / 정보공유 / AIX 명령어 모음

fc
fc fc 명령 목적 명령 히스토리 리스트를 처리합니다. 구문
편집기를 열어서 이전에 입력한 명령을 수정 및 재실행하는 방법
fc [ -r ] [ -e Editor ] [ First [ Last ] ]
이전에 입력한 명령 리스트를 작성하는 방법
fc -l [ -n ] [ -r ] [ First [ Last ] ]
이전에 입력한 명령을 재실행하는 방법
fc -s [ Old= New ] [ First ]
설명
fc 명령은 사용자의 명령 히스토리 파일의 내용을 표시하거나, 편집기를 호출하여 이전에 쉘에 입력한 명령을 수정 및 재실행합니다.
명령 히스토리 파일은 번호별로 명령을 나열합니다. 리스트의 첫번째 숫자는 임의로 선택됩니다. 명령에 대한 번호의 관계는 사용자가 로그인하고 다른 프로세스가 리스트에 액세스하고 있지 않을 때를 제외하고는 변경되지 않습니다. 그런 경우, 시스템이 보유한 가장 오래된 명령의 번호를 1로 하여 번호지정을 다시 합니다.
명령 히스토리 파일에 있는 번호가 HISTSIZE 환경 변수와 32767의 값 중 더 높은 한계에 도달하면, 쉘은 1로 되돌아갑니다. 이 선택적 번호 포장에도 불구하고 fc 명령은 명령의 시간적 순서를 유지합니다. 예를 들어, 일련 번호를 가진 세 숫자 32766, 32767 및 1(랩된 결과)이 있을 경우, 명령 32767이 여전히 명령 1에 비해 이전 것으로 간주됩니다.
히스토리 파일의 명령은 -l(소문자 L) 플래그에 의해 표시될 수 있습니다. -l 플래그를 지정하지 않고 -eEditor 플래그를 사용하여 명령을 편집할 경우, 결과 행은 히스토리 파일의 끝에 입력된 다음 쉘에 의해 재실행됩니다(fc -e Editor 명령은 명령 히스토리 리스트로 입력되지 않습니다). 편집기가 0이 아닌 종료 상태를 리턴할 경우, 히스토리 파일의 항목과 명령의 재실행은 억제됩니다.
fc 명령과 같이 사용된 모든 명령행 변수 지정 또는 방향 재지정 연산자는 fc 명령 및 이전 명령에 대한 표준 오류를 억제하면서 이전 명령을 다시 호출합니다. 예를 들면 다음과 같습니다.
fc -s -- -1 2>/dev/null
플래그
-e Editor 지정된 편집기를 사용하여 명령을 편집합니다. Editor 매개변수는 명령의 이름이어야 합니다. 이 명령은 PATH 환경 변수를 사용하여 배치됩니다. FCEDIT 환경 변수의 값은 -e 플래그가 지정되지 않을 때 디폴트로 사용됩니다. FCEDIT 환경 변수가 널(null)이거나 설정되지 않으면, ed 편집기가 사용됩니다.
-l (대문자 L) 사용자의 히스토리 파일에서 명령을 나열합니다. 명령을 수정할 편집기가 호출되지 않습니다. 명령은 -r 플래그의 영향을 받으면서 First 및 Last 매개변수가 표시한 순서대로 기록되며, 이 때 각 명령 앞에 해당되는 번호가 표시됩니다.
-n -l 플래그와 같이 사용하면 명령 번호를 억제합니다.
-r 나열된 명령의 순서를 역방향으로 하거나(-l 플래그와 함께 사용할 때) 편집된 명령의 순서를 역방향으로 합니다(-l 플래그를 지정하지 않은 경우).
-s 편집기를 호출하지 않고 명령을 재실행합니다. First 매개변수도 지정하지 않은 경우, -s 플래그가 이전 명령을 재실행합니다.
매개변수
First 또는Last 나열할 또는 편집할 명령을 선택합니다. 액세스할 수 있는 이전 명령의 수는 HISTSIZE 환경 변수의 값에 따라 결정됩니다. First 및 Last 매개변수는 다음 값 중 하나이어야 합니다.
[+] Number
고유 명령 번호를 표시합니다. 명령 번호는 -l 플래그를 사용하여 표시할 수 있습니다. +(더하기 부호)가 디폴트입니다.
-Number
히스토리 리스트에서 백업할, 이전에 실행된 명령을 명령의 수로 지정하여 표시합니다. 예를 들어, -1은 바로 이전의 명령을 표시합니다.
String
지정된 문자열로 시작하는, 가장 최근에 입력한 명령을 표시합니다. Old=New 매개변수를 -s 플래그 없이 지정하면, First 매개변수의 문자열이 중간에 삽입된 =(등호)를 포함할 수 없습니다.
-s 플래그를 사용할 때, First 매개변수를 생략하면 이전 명령이 사용됩니다.
-s 플래그를 지정하지 않을 경우, 다음 규칙이 적용됩니다.
-l 플래그를 사용할 경우, Last 매개변수를 생략하면, 이전 명령으로 디폴트 됩니다.
-r, -n 및 -e 플래그를 사용할 경우, Last 매개변수를 생략하면, First 매개변수로 디폴트 됩니다.
First 및 Last 매개변수 모두 생략될 경우, 이전 16개의 명령이 나열되거나 한 개의 이전 명령이 편집됩니다(-l 플래그의 사용 여부에 따라).
First 및 Last 매개변수가 모두 있으면, 모든 명령이 나열되거나 (-l 플래그가 지정되어 있을 경우) 편집됩니다( -l 플래그가 지정되어 있지 않을 경우). 편집기에게 한 번에 모든 명령을 표시하여 여러 명령을 편집할 수 있으며, 이 때 각 명령 문자열을 새로운 행에서 시작됩니다. First 매개변수가 Last 매개변수보다 새로운 명령을 나타낼 경우, 명령은 역방향으로 나열되거나 편집됩니다. 이는 -r 플래그를 사용하는 것과 동일합니다. 예를 들어, 첫번째 행의 다음 명령은 두 번째 행의 명령과 동일합니다.
fc -r 10 20 fc 30 40
fc 20 10 fc -r 40 30
일정한 명령 범위를 사용할 경우, 히스토리 리스트에 있지 않은 First 또는 Last 값을 지정하는 것은 오류가 아닙니다. fc 명령은 상황에 따라 리스트에서 가장 오래되었거나 최근의 명령을 표시하는 값을 대체합니다. 예를 들어, 히스토리 리스트에 1에서 10까지 번호가 지정된 10개의 명령만 있을 경우, 명령은 다음과 같습니다.
fc -l
fc 1 99
이 명령은 10개의 모든 명령을 각각 나열 및 편집합니다.
Old=New 재실행할 명령에서, 이전 문자열의 첫번째 발생을 새로운 문자열로 대체합니다.
환경 변수
다음의 환경 변수는 fc 명령 실행에 영향을 줍니다.
FCEDIT 쉘에서 확장될 경우, -eeditor 변수에 대한 디폴트 값을 결정합니다. FCEDIT 환경 변수가 널(null)이거나 설정되지 않으면, ed 편집기가 디폴트입니다.
HISTFILE 명령 히스토리 파일의 경로 이름을 결정합니다. HISTFILE 환경 변수를 설정하지 않은 경우, 쉘이 사용자의 홈 디렉토리에서 .sh_history 파일에 액세스하거나 파일의 작성을 시도합니다.
HISTSIZE 액세스 가능한 이전 명령의 수에 대한 한계를 표시하는 십진수를 결정합니다. 이 변수를 설정하지 않으면, 디폴트 값인 128이 사용됩니다.
종료 상태
다음과 같은 종료 값으로 리턴합니다.
0 성공적으로 리스트가 완료되었습니다.
>0 오류가 발생했습니다.
그 외의 경우, 종료 상태는 fc 명령이 실행한 명령의 종료 상태입니다.
예제
가장 최근의 명령의 FCEDIT 환경 변수가 정의한 편집기(디폴트 편집기는 /usr/bin/ed임)를 호출하려면 다음과 같이 입력하십시오.
fc
사용자가 편집을 끝내면 명령이 실행됩니다.
실행된 이전의 두 명령을 나열하려면, 다음과 같이 입력하십시오.
fc -l -2
cc로 시작하는 명령을 찾으려면, foo를 bar로 변경하고 명령을 표시하고 실행하십시오. 다음과 같이 입력하십시오.
fc -s foo=bar cc
파일
/usr/bin/ksh Korn 쉘 fc 내장 명령을 포함합니다.
/usr/bin/fc fc 명령을 포함합니다.
관련 정보
ksh 명령.