GNU/Linux >> Tutoriales Linux >  >> Linux

Tutorial de comandos de tiempo de Linux para principiantes (con ejemplos)

A veces, cuando está ejecutando un programa, es posible que desee conocer el uso de recursos del sistema. Por ejemplo, cuánto tiempo pasó el proceso en modo kernel y modo usuario, y otra información.

Afortunadamente, existe una herramienta llamada time - que está construido específicamente para este propósito. En este artículo, discutiremos los conceptos básicos del comando 'tiempo' usando algunos ejemplos fáciles de entender.

Pero antes de hacerlo, vale la pena mencionar que todos los ejemplos de este tutorial se probaron en una máquina con Ubuntu 18.04 LTS.

Comando de tiempo de Linux

El comando de tiempo en Linux le permite ejecutar programas y resumir su uso de recursos del sistema. La siguiente es su sintaxis:

time [OPTIONS] COMMAND [ARGS]

Así es como la página de manual de la herramienta lo describe:

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.

Los siguientes son algunos ejemplos de preguntas y respuestas que deberían darle una mejor idea de cómo funciona el comando de tiempo.

P1. ¿Cómo usar el comando de tiempo?

El uso básico es simple:simplemente ejecute 'tiempo' con el comando/programa que desea ejecutar como entrada.

Por ejemplo, usé el comando de tiempo de la siguiente manera:

time ping howtoforge.com

Y aquí está el resultado:

PING howtoforge.com (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
--- howtoforge.com 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

Las últimas tres líneas en la salida son agregadas por el comando de tiempo. Mientras que 'real' significa el tiempo de reloj de pared que tomó el comando 'ping' desde la ejecución hasta la terminación, 'usuario' y 'sys' son el tiempo que tomó 'ping' el espacio del usuario y el espacio del núcleo, respectivamente. Se puede acceder a detalles sobre estos tres tiempos aquí.

P2. ¿Cómo hacer que 'tiempo' escriba su salida en un archivo?

Si desea que el comando de tiempo escriba su salida en un archivo en lugar de en el terminal, use la opción de línea de comando -o, que espera un nombre de archivo/ruta como entrada.

Por ejemplo:

/usr/bin/time -o /home/himanshu/time-output.txt ping howtoforge.com

Este comando mostrará la salida de ping en la salida estándar, mientras que la salida del comando 'tiempo' se escribirá en el archivo de texto.

NOTA :Usamos /usr/bin/time en lugar de 'time' porque el comando de tiempo integrado de shell no ofrece la opción -o.

De forma predeterminada, cada vez que ejecute este comando, se sobrescribirá el archivo de salida. Sin embargo, si lo desea, puede asegurarse de que se agregue una nueva salida utilizando la opción de línea de comando -a.

Q3. ¿Cómo hacer que el tiempo produzca resultados detallados?

Esto se puede hacer usando la opción de línea de comando -v. Por ejemplo, cuando usé esta opción mientras ejecutaba 'time' con un comando 'ping', se generaron los siguientes detalles en la salida del comando 'time':

Command being timed: "ping howtoforge.com"
    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

Entonces puede ver que el comando de tiempo produce muchos otros detalles en este modo.

P4. ¿Cómo personalizar la salida del comando de tiempo?

El comando de tiempo también ofrece una opción de línea de comando de 'formato' que le permite personalizar la salida de esta herramienta. Proporciona un conjunto de especificadores de recursos que puede usar para obtener cualquier tipo de información admitida por el comando 'tiempo' (consulte la sección anterior).

Por ejemplo, el comando de tiempo en la siguiente ejecución:

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

produjo esta salida:

ping howtoforge.com [Command details],    0 [Total memory usage],    0 [Number of signals process received]

La página del comando man de tiempo contiene detalles relacionados con la opción de línea de comando de formato.

Conclusión

El comando de tiempo es utilizado principalmente por desarrolladores y probadores de software. Sin embargo, no hay nada de malo en saberlo, incluso si no eres uno de esos, porque nunca sabes cuándo puedes necesitarlo. Se puede acceder a más información sobre este comando a través de la página de manual de la herramienta.


Linux
  1. Linux expand Command Tutorial para principiantes (con ejemplos)

  2. Tutorial de comando de factor Linux para principiantes (con ejemplos)

  3. Tutorial del comando nproc de Linux para principiantes (con ejemplos)

  4. Tutorial de comando de suspensión de Linux para principiantes (con ejemplos)

  5. Tutorial de comando Linux basename para principiantes (con ejemplos)

Tutorial de comando Linux sha1sum para principiantes (con ejemplos)

Tutorial de comandos de apariencia de Linux para principiantes (con ejemplos)

Tutorial del comando lsattr de Linux para principiantes (con ejemplos)

Tutorial del comando tload de Linux para principiantes (con ejemplos)

Tutorial del comando Linux znew para principiantes (con ejemplos)

Tutorial de comando Linux tr para principiantes (con ejemplos)