GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar el comando de tiempo de Linux:todo lo que necesita saber

Tanto si es un administrador del sistema como un usuario de un servidor privado virtual (VPS), aprender varios comandos de Linux le ayudará a ejecutar tareas de manera más eficiente.

En este tutorial, aprenderá sobre el comando de tiempo de Linux:qué es, su propósito y cómo usarlo.

¿Qué es el comando de tiempo de Linux?

El comando de tiempo en los sistemas operativos Linux y similares a Unix le permite determinar cuánto tiempo llevará ejecutar un comando específico. Por lo general, se usa para medir el rendimiento de scripts o comandos. Cuanto más rápido termine un comando su tarea, mejor será su rendimiento.

Además, el comando de tiempo también puede mostrar el uso de recursos del sistema del proceso, lo que lo convierte en una herramienta útil para revisar la eficiencia de un comando específico.

Por ejemplo, desea elegir entre dos trabajos cron que pueden ejecutar la misma tarea. Puede determinar cuánto tardará cada trabajo cron en completar las tareas ejecutando el comando de tiempo.

Sin embargo, antes de comenzar a hablar sobre cómo usar el comando de tiempo de Linux, tenga en cuenta que difiere según el shell que use. Hay tres versiones diferentes del comando time en el sistema Linux:

  • Golpe – ya está integrado en el shell y se puede ejecutar escribiendo time .
  • Zsh como Bash, también está integrado en el sistema, se ejecuta escribiendo time .
  • Linux predeterminado de GNU (GNU) disponible escribiendo la ruta explícita al comando, usr/bin/time .

Para verificar qué versión del comando de tiempo de Linux se aplica a su sistema, ingrese lo siguiente en su programa de shell:

$ type time
  • Si obtiene el resultado, el tiempo es una palabra clave de shell , está utilizando el comando Bash time.
  • Si obtiene el resultado tiempo es una palabra reservada , está utilizando el comando de tiempo Zsh.
  • Si obtiene el resultado el tiempo es usr/bin/time , está utilizando el comando de tiempo de GNU.

Alternativamente, puede simplificar el comando de tiempo de GNU en Linux creando un comando de alias para usr/bin/time.

Uso del comando Time en Linux

En esta sección, aprenderá la sintaxis del comando de tiempo de Linux y cómo leer su salida.

Conocer la sintaxis del comando de tiempo de Linux

Usar el comando de tiempo es muy simple:todo lo que tiene que hacer es abrir su programa de shell e ingresar:

$ time [command]

Para aprovechar al máximo el comando de tiempo, debe comprender su sintaxis:

$ time [command] [arg1] [arg2] ... [argN]
time [options] [command] [arg1] [arg2] ... [argN]

Tiempo ejecuta el comando dado con cualquier argumento dado (arg ). Una vez que el comando finaliza su tarea, el tiempo genera información que incluye la duración que tomó ejecutar el comando y los recursos utilizados por él.

Si el comando del programa sale con un estado distinto de cero que indica una falla, el tiempo generará un mensaje de advertencia y el estado de salida.

Al ingresar el formato de cadena utilizado por el comando, puede determinar qué información mostrar en la sección de uso de recursos del sistema.

Si el usuario no especifica ningún formato, pero se establece la variable de entorno de tiempo, su valor se utilizará como formato. De lo contrario, se utilizará el formato predeterminado integrado en el tiempo.

Opciones son especificadores de recursos que cambian la salida del tiempo. Deben comparecer ante el mando. Todo lo que se ingrese después del comando se considerará como un argumento.

Para ver todas las opciones que puede usar para el tiempo, ingrese lo siguiente en la línea de comando:

$ man time

Verá una lista de opciones que puede usar para modificar la salida del comando de tiempo de Linux. Sin embargo, tenga en cuenta que estas opciones pueden variar según el sistema operativo específico y la versión que esté utilizando.

