Comandos Linux

comandos

Linux, un pilar en el mundo de los sistemas operativos, ofrece una potente interfaz de línea de comandos que se ha convertido en una herramienta esencial tanto para profesionales como para aficionados de la informática. Este artículo es una guía completa diseñada para desentrañar los 75 comandos más utilizados en Linux, proporcionando a los usuarios las habilidades necesarias para navegar y operar eficientemente en este entorno.

El sistema operativo Linux se destaca por su estabilidad, seguridad y versatilidad, siendo una opción preferida en servidores, dispositivos móviles y computadoras personales. La habilidad para utilizar comandos Linux no solo mejora la eficiencia del usuario, sino que también abre puertas a una comprensión más profunda de los fundamentos de la informática moderna.

En este artículo, te llevaremos en un viaje a través del fascinante mundo de Linux. Desde la explicación básica de qué es Linux, hasta las diferencias clave entre los comandos de Linux y PowerShell, este artículo está diseñado para ser tu compañero de referencia. Aprenderás a utilizar comandos que varían desde operaciones simples de archivo hasta la gestión avanzada de sistemas.

Con ejemplos prácticos y consejos útiles, esta guía está optimizada para ofrecerte una experiencia de aprendizaje completa y accesible. Ya seas un principiante en Linux o un usuario experimentado que busca refrescar tus habilidades, encontrarás este artículo como una valiosa adición a tus recursos de aprendizaje.

¿Qué es Linux?

mejores comandos linux

Linux es más que un simple sistema operativo; es un símbolo de libertad y colaboración en el mundo del software. Nacido en 1991 de la mano de Linus Torvalds, Linux ha evolucionado para convertirse en un sistema operativo de código abierto, lo que significa que su código fuente está disponible públicamente para ser utilizado, modificado y distribuido por cualquier persona.

Esta característica de código abierto ha llevado a Linux a ser increíblemente diverso, con múltiples distribuciones como Ubuntu, Fedora y Debian, cada una adaptada a diferentes tipos de usuarios y usos. Desde sistemas operativos de escritorio hasta servidores robustos, Linux se encuentra en el corazón de muchas tecnologías modernas.

Una de las mayores fortalezas de Linux es su seguridad y estabilidad. Gracias a su arquitectura y comunidad activa, Linux es menos susceptible a virus y malware en comparación con otros sistemas operativos. Esta seguridad lo hace ideal para servidores y sistemas críticos.

Además, Linux es famoso por su flexibilidad y personalización. Los usuarios pueden modificar casi todos los aspectos del sistema operativo para que se ajuste a sus necesidades específicas, lo que lo convierte en una opción popular para programadores y entusiastas de la tecnología.

En resumen, Linux no es solo un sistema operativo, sino una comunidad y un ecosistema que sigue creciendo y evolucionando. Su enfoque en la libertad, colaboración y transparencia lo ha convertido en una pieza clave en el mundo de la tecnología y la informática.

Diferencias entre PowerShell y Linux

Cuando hablamos de PowerShell y Linux, es importante entender que nos referimos a dos mundos diferentes dentro de la informática. PowerShell, desarrollado por Microsoft, es una potente herramienta de automatización y scripting diseñada principalmente para sistemas operativos Windows. Su enfoque está en la gestión y automatización de tareas en el entorno de Windows.

En contraste, Linux se refiere a un sistema operativo de código abierto basado en Unix. Dentro de Linux, el término «comandos Linux» generalmente se asocia con el uso del shell de Linux, como Bash, que es un lenguaje de comandos y scripting. Bash y otros shells en Linux son herramientas fundamentales para la interacción con el sistema, la gestión de archivos, procesos y la ejecución de scripts.

Una diferencia clave es la plataforma y la compatibilidad. Mientras que PowerShell fue diseñado originalmente para Windows, también ha sido portado a Linux y macOS, ofreciendo una cierta interoperabilidad. Sin embargo, los comandos y scripts de Bash están intrínsecamente diseñados para el ecosistema de Linux, aprovechando las características nativas de este sistema operativo.

