Cuando se trata de gestionar un servidor Linux, dominar los comandos del servidor Linux en la línea de comandos es crucial. La interfaz de línea de comandos (CLI) ofrece herramientas poderosas que permiten a los administradores de sistemas realizar tareas de manera rápida, eficiente y con un alto grado de control. Ya sea que esté configurando configuraciones de red, gestionando usuarios o optimizando el rendimiento, conocer los comandos correctos del servidor Linux puede ahorrar tiempo y prevenir errores.
En esta guía completa, exploraremos 100 de los comandos más importantes del servidor Linux, organizados en categorías clave que cubren desde la gestión básica de archivos hasta la administración avanzada del sistema. Ya sea que seas un administrador de sistemas experimentado o un recién llegado a Linux, esta guía te ayudará a ser más competente en la gestión de tu entorno de servidor.
Comandos Básicos
Los comandos básicos son la base para trabajar con servidores Linux. Son esenciales para navegar por el sistema de archivos, manejar archivos y directorios, y realizar tareas cotidianas en la línea de comandos. Aquí, discutiremos los comandos básicos más importantes que todo administrador de sistemas Linux debe conocer.
- pwd (Print Working Directory)
Uso: pwd
Descripción: Muestra la ruta del directorio actual. Este comando es útil cuando deseas conocer la ubicación exacta dentro del sistema de archivos donde estás trabajando. Por ejemplo, si estás dentro de directorios anidados, pwd mostrará la ruta completa. - ls (List Directory Contents)
Uso: ls [opciones] [directorio]
Descripción: Lista los archivos y directorios en el directorio actual. Las opciones comunes incluyen:- -l para una lista detallada (muestra permisos, propiedad, tamaño, etc.).
- -a para incluir archivos ocultos.
- -h para tamaños de archivo legibles por humanos.
- cd (Change Directory)
Uso: cd [directorio]
Descripción: Cambia el directorio actual al directorio especificado. Por ejemplo, cd /home/user/documents navega al directorio «documents». Usa cd .. para subir un nivel de directorio y cd ~ para ir al directorio personal. - mkdir (Make Directory)
Uso: mkdir [nombre del directorio]
Descripción: Crea un nuevo directorio con el nombre especificado. Por ejemplo, mkdir nueva_carpeta crea un directorio llamado “nueva_carpeta” en la ubicación actual. - rm (Remove Files or Directories)
Uso: rm [opciones] [archivo o directorio]
Descripción: Elimina archivos o directorios. Opciones importantes incluyen:- -r para eliminación recursiva (necesario para directorios).
- -f para forzar la eliminación sin avisos.
Precaución: Ten mucho cuidado con rm -rf, ya que eliminará todo en el directorio especificado sin pedir confirmación.
- cp (Copy Files or Directories)
Uso: cp [origen] [destino]
Descripción: Copia archivos o directorios de una ubicación a otra. Usa la opción -r para copiar directorios de forma recursiva. Por ejemplo, cp -r carpeta1 carpeta2 copia “carpeta1” a “carpeta2”. - mv (Move or Rename Files or Directories)
Uso: mv [origen] [destino]
Descripción: Mueve archivos o directorios a una ubicación diferente, o los renombra si el destino está dentro del mismo directorio. Por ejemplo, mv nombre_viejo nombre_nuevo renombra un archivo. - touch (Create an Empty File or Update File Timestamps)
Uso: touch [nombre del archivo]
Descripción: Crea un archivo vacío con el nombre especificado si no existe, o actualiza la fecha de modificación y acceso del archivo si ya existe. Esto es útil para crear archivos de marcador de posición o actualizar las marcas de tiempo. - cat (Concatenate and Display File Contents)
Uso: cat [archivo]
Descripción: Muestra el contenido de un archivo. Por ejemplo, cat ejemplo.txt mostrará el contenido de “ejemplo.txt” en la terminal. También puedes concatenar varios archivos usando cat archivo1 archivo2 > archivo_combinado. - echo (Display a Line of Text)
Uso: echo [texto]
Descripción: Muestra el texto especificado en la terminal. A menudo se usa en scripts para mostrar mensajes o para escribir texto en archivos, por ejemplo, echo «¡Hola, Mundo!» > hola.txt escribe “¡Hola, Mundo!” en el archivo “hola.txt”.
Estos comandos básicos forman el núcleo de las operaciones en la línea de comandos de Linux. Te permiten navegar por el sistema de archivos, gestionar archivos y directorios, y realizar tareas simples que son esenciales para una administración de sistemas más compleja.
Gestión de Archivos y Directorios
Los comandos de gestión de archivos y directorios son cruciales para organizar, buscar y manipular archivos y directorios en un servidor Linux. Estos comandos te dan control sobre los permisos de archivos, la propiedad y el contenido, permitiéndote gestionar de manera eficiente el sistema de archivos de tu servidor.
- chmod (Change File Modes or Access Permissions)
Uso: chmod [opciones] [permisos] [archivo o directorio]
Descripción: Cambia los permisos de acceso de archivos o directorios. Los permisos pueden configurarse utilizando modos simbólicos (por ejemplo, chmod u+x file) o numéricos (por ejemplo, chmod 755 file). Este comando es esencial para controlar quién puede leer, escribir o ejecutar archivos. - chown (Change File Owner and Group)
Uso: chown [propietario][:grupo] [archivo o directorio]
Descripción: Cambia la propiedad de archivos o directorios. Por ejemplo, chown user:group file establece el propietario del archivo como “user” y su grupo como “group”. Esto es importante para gestionar el control de acceso en sistemas multiusuario. - find (Search for Files in a Directory Hierarchy)
Uso: find [ruta] [opciones] [expresión]
Descripción: Busca archivos y directorios dentro de una ruta especificada que coincidan con una expresión dada. Por ejemplo, find /home/user -name «*.txt» busca todos los archivos .txt en el directorio personal del usuario. Este comando es altamente versátil, permitiéndote buscar por nombre, tipo, tamaño, tiempo de modificación, y más. - grep (Search for Text Patterns in Files)
Uso: grep [opciones] [patrón] [archivo]
Descripción: Busca un patrón específico de texto dentro de archivos. Por ejemplo, grep «error» logfile.txt devolverá todas las líneas en “logfile.txt” que contengan la palabra “error”. Este comando es invaluable para encontrar rápidamente información específica dentro de archivos grandes. - tar (Archive Files)
Uso: tar [opciones] [nombre del archivo] [archivo o directorio]
Descripción: Crea y extrae archivos de archivo. Las opciones comunes incluyen:- -c para crear un nuevo archivo de archivo.
- -x para extraer un archivo de archivo.
- -v para salida detallada.
- -f para especificar el nombre del archivo de archivo.
- -z para comprimir el archivo usando gzip.
Por ejemplo, tar -czvf archivo.tar.gz carpeta crea un archivo comprimido de “carpeta”.
- zip / unzip (Compress and Decompress Files)
Uso: zip [nombre del archivo] [archivo o directorio] / unzip [nombre del archivo]
Descripción: zip comprime archivos en un archivo ZIP, mientras que unzip los extrae. Por ejemplo, zip -r archivo.zip carpeta crea un archivo ZIP de “carpeta”, y unzip archivo.zip lo extrae. - ln (Create Hard and Symbolic Links)
Uso: ln [opciones] [objetivo] [nombre del enlace]
Descripción: Crea enlaces a archivos. Un enlace físico apunta directamente al inode del archivo original, mientras que un enlace simbólico (o symlink) es un puntero a otro archivo o directorio. Por ejemplo, ln -s /ruta/al/archivo nombre_enlace crea un enlace simbólico a “archivo”. - df (Report File System Disk Space Usage)
Uso: df [opciones]
Descripción: Muestra la cantidad de espacio en disco utilizado y disponible en los sistemas de archivos montados. La opción -h proporciona una salida legible por humanos, mostrando tamaños en KB, MB o GB. Este comando es esencial para monitorear el uso del disco en tu servidor. - du (Estimate File Space Usage)
Uso: du [opciones] [archivo o directorio]
Descripción: Resume el uso del disco de cada archivo o directorio. Por ejemplo, du -sh carpeta muestra el tamaño total de “carpeta” en un formato legible por humanos. Este comando ayuda a identificar qué directorios están consumiendo más espacio. - rsync (Remote File and Directory Synchronization)
Uso: rsync [opciones] [origen] [destino]
Descripción: Sincroniza eficientemente archivos y directorios entre dos ubicaciones, ya sea localmente o de forma remota. Por ejemplo, rsync -avz /origen/ usuario@remoto:/destino/ sincroniza archivos de una fuente local a un destino remoto con compresión. rsync se utiliza ampliamente para copias de seguridad y espejos.
Los comandos de gestión de archivos y directorios son vitales para mantener el orden y asegurar una gestión eficiente del almacenamiento en un servidor Linux. Estos comandos proporcionan las herramientas necesarias para buscar, organizar y gestionar archivos y directorios de manera efectiva, asegurando que tu servidor funcione sin problemas y que los archivos estén fácilmente accesibles cuando se necesiten.
Información del Sistema
Los comandos de información del sistema son esenciales para recopilar detalles sobre el hardware, software y rendimiento general del sistema. Estos comandos ayudan a los administradores a monitorear el estado del sistema, diagnosticar problemas y tomar decisiones informadas sobre la gestión del sistema y la asignación de recursos.
- uname (Print System Information)
Uso: uname [opciones]
Descripción: Muestra información del sistema, como el nombre del kernel, la versión y el nombre del hardware de la máquina. Las opciones comunes incluyen:- -a para toda la información.
- -r para la versión del kernel.
Por ejemplo, uname -r muestra la versión del kernel.
- top (Display Linux Tasks)
Uso: top
Descripción: Proporciona una vista dinámica y en tiempo real de los procesos en ejecución, incluyendo su uso de CPU y memoria. Es una herramienta esencial para monitorear la carga del sistema e identificar procesos que consumen muchos recursos. Puedes ordenar los procesos por uso de CPU o memoria, terminar procesos, y más directamente desde la interfaz de top. - htop (Interactive Process Viewer)
Uso: htop
Descripción: Similar a top, pero con una interfaz de usuario mejorada que permite una navegación e interacción más sencilla. htop proporciona información en tiempo real sobre los procesos del sistema con un código de colores, lo que facilita su monitoreo y gestión. - df (Report File System Disk Space Usage)
Uso: df [opciones]
Descripción: Muestra la cantidad de espacio en disco utilizado y disponible en todos los sistemas de archivos montados. La opción -h proporciona un formato legible por humanos, mostrando tamaños en KB, MB o GB. Este comando es crucial para monitorear y gestionar el espacio en disco en tu servidor. - du (Estimate File Space Usage)
Uso: du [opciones] [archivo o directorio]
Descripción: Resume el uso del disco de archivos y directorios. Usa la opción -sh para obtener un resumen legible por humanos del tamaño de un directorio. Por ejemplo, du -sh /var/log muestra el tamaño total del directorio /var/log. Este comando ayuda a identificar qué directorios o archivos están consumiendo más espacio en disco. - free (Display Memory Usage)
Uso: free [opciones]
Descripción: Muestra la cantidad de memoria libre y utilizada en el sistema. La opción -h muestra la salida en un formato legible por humanos (MB, GB). Por ejemplo, free -h proporciona una visión general de la memoria total, usada y disponible, así como el uso de swap. - uptime (Tell How Long the System Has Been Running)
Uso: uptime
Descripción: Muestra la hora actual, cuánto tiempo ha estado funcionando el sistema, el número de usuarios conectados actualmente y los promedios de carga del sistema durante los últimos 1, 5 y 15 minutos. Este comando es útil para verificar rápidamente la estabilidad y carga del sistema. - hostname (Show or Set the System’s Host Name)
Uso: hostname [opciones] [nombre]
Descripción: Muestra o establece el nombre del host del sistema. Ejecutar hostname sin opciones muestra el nombre del host actual, mientras que hostname nuevo_nombre establece un nuevo nombre de host. Esto es importante para identificar el servidor en una red. - uname -r (Display Kernel Version)
Uso: uname -r
Descripción: Muestra la versión del kernel de Linux que se está ejecutando en el sistema. Esto es crucial para la resolución de problemas y para garantizar la compatibilidad con el software y los controladores. - vmstat (Report Virtual Memory Statistics)
Uso: vmstat [opciones] [intervalo [recuento]]
Descripción: Proporciona información detallada sobre procesos, memoria, paginación, E/S de bloques, interrupciones y actividad de la CPU. Por ejemplo, vmstat 5 3 muestra estadísticas de memoria en intervalos de 5 segundos, tres veces. Este comando es particularmente útil para identificar cuellos de botella en la memoria. - iostat (Report CPU and I/O Statistics)
Uso: iostat [opciones] [intervalo [recuento]]
Descripción: Proporciona informes detallados sobre estadísticas de CPU y E/S, ayudando a identificar problemas de rendimiento relacionados con la E/S del disco. Por ejemplo, iostat 5 muestra estadísticas cada 5 segundos. Este comando es esencial para diagnosticar problemas de rendimiento en sistemas de almacenamiento.
Los comandos de información del sistema son indispensables para monitorear y diagnosticar la salud y el rendimiento de tu servidor Linux. Al utilizar estos comandos, puedes recopilar datos cruciales sobre el estado del sistema, identificar posibles problemas y tomar decisiones informadas para asegurar un rendimiento óptimo del servidor.
También comprobar: Herramientas Básicas de Administradores de Sistemas para el Servidor Linux Zentyal
Comandos de Gestión de Red
Los comandos de gestión de red son fundamentales para mantener la salud y seguridad de las conexiones de red de tu servidor Linux. Estas herramientas te permiten configurar interfaces, monitorear el tráfico, solucionar problemas de conectividad y asegurar tu red contra posibles amenazas.
- ping (Enviar ICMP ECHO_REQUEST a Hosts de Red)
Uso: ping [opciones] [destino]
Descripción: Prueba la conectividad de red entre tu servidor y otro dispositivo enviando paquetes ICMP ECHO_REQUEST y midiendo el tiempo de respuesta. Por ejemplo, ping google.com verifica si tu servidor puede llegar a Google y cuánto tiempo tarda. Es una herramienta fundamental para diagnosticar problemas de conectividad de red. - ifconfig (Configure Network Interfaces)
Uso: ifconfig [interfaz] [opciones]
Descripción: Muestra o configura las interfaces de red. Por ejemplo, ifconfig eth0 muestra la configuración de la interfaz eth0. Aunque en gran medida ha sido reemplazado por el comando ip en sistemas modernos, ifconfig todavía se utiliza comúnmente para ver y configurar direcciones IP, máscaras de subred y habilitar/deshabilitar interfaces. - ip (Show/Manipulate Routing, Devices, and Tunnels)
Uso: ip [opciones] [objeto]
Descripción: Una herramienta más moderna y poderosa que ifconfig para configurar interfaces de red, enrutamiento y túneles. Por ejemplo, ip addr show muestra todas las interfaces de red y sus direcciones IP asociadas. El conjunto de comandos ip es versátil y crucial para la configuración avanzada de redes. - netstat (Network Statistics)
Uso: netstat [opciones]
Descripción: Muestra conexiones de red, tablas de enrutamiento, estadísticas de interfaces, conexiones enmascaradas y membresías de multidifusión. Por ejemplo, netstat -tuln muestra todos los puertos en escucha y sus servicios correspondientes. Este comando es esencial para monitorear el tráfico de red e identificar conexiones activas. - ss (Another Utility to Investigate Sockets)
Uso: ss [opciones]
Descripción: Una alternativa más rápida y eficiente a netstat, ss proporciona información detallada sobre conexiones de sockets, incluyendo TCP, UDP y sockets raw. Por ejemplo, ss -tuln muestra todos los sockets en escucha, similar a netstat -tuln. Este comando es particularmente útil para diagnosticar problemas de red. - traceroute (Print the Route Packets Take to a Network Host)
Uso: traceroute [destino]
Descripción: Rastrea la ruta que toman los paquetes desde tu servidor hasta un destino especificado, mostrando cada salto en el camino. Por ejemplo, traceroute google.com muestra la ruta tomada para llegar a los servidores de Google. Este comando ayuda a identificar dónde ocurren retrasos o fallos en la red. - nslookup (Query Internet Name Servers Interactively)
Uso: nslookup [dominio]
Descripción: Consulta servidores DNS para obtener el mapeo de nombres de dominio o direcciones IP. Por ejemplo, nslookup example.com recupera la dirección IP asociada con “example.com”. Este comando es útil para solucionar problemas de DNS. - dig (DNS Lookup Utility)
Uso: dig [opciones] [dominio]
Descripción: Realiza consultas DNS detalladas, proporcionando una salida más completa que nslookup. Por ejemplo, dig example.com recupera los registros DNS de “example.com”. La opción +short simplifica la salida a solo la dirección IP resuelta, haciendo de dig una herramienta versátil para diagnósticos DNS. - scp (Secure Copy)
Uso: scp [opciones] [origen] [destino]
Descripción: Copia de forma segura archivos y directorios entre hosts a través de una conexión SSH. Por ejemplo, scp file.txt user@remote:/path/ copia “file.txt” al directorio especificado en un servidor remoto. Este comando es vital para transferir archivos de manera segura entre servidores. - ssh (OpenSSH SSH Client)
Uso: ssh [opciones] [usuario@nombre_host]
Descripción: Conecta a un servidor remoto usando el protocolo SSH, permitiendo un acceso seguro a la línea de comandos. Por ejemplo, ssh [email protected] establece una conexión segura con “remote-server.com”. SSH es fundamental para la gestión remota de servidores. - wget (Non-interactive Network Downloader)
Uso: wget [opciones] [URL]
Descripción: Descarga archivos desde la web a través de HTTP, HTTPS o FTP. Por ejemplo, wget http://example.com/file.zip descarga “file.zip” desde la URL especificada. wget es particularmente útil para scripts automatizados y para descargar archivos sin intervención del usuario. - curl (Transfer Data From or To a Server)
Uso: curl [opciones] [URL]
Descripción: Transfiere datos desde o hacia un servidor utilizando una variedad de protocolos, incluyendo HTTP, HTTPS, FTP y más. Por ejemplo, curl -O http://example.com/file.zip descarga “file.zip” como wget, pero curl también soporta operaciones complejas como solicitudes POST y autenticación, lo que lo convierte en una herramienta poderosa para interacciones web. - nmap (Network Exploration Tool and Security/Port Scanner)
Uso: nmap [opciones] [objetivo]
Descripción: Escanea redes en busca de puertos abiertos, servicios en ejecución y vulnerabilidades. Por ejemplo, nmap -sP 192.168.1.0/24 realiza un escaneo de ping para descubrir hosts activos en la red. nmap es una herramienta esencial para auditorías de seguridad y exploración de redes. - tcpdump (Command-line Packet Analyzer)
Uso: tcpdump [opciones]
Descripción: Captura y analiza paquetes de red en tiempo real. Por ejemplo, tcpdump -i eth0 captura todos los paquetes en la interfaz eth0. Este comando es invaluable para solucionar problemas de red y monitorear el tráfico a un nivel granular.
Los comandos de gestión de red son críticos para mantener la salud y seguridad de las conexiones de red de tu servidor Linux. Estas herramientas te permiten configurar interfaces, monitorear el tráfico, solucionar problemas de conectividad y asegurar tu red contra posibles amenazas.
Gestión de Usuarios y Permisos
Los comandos de gestión de usuarios y permisos son esenciales para mantener la seguridad e integridad de tu servidor Linux. Estos comandos te ayudan a controlar quién puede acceder al servidor, qué pueden hacer y aseguran que los permisos estén configurados correctamente para proteger datos sensibles.
- useradd / adduser (Create a New User)
Uso: useradd [opciones] nombre_de_usuario / adduser [nombre_de_usuario]
Descripción: useradd y adduser se utilizan para crear nuevas cuentas de usuario. Mientras que useradd es más básico, adduser es un script más amigable e interactivo que te solicita ingresar detalles del usuario como contraseña, directorio personal y shell. Por ejemplo, useradd john crea un nuevo usuario llamado “john”. - usermod (Modify a User Account)
Uso: usermod [opciones] nombre_de_usuario
Descripción: Modifica cuentas de usuario existentes, como cambiar el nombre de usuario, ID de usuario, ID de grupo, directorio personal o shell. Por ejemplo, usermod -l nuevo_nombre antiguo_nombre cambia el nombre de usuario de “antiguo_nombre” a “nuevo_nombre”. - userdel (Delete a User Account)
Uso: userdel [opciones] nombre_de_usuario
Descripción: Elimina una cuenta de usuario del sistema. La opción -r elimina también el directorio personal y el buzón de correo del usuario. Por ejemplo, userdel -r john elimina al usuario “john” y su directorio personal. - passwd (Change User Password)
Uso: passwd [nombre_de_usuario]
Descripción: Cambia la contraseña de una cuenta de usuario. Sin opciones, passwd cambia la contraseña del usuario actual. Por ejemplo, passwd john cambia la contraseña del usuario “john”. Este comando también se utiliza para gestionar fechas de expiración de cuentas y bloquear o desbloquear cuentas de usuario. - groups (Show User Groups)
Uso: groups [nombre_de_usuario]
Descripción: Muestra los grupos a los que pertenece un usuario. Por ejemplo, groups john muestra todos los grupos de los que “john” es miembro. Este comando es útil para verificar la membresía en grupos. - sudo (Execute a Command as Another User)
Uso: sudo [comando]
Descripción: Permite a un usuario autorizado ejecutar un comando como superusuario u otro usuario, según lo especifique la política de seguridad. Por ejemplo, sudo apt-get update ejecuta el comando de actualización de paquetes con privilegios de superusuario. sudo es esencial para realizar tareas administrativas sin iniciar sesión como usuario root. - chown (Change File Owner and Group)
Uso: chown [propietario][:grupo] [archivo o directorio]
Descripción: Cambia la propiedad de un archivo o directorio. Por ejemplo, chown john:admin file.txt cambia el propietario de “file.txt” a “john” y su grupo a “admin”. Este comando es crucial para gestionar el acceso a archivos y la propiedad en un entorno multiusuario. - chmod (Change File Modes or Access Permissions)
Uso: chmod [permisos] [archivo o directorio]
Descripción: Cambia los permisos de acceso de archivos o directorios. Los permisos pueden configurarse utilizando modos simbólicos (por ejemplo, chmod u+x file) o numéricos (por ejemplo, chmod 755 file). Por ejemplo, chmod 644 file.txt establece permisos de lectura y escritura para el propietario y solo lectura para otros. - umask (Set Default File Permissions)
Uso: umask [máscara]
Descripción: Establece los permisos predeterminados para archivos y directorios recién creados. El valor de umask determina qué bits de permiso no se establecerán en los archivos nuevos. Por ejemplo, umask 022 da como resultado que los nuevos archivos tengan permisos de 755 (legibles y ejecutables por todos, solo modificables por el propietario). - id (Print User and Group Information)
Uso: id [nombre_de_usuario]
Descripción: Muestra el ID de usuario (UID), ID de grupo (GID) y las membresías de grupo para un usuario. Por ejemplo, id john muestra el UID, GID y todas las membresías de grupo de “john”. Este comando es útil para verificar la identidad y permisos de un usuario. - su (Substitute User Identity)
Uso: su [opciones] [nombre_de_usuario]
Descripción: Cambia a otra cuenta de usuario, permitiéndote ejecutar comandos con los privilegios de ese usuario. Por ejemplo, su – john cambia a la cuenta “john” con el entorno del usuario. Si no se especifica un nombre de usuario, se cambia al superusuario (root) por defecto. - gpasswd (Administer /etc/group and /etc/gshadow)
Uso: gpasswd [opciones] [grupo]
Descripción: Administra /etc/group y /etc/gshadow, permitiéndote establecer contraseñas, agregar usuarios a grupos y eliminar usuarios de grupos. Por ejemplo, gpasswd -a john admin agrega a “john” al grupo “admin”. Este comando es útil para gestionar membresías de grupo y seguridad. - passwd -l (Lock a User Account)
Uso: passwd -l [nombre_de_usuario]
Descripción: Bloquea una cuenta de usuario, impidiendo que el usuario inicie sesión. Por ejemplo, passwd -l john bloquea la cuenta “john”. Esto es útil para desactivar temporalmente una cuenta sin eliminarla. - passwd -u (Unlock a User Account)
Uso: passwd -u [nombre_de_usuario]
Descripción: Desbloquea una cuenta de usuario previamente bloqueada, permitiendo que el usuario vuelva a iniciar sesión. Por ejemplo, passwd -u john desbloquea la cuenta “john”. - who (Show Who is Logged On)
Uso: who
Descripción: Muestra información sobre todos los usuarios que están actualmente conectados al sistema, incluyendo su terminal, hora de inicio de sesión y la IP de origen. Este comando es útil para monitorear la actividad de los usuarios en el servidor. - w (Show Who is Logged On and What They Are Doing)
Uso: w
Descripción: Proporciona información más detallada que who, mostrando no solo quién está conectado, sino también qué procesos están ejecutando. Por ejemplo, muestra cuánto tiempo ha estado inactivo el usuario y su uso de CPU. Este comando es útil para identificar usuarios que están consumiendo recursos del sistema. - last (Show Listing of Last Logged in Users)
Uso: last [opciones]
Descripción: Muestra una lista de los últimos usuarios que iniciaron sesión, incluyendo la hora en que iniciaron y cerraron sesión, y su dirección IP. Este comando es útil para auditorías y seguimiento de inicios de sesión de usuarios.
Gestión de Paquetes
Los comandos de gestión de paquetes son esenciales para instalar, actualizar y gestionar el software en un servidor Linux. Diferentes distribuciones de Linux tienen sus propios sistemas de gestión de paquetes, y estos comandos te ayudan a mantener el software de tu servidor actualizado y seguro.
- apt-get / apt (Debian/Ubuntu Package Handling Utility)
Uso: apt-get [opciones] [comando] / apt [opciones] [comando]
Descripción: apt-get y apt son las principales herramientas de gestión de paquetes para sistemas basados en Debian, como Ubuntu. Se utilizan para instalar, actualizar, actualizar y eliminar paquetes. Los comandos comunes incluyen:- apt-get update: Actualiza la lista de paquetes.
- apt-get upgrade: Actualiza todos los paquetes instalados a sus versiones más recientes.
- apt-get install [paquete]: Instala un paquete especificado.
- apt-get remove [paquete]: Elimina un paquete especificado.
apt es un comando más amigable que combina funciones de apt-get, apt-cache y dpkg.
- yum / dnf (CentOS/Fedora Package Manager)
Uso: yum [opciones] [comando] / dnf [opciones] [comando]
Descripción: yum (Yellowdog Updater, Modified) y dnf (Dandified YUM) son las herramientas de gestión de paquetes para distribuciones basadas en RPM como CentOS y Fedora. Se utilizan para tareas similares a apt-get en sistemas basados en Debian. Los comandos comunes incluyen:- yum update / dnf update: Actualiza todos los paquetes instalados.
- yum install [paquete] / dnf install [paquete]: Instala un paquete especificado.
- yum remove [paquete] / dnf remove [paquete]: Elimina un paquete especificado.
dnf es la versión de próxima generación de yum, que ofrece un mejor rendimiento y una sintaxis de comandos más limpia.
- rpm (RPM Package Manager)
Uso: rpm [opciones] [comando]
Descripción: El gestor de paquetes de bajo nivel RPM se utiliza para instalar, consultar, verificar, actualizar y eliminar paquetes en sistemas basados en RPM como Red Hat, CentOS y Fedora. Los comandos comunes incluyen:- rpm -i [paquete.rpm]: Instala un paquete.
- rpm -e [paquete]: Elimina un paquete.
- rpm -qa: Lista todos los paquetes instalados.
- rpm -qf [archivo]: Identifica a qué paquete pertenece un archivo.
- dpkg (Debian Package Manager)
Uso: dpkg [opciones] [comando]
Descripción: dpkg es el gestor de paquetes de bajo nivel para sistemas basados en Debian, utilizado para instalar, eliminar y proporcionar información sobre paquetes .deb. Por ejemplo:- dpkg -i [paquete.deb]: Instala un paquete .deb.
- dpkg -r [paquete]: Elimina un paquete instalado.
- dpkg -l: Lista todos los paquetes instalados.
- dpkg –configure -a: Reconfigura paquetes desempaquetados pero no configurados.
- pacman (Arch Linux Package Manager)
Uso: pacman [opciones] [comando]
Descripción: pacman es el gestor de paquetes para Arch Linux, utilizado para gestionar paquetes de los repositorios oficiales y paquetes contribuidos por usuarios desde el Arch User Repository (AUR). Los comandos comunes incluyen:- pacman -Syu: Actualiza el sistema sincronizando la base de datos de paquetes y actualizando todos los paquetes.
- pacman -S [paquete]: Instala un paquete especificado.
- pacman -R [paquete]: Elimina un paquete especificado.
- pacman -Ss [paquete]: Busca un paquete en los repositorios.
- snap (Snap Package Manager)
Uso: snap [opciones] [comando]
Descripción: snap es un sistema de gestión de paquetes que permite instalar y gestionar «snaps», que son paquetes de software contenedorizados que funcionan en muchas distribuciones de Linux. Los comandos comunes incluyen:- snap install [paquete]: Instala un paquete snap.
- snap remove [paquete]: Elimina un paquete snap.
- snap refresh: Actualiza todos los paquetes snap instalados.
- snap list: Lista todos los paquetes snap instalados.
- flatpak (Flatpak Package Manager)
Uso: flatpak [opciones] [comando]
Descripción: flatpak es un sistema de gestión de paquetes para construir, distribuir y ejecutar aplicaciones de escritorio en sandbox en Linux. Los comandos comunes incluyen:- flatpak install [remoto] [paquete]: Instala una aplicación flatpak.
- flatpak remove [paquete]: Elimina una aplicación flatpak.
- flatpak update: Actualiza las aplicaciones flatpak instaladas.
- flatpak list: Lista las aplicaciones flatpak instaladas.
- apt-cache (Debian/Ubuntu Package Query Tool)
Uso: apt-cache [comando]
Descripción: Consulta información sobre paquetes en la base de datos de paquetes APT. Por ejemplo, apt-cache search [paquete] busca paquetes en los repositorios, y apt-cache show [paquete] muestra información detallada sobre un paquete. - brew (Linuxbrew Package Manager)
Uso: brew [comando]
Descripción: brew es un gestor de paquetes originalmente desarrollado para macOS, pero que también puede utilizarse en Linux a través de Linuxbrew. Se utiliza para instalar software que no está incluido en los repositorios oficiales de la distribución. Los comandos comunes incluyen:- brew install [paquete]: Instala un paquete especificado.
- brew remove [paquete]: Elimina un paquete especificado.
- brew update: Actualiza la lista de paquetes disponibles.
- brew upgrade: Actualiza los paquetes instalados.
Los comandos de gestión de paquetes son vitales para mantener un servidor Linux seguro y actualizado. Estas herramientas te permiten instalar, actualizar y gestionar paquetes de software, asegurando que tu servidor cuente con el software y los parches de seguridad necesarios para operar eficientemente.
Gestión de Procesos
Los comandos de gestión de procesos son cruciales para monitorear y controlar los procesos en ejecución en un servidor Linux. Estos comandos ayudan a los administradores a gestionar los recursos del sistema, terminar procesos no responsivos y asegurar que el servidor funcione sin problemas.
- ps (Report a Snapshot of Current Processes)
Uso: ps [opciones]
Descripción: Muestra información sobre los procesos que se están ejecutando actualmente, incluyendo su PID (ID de proceso), TTY (tipo de terminal), tiempo y nombre del comando. Por ejemplo, ps aux muestra todos los procesos en ejecución con información detallada, y ps -ef proporciona una salida similar en un formato diferente. - top (Display Linux Tasks)
Uso: top
Descripción: Proporciona una vista en tiempo real de los procesos en ejecución, incluyendo el uso de CPU y memoria. Permite monitorear el rendimiento del sistema e identificar procesos que consumen muchos recursos. top también permite terminar procesos directamente desde la interfaz presionando k e ingresando el PID. - htop (Interactive Process Viewer)
Uso: htop
Descripción: Similar a top, pero con una interfaz de usuario mejorada que es más amigable y visualmente atractiva. htop te permite desplazarte horizontal y verticalmente por la lista de procesos, y proporciona información con código de colores para facilitar la lectura. - kill (Terminate a Process by PID)
Uso: kill [opciones] [PID]
Descripción: Envía una señal a un proceso para terminarlo. La señal más común es SIGKILL (9), que detiene forzosamente el proceso. Por ejemplo, kill -9 1234 envía la señal SIGKILL al proceso con PID 1234. - killall (Kill Processes by Name)
Uso: killall [opciones] [nombre del proceso]
Descripción: Termina todos los procesos con el nombre especificado. Por ejemplo, killall firefox mata todas las instancias del proceso “firefox”. Este comando es útil para detener múltiples instancias de un proceso sin conocer sus PIDs. - pkill (Send Signals to Processes by Name)
Uso: pkill [opciones] [nombre del proceso]
Descripción: Envía una señal a los procesos basándose en el nombre y otros atributos. Por ejemplo, pkill -9 sshd envía la señal SIGKILL al proceso “sshd”. Es similar a killall pero ofrece más opciones para apuntar a procesos específicos. - nice (Run a Command with Modified Scheduling Priority)
Uso: nice [opciones] [comando]
Descripción: Inicia un comando con una prioridad (niceness) especificada. Los valores más bajos indican mayor prioridad. Por ejemplo, nice -n 10 comando ejecuta “comando” con una prioridad menor, asegurando que no consuma demasiados recursos a expensas de procesos más importantes. - renice (Alter the Priority of a Running Process)
Uso: renice [opciones] [nueva prioridad] [PID]
Descripción: Cambia la prioridad de un proceso ya en ejecución. Por ejemplo, renice -n 10 1234 cambia la prioridad del proceso con PID 1234 a una prioridad menor. Este comando es útil para ajustar la asignación de recursos en tiempo real. - bg (Resume a Suspended Job in the Background)
Uso: bg [ID del trabajo]
Descripción: Reanuda un trabajo suspendido y lo ejecuta en segundo plano. Por ejemplo, si un trabajo ha sido pausado usando Ctrl+Z, escribir bg %1 reanuda el trabajo número 1 en segundo plano. - fg (Bring a Job to the Foreground)
Uso: fg [ID del trabajo]
Descripción: Trae un trabajo en segundo plano al primer plano. Por ejemplo, fg %1 trae el trabajo número 1 al primer plano, permitiéndote interactuar con él directamente. - jobs (List Active Jobs)
Uso: jobs
Descripción: Lista todos los trabajos que se están ejecutando en segundo plano o que están suspendidos en la sesión de terminal actual. Cada trabajo tiene un ID único que se puede usar con bg o fg. - strace (Trace System Calls and Signals)
Uso: strace [opciones] [comando]
Descripción: Rastrea las llamadas al sistema y las señales recibidas por un proceso. Por ejemplo, strace ls muestra todas las llamadas al sistema hechas por el comando ls. Este comando es invaluable para depurar y entender cómo un programa interactúa con el sistema operativo. - lsof (List Open Files)
Uso: lsof [opciones]
Descripción: Lista todos los archivos abiertos y los procesos que los han abierto. Por ejemplo, lsof -i :80 muestra todos los procesos que están usando el puerto 80. Este comando es esencial para diagnosticar problemas relacionados con bloqueos de archivos, sockets de red y más. - systemctl (Examine and Control the Systemd System and Service Manager)
Uso: systemctl [opciones] [comando]
Descripción: Controla el sistema y el gestor de servicios systemd, permitiéndote iniciar, detener, habilitar, deshabilitar y verificar el estado de los servicios. Por ejemplo, systemctl start nginx inicia el servicio Nginx, y systemctl status nginx muestra su estado actual. - service (Run a System V Init Script)
Uso: service [nombre del servicio] [comando]
Descripción: Gestiona servicios en sistemas que usan scripts de init System V. Los comandos comunes incluyen start, stop, restart y status. Por ejemplo, service apache2 restart reinicia el servicio Apache.
Los comandos de gestión de procesos son esenciales para mantener el control sobre los procesos que se ejecutan en tu servidor Linux. Estos comandos te ayudan a monitorear el rendimiento del sistema, priorizar tareas y terminar procesos no responsivos, asegurando que tu servidor funcione de manera eficiente y confiable.
Gestión de Discos
Los comandos de gestión de discos son esenciales para gestionar y mantener los dispositivos de almacenamiento en tu servidor Linux. Estos comandos te permiten crear, formatear, montar y gestionar particiones y sistemas de archivos, así como monitorear el uso y la salud del disco.
- fdisk (Partition Table Manipulator for Linux)
Uso: fdisk [dispositivo]
Descripción: Una utilidad de línea de comandos para ver y editar la tabla de particiones en un disco duro. Por ejemplo, fdisk /dev/sda abre la tabla de particiones para el disco /dev/sda, permitiéndote crear, eliminar y modificar particiones. Es una herramienta poderosa para gestionar particiones de disco. - parted (A Partition Editor)
Uso: parted [dispositivo]
Descripción: Un editor de particiones más avanzado que soporta una mayor gama de tipos y tamaños de particiones que fdisk. Por ejemplo, parted /dev/sda te permite gestionar particiones en el disco /dev/sda, incluyendo la creación de particiones GPT, el redimensionamiento y el movimiento de particiones. - mkfs (Build a Linux File System)
Uso: mkfs [opciones] [dispositivo]
Descripción: Crea un sistema de archivos en una partición. Por ejemplo, mkfs.ext4 /dev/sda1 formatea la partición /dev/sda1 con el sistema de archivos ext4. Este comando se utiliza al configurar nuevas particiones o reformatear las existentes. - mount (Mount a File System)
Uso: mount [opciones] [dispositivo] [punto de montaje]
Descripción: Adjunta un sistema de archivos al árbol de archivos del sistema. Por ejemplo, mount /dev/sda1 /mnt monta la partición /dev/sda1 en el directorio /mnt, haciéndola accesible. Este comando es esencial para acceder y gestionar discos y particiones externas. - umount (Unmount File Systems)
Uso: umount [opciones] [punto de montaje]
Descripción: Desmonta un sistema de archivos del árbol de archivos del sistema. Por ejemplo, umount /mnt desmonta el sistema de archivos montado en /mnt. Es importante desmontar los sistemas de archivos antes de retirar discos físicos para prevenir la pérdida de datos. - lsblk (List Information About Block Devices)
Uso: lsblk [opciones]
Descripción: Lista información sobre todos los dispositivos de bloque disponibles, como discos duros y particiones, incluyendo su tamaño, tipo y puntos de montaje. Por ejemplo, lsblk muestra una vista en árbol de todos los dispositivos de bloque, facilitando la visualización de la estructura de tus discos y particiones. - blkid (Locate/Print Block Device Attributes)
Uso: blkid [opciones] [dispositivo]
Descripción: Imprime el UUID y otros atributos de un dispositivo de bloque. Por ejemplo, blkid /dev/sda1 devuelve el UUID y el tipo de sistema de archivos de la partición /dev/sda1. Este comando es útil para identificar dispositivos y configurar fstab para montajes persistentes. - df (Report File System Disk Space Usage)
Uso: df [opciones]
Descripción: Muestra la cantidad de espacio en disco utilizado y disponible en todos los sistemas de archivos montados. La opción -h proporciona un formato legible por humanos, mostrando tamaños en KB, MB o GB. Este comando es esencial para monitorear el uso del disco y asegurar que haya espacio libre suficiente. - du (Estimate File Space Usage)
Uso: du [opciones] [directorio o archivo]
Descripción: Resume el uso del disco de archivos y directorios. Por ejemplo, du -sh /var/log muestra el tamaño total del directorio /var/log en un formato legible por humanos. Este comando es útil para identificar archivos y directorios grandes que puedan estar consumiendo espacio en exceso. - fsck (File System Consistency Check and Repair)
Uso: fsck [opciones] [sistema de archivos]
Descripción: Revisa y repara inconsistencias en el sistema de archivos. Por ejemplo, fsck /dev/sda1 revisa y repara el sistema de archivos en la partición /dev/sda1. Este comando es crucial para mantener la salud de tus sistemas de archivos y prevenir la corrupción de datos. - tune2fs (Adjust Tunable File System Parameters on ext2/ext3/ext4 File Systems)
Uso: tune2fs [opciones] [dispositivo]
Descripción: Modifica parámetros de los sistemas de archivos ext2, ext3 o ext4. Por ejemplo, tune2fs -c 20 /dev/sda1 establece el número máximo de montajes antes de forzar una revisión del sistema de archivos. Este comando te permite optimizar el rendimiento y el comportamiento del sistema de archivos. - swapoff (Disable Swap Space)
Uso: swapoff [dispositivo]
Descripción: Desactiva el espacio de intercambio (swap) especificado, haciéndolo no disponible para su uso. Por ejemplo, swapoff /dev/sda2 desactiva el espacio de intercambio en la partición /dev/sda2. Este comando se utiliza a menudo antes de redimensionar o eliminar una partición de swap. - swapon (Enable Swap Space)
Uso: swapon [dispositivo]
Descripción: Activa el espacio de intercambio (swap) especificado, haciéndolo disponible para su uso. Por ejemplo, swapon /dev/sda2 activa el espacio de intercambio en la partición /dev/sda2. Gestionar el espacio de intercambio es importante para el rendimiento del sistema, especialmente en sistemas con memoria física limitada. - mount -o remount (Remount a File System with Different Options)
Uso: mount -o remount,[opciones] [punto de montaje]
Descripción: Vuelve a montar un sistema de archivos con nuevas opciones de montaje sin desmontarlo. Por ejemplo, mount -o remount,rw /mnt vuelve a montar el sistema de archivos en /mnt con permisos de lectura y escritura. Esto es útil para cambiar las opciones de montaje sobre la marcha.
Los comandos de gestión de discos son críticos para mantener la salud y eficiencia de los sistemas de almacenamiento en tu servidor Linux. Estas herramientas te permiten gestionar particiones, sistemas de archivos y el uso del disco de manera efectiva, asegurando que tu servidor tenga los recursos de almacenamiento que necesita para operar sin problemas.
Conclusión
Dominar los comandos de un servidor Linux es esencial para cualquier persona responsable de gestionar y mantener un servidor Linux. Desde operaciones básicas de archivos hasta la gestión avanzada de discos y la configuración de redes, estos 100 comandos proporcionan un conjunto de herramientas integral para una administración efectiva del servidor. Al comprender y utilizar estos comandos, puedes optimizar el rendimiento del servidor, mejorar la seguridad y asegurar que tu sistema funcione de manera fluida y eficiente.
Ya seas un administrador de sistemas experimentado o estés comenzando tu camino en la gestión de servidores Linux, esta guía sirve como un recurso valioso. Te proporciona el conocimiento y las habilidades necesarias para enfrentar los diversos desafíos que surgen en un entorno Linux. A medida que continúes explorando y aplicando estos comandos, descubrirás que la línea de comandos se convierte en un aliado indispensable en tus tareas de gestión de servidores.
Recuerda, aunque esta guía cubre una amplia gama de comandos, el ecosistema de Linux es vasto y está en constante evolución. Mantén la curiosidad, sigue aprendiendo y no dudes en explorar nuevos comandos y herramientas que puedan mejorar aún más tus capacidades de gestión de servidores.