로드가 많은 Ubuntu 시스템에서 실행 nice -n 19 time echo
하고 다음 출력을 얻습니다.
0.00user 0.00system 0:02.80elapsed 0%CPU (0avgtext+0avgdata 1732maxresident)k
312inputs+0outputs (1major+74minor)pagefaults 0swaps
그러나 실행하면 time echo
다음과 같은 결과가 나타납니다.
real 0m0.000s
user 0m0.000s
sys 0m0.000s
더 이상한 점은 내가 달리면 다음과 같은 결과가 nice -n 19 time time
나온다는 것입니다.
Usage: time [-apvV] [-f format] [-o file] [--append] [--verbose]
[--portability] [--format=format] [--output=file] [--version]
[--quiet] [--help] command [arg...]
Command exited with non-zero status 1
0.00user 0.00system 0:03.29elapsed 0%CPU (0avgtext+0avgdata 1344maxresident)k
0inputs+0outputs (0major+67minor)pagefaults 0swaps
하지만 실행하면 time time
다음과 같은 결과가 나타납니다.
real 0m0.000s
user 0m0.000s
sys 0m0.000s
time
이것을 실행할 때 왜 다른 결과 가 나오나요 nice
? 처음에는 더 높은 값을 생성할 것이라고 생각했지만(예: 실제 값은 0.000s가 아님) 명령이 명령을 nice
변경한 것처럼 보입니다.time
답변1
간단히 말해서:type
명령이 쉘 내장 명령인지 확인하는 데 사용됩니다 . bash의 time
in time xyz
및 /usr/bin/time
in 을 사용하고 있습니다 nice time xyz
.
type <command>
쉘이 무엇을 사용하는지 알아 보려면 다음을 수행하십시오 .
$ type time
time is a shell keyword
In은 bash
time
쉘 키워드입니다. 이는 time
명령 이 아닙니다 (에서 찾을 수 있음 which time
). Bash의 많은 명령에는 , echo
등과 test
같은 내장 셸 키워드가 있습니다 pwd
.
$ type echo test pwd nice time
echo is a shell builtin
test is a shell builtin
pwd is a shell builtin
nice is /usr/bin/nice
time is a shell keyword
man
이 경우 잘못된 문서가 반환됩니다 . help
쉘 명령이 필요합니다 .
$ help time
time: time [-p] pipeline
Report time consumed by pipeline's execution.
Execute PIPELINE and print a summary of the real time, user CPU time,
and system CPU time spent executing PIPELINE when it terminates.
Options:
-p print the timing summary in the portable Posix format
The value of the TIMEFORMAT variable is used as the output format.
Exit Status:
The return status is the return status of PIPELINE.
time
그런데 매뉴얼에는 다음과 같은 팁이 포함되어 있습니다.
$ 사람 시간 TIME(1) 일반 명령 매뉴얼 TIME(1) 이름 프로그램을 정기적으로 실행하고 시스템 리소스 사용량을 요약합니다. 요약 시간 [ -apqvV ] [ -f 형식 ] [ -o 파일 ] [ --append ] [ --verbose ] [ --quiet ] [ --portability ] [ --format=FORMAT ] [ --output=FILE ] [ --version ] [ --help ] 명령 [ ARGS ] 설명하다 주어진 인수 ARG를 사용하여 COMMAND 프로그램을 실행할 시간입니다.... COMMAND가 완료되면 시간에 다음 정보가 표시됩니다. COMMAND에서 사용하는 리소스(표준 오류 출력에서 다음을 통해) 기본). COMMAND가 0이 아닌 상태로 종료된 경우 시간을 표시합니다. 경고 메시지 및 종료 상태. ... 예 ... Bash 쉘 사용자는 명시적인 경로를 사용해야 합니다. 내장 셸 대신 외부 시간 명령 실행 변형. /usr/bin에 시간이 설치된 시스템에서는 첫 번째 예는 다음과 같습니다. /usr/bin/time 화장실 /etc/hosts
인용하다:
man 1 time
info bash time
또는man 1 bash
"SHELL GRAMMAR"의 "PIPELINE" 섹션- 리눅스 명령줄, 43-46페이지.
답변2
두 가지 time
명령을 사용할 수 있습니다. 하나는 셸에 내장되어 있고 다른 하나는 파일 시스템의 실행 파일입니다. 발견한 대로 출력 형식이 다릅니다. nice
셸에 내장된 항목은 실행할 수 없으므로 다른 항목을 실행합니다.
답변3
달리기
time nice command ...
사용time
쉘에 내장.
time
또는 전체 멋진 파이프라인( 셸에 내장하는 것이 핵심임)의 시간을 측정하려면 다음을 수행해야 합니다.
time nice bash -c 'some cmd... | other cmd...'
nice
전체 파이프라인에 적용 가능하도록 만듭니다 .