Otra diferencia importante es la sintaxis y funcionalidades. Los comandos en PowerShell utilizan una sintaxis más parecida a la de los lenguajes de programación, con una fuerte integración con .NET Framework, mientras que Bash tiene una sintaxis que se ha mantenido fiel a los principios de los shells Unix tradicionales.

Además, la gestión de sistemas y archivos difiere considerablemente entre ambos. PowerShell tiene capacidades avanzadas para interactuar con el sistema operativo Windows, como la administración de políticas de grupo, registro de Windows y otras funciones específicas de Windows. Por otro lado, los comandos Linux en Bash están más orientados a la manipulación de archivos, procesos y comunicación entre programas.

En resumen, aunque PowerShell y Linux pueden cruzarse en ciertas funcionalidades, representan enfoques distintos adaptados a sus respectivos ecosistemas. Mientras PowerShell se enfoca en la integración y automatización en Windows, los comandos Linux en Bash ofrecen una experiencia más tradicional y directa de la informática basada en Unix.

75 Comandos Linux más utilizados

comandos linux
comandos linux

ls

El comando ls se utiliza para listar archivos y directorios. Tiene opciones para cambiar la forma en que se muestra esta información. Por ejemplo, ls -l proporciona una lista detallada incluyendo permisos, número de enlaces, propietario, grupo, tamaño, fecha de última modificación y nombre del archivo.

cd

cd o ‘change directory’ es esencial para navegar a través de los directorios en Linux. Usar cd .. te lleva al directorio padre, mientras que cd ~ te lleva al directorio home del usuario.

pwd

Este comando, que significa ‘print working directory’, muestra tu directorio actual. Es útil cuando estás navegando a través de múltiples directorios y necesitas recordar tu ubicación exacta en la estructura del sistema de archivos.

cp

El comando cp se usa para copiar archivos y directorios. Por ejemplo, cp source.txt destination.txt copia el archivo source.txt a destination.txt. Usar cp -r source_directory destination_directory copia un directorio completo y su contenido.

mv

mv se usa para mover o renombrar archivos y directorios. Por ejemplo, mv old_name.txt new_name.txt cambia el nombre del archivo, mientras que mv file.txt ~/Documents/ movería file.txt al directorio Documents.

wget

Este comando descarga archivos de Internet. Por ejemplo, wget http://example.com/file.txt descargará el archivo file.txt del sitio web especificado.

top

top proporciona una vista dinámica de los procesos en ejecución. Es esencial para el monitoreo y la gestión del rendimiento del sistema.

kill

Utilizado para terminar procesos. Por ejemplo, kill 1234 enviaría una señal para terminar el proceso con el ID 1234.

chmod

El comando chmod cambia los permisos de un archivo o directorio. Por ejemplo, chmod 755 file.txt establece los permisos para que el propietario pueda leer, escribir y ejecutar el archivo, mientras que los demás solo pueden leer y ejecutarlo.

grep

grep se utiliza para buscar texto en archivos. Por ejemplo, grep 'palabra' file.txt buscará la palabra ‘palabra’ en file.txt y mostrará cada línea que la contenga.

tar

Este comando se usa para comprimir o descomprimir archivos. Por ejemplo, tar -cvf archive.tar /path/to/directory/ crea un archivo tar llamado archive.tar del directorio especificado.

find

find busca archivos y directorios basándose en criterios específicos. Por ejemplo, find /home -name 'file.txt' buscará en el directorio /home todos los archivos llamados file.txt.

cat

cat se utiliza para mostrar el contenido de un archivo, unir archivos y crear archivos nuevos. Por ejemplo, cat file1.txt file2.txt > combined.txt combina file1.txt y file2.txt en combined.txt.

mkdir

Este comando crea nuevos directorios. Por ejemplo, mkdir new_directory crea un directorio llamado new_directory.

rm

rm se usa para eliminar archivos y directorios. Por ejemplo, rm file.txt elimina file.txt, y rm -r directory elimina el directorio y todo su contenido.

nano

nano es un editor de texto en la línea de comandos. Simplemente escribir nano file.txt abrirá el archivo en el editor para su edición.

df

El comando df muestra información sobre el uso del espacio en disco de los sistemas de archivos. Por ejemplo, df -h muestra esta información en un formato legible por humanos, con tamaños en MB y GB.

