Linux es la columna vertebral de Internet. Impulsa casi el 97% de los servidores web principales del mundo. Y el 55.9% de los desarrolladores profesionales confían en Linux para sus necesidades de desarrollo.
Sin embargo, Linux solo tiene una cuota de mercado del 2.68% en el escritorio. ¿Por qué esta brecha?
El enfoque principal de Linux nunca ha sido su interfaz de usuario. En cambio, fue diseñado para brindarte control completo sobre tu sistema operativo a través de la línea de comandos.
Esto puede hacer que Linux parezca intimidante para los principiantes. Y los miles de comandos disponibles solo hacen que esto sea más difícil.
En este artículo, cubrimos los 100 comandos de Linux más útiles. Aprender solo unos pocos de estos comandos puede ayudarte a aumentar tu productividad como usuario de Linux. ¡Comencemos!
[glossary_term_es title=”Linux” text=”Linux se refiere a una colección de sistemas operativos (OS) de código abierto. No existe un sistema operativo de Linux único. Los usuarios pueden escoger entre una amplia gama de distribuciones de Linux, todas las cuales ofrecen experiencias diferentes.”]
¿Qué Son Los comandos Linux?
Los comandos de Linux te permiten controlar tu sistema desde la interfaz de línea de comandos (CLI) en lugar de utilizar tu ratón o trackpad. Son instrucciones de texto introducidas en el terminal para indicarle a tu sistema exactamente qué hacer.
Los comandos que ingreses en el terminal de Linux distinguen entre mayúsculas y minúsculas y siguen una sintaxis como “comando -opciones argumentos“. Puedes combinarlos para tareas complejas mediante pipelines y redirecciones.
Algunas cosas clave para saber sobre los comandos de Linux:
- Son sensibles a mayúsculas y minúsculas; por ejemplo, “ls” y “LS” significan cosas diferentes.
- Siguen una sintaxis específica como “comando -opciones argumentos“.
- Se pueden combinar para realizar operaciones complejas mediante pipelines y redirecciones.
- Te proporcionan un control detallado sobre tu sistema, algo difícil de lograr con interfaces gráficas.
- Te permiten automatizar tareas mediante scripts de shell y procesamiento por lotes.
- Se pueden utilizar para acceder a recursos del sistema como el sistema de archivos, red, memoria y CPU.
- Forman la base de la interacción con servidores y sistemas operativos Linux.
Si eres un programador que está aprendiendo a codificar, puedes comenzar a practicar tus comandos de Linux sin abandonar Windows utilizando el Subsistema de Windows para Linux. Esto te permite ejecutar Linux desde dentro de Windows sin necesidad de arranque dual y obtener lo mejor de ambos sistemas operativos.
Top 100 Comandos de Linux Más Útiles
Ahora que tienes una comprensión básica de qué son los comandos de Linux, sumerjámonos en los 100 comandos de Linux más comúnmente utilizados.
Los hemos organizado por categoría para cubrir áreas como gestión de archivos, monitoreo del sistema, operaciones de red, administración de usuarios y más.
Comandos de Administración de Archivos en Linux
La gestión de archivos es una tarea común en la línea de comandos de Linux. Aquí tienes comandos esenciales para archivos:
1. ls – Listar Contenidos de Directorio
El comando ls es uno de los comandos de Linux más utilizados. Lista el contenido de un directorio, mostrando todos los archivos y subdirectorios contenidos en su interior.
Sin opciones o argumentos, ls mostrará el contenido del directorio de trabajo actual. Puedes pasar un nombre de ruta para listar archivos y carpetas en esa ubicación en su lugar.
Sintaxisis:
ls [opciones] [directorio] |
Algunas de las opciones más útiles de ls incluyen:
- -l – Muestra los resultados en formato largo, mostrando detalles adicionales como permisos, propiedad, tamaño y fecha de modificación para cada archivo y directorio.
- -a – Muestra archivos y directorios ocultos que comienzan con . además de los elementos no ocultos.
- -R – Lista de forma recursiva todo el contenido de los subdirectorios, descendiendo indefinidamente en carpetas secundarias.
- -S – Ordena los resultados por tamaño de archivo, comenzando por el más grande.
- -t – Ordena por marca de tiempo, el más reciente primero.
Ejemplo:
ls -l /home/user/documentos |
Esto listaría el contenido de la carpeta “documents” en un formato largo.
Ejemplo de resultado:
total 824 -rwxrwx--- 1 user user 8389 Jul 12 08:53 report.pdf -rw-r--r-- 1 user user 10231 Jun 30 16:32 presentation.pptx drwxr-xr-x 2 user user 4096 May 11 09:21 images -rw-rw-r-- 1 user user 453 Apr 18 13:32 todo.txt |
Este resultado muestra una lista detallada con permisos, tamaño, propietario y marca de tiempo para cada archivo y directorio. El formato de lista larga proporcionado por la opción -l brinda información útil sobre los archivos de un vistazo.
El comando ls te brinda un control flexible sobre la lista de contenido del directorio y es uno de los comandos que utilizarás constantemente al trabajar en Linux.
2. cd – Cambiar de Directorio
El comando cd se utiliza para navegar entre directorios. Te permite moverte desde el directorio de trabajo actual a una nueva ubicación en el sistema de archivos.
Cuando ejecutas el comando cd por sí mismo, te llevará al directorio de inicio. También puedes pasar una ruta específica para cambiar a ella. Por ejemplo:
- cd /usr/local – Cambia al directorio /usr/local
- cd .. – Te mueve un nivel atrás hacia el directorio principal
- cd ~/pictures – Cambia a la carpeta pictures en tu directorio de inicio
Sintaxisis:
cd [directorio]
Ejemplo:
cd /home/user/documents
Esto cambiaría el directorio de trabajo a la carpeta “documents” dentro de /home/user. Usar cd es esencial para poder acceder y trabajar con archivos en diferentes ubicaciones de manera conveniente.
3. mkdir – Crear un Nuevo Directorio
El comando mkdir te permite crear una nueva carpeta. Simplemente, específicas el nombre del directorio a crear.
Sintaxis:
mkdir [opción] <directorio>
Esto creará un directorio llamado por ejemplo “nuevoproyecto” en el directorio de trabajo actual.
Algunas opciones útiles de mkdir:
- -p – Crea directorios principales de forma recursiva según sea necesario.
- -v – Muestra un resultado detallado que indica los directorios creados.
Ejemplo:
mkdir -v ~/project/code
Esto crearía el subdirectorio “code” bajo “project” en la carpeta de inicio del usuario, con un resultado detallado que muestra el directorio creado.
4. rmdir – Eliminar Directorio
Para eliminar un directorio vacío, utiliza el comando rmdir. Ten en cuenta que rmdir solo puede eliminar directorios vacíos, y necesitaremos el comando rm para eliminar los que tengan algún contenido.
Sintaxis:
rmdir [opciones] <directorio>
Algunas opciones para rmdir incluyen:
- -v – Muestra un resultado detallada al eliminar directorios.
- -p – Elimina directorios principales de forma recursiva según sea necesario.
Ejemplo:
rmdir -v ~/project/code
Esto eliminaría el subdirectorio “code” bajo “project” mientras muestra un resultado detallado.
5. touch – Crear Un Nuevo Archivo Vacío
El comando touch se utiliza para crear instantáneamente un nuevo archivo vacío. Esto es útil cuando necesitas un archivo vacío para llenarlo con datos más tarde.
La sintaxis básica de touch es:
touch [opciones] /nombredearchivo
Algunas opciones útiles para touch incluyen:
- -c – No crea el archivo si ya existe. Evita sobrescribir archivos existentes accidentalmente.
- -m – En lugar de crear un nuevo archivo, actualiza la marca de tiempo en un archivo existente. Esto se puede usar para cambiar la hora de modificación
Por Ejemplo:
touch /home/user/nuevoarchivo.txt
El comando anterior crea un nuevo archivo vacío llamado “nuevoarchivo.txt” en el directorio /home/user. Si nuevoarchivo.txt ya existe, actualizará las marcas de acceso y modificación en el archivo en su lugar.
6. cp – Copiar Archivos y Directorios
El comando cp copia archivos o directorios de una ubicación a otra. Requiere pasar una ruta de origen y un destino.
La sintaxis básica de cp es:
cp [opciones] /origen/ /destino/
Algunas opciones útiles de cp:
- -r – Copia directorios de forma recursiva, descendiendo a subdirectorios para copiar su contenido también.
- -i – Solicita confirmación antes de sobrescribir archivos existentes en el destino. Evita sobrescribir datos accidentalmente.
- -v – Muestra un resultado detallado que indica los detalles de cada archivo mientras se copia. Útil para confirmar exactamente lo que se copió.
Por Ejemplo:
cp -r /home/user/documents /backups/
Esto copiaría de forma recursiva el directorio /home/user/documents y todo su contenido al directorio /backups/. La opción -r es necesaria para copiar directorios.
El comando cp es una de las utilidades de administración de archivos más utilizadas para copiar archivos y directorios en Linux, y te encontrarás usando este comando con bastante frecuencia.
7. mv – Mover o Renombrar Archivos y Directorios
El comando mv se utiliza para mover archivos o directorios a una ubicación diferente o renombrarlos. A diferencia del comando anterior, los archivos de la ruta de origen se eliminan después de haber sido movidos al destino.
También puedes usar el comando mv para renombrar archivos, ya que solo necesitas cambiar las rutas de origen y destino al antiguo y nuevo nombre.
La sintaxis de mv es:
mv [opciones] /origen/ /destino/
Opciones útiles de mv:
- -i – Solicitar antes de sobrescribir archivos existentes en la ubicación de destino. Esto evita sobrescribir datos accidentalmente.
- -v – Producir un resultado detallado que muestre cada archivo o directorio a medida que se mueve. Útil para confirmar exactamente lo que se movió.
Por Ejemplo:
mv ~/folder1 /tmp/folder1
Esto moverá folder1 desde el directorio de inicio (~) al directorio /tmp/. Echemos un vistazo a otro ejemplo de cómo usar el comando mv para renombrar archivos.
mv folder1 folder2
Aquí, “folder1” es renombrado a “folder2.”
8. rm – Eliminar Archivos y Directorios
El comando rm elimina archivos y directorios. Úsalo con precaución porque los archivos y directorios eliminados no se pueden recuperar.
La Sintaxis es:
rm [opciones] /nombre/
Opciones útiles de rm:
- -r – Elimina directorios de forma recursiva, incluyendo todos los contenidos dentro de ellos. Necesario al eliminar directorios.
- -f – Forzar la eliminación y suprimir todas las solicitudes de confirmación. ¡Peligroso sin posibilidad de recuperación!
- -i – Solicitar confirmación antes de eliminar cada archivo o directorio. Proporciona seguridad contra borrado accidental.
Por Ejemplo:
rm -rf temp
Esto eliminará de forma recursiva el directorio “temp” y todos sus contenidos sin solicitar confirmaciones (-f anula las confirmaciones).
Nota: El comando rm borra permanentemente archivos y carpetas, así que úsalo con extrema precaución. Si se usa con privilegios de sudo, también podrías eliminar por completo el directorio raíz y Linux dejará de funcionar después de reiniciar tu computadora.
9. find – Buscar Archivos en una Jerarquía de Directorios
El comando find busca de forma recursiva archivos en directorios que coincidan con los criterios dados.
La sintaxis básica de find es:
find [ruta] [criterio]
Algunos criterios útiles para find incluyen:
- -type f – Buscar solo archivos normales, omitiendo directorios.
- -mtime +30 – Buscar archivos modificados hace más de 30 días.
- -user jane – Buscar archivos pertenecientes al usuario “jane.”
Por Ejemplo:
find . -type f -mtime +30
Esto encontrará todos los archivos regulares mayores de 30 días en el directorio actual (indicado por el punto).
El comando find permite buscar archivos según todo tipo de condiciones avanzadas como nombre, tamaño, permisos, marcas de tiempo, propiedad y más.
10. du – Estimar el Uso del Espacio de un Archivo
El comando du mide el uso del espacio en disco para un directorio dado. Cuando se usa sin opciones, muestra el uso del disco para el directorio de trabajo actual.
La Sintaxis de du Es:
du [opciones] [ruta]
Opciones útiles de du:
- -h – Muestra los tamaños de archivo en un formato fácil de leer para humanos, como K para kilobytes en lugar de un recuento de bytes. Mucho más fácil de analizar.
- -s – Muestra solo el tamaño total para un directorio, en lugar de enumerar cada subdirectorio y archivo. Bueno para resúmenes.
- -a – Muestra tamaños individuales de archivos además de totales. Ayuda a identificar archivos grandes.
Por Ejemplo:
du -sh pictures
Esto imprimirá un tamaño total fácil de leer para el directorio “pictures.”
El comando du es útil para analizar el uso del espacio en disco de un árbol de directorios e identificar archivos que consumen espacio en exceso.
Comandos de Linux Para Búsqueda y Filtros
Ahora, exploremos comandos que te permiten buscar, filtrar y manipular texto directamente desde la línea de comandos de Linux.
11. grep – Buscar Texto Usando Patrones
El comando grep se utiliza para buscar patrones de texto dentro de archivos o salida. Imprime cualquier línea que coincida con la expresión regular dada. grep es extremadamente poderoso para buscar, filtrar y hacer coincidir patrones en Linux.
Aquí está la sintaxis básica:
grep [opciones] pattern [archivos]
Por Ejemplo:
grep -i “error” /var/log/syslog
Esto busca la palabra “error” en el archivo syslog, ignorando la sensibilidad a mayúsculas y minúsculas.
Algunas opciones útiles de grep:
- -i – Ignorar distinciones de mayúsculas y minúsculas en patrones.
- -R – Buscar de forma recursiva en subdirectorios.
- -c – Imprimir solo un recuento de líneas coincidentes.
- -v – Invertir la coincidencia, imprimir líneas que no coinciden.
grep te permite buscar archivos y generar palabras clave o patrones rápidamente. Es invaluable para analizar registros, buscar código fuente, hacer coincidir expresiones regulares y extraer datos.
12. awk – Escaneo de Patrones y Procesamiento de Lenguage
El comando awk permite un procesamiento de texto más avanzado basado en patrones y acciones especificadas. Opera de manera línea por línea, dividiendo cada línea en campos.
La sintaxis de awk es:
awk ‘pattern { acción }’ input-file
Por Ejemplo:
awk ‘/error/ {print $1}’ /var/log/syslog
Esto imprime el primer campo de cualquier línea que contenga “error”. awk también puede utilizar variables integradas como NR (número de registros) y NF (número de campos).
Las capacidades avanzadas de awk incluyen:
- Cálculos matemáticos en campos.
- Declaraciones condicionales.
- Funciones integradas para manipular cadenas, números y fechas.
- Control de formato de resultados.
Esto hace que awk sea adecuado para la extracción de datos, la generación de informes y la transformación del resultado de texto. awk es extremadamente potente, ya que es un lenguaje de programación independiente que te brinda un gran control como comando de Linux.
13. sed – Editor de Secuencias para Filtrar y Transformar Texto
El comando sed permite el filtrado y la transformación de texto. Puede realizar operaciones como buscar/reemplazar, eliminación, transposición y más. Sin embargo, a diferencia de awk, sed fue diseñado para editar líneas de una en una según las instrucciones.
La sintaxis básica de sed es:
sed options ‘commands’ input-file
Por Ejemplo:
sed ‘s/foo/bar/’ file.txt
Esto reemplaza “foo” con “bar” en archivo.txt.
Algunos comandos útiles de sed:
- s – Buscar y reemplazar texto.
- /pattern/d – Eliminar líneas que coincidan con un patrón.
- 10,20d – Eliminar líneas de la 10 a la 20.
- 1,3!d – Eliminar todo excepto las líneas 1 a 3.
sed es ideal para tareas como búsqueda/reemplazo masivo, eliminación selectiva de líneas y otras operaciones de edición de secuencias de texto.
14. sort – Ordenar Líneas de Archivos de Texto
Cuando trabajas con mucho texto o datos, o incluso con resultados grandes de otros comandos, ordenarlo es una excelente manera de hacer las cosas más manejables. El comando sort ordenará las líneas de un archivo de texto alfabética o numéricamente.
Sintaxis básica de sort:
sort [opciones] [archivo]
Opciones útiles de sort:
- -n – Ordenar numéricamente en lugar de alfabéticamente.
- -r – Invertir el orden de clasificación.
- -k – Ordenar según un campo o columna específica.
Por Ejemplo:
sort -n notas.txt
Esto ordenará numéricamente el contenido de notas.txt. sort es útil para ordenar el contenido de los archivos para un resultado o análisis más legibles.
15. uniq – Informar u Omitir Líneas Repetidas
El comando uniq filtra líneas duplicadas adyacentes de la entrada. Esto se usa a menudo en conjunto con sort.
Sintaxis básica:
uniq [opciones] [entrada]
Opciones:
- -c – Prefijar líneas únicas con el recuento de ocurrencias.
- -d – Mostrar solo líneas duplicadas, no las únicas.
Por Ejemplo:
sort datos.txt | uniq
Esto eliminará cualquier línea duplicada en datos.txt después de ordenarlo. uniq te da control sobre la filtración de texto repetido.
16. diff – Comparar Archivos Línea por Línea
El comando diff compara dos archivos línea por línea e imprime las diferencias. Se usa comúnmente para mostrar cambios entre versiones de archivos.
Sintaxis:
diff [opciones] archivo1 archivo2
Options:
- -b – Ignorar cambios en espacios en blanco.
- -B – Mostrar diferencias en línea, resaltando los cambios.
- -u – Mostrar diferencias con tres líneas de contexto.
Por Ejemplo:
diff original.txt actualizado.txt
Esto mostrará las líneas que difieren entre original.txt y actualizado.txt. diff es invaluable para comparar revisiones de archivos de texto y código fuente.
17. wc – Imprimir Recuento de Líneas, Palabras y Bytes
El comando wc (word count) imprime recuentos de líneas, palabras y bytes en un archivo.
Sintaxis:
wc [opciones] [archivo]
Opciones:
- -l – Imprimir solo el recuento de líneas.
- -w – Imprimir solo el recuento de palabras.
- -c – Imprimir solo el recuento de bytes.
Por Ejemplo:
wc reporte.txt
Este comando imprimirá el número de líneas, palabras y bytes en reporte.txt
Comandos de Redirección en Linux
Los comandos de redirección se utilizan para controlar las fuentes de entrada y resultados en Linux, lo que te permite enviar y agregar flujos de resultados a archivos, tomar entradas de archivos, conectar múltiples comandos y dividir los resultados en múltiples destinos.
18. > – Redirigir el Resultado Estándar
El operador de redirección > redirige el flujo de resultado estándar desde el comando a un archivo en lugar de imprimirlo en la terminal. Se sobrescribirá cualquier contenido existente en el archivo.
Por Ejemplo:
ls -l /home > homelist.txt
Esto ejecutará ls -l para listar el contenido del directorio /home.
Luego, en lugar de imprimir ese resultado en la terminal, el símbolo > captura ese resultado estándar y lo escribe en homelist.txt, sobrescribiendo cualquier contenido de archivo existente.
Redirigir el resultado estándar es útil para guardar los resultados de comandos en archivos para almacenamiento, depuración o encadenar comandos.
19. >> – Anexar Resultado Estándar
El operador >> agrega el resultado estándar de un comando a un archivo sin sobrescribir el contenido existente.
Por Ejemplo:
tail /var/log/syslog >> logfile.txt
Esto anexará las últimas 10 líneas del archivo de registro syslog al final de logfile.txt. A diferencia de >, >> agrega el resultado sin borrar el contenido actual de logfile.txt.
Anexar es útil para recopilar el resultado de comandos en un solo lugar sin perder datos existentes.
20. < – Redirigir la Entrada Estándar
El operador de redirección < alimenta el contenido de un archivo como entrada estándar a un comando, en lugar de tomar la entrada del teclado.
Por Ejemplo:
wc -l < miarchivo.txt
Esto envía el contenido de miarchivo.txt como entrada al comando wc, que contará las líneas de ese archivo en lugar de esperar la entrada del teclado.
Redirigir la entrada es útil para procesar por lotes archivos y automatizar flujos de trabajo.
21. | – Canalizar El Resultado a Otro Comando
El operador de pipe | envía el resultado de un comando como entrada a otro comando, encadenándolos.
Por Ejemplo:
ls -l | less
Esto canaliza el resultado de ls -l al comando less, que permite desplazarse por la lista de archivos.
La canalización se usa comúnmente para encadenar comandos donde el resultado de uno alimenta la entrada de otro. Esto permite construir operaciones complejas a partir de programas más pequeños y de propósito único.
22. tee – Leer desde la Entrada Estándar y Escribir en el Resultado Estándar y Archivos
El comando tee divide la entrada estándar en dos flujos.
Escribe la entrada en el resultado estándar (muestra el resultado del comando principal) y guarda una copia en un archivo.
Por Ejemplo:
cat archivo.txt | tee copia.txt
Esto muestra el contenido de archivo.txt en la terminal mientras lo escribe simultáneamente en copia.txt.
tee es diferente de solo redirigir, donde no ves el resultado hasta que abres el archivo al que lo redirigiste.
Comandos de Archivado
Los comandos de archivado te permiten agrupar varios archivos y directorios en archivos comprimidos para una portabilidad y almacenamiento más sencillos. Los formatos de archivo comunes en Linux incluyen .tar, .gz y .zip.
23. tar – Almacenar y Extraer Archivos de un Archivo
El comando tar te ayuda a trabajar con archivos de cinta (.tar). Te permite agrupar varios archivos y directorios en un único archivo .tar comprimido.
Sintaxis:
tar [opciones] /archivo
Opciones útiles de tar:
- -c – Crear un nuevo archivo .tar.
- -x – Extraer archivos de un archivo .tar.
- -f – Especificar el nombre del archivo en lugar de stdin/stdout.
- -v – Resultado detallado que muestra los archivos archivados.
- -z – Comprimir o descomprimir el archivo con gzip.
Por Ejemplo:
tar -cvzf images.tar.gz /home/user/images
Esto crea un archivo de archivo tar llamado imagenes.tar.gz que contiene la carpeta /home/user/images comprimida con gzip.
24. gzip – Comprimir o Expandir Archivos
El comando gzip comprime archivos utilizando codificación LZ77 para reducir su tamaño para almacenamiento o transmisión. Con gzip, trabajas con archivos .gz.
Sintaxis:
gzip [opciones] archivo
Opciones útiles de gzip:
- -c – Escribe el resultado en stdout en lugar de un archivo.
Write output to stdout instead of file. - -d – Descomprime el archivo en lugar de comprimirlo.
- -r – Comprime directorios de forma recursiva.
Por Ejemplo:
gzip -cr documents/
Este comando comprime de forma recursiva la carpeta documentos y muestra el resultado en stdout.
25. gunzip – Descomprimir Archivos
El comando gunzip se utiliza para descomprimir archivos .gz.
Sintaxis:
gunzip archivo.gz
Ejemplo:
gunzip documentos.tar.gz
El comando anterior extraerá el contenido original sin comprimir de documentos.tar.gz.
26. zip – Empacar y Comprimir Archivos
El comando zip crea archivos .zip que contienen archivos comprimidos.
Sintaxis:
zip [opciones] archivo.zip nombres-de-archivos
Opciones útiles de zip:
- -r – Comprimir de forma recursiva un directorio.
- -e – Encriptar contenido con una contraseña.
Ejemplo:
zip -re imagenes.zip fotos
Esto encripta y comprime la carpeta fotos en imagenes.zip.
27. unzip – Extraer Archivos de Archivos ZIP
Similar a gunzip, el comando unzip extrae y descomprime archivos de archivos .zip.
Sintaxis:
unzip archivo.zip
Ejemplo:
unzip imagenes.zip
El comando Ejemplo anterior extrae todos los archivos de imagenes.zip en el directorio actual.
Comandos de Linux Para Transferencia de Archivos
Los comandos de transferencia de archivos, te permiten mover archivos entre sistemas en una misma red. Esto es útil para copiar archivos hacia servidores remotos o descargar contenido desde el internet.
28. scp – Copiar de Forma Segura Entre Hosts
El comando scp (copia segura) copia archivos entre hosts a través de una conexión SSH. Todo el traslado de datos está cifrado para mayor seguridad.
La sintaxis de scp copia archivos desde una ruta de origen a un destino definido como usuario@host:
scp origen usuario@host:destino
Por Ejemplo:
scp imagen.jpg usuario@servidor:/uploads/
Esto copia de forma segura la imagen.jpg al directorio /uploads en el servidor como usuario.
scp funciona como el comando cp pero para la transferencia de archivos remotos. Utiliza SSH (Secure Shell) para la transferencia de datos, proporcionando cifrado para asegurar que no se expongan datos sensibles, como contraseñas, a través de la red.
La autenticación se maneja típicamente mediante claves SSH, aunque también se pueden usar contraseñas. Los archivos se pueden copiar tanto hacia como desde hosts remotos.
29. rsync – Sincronizar Archivos Entre Hosts
La herramienta rsync sincroniza archivos entre dos ubicaciones, minimizando la transferencia de datos mediante la codificación delta. Esto hace que sea más rápido sincronizar grandes árboles de directorios.
La sintaxis de rsync sincroniza el origen con el destino:
rsync [opciones] /origen /destino
Por Ejemplo:
rsync -ahv ~/documentos usuario@servidor:/backups/
El Ejemplo anterior sincroniza de forma recursiva la carpeta documentos con servidor:/backups/, mostrando resultado y legible.
Opciones útiles de rsync:
- -a – El modo de archivo sincroniza de forma recursiva y conserva permisos, tiempos, etc.
- -h – Resultado legible por los humanos
- -v – Resultado detallado
rsync es ideal para sincronizar archivos y carpetas con sistemas remotos y mantener copias de seguridad descentralizadas y seguras.
30. sftp – Programa de Transferencia de Archivos Segura
El programa sftp proporciona transferencias de archivos interactivas sobre SSH, similar a FTP regular pero cifrado. Puede transferir archivos hacia/desde sistemas remotos.
sftp se conecta a un host y acepta comandos como:
sftp usuario@host
get archivo-remoto archivo-local
put archivo-local archivo-remoto
Esto recupera el archivo-remoto del servidor y copia el archivo-local en el host remoto.
sftp tiene un shell interactivo para navegar por sistemas de archivos remotos, transferir archivos y directorios y gestionar permisos y propiedades.
31. wget – Recuperar Archivos de la Web
La herramienta wget descarga archivos a través de conexiones HTTP, HTTPS y FTP. Es útil para recuperar recursos web directamente desde la terminal.
Por Ejemplo:
wget https://ejemplo.com/archivo.iso
Esto descarga la imagen archivo.iso desde el servidor remoto.
Opciones útiles de wget:
- -c – Continuar la descarga interrumpida.
- –r – Descargar de forma recursiva.
- -O – Guardar con un nombre de archivo específico.
wget es ideal para la automatización de descargas y la creación de espejos de sitios web.
32. curl – Transferir Datos Desde o Hacia un Servidor
El comando curl transfiere datos hacia o desde un servidor de red utilizando protocolos compatibles. Esto incluye REST, HTTP, FTP y más.
Por Ejemplo:
curl -L https://ejemplo.com
El comando anterior obtiene datos desde la URL HTTPS y los muestra en el resultado.
Opciones útiles de curl:
- -o – Escribe el resultado en un archivo.
- -I – Muestra solo los encabezados de respuesta.
- -L – Sigue las redirecciones.
curl está diseñado para transferir datos a través de redes de manera programática.
Comandos de Permisos de Archivos
Los comandos de permisos de archivo, te permiten modificar los accesos de los usuarios al contenido. Esto incluye configurar permisos de lectura/escritura/ejecución, cambiar la propiedad y los modos de archivo predeterminados.
33. chmod – Cambiar Modos de Archivo o Permisos de Acceso
El comando chmod se utiliza para cambiar los permisos de acceso o modos de archivos y directorios. Los modos de permisos representan quién puede leer, escribir o ejecutar el archivo.
Por Ejemplo:
chmod 755 archivo.txt
Hay tres conjuntos de permisos — propietario, grupo y público. Los permisos se establecen mediante modos numéricos del 0 al 7:
- 7 – leer, escribir y ejecutar.
- 6 – leer y escribir.
- 4 – solo lectura.
- 0 – sin permisos.
Esto establece los permisos del propietario en 7 (rwx), del grupo en 5 (r-x) y del público en 5 (r-x). También se pueden referenciar usuarios y grupos de manera simbólica:
chmod g+w archivo.txt
La sintaxis g+w agrega permisos de escritura al grupo del archivo.
Establecer permisos adecuados para archivos y directorios es crucial para la seguridad de Linux y el control de acceso. chmod te proporciona un control flexible para configurar permisos de manera precisa según sea necesario.
34. chown – Cambiar Propietario y Grupo de Archivos
El comando chown cambia la propiedad de un archivo o directorio. La propiedad tiene dos componentes — el usuario que es el propietario y el grupo al que pertenece.
Por Ejemplo:
chown juan:desarrolladores archivo.txt
El comando del ejemplo anterior establecerá al usuario propietario como “juan” y al grupo propietario como “desarrolladores”.
Solo la cuenta de superusuario root puede usar chown para cambiar los propietarios de archivos. Se utiliza para solucionar problemas de permisos modificando el propietario y el grupo según sea necesario.
35. umask – Establecer Permisos de Archivo Predeterminados
El comando umask controla los permisos predeterminados dados a archivos recién creados. Toma una máscara octal como entrada, que se resta de 666 para archivos y 777 para directorios.
Por Ejemplo:
umask 007
Los archivos nuevos tendrán permisos predeterminados de 750 en lugar de 666. Los directorios nuevos tendrán 700 en lugar de 777.
Establecer un umask le permite configurar permisos de archivo predeterminados en lugar de depender de los valores predeterminados del sistema. El comando umask es útil para restringir permisos en nuevos archivos sin depender de que alguien vaya y agregue restricciones manualmente.
Obtén el Alojamiento Más Poderoso de DreamHost
Nuesstros planes de alojamiento Dedicado son la solución ideal para sitios de alto tráfico que requieren tiempo en línea continuo, mayor velocidad y flexibilidad.
Compara Los PlanesComandos de Administración de Procesos
Estos comandos te permiten ver, monitorear y controlar procesos ejecutándose en tu sistema Linux. Esto es útil para identificar el uso de recursos y detener programas con comportamientos inesperados.
36. ps – Informe de Una Instantánea de Procesos Actuales
El comando ps muestra una instantánea de los procesos que se están ejecutando actualmente, incluidos su PID, TTY, estado, hora de inicio, etc.
Por Ejemplo:
ps aux
Esto muestra cada proceso en ejecución como todos los usuarios, con detalles adicionales como el uso de CPU y memoria.
Algunas opciones útiles de ps:
- aux – Muestra procesos para todos los usuarios.
- –forest – Muestra el árbol de procesos principal/secundario.
ps te brinda visibilidad sobre lo que se está ejecutando actualmente en tu sistema.
37. top – Mostrar Procesos de Linux
El comando top muestra información en tiempo real sobre los procesos de Linux, incluidos PID, usuario, % de CPU, uso de memoria, tiempo de actividad, y más. A diferencia de ps, actualiza la pantalla dinámicamente para reflejar el uso actual.
Por Ejemplo:
top -u mysql
El comando anterior monitorea procesos solo para el usuario “mysql”. Resulta útil para identificar programas que consumen muchos recursos.
38. htop – Visor de Procesos Interactivo
El comando htop es un visor de procesos interactivo reemplazando el comando principal. Muestra los procesos de sistema, junto con gráficos de uso de CPU/memoria/swap, permite ordenar por columnas, finalizar programas y más.
Simplemente, escribe htop en la línea de comandos para ver tus procesos.
htop cuenta con elementos de interfaz de usuario mejorados con colores, desplazamiento y soporte para mouse para una navegación más fácil en comparación con top. Excelente para investigar procesos.
39. kill – Enviar una Señal a un Proceso
El comando kill envía una señal a un proceso para terminarlo o matarlo. Las señales permiten un apagado ordenado si el proceso las maneja.
Por Ejemplo:
kill -15 12345
El comando anterior envía la señal SIGTERM (15) para detener el proceso con PID 12345 de manera ordenada.
40. pkill – Enviar una Señal a un Proceso Basado en el Nombre
El comando pkill mata procesos por nombre en lugar de por PID. Puede simplificar las cosas en lugar de encontrar primero el PID.
Por Ejemplo:
pkill -9 firefox
Esto detiene a la fuerza todos los procesos de Firefox con SIGKILL (9). pkill apunta a los procesos coincidentes por nombre, usuario y otros criterios en lugar del PID.
41. nohup – Ejecutar un Comando Inmune a las Desconexiones
El comando nohup ejecuta procesos inmunes a las desconexiones, por lo que siguen ejecutándose si cierras sesión o te desconectas.
Por Ejemplo:
nohup python script.py &
El comando de ejemplo anterior lanzará script.py desvinculado en segundo plano e inmune a desconexiones. nohup se utiliza generalmente para iniciar daemons y servicios en segundo plano persistentes.
Comandos de Monitoreo de Rendimiento
Estos comandos proporcionan estadísticas valiosas de rendimiento del sistema para ayudar a analizar la utilización de recursos, identificar cuellos de botella y optimizar la eficiencia.
42. vmstat – Informar Estadísticas de Memoria Virtual
El comando vmstat imprime informes detallados sobre la actividad de memoria, swap, I/O y CPU. Esto incluye métricas como memoria usada/libre, swap de entrada/salida, bloques de disco leídos/escritos y tiempo de CPU dedicado a procesos/inactivo.
Por Ejemplo:
vmstat 5
Otras opciones útiles de vmstat:
- -a – Mostrar memoria activa e inactiva.
- -s – Mostrar contadores de eventos y estadísticas de memoria
- -S – Resultado en KB en lugar de bloques.
- 5 – Actualizar el resultado cada 5 segundos.
El ejemplo anterior muestra datos de memoria y CPU cada 5 segundos hasta que se interrumpe, lo cual es útil para monitorear el rendimiento del sistema en vivo.
43. iostat – Informar Estadísticas de CPU e I/O
El comando iostat supervisa y muestra métricas de utilización de la CPU y I/O de disco. Esto incluye carga de CPU, IOPS, rendimiento de lectura/escritura, y más.
Por Ejemplo:
iostat -d -p sda 5
Algunas opciones de iostat:
- -c – Mostrar información de utilización de la CPU.
- -t – Imprimir una marca de tiempo para cada informe.
- -x – Mostrar estadísticas extendidas como tiempos de servicio y recuentos de espera.
- -d – Mostrar estadísticas detalladas por disco/partición en lugar de totales agregados.
- -p – Mostrar estadísticas para dispositivos de disco específicos.
Esto muestra estadísticas detalladas de I/O por dispositivo para sda cada 5 segundos.
iostat ayuda a analizar el rendimiento del subsistema de disco e identificar cuellos de botella de hardware.
44. free – Mostrar la Cantidad de Memoria Libre y Utilizada
El comando free muestra las cantidades totales, utilizadas y libres de memoria física y swap en el sistema. Esto brinda una visión general de la memoria disponible.
Por Ejemplo:
free -h
Algunas opciones para el comando free:
- -b -Mostrar resultado en bytes.
- -k – Mostrar resultado en KB en lugar de bytes predeterminados.
- -m – Mostrar resultado en MB en lugar de bytes
- -h – Imprimir estadísticas en un formato legible para humanos como GB, MB en lugar de bytes.
Esto imprime estadísticas de memoria en un formato legible para humanos (GB, MB, etc.). Es útil cuando deseas un resumen general de la capacidad de memoria.
45. df – Informar del Uso del Espacio en Disco del Sistema de Archivos
El comando df muestra el uso del espacio en disco para sistemas de archivos. Muestra el nombre del sistema de archivos, espacio total/usado/disponible y capacidad.
Por Ejemplo:
df -h
El comando anterior imprimirá la utilización del disco en un formato legible para humanos. También puedes ejecutarlo sin argumentos para obtener los mismos datos en tamaños de bloques.
46. sar – Recopilar e Informar Actividad del Sistema
La herramienta sar recopila y registra información de actividad del sistema en la CPU, memoria, I/O, red y más a lo largo del tiempo. Estos datos pueden analizarse para identificar problemas de rendimiento.
Por Ejemplo:
sar -u 5 60
Esto muestrea el uso de la CPU cada 5 segundos durante una duración de 60 muestras.
sar proporciona datos detallados del rendimiento histórico del sistema que no están disponibles en herramientas en tiempo real.
Comandos de Administración de Usuarios
Cuando se utilizan sistemas multiusuario, es posible que necesites comandos que te ayuden a gestionar usuarios y grupos para el control de acceso y permisos. Vamos a cubrir esos comandos aquí.
47. useradd – Crear un Nuevo Usuario
El comando useradd crea una nueva cuenta de usuario y un directorio de inicio. Establece el UID, grupo, shell y otros valores predeterminados para el nuevo usuario.
Por Ejemplo:
useradd -m juan
Useful useradd options:
- -m – Crea el directorio de inicio del usuario.
- -g – Especifica el grupo primario en lugar del predeterminado.
- -s – Establece el shell de inicio de sesión del usuario.
El comando anterior creará un nuevo usuario llamado “juan” con un UID generado y una carpeta de inicio creada en /home/juan.
48. usermod – Modificar una Cuenta de Usuario
El comando usermod modifica la configuración de una cuenta de usuario existente. Puede cambiar el nombre de usuario, directorio de inicio, shell, grupo, fecha de vencimiento, etc.
Por Ejemplo:
usermod -aG developers juan
Con este comando, añades al usuario “juan” a un grupo adicional llamado “desarrolladores”. La opción -a agrega a la lista existente de grupos a los que se añade el usuario.
49. userdel – Eliminar una Cuenta de Usuario
El comando userdel elimina una cuenta de usuario, su directorio de inicio y su buzón de correo.
Por Ejemplo:
userdel -rf juan
Opciones útiles de userdel:
- -r – Elimina el directorio de inicio y el buzón de correo del usuario.
- -f – Fuerza la eliminación incluso si el usuario todavía está conectado.
Esto fuerza la eliminación del usuario “juan”, eliminando los archivos asociados.
Al especificar opciones como -r y -f con userdel, asegura que la cuenta de usuario sea eliminada por completo, incluso si el usuario está logueado o tiene procesos activos.
50. groupadd – Añadir un Grupo
El comando groupadd crea un nuevo grupo de usuarios. Los grupos representan equipos o roles con fines de permisos.
Por Ejemplo:
groupadd -r sysadmin
Useful groupadd options:
- -r – Crea un grupo del sistema utilizado para funciones centrales del sistema.
- -g – Especifica el GID del nuevo grupo en lugar de usar el siguiente disponible.
El comando anterior crea un nuevo grupo llamado “sysadmin” con privilegios del sistema. Al crear nuevos grupos, las opciones -r o -g ayudan a configurarlos correctamente.
51. passwd – Actualizar los Tokens de Autenticación del Usuario
El comando passwd establece o actualiza los tokens de autenticación (contraseña) de un usuario. Esto permite cambiar la contraseña de inicio de sesión.
Por Ejemplo:
passwd juan
Esto solicitará al usuario “juan” que introduzca una nueva contraseña de forma interactiva. Si has perdido la contraseña de una cuenta, es posible que desees iniciar sesión en Linux con privilegios de sudo o su y cambiar la contraseña usando el mismo método.
Comandos de Red
Estos comandos se utilizan para monitorear conexiones, solucionar problemas de red, enrutamiento, búsquedas de DNS y configuración de interfaces.
52. ping – Enviar Paquetes ICMP ECHO_REQUEST a Hosts de Red
El comando ping verifica la conectividad a un host remoto enviando paquetes de solicitud de eco ICMP y escuchando las respuestas de eco.
Por Ejemplo:
ping google.com
PING google.com (142.251.42.78): 56 data bytes
64 bytes from 142.251.42.78: icmp_seq=0 ttl=112 time=8.590 ms
64 bytes from 142.251.42.78: icmp_seq=1 ttl=112 time=12.486 ms
64 bytes from 142.251.42.78: icmp_seq=2 ttl=112 time=12.085 ms
64 bytes from 142.251.42.78: icmp_seq=3 ttl=112 time=10.866 ms
— google.com ping statistics —
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 8.590/11.007/12.486/1.518 ms
Opciónes útiles de ping:
- -c [count] – Limitar paquetes enviados.
- -i [interval] – Esperar intervalos de segundos entre pings.
Este comando realiza un ping a google.com y muestra estadísticas de ida y vuelta que indican la conectividad y la latencia. Generalmente, ping se utiliza para verificar si un sistema al que intentas conectarte está vivo y conectado a la red.
53. ifconfig – Configurar Interfaces de Red
El comando ifconfig muestra y configura la configuración de las interfaces de red, incluyendo la dirección IP, máscara de red, difusión, MTU y dirección MAC de hardware.
Por Ejemplo:
ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
inet6 fe80::a00:27ff:fe1e:ef1d prefixlen 64 scopeid 0x20<link>
ether 08:00:27:1e:ef:1d txqueuelen 1000 (Ethernet)
RX packets 23955654 bytes 16426961213 (15.3 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 12432322 bytes 8710937057 (8.1 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Ejecutar ifconfig sin otros argumentos te dará una lista de todas las interfaces de red disponibles para su uso, junto con la dirección IP y otra información de red adicional.
ifconfig también se puede utilizar para establecer direcciones, habilitar/deshabilitar interfaces y cambiar opciones.
54. netstat – Estadísticas de Red
El comando netstat te muestra las conexiones de red, tablas de enrutamiento, estadísticas de interfaz, conexiones de enmascaramiento y membresías de multidifusión.
Por Ejemplo:
netstat -pt tcp
Este comando mostrará todas las conexiones TCP activas y los procesos que las utilizan.
55. ss – Estadísticas de Socket
El comando ss muestra información estadística de sockets similar a netstat. Puede mostrar sockets TCP y UDP abiertos, tamaños de búfer de envío/recepción, y más.
Por Ejemplo:
ss -t -a
Esto imprime todos los sockets TCP abiertos. Es más eficiente que netstat.
56. traceroute – Rastrear Ruta a un Host
El comando traceroute imprime la ruta que toman los paquetes hasta un host de red, mostrando cada salto en el camino y los tiempos de tránsito. Útil para el debugging de red.
Por Ejemplo:
traceroute google.com
Esto traza el camino para llegar a google.com y muestra cada salto de red.
57. dig – DNS Lookup
El comando dig realiza búsquedas de DNS y devuelve información sobre registros DNS para un dominio.
Por Ejemplo:
dig google.com
; <<>> DiG 9.10.6 <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60290
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1280
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 220 IN A 142.251.42.78
;; Query time: 6 msec
;; SERVER: 2405:201:2:e17b::c0a8:1d01#53(2405:201:2:e17b::c0a8:1d01)
;; WHEN: Wed Nov 15 01:36:16 IST 2023
;; MSG SIZE rcvd: 55
Esto consulta a los servidores DNS para obtener registros relacionados con google.com y muestra detalles.
58. nslookup – Consulta a Servidores de Nombres de Internet de Forma Interactiva
El comando nslookup realiza consultas a servidores DNS de forma interactiva para realizar búsquedas de resolución de nombres o mostrar registros DNS.
Ingresa a un shell interactivo, lo que te permite buscar manualmente nombres de host, direcciones IP inversas, encontrar tipos de registros DNS y más.
Por Ejemplo, algunos usos comunes de nslookup. Escribe nslookup en tu línea de comandos:
nslookup
Luego, configuraremos el servidor DNS 8.8.8.8 de Google para búsquedas.
> server 8.8.8.8
Ahora, consultemos el registro A de stackoverflow.com para encontrar su dirección IP.
> set type=A
> stackoverflow.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: stackoverflow.com
Address: 104.18.32.7
Name: stackoverflow.com
Address: 172.64.155.249
Ahora, busquemos los registros MX de github.com para ver sus servidores de correo.
> set type=MX
> github.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
github.com mail exchanger = 1 aspmx.l.google.com.
github.com mail exchanger = 5 alt1.aspmx.l.google.com.
github.com mail exchanger = 5 alt2.aspmx.l.google.com.
github.com mail exchanger = 10 alt3.aspmx.l.google.com.
github.com mail exchanger = 10 alt4.aspmx.l.google.com.
Las consultas interactivas hacen que nslookup sea muy útil para explorar DNS y solucionar problemas de resolución de nombres.
59. iptables – Filtrado de Paquetes IPv4 y NAT
El comando iptables permite configurar reglas de firewall de netfilter en Linux para filtrar y procesar paquetes de red. Establece políticas y reglas para cómo el sistema manejará diferentes tipos de conexiones y tráfico de entrada y salida.
Por Ejemplo:
iptables -A INPUT -s 192.168.1.10 -j DROP
El comando anterior bloqueará toda la entrada desde la IP 192.168.1.10.
iptables proporciona un control poderoso sobre el firewall del kernel de Linux para manejar enrutamiento, NAT, filtrado de paquetes y otros controles de tráfico. Es una herramienta fundamental para asegurar servidores Linux.
60. ip – Gestión de Dispositivos y Enrutamiento de Red
El comando ip permite gestionar y monitorear varias actividades relacionadas con dispositivos de red, como asignar direcciones IP, configurar subredes, mostrar detalles de enlace y configurar opciones de enrutamiento.
Por Ejemplo:
ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 08:00:27:8a:5c:04 brd ff:ff:ff:ff:ff:ff
El comando anterior muestra todas las interfaces de red, su estado e información adicional.
Este comando tiene como objetivo reemplazar ifconfig con una gestión de red de Linux más moderna. ip puede controlar dispositivos de red, tablas de enrutamiento y otras configuraciones de la pila de red.
Comandos de Administración de Paquetes
Los administradores de paquetes permiten la instalación, actualización y eliminación sencilla de software en distribuciones de Linux. Los administradores de paquetes populares incluyen APT, YUM, DNF, Pacman y Zypper.
61. apt – Administrador de Paquetes de Debian/Ubuntu
El comando apt gestiona paquetes en sistemas Debian/Ubuntu utilizando el repositorio APT. Permite instalar, actualizar y eliminar paquetes.
Por Ejemplo:
apt update
Este comando obtiene las últimas versiones de paquetes y metadatos de los repositorios.
apt install nginx
Puedes instalar el paquete nginx desde los repositorios APT configurados utilizando el comando anterior.
apt upgrade
Y este comando actualiza paquetes y dependencias a versiones más recientes.
APT facilita la instalación de software al obtener paquetes de los repositorios.
62. pacman – Gestor de Paquetes de Arch Linux
Pacman gestiona paquetes en Arch Linux desde el Repositorio de Usuarios de Arch. Puede instalar, actualizar y eliminar paquetes.
Por Ejemplo:
pacman -S nmap
Esto instala el paquete nmap desde los repositorios configurados.
pacman -Syu
Esto sincroniza con los repositorios y actualiza todos los paquetes.
Pacman mantiene Arch Linux actualizado y permite la gestión sencilla de paquetes.
63. dnf – Gestor de Paquetes de Fedora
dnf instala, actualiza y elimina paquetes en distribuciones de Fedora Linux utilizando paquetes RPM. Reemplaza a Yum como el gestor de paquetes de próxima generación.
Por Ejemplo:
dnf install util-linux
Esto instala el paquete util-linux.
dnf upgrade
Esto actualiza todos los paquetes instalados a las versiones más recientes.
dnf hace que la gestión de paquetes en Fedora sea rápida y eficiente.
64. yum – Gestor de Paquetes de Red Hat
yum gestiona paquetes en las distribuciones de Linux RHEL y CentOS utilizando paquetes RPM. Obtiene de los repositorios de Yum para instalar y actualizar.
Por Ejemplo:
yum update
Esto actualiza todos los paquetes instalados a las versiones más recientes.
yum install httpd
El comando anterior instala el paquete Apache httpd. Yum ha sido el principal gestor de paquetes para mantener actualizadas las distribuciones de Red Hat.
65. zypper – Gestor de Paquetes de openSUSE
zypper administra paquetes en las distribuciones de SUSE/openSUSE Linux. Puede agregar repositorios, buscar, instalar y actualizar paquetes.
Por Ejemplo:
zypper refresh
El comando refresh para zypper actualiza los metadatos del repositorio de los repositorios agregados.
zypper install python
Esto instala el paquete Python desde los repositorios configurados. zypper hace que la experiencia de gestión de paquetes sea sencilla en sistemas SUSE/openSUSE.
66. flatpak – Gestor de Paquetes de Aplicaciones Flatpak
El comando flatpak te ayuda a gestionar aplicaciones y entornos Flatpak. flatpak permite la distribución de aplicaciones de escritorio en Linux de forma aislada.
Por Ejemplo:
flatpak install flathub org.libreoffice.LibreOffice
Por ejemplo, el comando anterior instalará LibreOffice desde el repositorio Flathub.
flatpak run org.libreoffice.LibreOffice
Y este inicia la aplicación sandboxed de LibreOffice en Flatpak. flatpak proporciona un repositorio centralizado de aplicaciones de Linux que no está limitado a los paquetes disponibles en la biblioteca de paquetes de una distribución específica.
67. appimage – Administrador de Paquetes de Aplicaciones AppImage
Los paquetes AppImage son aplicaciones independientes que se ejecutan en la mayoría de las distribuciones de Linux. El comando appimage ejecuta AppImages existentes.
Por Ejemplo:
chmod +x myapp.AppImage
./myapp.AppImage
Esto permite ejecutar el archivo binario de AppImage directamente.
Los AppImages permiten el despliegue de aplicaciones sin instalación en todo el sistema. Piensa en ellos como pequeños contenedores que incluyen todos los archivos para permitir que la aplicación se ejecute sin demasiadas dependencias externas.
68. snap – Administrador de Paquetes de Aplicaciones Snappy
El comando snap gestiona snaps, paquetes de software en contenedores. Los snaps se actualizan automáticamente y funcionan en distribuciones de Linux de manera similar a Flatpak.
Por Ejemplo:
snap install vlc
Este sencillo comando instala el reproductor multimedia VLC como snap.
snap run vlc
Una vez instalado, puedes usar Snap para ejecutar paquetes que se instalan a través de snap utilizando el comando anterior. Los snaps aíslan las aplicaciones del sistema base para portabilidad y permiten instalaciones más limpias..
Comandos de Información de Sistema
Estos comandos te permiten ver los detalles sobre el hardware, kernel, distribuciones, hostnames, tiempo en línea y más, de tu sistema Linux.
69. uname – Imprimir Información del Sistema
El comando uname imprime información detallada sobre el kernel del sistema Linux, la arquitectura del hardware, el nombre de host y el sistema operativo. Esto incluye números de versión e información de la máquina.
Por Ejemplo:
uname -a
Linux hostname 5.4.0-48-generic x86_64 GNU/Linux
uname es útil para consultar estos detalles centrales del sistema. Algunas opciones incluyen:
- -a – Imprimir toda la información disponible del sistema
- -r – Imprimir solo el número de versión del kernel
El comando anterior imprime información extendida del sistema, incluyendo el nombre/versión del kernel, la arquitectura del hardware, el nombre de host y el sistema operativo.
uname -r
Esto imprimirá solo el número de versión del kernel. El comando uname muestra detalles sobre los componentes principales del sistema Linux.
70. hostname – Mostrar o Configurar el Nombre de Host del Sistema
El comando hostname imprime o configura el identificador del nombre de host para su sistema Linux en la red. Sin argumentos, muestra el nombre de host actual. Pasar un nombre actualizará el nombre de host.
Por Ejemplo:
hostname
linuxserver
Esto imprime linuxserver — el hostname del systema configurado
hostname UbuntuServer
hostname identifica sistemas en una red. El comando hostname obtiene o configura el nombre identificativo de su sistema en la red. El segundo comando te ayuda a cambiar el nombre de host local a UbuntuServer.
71. uptime – Tiempo que el Sistema ha Estado Encendido
El comando uptime muestra cuánto tiempo ha estado encendido el sistema Linux desde el último reinicio. Imprime el tiempo de actividad y la hora actual.
Simplemente, ejecuta el siguiente comando para obtener los datos de tiempo de actividad de tu sistema:
uptime
Esto imprime el tiempo de actividad del sistema, mostrando cuánto tiempo ha estado encendido desde el último arranque.
23:51:26 up 2 days, 4:12, 1 user, load average: 0.00, 0.01, 0.05
72. whoami – Imprimir ID de Usuario Activo
El comando whoami imprime el nombre de usuario efectivo del usuario actual que ha iniciado sesión en el sistema. Muestra el nivel de privilegio en el que estás operando.
Escribe el comando en tu terminal para obtener el ID:
whoami
Esto imprime el nombre de usuario efectivo con el que el usuario actual ha iniciado sesión y está operando, siendo útil en scripts o diagnósticos para identificar qué acciones de cuenta de usuario se están realizando.
73. id – Imprimir Identificadores de Usuario y Grupo Reales y Efectivos
El comando id imprime información detallada del usuario y del grupo sobre los IDs y nombres efectivos actuales del usuario. Esto incluye:
- ID y nombre de usuario reales.
- ID y nombre de usuario efectivos.
- ID y nombre de grupo reales.
- ID y nombre de grupo efectivos.
Para usar el comando id, simplemente escribe:
id
El comando id imprime los IDs y nombres de usuario y grupo reales y efectivos del usuario actual. id muestra detalles de usuario y grupo útiles para determinar permisos de acceso a archivos.
uid=1000(john) gid=1000(john) groups=1000(john),10(wheel),998(developers)
74. lscpu – Mostrar Información de Arquitectura de la CPU
El comando lscpu muestra información detallada de la arquitectura de la CPU, incluyendo:
- Número de núcleos de CPU
- Número de sockets
- Nombre del modelo
- Tamaños de caché
- Frecuencia de la CPU
- Tamaños de dirección
Para usar el comando lscpu, simplemente escribe:
lscpu
Como ves a continuación, este comando detalla la arquitectura de la CPU, como el número de núcleos, sockets, nombre del modelo, cachés y más.
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
75. lsblk – Listar Dispositivos de Bloques
El comando lsblk muestra información sobre todos los dispositivos de bloques disponibles, incluyendo discos locales, particiones y volúmenes lógicos. El resultado incluye nombres de dispositivos, etiquetas, tamaños y puntos de montaje.
lsblk
Lista todos los dispositivos de bloques, incluyendo discos, particiones y volúmenes lógicos. Proporciona una visión general de los dispositivos de almacenamiento.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1.8T 0 disk
|-sda1 8:1 0 512M 0 part /boot
|-sda2 8:2 0 16M 0 part
`-sda5 8:5 0 1.8T 0 part
`-lvm1 254:0 0 1.8T 0 lvm /
76. lsmod – Mostrar el Estado de los Módulos en el Kernel de Linux
El comando lsmod imprime los módulos del kernel cargados actualmente, como controladores de dispositivos. Esto incluye módulos relacionados con redes, almacenamiento y otros dispositivos hardware utilizados por el kernel de Linux para interactuar con dispositivos internos y externos.
lsmod
Como se puede ver, lista los módulos del kernel cargados actualmente, como controladores de dispositivos. En este caso, muestra el uso de módulos de red, entrada, criptográficos y de cifrado.
Module Size Used by
ipv6 406206 27
evdev 17700 0
crct10dif_pclmul 16384 1
crc32_pclmul 16384 0
ghash_clmulni_intel 16384 0
aesni_intel 399871 0
aes_x86_64 20274 1 aesni_intel
77. dmesg – Imprimir o Controlar el Buffer de Anillo del Kernel
El comando dmesg muestra mensajes del buffer de anillo del kernel. Esto incluye eventos esenciales del sistema registrados por el kernel durante el arranque y la operación.
dmesg | grep -i error
La búsqueda con grep del “error” muestra problemas al cargar firmware específico. Esto imprime mensajes de registro del kernel en búfer, incluidos eventos del sistema como inicio, errores, advertencias, etc.
[ 12.345678] Error receiving batched read response: -110
[ 23.456789] tplink_mdio 0000:03:00.0: Direct firmware load for tplink-mdio/leap_p8_v1_0.bin failed with error -2
[ 40.567890] iwlwifi 0000:09:00.0: Direct firmware load for iwlwifi-ty-a0-gf-a0-59.ucode failed with error -2
Comandos de Administración de Sistema
Los comandos de administración del sistema te ayudan a ejecutar programas como otros usuarios, apagar o reiniciar el sistema, y gestionar sistemas de inicio y servicios.
78. sudo – Ejecutar un Comando Como Otro Usuario
El comando sudo te permite ejecutar comandos como otro usuario, típicamente el superusuario. Después de ingresar la orden sudo, te pedirá tu contraseña para autenticarte.
Esto proporciona acceso elevado para tareas como instalar paquetes, editar archivos del sistema, administrar servicios, etc.
Por Ejemplo:
sudo adduser bob
[sudo] password for john:
Esto utiliza sudo para crear un nuevo usuario, ‘bob’. Los usuarios regulares normalmente no pueden agregar usuarios sin sudo.
79. su – Cambiar ID de Usuario o Convertirse en Superusuario
El comando su te permite cambiar a otra cuenta de usuario, incluyendo la del superusuario. Debes proporcionar la contraseña del usuario objetivo para autenticarte. Esto te da acceso directo para ejecutar comandos en el entorno de otro usuario.
Por Ejemplo:
su bob
Password:
bob@linux:~$
Después de ingresar la contraseña de bob, este comando cambia el usuario actual al usuario ‘bob’. El indicador de la shell reflejará el nuevo usuario.
80. shutdown – Apagar o Reiniciar Linux
El comando shutdown programa un apagado del sistema, un cese o reinicio después de un temporizador especificado o de inmediato. Es necesario para reiniciar o apagar sistemas Linux multiusuario de manera segura.
Por Ejemplo:
shutdown -r now
Esto reinicia el sistema instantáneamente con una advertencia a los usuarios.
Broadcast message from root@linux Fri 2023-01-20 18:12:37 CST:
The system is going down for reboot NOW!
81. reboot – Reiniciar o Reiniciar el Sistema
El comando reboot reinicia el sistema operativo Linux, cerrando sesión de todos los usuarios y reiniciando el sistema de manera segura. Sincroniza los discos y apaga el sistema limpiamente antes de reiniciar.
Por Ejemplo:
reboot
Esto reinicia inmediatamente el sistema operativo. reboot es una alternativa simple a shutdown -r.
Restarting system.
Esto reinicia inmediatamente el sistema operativo. reboot es una alternativa simple a shutdown -r.
82. systemctl – Controlar el Administrador de Sistema y Servicios systemd
El comando systemctl te permite gestionar servicios systemd, como iniciar, detener, reiniciar y recargar. Systemd es el nuevo sistema init utilizado en la mayoría de las distribuciones de Linux modernas, reemplazando a SysV init.
Por Ejemplo:
systemctl start apache2
Esto inicia el servicio apache2 después de autenticarse.
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to start ‘apache2.service’.
Authenticating as: User Name
Password:
==== AUTHENTICATION COMPLETE ===
83. service – Ejecuta un Script SysV Init
El comando service ejecuta scripts de inicio del sistema V para controlar servicios. Esto permite iniciar, detener, reiniciar y recargar servicios gestionados bajo el sistema tradicional SysV init.
Por Ejemplo:
service iptables start
El comando anterior inicia el servicio de firewall iptables utilizando su script de inicio SysV.
[ ok ] Starting iptables (via systemctl): iptables.service.
Otros Comandos de Linux para Probar
- mount – Montar o “adjuntar” unidades al sistema.
- umount – Desmontar o “quitar” unidades del sistema.
- xargs – Construye y ejecuta comandos proporcionados a través de la entrada estándar.
- alias – Crear accesos directos para comandos largos o complejos.
- jobs – Listar programas actualmente en ejecución en segundo plano.
- bg – Reanudar un proceso en segundo plano detenido o pausado.
- killall – Terminar procesos por nombre de programa en lugar de PID.
- history – Mostrar comandos utilizados previamente en la sesión actual del terminal.
- man – Acceder a manuales de ayuda para comandos directamente desde el terminal.
- screen – Gestionar múltiples sesiones de terminal desde una sola ventana.
- ssh – Establecer conexiones cifradas y seguras a servidores remotos.
- tcpdump – Capturar tráfico de red según criterios específicos.
- watch – Repetir un comando a intervalos y resaltar las diferencias en el resultado.
- tmux – Multiplexor de terminal para sesiones y divisiones persistentes.
- nc – Abrir conexiones TCP o UDP para pruebas y transferencia de datos.
- nmap – Descubrimiento de host, escaneo de puertos y huella digital del sistema operativo.
- strace – Depurar procesos rastreando señales y llamadas del sistema operativo.
7 Consejos Clave para Usar Comandos en Linux
- Conoce tu shell: ¿Bash, zsh, fish? Diferentes shells tienen características únicas. Elige el que mejor se adapte a tus necesidades.
- Domina los comandos principales: ls, cat, grep, sed, awk, etc. forman el núcleo de un kit de herramientas de Linux.
- Usa pipelines: Evita el uso excesivo de archivos temporales. Combina programas de manera inteligente.
- Verifica antes de sobrescribir: Siempre verifica antes de sobrescribir archivos con > y >>.
- Registra tus flujos de trabajo: Documenta comandos y flujos de trabajo complejos para reutilizarlos o compartirlos más tarde.
- Crea tus propias herramientas: Escribe scripts simples de shell y alias para tareas frecuentes.
- Comienza sin sudo: Usa una cuenta de usuario estándar al principio para entender los permisos.
Y recuerda seguir probando nuevos comandos en máquinas virtuales o servidores VPS para que se vuelvan parte de tu rutina antes de usarlos en servidores de producción.
Toma las Riendas con Alojamiento Flexible VPS
Así es como se diferencian los servidores VPS de DreamHost: Servicio al cliente 24/7, un panel intuitivo, RAM escalable, ancho de banda ilimitado, alojamiento ilimitado de dominios y almacenamiento SSD.
Adquiere Tu Plan VPSMejor Alojamiento en Linux con DreamHost
Después de dominar los comandos esenciales de Linux, también necesitas un proveedor de alojamiento y servidor que te brinde control total para aprovechar el poder y la flexibilidad de Linux.
Aquí es donde brilla DreamHost.
La infraestructura optimizada de Linux de DreamHost es perfecta para ejecutar tus aplicaciones, sitios y servicios:
- Alojamiento web rápido en servidores Linux modernos.
- Acceso SSH para control en línea de comandos.
- Versiones personalizables de PHP, incluida PHP 8.0.
- Servidores web Apache o NGINX.
- Bases de datos gestionadas MySQL, PostgreSQL, Redis.
- Instalaciones con un clic de aplicaciones como WordPress y Drupal.
- Almacenamiento NVMe acelerado por SSD para velocidad.
- Renovación automática gratuita de certificados SSL Let’s Encrypt.
Los expertos de DreamHost pueden ayudarte a aprovechar al máximo la plataforma Linux. Nuestros servidores están meticulosamente configurados para seguridad, rendimiento y confiabilidad.
Inicia tu próximo proyecto en una plataforma de alojamiento Linux en la que puedes confiar. Comienza hoy con un alojamiento sólido y escalable en DreamHost.