74

Domina Linux con las mejores 15 herramientas y comandos

52138Puntos

hace 2 años

Si trabajas como Sysadmin, developer o DevOps, entre otros, utilizar efectivamente Linux se vuelve una habilidad fundamental, ya que Linux es considerado la columna vertebral de la mayoría de los servidores y aplicaciones en todo el mundo.

Para 2021, el 47% de profesionales confirmó el uso de sistemas operativos basados en Linux como su entorno de desarrollo preferido, de acuerdo con Statista.

Estadistica

Es por esta razón que te presentaré una lista curada de los comandos que te ayudarán a ser más eficiente y gestionar un sistema Linux y sus herramientas vitales.

Herramientas de Utilidades

1. rsync

Este comando se usa para copiar archivos y directorios, funciona muy similar al comando cp. Sin embargo, también permite copiarlos en ubicaciones remotas y proporciona barra de progreso.

Es útil a la hora de realizar copias de seguridad.

# Ejemplo
$ rsync -vap --ignore-existing <source_file># Banderas
v = verboso 
r = recursivo
p = preservar permisos
g = grupo
o = propietario
a = archivo
--progress = barra de progreso

2. mkpasswd

Comando sencillo, pero útil. Su funcionalidad es generar una contraseña aleatoria compleja con la longitud especificada.

# Ejemplo
$ mkpasswd -l 8

# Salida
> iwF1g2Lo

3. screen

Screen es un gestor de ventanas a pantalla completa. Este comando crea una única ventana con un shell en ejecución y permite ejecutar varias ventanas dentro de una única sesión.

Es especialmente útil cuando tienes que ejecutar una tarea larga de forma remota y tienes la preocupación de que tu sesión SSH se caiga y arruine todo. Screen se asegurará de seguir ejecutando los comandos incluso cuando la ventana no esté en primer plano.

# Ejemplos# Inicia una sesión
$ screen

# Lista los servicios en ejecución
$ screen -ls

4. ldapsearch

Si trabajas regularmente con bases de datos LDAP, ldapsearch se volverá tu mejor amigo. Abre una conexión a un servidor LDAP y te permite buscar, encontrar y depurar entradas en tu base de datos.

# Ejemplo
$ ldapsearch -x -W -D # Banderas
-x = autenticación simple
-W = solicitar la contraseña
-D = utiliza el nombre de bind dn para enlazar con el directorio LDAP

Herramientas de control

5. uptime

Uptime devuelve métricas sobre el tiempo en que un servidor ha estado en funcionamiento, la hora actual, el número de usuarios y el promedio de uso de memoria. Si algo va mal en un servidor, esta debería de ser tu primera opción.

# Ejemplo
$ uptime

# Atajo, despliega información al detalle
$ w

6. wall

Este comando permite enviar un mensaje a la terminal de todas las personas que estén conectadas al servidor en ese momento. Es increíble para mandar anuncios a todo el sistema.

# Ejemplo
$ wall "Mantenimiento programado para las 15:00"# Salida
> Broadcast message from Joel@localhost: Mantenimiento programado para las 15:00

7. top

Muestra una lista de procesos que se actualiza automáticamente para las métricas de uso del CPU y de memoria crítica.

# Ejemplo
$ top

8. lsof

Este comando te permite listar los archivos que están siendo utilizados, ya que identifica rápidamente qué archivos están en uso y qué procesos los tienen abiertos.

# Ejemplo
$ lsof

Herramientas de red

9. netcat

Netcat o mejor conocido como nc se utiliza principalmente para el escaneo de puertos, aunque esta no es su única funcionalidad. Netcat puede soportar el escaneo de puertos, copia de archivos, reenvío de puertos, servidores proxy y servidores de alojamiento.

# Ejemplos# Comprueba la conexión entre dos hosts en un puerto determinado
$ nc -vz # Crea un servidor proxy
$ nc -l 8080 | nc  80

10. netstat

Netstat devuelve detalles de la red, como tablas de enrutamiento, conexiones de red, membresías, estadísticas y banderas, entre otros.

# Ejemplos# Lista de todos los puertos de red
$ netstat -a# # Listar todos los puertos de escucha
$ netstat -tlpn

# Banderas-s = Muestra estadísticas
-v = verboso
-r = Muestra tablas de enrutamiento
-i = Muestra tabla de interfaces
-g = Muestra memorias de grupo

11. nslookup

Se utiliza para obtener información sobre servidores en Internet o en la red local. nslookup consulta el DNS para encontrar la información del servidor y puede ser útil para depurar la red.

# Ejemplo
$ nslookup platzi.com

# Key Flags
-port = Cambia el número de puerto para la conexión
-type = Cambiar el tipo de consulta
-domain = Establece el dominio

Comandos de Linux

12. Imprimir archivos JSON de forma legible

La lectura de datos de un archivo JSON desde la terminal puede ser frustrante cuando se trabaja con una API. Como puedes observar en la siguiente imagen, incluso un conjunto de datos pequeño puede ser difícil de leer.

$ cat person.json
json

Por suerte, Python tiene una solución para esto. Al enviar la salida del documento a través de Python se puede invocar el módulo de JSON, lo cual imprimirá el documento de una forma mucho más amigable para su lectura.

$ cat person.json | python -m json.tool
json-pretty

13. Buscar paquetes

Si no recuerdas el nombre exacto de un paquete, puedes buscarlo haciendo uso del apt-cache con alguna palabra clave. El resultado de este comando será una lista de paquetes que coincidan con la palabra clave buscada.

$ apt-cache search 

14. Lista todos los servicios en Linux

Si en algún momento requieres listar todos los servicios, es decir, los activos e inactivos, este comando te será de gran ayuda. Además de listarlos, puedes utilizar el filtro --type para limitar los resultados según su tipo.

$ systemctl list-units --type=service --all

15. Convertir timestamp en un formato legible

Cuando necesites convertir un timestamp a un formato legible para cualquier ser humano, el comando date te ahorrará muchísimo tiempo.

$ date -d 1656685875
date

En la imagen puedes observar que utilicé -r en lugar de -d esto es porque me encuentro en el sistema operativo de macOS. Si estás en un sistema operativo Linux, la bandera -d funcionará perfectamente para ti.

El comando date te permite obtener la hora actual en el formato de timestamp si lo llegas a necesitar.

$ date "+%s"
Stamp

¿Qué otros comandos de Linux incluirías?

Con estos comandos y herramientas estoy segura de que te convertirás en un as con la terminal en Linux y empezarás a disfrutar de ejecutar diversas tareas desde ella. En los comentarios cuéntame qué comando faltó y consideres que es un must conocerlo para resolver alguna tarea del día a día.

Si bien, como te comentaba al inicio de este blog, el 47% de profesionales dedicados al desarrollo utiliza Linux en su día a día, también este sistema operativo tiene la mayor adopción para la administración de servidores. Por lo tanto, si quieres adentrarte aún más en este mundo, te recomiendo el Curso de Administración de Servidores Linux.

Recuerda nunca parar de aprender 💚

Alex
Alex
alexcamachogz

52138Puntos

hace 2 años

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
3
50202Puntos
2 años

Excelente!. Hay un typo en el 13 “seach” por “search”.
Para quien no se acuerde, en el 12

cat person.json | python -m json.tool

La barra vertical es un operador de canalización que envían el resultado del primer comando como dato de entrada para el 2do.

Agrego que rsync en particular es excelente, adicional a lo que menciona Alex permite identificar copias parciales y hace del proceso de copia algo muy sencillo.

1
52138Puntos
2 años

Corregido el typo muchas gracias 💚

3
51252Puntos
2 años

Qué buen aporte, Alex!!! No me sabía esos trucos, los pondré en práctica, muchas gracias 🤓🤓🤓

Yo incluiría el comando de apropos

Si no cuentas con google para saber qué comandos hay disponibles según tus necesidades puedes usarlo. Por ejemplo, para averiguar los comandos relacionados con redes escribes el comando seguido del nombre del tema que buscas como argumento

apropos network

Y el stdout será una lista de muchísimos comandos útiles segun esta necesidad. 😎

2
17432Puntos
2 años

yo incluiría, el comando who. para saber quien esta conectado al sistema

1
11507Puntos
2 años

esta re cool todo! aun no uso ni la mitad de esos comandos, creo solo uso los basicos como mkdir, cp, cd, rm -r, pwd etc pero esta genial saber otros comandos por ahi ❤️

1
54309Puntos
2 años

We will rock 🤘

1
28511Puntos
2 años

Yo le agregaría al menos 2 herramientas a esta lista, exa y bat que son la versión moderna de ls y cat respectivamente.

1
943Puntos
2 años

Yo agregaria el comando ps -ef | more
para ver los diferentes procesos que estan corriendo en el servidor y quien los esta corriendo

también agregaria el comando df -v para ver el porcentaje de ocupacion de los diferentes fyle systems

1
1921Puntos
2 años

Pues a instalar la WSL ya!