du

du se utiliza para estimar el uso del espacio en disco de archivos y directorios. Por ejemplo, du -sh /path/to/directory muestra el tamaño total del directorio especificado de manera resumida.

ssh

El comando ssh se utiliza para conectarse a otro sistema a través de una conexión segura. Por ejemplo, ssh usuario@192.168.1.1 te conectaría al host con la dirección IP 192.168.1.1 como el usuario especificado.

scp

scp se usa para copiar archivos de forma segura entre sistemas. Por ejemplo, scp file.txt usuario@192.168.1.1:/path copiaría file.txt al directorio especificado en el host remoto.

rsync

Este comando sincroniza archivos y directorios entre dos ubicaciones. Por ejemplo, rsync -av /local/directory/ usuario@192.168.1.1:/remote/directory/ sincronizaría el contenido de un directorio local con uno remoto.

man

man muestra el manual de un comando, proporcionando detalles y opciones disponibles. Por ejemplo, man ls muestra el manual del comando ls.

ps

ps muestra información sobre los procesos en ejecución. Por ejemplo, ps aux muestra una lista detallada de todos los procesos en ejecución.

vi / vim

vi (o vim, su versión mejorada) es un editor de texto en la línea de comandos. Al escribir vi file.txt, abrirías el archivo para editarlo en vi.

echo

El comando echo se utiliza para mostrar texto o variables. Por ejemplo, echo "Hola Mundo" mostraría «Hola Mundo» en la terminal.

which

which localiza el ejecutable de un comando. Por ejemplo, which ls mostraría la ruta del ejecutable del comando ls.

alias

alias se usa para crear un atajo para un comando más largo. Por ejemplo, alias ll='ls -la' crea un alias ll para el comando ls -la.

history

Este comando muestra el historial de comandos utilizados en la terminal. Simplemente escribiendo history se listarán los comandos recientes que has ejecutado.

service

El comando service se utiliza para iniciar, detener, reiniciar o mostrar el estado de servicios del sistema. Por ejemplo, service apache2 restart reiniciaría el servicio Apache.

iptables

iptables es una herramienta para configurar el firewall del sistema Linux. Por ejemplo, iptables -L mostrará todas las reglas de firewall actuales.

crontab

Este comando se usa para editar la tabla de tareas programadas (cron jobs). Por ejemplo, crontab -e abre el editor para modificar las tareas programadas del usuario actual.

tail

tail muestra las últimas líneas de un archivo de texto, comúnmente utilizado para ver archivos de registro. Por ejemplo, tail -f /var/log/syslog seguirá añadiendo nuevas líneas a medida que se actualice el archivo de registro.

head

Al igual que tail, head muestra las primeras líneas de un archivo de texto. Por ejemplo, head -n 5 file.txt mostrará las primeras cinco líneas de file.txt.

diff

diff se usa para comparar el contenido de dos archivos. Por ejemplo, diff file1.txt file2.txt mostrará las diferencias entre ambos archivos.

touch

El comando touch se utiliza para crear un archivo vacío o actualizar la marca de tiempo de un archivo existente. Por ejemplo, touch newfile.txt creará un archivo nuevo llamado newfile.txt.

free

free muestra información sobre el uso de la memoria en el sistema. Por ejemplo, free -h muestra la información de memoria de forma legible (en GB o MB).

uptime

Este comando muestra cuánto tiempo ha estado encendido el sistema. Al ejecutar uptime, se obtiene información sobre el tiempo de actividad, usuarios conectados y carga del sistema.

mount

mount se usa para montar sistemas de archivos. Por ejemplo, mount /dev/sdb1 /media/external montaría el dispositivo sdb1 en el directorio /media/external.

hostname

El comando hostname muestra o establece el nombre del sistema en la red. Por ejemplo, simplemente ejecutando hostname se mostrará el nombre actual del sistema.

useradd / userdel

useradd se usa para crear un nuevo usuario, mientras que userdel elimina un usuario. Por ejemplo, useradd nuevo_usuario crea un nuevo usuario llamado nuevo_usuario.

groupadd / groupdel

