Top 100 Comandos Linux Que Debes Conocer

Top 100 Comandos Linux Que Debes Conocer thumbnail

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!

Glosario de DreamHost

Linux

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.

Recibe Contenido Directamente en Tu Bandeja de Entrada

Suscríbete a nuestro blog y recibe contenido grandioso como este directamente en tu bandeja de entrada.

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.

Comandos 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

  1. mount – Montar o “adjuntar” unidades al sistema.
  2. umount – Desmontar o “quitar” unidades del sistema.
  3. xargs – Construye y ejecuta comandos proporcionados a través de la entrada estándar.
  4. alias – Crear accesos directos para comandos largos o complejos.
  5. jobs – Listar programas actualmente en ejecución en segundo plano.
  6. bg – Reanudar un proceso en segundo plano detenido o pausado.
  7. killall – Terminar procesos por nombre de programa en lugar de PID.
  8. history – Mostrar comandos utilizados previamente en la sesión actual del terminal.
  9. man – Acceder a manuales de ayuda para comandos directamente desde el terminal.
  10. screen – Gestionar múltiples sesiones de terminal desde una sola ventana.
  11. ssh – Establecer conexiones cifradas y seguras a servidores remotos.
  12. tcpdump – Capturar tráfico de red según criterios específicos.
  13. watch – Repetir un comando a intervalos y resaltar las diferencias en el resultado.
  14. tmux – Multiplexor de terminal para sesiones y divisiones persistentes.
  15. nc – Abrir conexiones TCP o UDP para pruebas y transferencia de datos.
  16. nmap – Descubrimiento de host, escaneo de puertos y huella digital del sistema operativo.
  17. strace – Depurar procesos rastreando señales y llamadas del sistema operativo.

7 Consejos Clave para Usar Comandos en Linux

  1. Conoce tu shell: ¿Bash, zsh, fish? Diferentes shells tienen características únicas. Elige el que mejor se adapte a tus necesidades.
  2. Domina los comandos principales: ls, cat, grep, sed, awk, etc. forman el núcleo de un kit de herramientas de Linux.
  3. Usa pipelines: Evita el uso excesivo de archivos temporales. Combina programas de manera inteligente.
  4. Verifica antes de sobrescribir: Siempre verifica antes de sobrescribir archivos con > y >>.
  5. Registra tus flujos de trabajo: Documenta comandos y flujos de trabajo complejos para reutilizarlos o compartirlos más tarde.
  6. Crea tus propias herramientas: Escribe scripts simples de shell y alias para tareas frecuentes.
  7. 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.

Mejor 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.

Photo of Matt Stamp
Sobre el Autor: