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.

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

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

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

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"

¿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 💚
Curso de Administración de Servidores Linux