Comencemos con un primer ejemplo simple. Para averiguar cuánto tiempo lleva ejecutar el comando ls utilizado para mostrar el contenido de un directorio elegido, ingrese lo siguiente en el shell:

$ time ls

Verá el resultado del comando ls y el tiempo que tomó completarlo.

Ahora, intentemos incorporar un argumento. En este ejemplo, intentaremos averiguar cuánto tiempo llevará mover un archivo a un directorio diferente:

$ time mv example.txt example-dir

Como resultado, el example.txt el archivo se ha movido a example-dir y verás el tiempo que lleva completar el proceso.

Comprender el resultado

Para comprender completamente los beneficios del comando de tiempo de Linux, debe saber cómo leer su salida.

Lectura de la salida en la terminal

La salida predeterminada del comando de tiempo incorporado contiene la siguiente información:

  • En tiempo real (real). El tiempo real que tarda el proceso en ejecutarse de principio a fin. Esto incluye el tiempo que toman otros procesos y el tiempo que pasan esperando que se completen.
  • Tiempo de usuario (usuario). La cantidad de tiempo de CPU invertido en modo de usuario durante el proceso. No se incluyen otros procesos ni el tiempo bloqueado.
  • Hora del sistema (sys). El tiempo total de CPU empleado en modo kernel durante el proceso. Al igual que el tiempo del usuario, no se cuentan otros procesos ni el tiempo bloqueado por otros procesos.

Aquí hay un ejemplo. Si ingresamos el siguiente comando en la línea de comando, el sistema descargará el instalador para el programa de máquina virtual de código abierto VirtualBox:

$ time wget https://download.virtualbox.org/virtualbox/6.1.28/virtualbox-6.1_6.1.28-147628~Ubuntu~eoan_amd64.deb

Una vez completada la descarga, verá tres cifras:real , usuario y sistema . Como puede ver, muestran el tiempo transcurrido en los modos real, usuario y sistema durante la descarga en minutos y segundos.

Escribir el resultado en un archivo

A veces, es posible que desee guardar la información que recibió utilizando el tiempo. Afortunadamente, existe una opción de formato que le permite escribir la salida del comando en un archivo.

Si usa el comando de tiempo de GNU, el -o le permitirá hacer exactamente eso:creará un nuevo archivo de salida que contiene información sobre el otro comando.

Por ejemplo, ingrese el siguiente comando para guardar la información de ping de hostinger.com y detalles sobre su proceso en un nuevo archivo:

$ time -o hostinger-ping-info.log ping hostinger.com

Tenga en cuenta que si usa el shell Bash y quiere usar -o o cualquier otra opción, tendrá que invocar el comando de tiempo externo usando la ruta explícita usr/bin/time en lugar de solo tiempo .

$ usr/bin/time -o hostinger-ping-info.log ping hostinger.com

Para comprobar el contenido de hostinger-ping-info.log , usa el gato comando:

$ cat hostinger-ping-info.log

Obtención de resultados detallados en un archivo

Es posible que la salida del comando de tiempo predeterminado no incluya todos los detalles que desea conocer sobre un proceso en particular. Para mostrar resultados detallados, agregue la opción -v al comando de tiempo en Linux.

Por ejemplo, si desea encontrar el ping o el tiempo de respuesta de hostinger.com y ver información detallada sobre el proceso, ingrese el siguiente comando:

$ time -v ping hostinger.com

Si no usa el comando de tiempo de GNU o ha encontrado un flujo de error estándar, intente activar el comando de tiempo externo ingresando la ruta completa usr/bin/time en cambio:

$ usr/bin/time -v ping hostinger.com

Alternativamente, los usuarios pueden personalizar los tipos de información que les gustaría ver en la salida al ingresar el comando de tiempo usando estas opciones de formato de salida:

Por ejemplo, si desea mostrar la cantidad de mensajes de socket recibidos por el comando, ingrese lo siguiente en el shell:

