웹사이트 검색

초보자를 위한 Linux 시간 명령 자습서(예제 포함)


이 페이지에서

  1. Linux 시간 명령
  2. Q1. 시간 명령을 사용하는 방법?\n
  3. Q2. 시간을 파일에 출력하는 방법은 무엇입니까?\n
  4. Q3. 시간을 어떻게 하면 자세한 출력을 생성할 수 있습니까?\n
  5. Q4. 시간 명령 출력을 사용자 정의하는 방법은 무엇입니까?\n
  6. 결론

때때로 프로그램을 실행할 때 시스템 리소스 사용량을 알고 싶을 수 있습니다. 프로세스가 커널 모드와 사용자 모드에서 소요한 시간 및 기타 정보와 같습니다.

고맙게도 이러한 목적을 위해 특별히 제작된 시간이라는 도구가 있습니다. 이 기사에서는 이해하기 쉬운 몇 가지 예를 사용하여 time 명령의 기본 사항에 대해 설명합니다.

하지만 그 전에 이 튜토리얼의 모든 예제가 Ubuntu 18.04 LTS 시스템에서 테스트되었음을 언급할 가치가 있습니다.

리눅스 시간 명령

Linux의 time 명령을 사용하면 프로그램을 실행하고 시스템 리소스 사용량을 요약할 수 있습니다. 구문은 다음과 같습니다.

time [OPTIONS] COMMAND [ARGS]

도구 매뉴얼 페이지에서 설명하는 방법은 다음과 같습니다.

time run the program COMMAND with any given arguments ARG....  When COMMAND finishes, time displays
information about resources used by COMMAND (on the standard error output, by default). 

If COMMAND exits with non-zero status, time displays a warning message and the exit status.

time determines which information to display about the resources used by the COMMAND from the
string FORMAT. If no format is specified on the command line, but the TIME environment variable
is set, its value is used as the format. Otherwise, a default format built into time is used.

Options to time must appear on the command line before COMMAND.  Anything on the command line after
COMMAND is passed as arguments to COMMAND.

다음은 time 명령이 작동하는 방식에 대한 더 나은 아이디어를 제공하는 몇 가지 Q&A 스타일의 예입니다.

Q1. 시간 명령을 사용하는 방법?

기본 사용법은 간단합니다. 입력으로 실행하려는 명령/프로그램으로 시간을 실행하면 됩니다.

예를 들어 다음과 같은 방식으로 time 명령을 사용했습니다.

time ping linux-console.net

결과는 다음과 같습니다.

PING linux-console.net (104.24.0.68) 56(84) bytes of data.
64 bytes from 104.24.0.68 (104.24.0.68): icmp_seq=1 ttl=59 time=93.8 ms
64 bytes from 104.24.0.68 (104.24.0.68): icmp_seq=2 ttl=59 time=91.5 ms
64 bytes from 104.24.0.68 (104.24.0.68): icmp_seq=3 ttl=59 time=93.1 ms
64 bytes from 104.24.0.68 (104.24.0.68): icmp_seq=4 ttl=59 time=102 ms
^C
--- linux-console.net ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 91.510/95.249/102.490/4.267 ms

real    0m3.472s
user    0m0.000s
sys    0m0.004s

출력의 마지막 세 줄은 time 명령에 의해 추가됩니다. real은 ping 명령이 실행에서 종료될 때까지 걸린 벽시계 시간을 의미하지만 user와 sys는 각각 사용자 공간과 커널 공간을 ping하는 데 걸린 시간입니다. 이 세 번에 대한 자세한 내용은 여기에서 확인할 수 있습니다.

Q2. 시간을 파일에 출력하는 방법은 무엇입니까?

time 명령이 출력을 터미널 대신 파일에 쓰도록 하려면 파일 이름/경로를 입력으로 예상하는 -o 명령줄 옵션을 사용하십시오.

예를 들어:

/usr/bin/time -o /home/himanshu/time-output.txt ping linux-console.net

이 명령은 stdout에 pings 출력을 표시하고 time 명령 출력은 텍스트 파일에 기록됩니다.

참고: 쉘 내장 time 명령이 -o 옵션을 제공하지 않기 때문에 time 대신 /usr/bin/time을 사용했습니다.

기본적으로 이 명령을 실행할 때마다 출력 파일을 덮어씁니다. 그러나 원하는 경우 -a 명령줄 옵션을 사용하여 새 출력이 추가되도록 할 수 있습니다.

Q3. 시간을 어떻게 하면 자세한 출력을 생성할 수 있습니까?

이것은 -v 명령줄 옵션을 사용하여 수행할 수 있습니다. 예를 들어 ping 명령으로 시간을 실행하는 동안 이 옵션을 사용하면 time 명령 출력에 다음과 같은 세부 정보가 생성되었습니다.

Command being timed: "ping linux-console.net"
    User time (seconds): 0.00
    System time (seconds): 0.00
    Percent of CPU this job got: 0%
    Elapsed (wall clock) time (h:mm:ss or m:ss): 0:11.77
    Average shared text size (kbytes): 0
    Average unshared data size (kbytes): 0
    Average stack size (kbytes): 0
    Average total size (kbytes): 0
    Maximum resident set size (kbytes): 3064
    Average resident set size (kbytes): 0
    Major (requiring I/O) page faults: 0
    Minor (reclaiming a frame) page faults: 158
    Voluntary context switches: 14
    Involuntary context switches: 0
    Swaps: 0
    File system inputs: 0
    File system outputs: 0
    Socket messages sent: 0
    Socket messages received: 0
    Signals delivered: 0
    Page size (bytes): 4096
    Exit status: 0

따라서 이 모드에서 time 명령이 다른 많은 세부 정보를 생성하는 것을 볼 수 있습니다.

Q4. 시간 명령 출력을 사용자 정의하는 방법은 무엇입니까?

time 명령은 또한 이 도구의 출력을 사용자 지정할 수 있는 형식 명령줄 옵션을 제공합니다. time 명령이 지원하는 모든 유형의 정보를 가져오는 데 사용할 수 있는 리소스 지정자 집합을 제공합니다(이전 섹션 참조).

예를 들어 다음 실행에서 time 명령은 다음과 같습니다.

/usr/bin/time -f "\t%C [Command details],\t%K [Total memory usage],\t%k [Number of signals process received]" ping linux-console.net

이 출력을 생성했습니다.

ping linux-console.net [Command details],    0 [Total memory usage],    0 [Number of signals process received]

time 명령 매뉴얼 페이지에는 format 명령줄 옵션과 관련된 세부 정보가 포함되어 있습니다.

결론

시간 명령은 주로 소프트웨어 개발자와 테스터가 사용합니다. 그러나 당신이 그러한 사람 중 하나가 아니더라도 그것을 아는 것이 나쁠 것은 없습니다. 당신이 언제 그것을 요구할 수 있는지 결코 알 수 없기 때문입니다. 이 명령에 대한 자세한 정보는 도구 매뉴얼 페이지를 통해 액세스할 수 있습니다.