Similar a useradd, groupadd crea un nuevo grupo, y groupdel elimina un grupo existente. Por ejemplo, groupadd nuevo_grupo crearía un grupo llamado nuevo_grupo.

chown

El comando chown cambia el propietario de un archivo o directorio. Por ejemplo, chown usuario:grupo archivo cambiaría la propiedad del archivo al usuario y grupo especificados.

chmod

chmod cambia los permisos de un archivo o directorio. Por ejemplo, chmod 755 archivo establecería permisos de lectura, escritura y ejecución para el propietario, y de lectura y ejecución para los demás.

df

El comando df muestra información sobre el uso del espacio en los sistemas de archivos montados. Por ejemplo, df -h muestra la información en un formato fácil de leer.

du

du muestra el uso del espacio en disco de archivos y directorios. Por ejemplo, du -sh /home/usuario mostraría el tamaño total del directorio del usuario.

ln

ln crea enlaces, tanto duros como simbólicos. Por ejemplo, ln -s /path/original /path/enlace crearía un enlace simbólico al archivo o directorio original.

locate

El comando locate busca archivos por nombre. Es más rápido que find pero requiere que la base de datos de locate esté actualizada (con updatedb).

netstat

netstat muestra las conexiones de red, las tablas de enrutamiento, las estadísticas de interfaces, etc. Por ejemplo, netstat -tuln muestra puertos abiertos y sus estados.

traceroute

traceroute muestra la ruta que toman los paquetes para alcanzar un host de red. Por ejemplo, traceroute google.com te muestra la ruta a través de la red para llegar a Google.

dig

El comando dig se utiliza para consultar información de DNS. Por ejemplo, dig google.com te proporcionará detalles de DNS para google.com.

ifconfig

ifconfig se usa para configurar o mostrar la configuración de la red en el sistema. Aunque está siendo reemplazado por ip, sigue siendo ampliamente utilizado.

ip

El comando ip es una herramienta para administrar direcciones IP y la configuración de red, reemplazando muchas funciones de ifconfig. Por ejemplo, ip addr show muestra las direcciones IP del sistema.

nslookup

nslookup se usa para realizar consultas DNS para encontrar la dirección IP de un dominio o viceversa. Por ejemplo, nslookup google.com.

ping

ping se usa para probar la conectividad a otro host en la red. Por ejemplo, ping google.com verifica si puedes alcanzar Google y cuánto tiempo toma.

route

El comando route muestra o modifica la tabla de enrutamiento IP. Por ejemplo, route -n muestra la tabla de enrutamiento en formato numérico.

who

who muestra quién está conectado al sistema. Ejecutando simplemente who, verás una lista de usuarios conectados.

whoami

whoami muestra el nombre de usuario del usuario actual. Es útil para confirmar la identidad con la que estás operando.

passwd

El comando passwd se usa para cambiar la contraseña de un usuario. Si un usuario ejecuta passwd, puede cambiar su propia contraseña.

killall

killall termina procesos por nombre, en lugar de por ID. Por ejemplo, killall nginx terminaría todos los procesos llamados ‘nginx’.

nohup

nohup se utiliza para ejecutar comandos que siguen funcionando después de cerrar la sesión. Por ejemplo, nohup ./script.sh & ejecutaría script.sh en segundo plano, incluso después de cerrar la sesión.

apt-get / apt

En sistemas basados en Debian, apt-get y apt se utilizan para manejar paquetes. Por ejemplo, apt-get update actualiza la lista de paquetes, mientras que apt install paquete instala un nuevo paquete.

yum / dnf

En distribuciones basadas en Red Hat, yum y su sucesor dnf realizan funciones similares a apt, como instalar y actualizar paquetes. Por ejemplo, dnf install paquete instala un paquete.

unzip / zip

unzip extrae archivos de archivos .zip, mientras que zip los crea. Por ejemplo, unzip archivo.zip descomprime archivo.zip.

tar

El comando tar se usa para crear y extraer archivos tar. Por ejemplo, tar -xvf archivo.tar extrae el contenido de archivo.tar.

gzip / gunzip

gzip comprime archivos y gunzip los descomprime. Por ejemplo, gzip archivo crea archivo.gz.