$ /usr/bin/time -f "Socket Messages Received: %r" command

Alternativamente, si usa el shell Bash, es posible que prefiera el TIMEFORMAT del comando de tiempo incorporado. TIMEFORMAT usa una cadena de formato particular para permitir a los usuarios especificar cómo se debe mostrar la información de tiempo.

Aquí hay una lista de los valores del parámetro TIMEFORMAT:

% Un `%' literal.
C Nombre y argumentos de línea de comando del comando que se está cronometrando.
D El tamaño medio d del área de datos no compartidos del proceso, en kilobytes.
E El tiempo real transcurrido (reloj de pared) utilizado por el proceso, en (horas:)minutos:segundos.
F El número de fallas de página importantes o que requieren E/S que ocurrieron mientras se ejecutaba el proceso. Estos son errores en los que la página ha migrado fuera de la memoria principal.
Yo El número i de entradas del sistema de archivos por el proceso.
K El uso de memoria total promedio del proceso en kilobytes.
M El tamaño máximo del conjunto residente del proceso durante su vida útil, en kilobytes.
O El número de salidas del sistema de archivos por el proceso.
P Porcentaje de la CPU que obtuvo este trabajo. Estos son solo los tiempos del usuario y del sistema divididos por el tiempo total de ejecución. También imprime un signo de porcentaje.
R El número de fallas de página menores o recuperables. Son páginas que no son válidas pero que aún no han sido reclamadas por otras páginas virtuales. Por lo tanto, los datos de la página siguen siendo correctos, pero las tablas del sistema deben actualizarse.
S El número total de segundos de CPU utilizados por el sistema en nombre del proceso (en modo kernel) en segundos.
T Número total de segundos de CPU que el proceso usó directamente (en modo de usuario) en segundos.
W El número de veces que el proceso fue intercambiado fuera de la memoria principal.
X La cantidad promedio de texto compartido en el proceso en kilobytes.
Z El tamaño de página del sistema z, en bytes. Como constante por sistema, puede variar entre sistemas.
c El número de veces que el proceso cambió de contexto de forma involuntaria (porque expiró el intervalo de tiempo).
e Tiempo real transcurrido (reloj de pared) usado por el proceso, en segundos.
k El número de señales enviadas al proceso.
p Tamaño promedio de pila no compartida del proceso, en kilobytes.
r El número de mensajes de socket recibidos por el proceso.
s El número de mensajes de socket enviados por el proceso.
t Tamaño promedio del conjunto residente del proceso, en kilobytes.
w Número de veces que el programa cambió de contexto voluntariamente, por ejemplo, mientras esperaba que se completara una operación de E/S.
x El estado de salida del comando.

Conclusión

El comando de tiempo en Linux es una excelente herramienta para verificar el tiempo de ejecución y el rendimiento general de un proceso en particular. En esta guía, ha aprendido el comando de tiempo de Linux, su propósito, sintaxis y salida.

Esperamos que esta guía le haya ayudado a aprender cómo navegar por el sistema Linux de manera más eficiente.


Linux
  1. Cómo usar el comando grep de Linux

  2. Cómo usar el comando de historial en Linux

  3. Cómo usar el comando táctil de Linux + ejemplos

  4. 10 comandos básicos de Linux que necesitas saber

  5. Cómo usar el comando de pantalla de Linux

Cómo usar el comando nohup de Linux

Cómo usar du Command en Linux

Cómo usar el comando sysctl en Linux

Cómo usar el comando de apagado de Linux

Cómo usar grep en Linux

Todo lo que necesita saber sobre el comando Chmod de Linux

    %% Un % literal
    %[p][l]R El tiempo transcurrido en segundos.
    %[p][l]U El número de segundos de CPU que el proceso pasó en modo de usuario.
    %[p][l]S El número de segundos de CPU que el proceso pasó en modo sistema.
    %P El porcentaje de CPU, calculado como (%U + %S) / %R.