lunes, 27 de julio de 2020

Comandos útiles para análisis de hardware y sistema en la terminal GNU/Linux


Buenas jornadas tengan ustedes, navegantes de lo desconocido. En esta ocasión voy a hacer un post con unos cuantos comandos útiles si algún día necesitamos saber los componentes de hardware de un pc. Ya veréis que son muy fáciles y si no tenéis mucha experiencia con la terminal igual os sirve para ir practicando. Son totalmente informativos así que en principio no hay ningún peligro por usarlos.
Según que usuario estéis usando es posible que tengáis que usar privilegios para que funcionen (_$ sudo )

Y sin mas dilación empezamos:

top

Con top podemos ver todos procesos en nuestro sistema directamente en la terminal, simplemente tecleamos top + “enter” y vemos una panorámica de los procesos abiertos.





Además tenemos, por supuesto, algunas opciones extra:


f podemos ordenar los resultados por categoría, para ello tiene un menú interactivo donde podemos elegirlas.









 z para ver los procesos en marcha, la visualización cambia de color y podemos verlos fácilmente

shift + p ordena la tabla por uso de la CPU

k para terminar un proceso seleccionado por PID.

h para ver el menú de ayuda y ver el resto de opciones que tiene, la mayoría en el modo interactivo y algunas en terminal como:


_$ top -u tecmint    # para filtrar por usuario



_$ top -n 1 -b > top-output.txt  # grabar el resultado en un documento de texto en

                                                       #  /root/.toprc



Aparte de su ligereza, la opción de poder filtrar procesos y pasarlos a un documento de texto me parece genial, cuando aprendes a usarlo un poco se hace muy rápido.


Cerramos este capítulo de top y continuamos con mas comandos:

tail

Con tail -f "archivo.log" podemos ver un .log que cualquier actividad de nuestro sistema, concretamente vemos las últimas diez líneas de un archivo. Recordamos que los .log se encuentran en /var/log/ asi que por ejemplo:


_$ tail -f /var/log/apt/history.log



Con este comando en la terminal podemos ver los últimos paquetes instalados


Sin embargo para ver el .log de arranque tenemos el comando dmesg para la terminal. 

Podemos combinarlo con una tubería (pipe)  con | less o  | more para poder ver el listado mas cómodamente en pantalla.
Por ejemplo:

_$ dmesg | more 
_$ dmesg | less 






grep

grep imprime líneas que coinciden con un patrón o filtro proporcionado por el usuario por ejemplo: grep “filtro” archivo.txt nos mostraría la línea del archivo de texto que contenga la palabra filtro.


_$ free -h 



Con este simple comando podemos ver la Memoria Ram, el Buffer y Swap disponible.


_$ free -hl


para ver información mas detallada

Para el improbable caso de que necesitéis limpiar la memoria caché solo tendríais que teclear los siguientes comandos en la terminal:


_$ sync && echo 1 > /proc/sys/vm/drop_cache



_$ sync && echo2 > proc/sys/vm/drop_caches

_$ sync && echo 3 > /proc/sys/vm/drop_caches



Sync vaciará el búfer del sistema de archivos mientras que enviando los valores 1,2 o 3 a drop_caches lo que hacéis es:

  1. Limpiar el cache de página o de disco.
  2. Limpiar memoria asignada a directorios e inodos.
  3. Bueno la opción tres es: la 1 y la 2 combinadas...

Ya que nos ponemos a limpiar, podemos limpiar la memoria swap con:

_$ swapoff -a && swapon -a


Al comando cat creo que todos los usuarios de linux lo conocemos, pero por si acaso; os recuerdo que cat nos muestra en la terminal de contenido de archivos, normalmente se combina con otros comandos para obtener diferentes resultados. 
Cat tiene varias opciones de filtrado y nos permite concatenar el contenido de dos archivos y mostrarlo en la terminal.


Vamos a ver unos cuantos usos de cat:


_$ cat /etc/*release 









para ver la información detallada de la distribución y versión que tenemos instalada.




_$ cat /etc/issue          # muestra la distribución Linux instalada.


_$ cat /proc/cpuinfo   # nos muestra información sobre el procesador




Y bueno ya que estamos averiguando cosas sobre nuestro sistema linux podemos usar:


_$ uname -r   # para saber la versión del kernel


lshw

Si lo que necesitamos es tener información sobre el hardware tenemos a nuestra disposición el comando lshw. Ejecutando este comando con privilegios (sudo) tendremos una información mas detallada. 


lshw -short    # asi tenemos una lista del hardware mas compacta legible











Aparte tenemos las opciones:



_$ lshw -class disk  # lista todos los controladores de disco
 
_$ lshw -class storage  # lista los controladores de almacenamiento en el sistema

_$ lshw -html >  ~/ruta/hardware.html  # saca la lista por un html

# y por último:

-$ lshw -sanitize       # Filtrado de informacion sensible en la salida, como ip's




lspci

Con lspci podemos ver todos los Buses y dispositivos del sistema. Como el flujo de información es bastante extenso podemos acotarlos con diferentes filtros como:


_$ lspci | grep -i network     # para ver las tarjetas de red

_$ lspci | grep VGA              # monitores o tarjetas gráficas

_$ lspci | grep Audio       # para ver los dispositivos de audio




lsusb



lsusb es una utilidad para mostrar información sobre buses USB en el sistema y los dispositivos conectados a ellos.



_$ lsusb -v                    # salida detallada

_$ lsusb | grep -i network   # para ver interfaces de red usb.

_$ lsusb -t                # ver los usb en árbol jerárquico





lscpu

Se trata de un programa que muestra la información acerca de la arquitectura de los CPU presentes en el sistema, mostrando el contenido de /proc/cpuinfo en un formato más fácil de leer.





lsmod

Es muy típico en Linux los problemas con ciertos hardwares con mala compatibilidad. El primer paso cuando tenemos algún problema de este tipo es comprobar si el sistema reconoce este hardware, para ello podemos usar lsmod que nos permite comprobar que módulos han sido cargados al inicio y si están siendo utilizados.
Simplemente introducimos lsmod en la terminal:










Si queremos ver mas detalles sobre un módulo en concreto solo tenemos que usar modinfo, por ejemplo en la imagen de arriba para ver el modulo  rfcomm  (os lo señalo en rojo) solo tendríamos que introducir:



_$ modinfo rfcomm


y tenemos todos los detalles sobre este módulo:





lsof

Con este comando podemos ver los archivos abiertos en el sistema, simplemente con lsof en la terminal nos saldrá una lista larguísima de datos pero podemos acotarla de varias maneras:


_$ lsof -p PID   # listamos los archivos por PID

_$ lsof -u Usuario  # listamos los datos por usuario

_$ lsof  –i          # para ver la actividad del servicio de red en tiempo real




y cuando terminemos nuestras averiguaciones podemos usar clear para limpiar la terminal :)

Y bueno con esto termino ya el post, me he dejado algunos comandos fuera, pero o no estaban relacionados con el tema o he pensado que igual eran un poco mas difíciles; yo quería que fueran asequibles para todo los usuarios. Si estas leyendo esto y piensas que hay alguno que debería formar parte de esta lista, no dudes y dejámelo en los comentarios.


No hay comentarios:

Publicar un comentario