bzip2 / bunzip2

Similar a gzip, bzip2 comprime archivos y bunzip2 los descomprime. Por ejemplo, bzip2 archivo crea archivo.bz2.

sed

sed es un editor de flujo para filtrar y transformar texto. Por ejemplo, sed 's/palabra1/palabra2/' archivo reemplaza ‘palabra1’ por ‘palabra2’ en archivo.

awk

awk es un poderoso lenguaje de programación y herramienta de manipulación de texto. Por ejemplo, awk '{print $1}' archivo imprime la primera columna de archivo.

cut

El comando cut se usa para cortar secciones de cada línea de un archivo. Por ejemplo, cut -d':' -f1 archivo corta y muestra la primera columna delimitada por ‘:’ en archivo.

sort

sort ordena líneas de texto en un archivo. Por ejemplo, sort archivo ordena el contenido de archivo alfabéticamente.

uniq

El comando uniq informa o filtra líneas repetidas en un archivo. Usualmente se usa en combinación con sort, como en sort archivo | uniq.

wc

wc (word count) muestra la cantidad de líneas, palabras y caracteres en un archivo. Por ejemplo, wc -l archivo cuenta las líneas en archivo.

curl

curl es una herramienta para transferir datos desde o hacia un servidor. Por ejemplo, curl http://ejemplo.com muestra el contenido de la página web.

watch

watch se utiliza para ejecutar regularmente un comando y mostrar su salida. Por ejemplo, watch df -h actualiza y muestra el uso del disco cada 2 segundos.

jobs

El comando jobs muestra los trabajos en segundo plano en la sesión actual. Es útil para gestionar procesos ejecutados con & o detenidos con Ctrl+Z.

Preguntas Frecuentes

75 comandos linux

¿Cómo puedo aprender a usar los comandos de Linux?

Los comandos de Linux se aprenden mejor practicando y explorando. Comienza con los comandos básicos como ls, cd y pwd y gradualmente avanza hacia otros más complejos. Utiliza manuales en línea, tutoriales y foros de Linux para ampliar tu conocimiento.

¿Es difícil cambiar de PowerShell a Linux?

La transición de PowerShell a Linux puede requerir algo de ajuste debido a las diferencias en la sintaxis y funcionalidades. Sin embargo, muchos conceptos son transferibles, y con práctica, los usuarios de PowerShell pueden volverse proficientes en comandos de Linux.

¿Puedo usar comandos de Linux en Windows?

Sí, gracias al Subsistema de Windows para Linux (WSL), puedes ejecutar una distribución de Linux dentro de Windows y utilizar comandos de Linux de manera nativa.

¿Qué herramientas existen para practicar comandos de Linux?

Existen numerosas herramientas en línea, como simuladores de terminal y laboratorios virtuales, que permiten practicar los comandos de Linux. Plataformas como Codecademy, Linux Journey, y OverTheWire ofrecen ejercicios y retos prácticos.

¿Cómo puedo mantenerme actualizado sobre los nuevos comandos y características en Linux?

Mantenerse actualizado con Linux implica seguir blogs de tecnología, participar en comunidades en línea como Reddit o Stack Overflow, y leer las actualizaciones y documentaciones de las principales distribuciones de Linux.

¿Son los comandos de Linux similares en todas las distribuciones?

La mayoría de los comandos básicos de Linux son similares en todas las distribuciones. Sin embargo, ciertas herramientas de gestión de paquetes y comandos específicos pueden variar entre distribuciones como Ubuntu, Fedora y Arch Linux.

¿Cómo puedo personalizar mi experiencia con la línea de comandos de Linux?

Puedes personalizar tu experiencia en la línea de comandos usando diferentes intérpretes de comandos (como Bash o Zsh), editando el archivo de configuración de tu shell, y utilizando herramientas de personalización como Oh My Zsh.

¿Qué recursos son recomendados para usuarios avanzados de Linux?

Para usuarios avanzados, explorar scripts de shell, automatización de tareas con cron, y herramientas de monitorización del sistema como top y htop son esenciales. Además, profundizar en aspectos de seguridad y redes en Linux puede ser muy beneficioso.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *