Curso Consola de comandos Linux Bash con certificado
La consola de comandos es una herramienta fundamental en el mundo de Linux. Permite interactuar de manera directa con el sistema operativo, ofreciendo un control total sobre las operaciones que se realizan. Bash, acrónimo de "Bourne Again SHell", es el intérprete de comandos predeterminado en la mayoría de distribuciones de Linux y es esencial para cualquier usuario que desee dominar este sistema operativo.
¿Por qué aprender Bash?
Conocer Bash no solo te permite realizar tareas de forma más eficiente, sino que también te abre las puertas a la automatización y al scripting, facilitando procesos repetitivos y complejos. Al dominar la consola de comandos Linux Bash, podrás:
- Navegar y gestionar archivos y directorios con rapidez.
- Controlar procesos y servicios en el sistema.
- Personalizar y configurar tu entorno de trabajo.
- Crear scripts que automatizan tareas, ahorrando tiempo y esfuerzo.
Este curso, Consola de comandos Linux Bash, está diseñado para guiarte desde los conceptos básicos hasta técnicas avanzadas, proporcionándote las habilidades necesarias para desenvolverte con soltura en entornos Linux.
Introducción y entorno
Principales distribuciones de Linux
Linux es un sistema operativo de código abierto que se distribuye en diferentes versiones, conocidas como distribuciones. A diferencia de Windows, que es propietario y de código cerrado, Linux ofrece flexibilidad y adaptabilidad según las necesidades del usuario.
- Debian: Una de las distribuciones más antiguas, conocida por su estabilidad y su enfoque en la comunidad.
- Ubuntu: Basada en Debian, es una de las distribuciones más populares para usuarios nuevos y experimentados, con un fuerte soporte de la comunidad.
- Alpine Linux: Orientada a la seguridad y ligereza, ideal para sistemas con recursos limitados o contenedores.
Instalar Ubuntu en Windows con WSL
El Subsistema de Windows para Linux (WSL) permite ejecutar entornos Linux directamente en Windows sin la sobrecarga de una máquina virtual. Esto es especialmente útil para desarrolladores que trabajan en entornos mixtos.
- Introducción a WSL: WSL es una capa de compatibilidad que permite ejecutar binarios Linux en Windows.
- Configuración previa en Windows: Habilitar WSL desde las opciones de desarrollador y actualizar el sistema.
- Instalación de Ubuntu en WSL: Descarga desde Microsoft Store y configuración inicial.
- Primeros pasos con Ubuntu en WSL: Navegación básica y ejecución de comandos en Bash.
Introducción a Shell y Bash
- Definición y propósito de Shell: Es la interfaz que permite comunicarse con el sistema operativo mediante comandos.
- Definición y propósito de Bash: Es una de las múltiples Shell disponibles, destacando por su compatibilidad y funciones avanzadas.
- ¿Por qué es importante saber usar la consola?: Ofrece mayor control, eficiencia y posibilidades de automatización.
- El comando
manpara ver documentación de ayuda: Acceso a manuales detallados de comandos y herramientas.
Navegación y gestión de archivos y directorios
Comandos de navegación: pwd, cd y ls
- Comando
pwd: Muestra la ruta del directorio actual, ayudando a orientarse en el sistema de archivos. - Rutas absolutas y relativas: Comprender la diferencia es esencial para navegar y manipular archivos correctamente.
- Comando
cdy sus atajos: Permite cambiar de directorio. Atajos comocd ~(home) ocd ..(directorio padre) optimizan la navegación. - Comando
lsy sus opciones comunes: Lista el contenido de un directorio. Opciones como-l(lista detallada) o-a(archivos ocultos) amplían su funcionalidad. - Comando
--helppara ver opciones de los comandos: Proporciona una guía rápida sobre cómo utilizar un comando.
Manipulación de archivos y directorios
- Creación y eliminación:
mkdirpara crear directorios,touchpara crear archivos vacíos,rmyrmdirpara eliminar. - Copiar y mover:
cppara copiar archivos o directorios,mvpara mover o renombrar. - Visualización del contenido: Comandos como
cat,less,moreyheadpermiten ver el contenido de archivos. - Búsqueda y filtrado:
findlocaliza archivos y directorios,xargsejecuta comandos sobre los resultados,grepbusca patrones dentro de archivos.
Comprimir y descomprimir archivos con tar y gzip
- Uso de
tar: Empaqueta múltiples archivos y directorios en uno solo, facilitando su gestión. - Comandos
gzipygunzip: Comprimen y descomprimen archivos, reduciendo su tamaño para almacenamiento o transferencia. - Crear archivos
.tar.gz: Combinación detarygzippara empaquetar y comprimir simultáneamente.
Manipulación de permisos con chmod, chown y chgrp
- Notación simbólica y octal: Dos formas de representar y modificar permisos en Linux.
- Comando
chmod: Cambia los permisos de archivos y directorios, controlando lectura, escritura y ejecución. - Uso de
chownychgrp:chownmodifica el propietario,chgrpcambia el grupo asociado. - Usuario administrador y creación de usuarios: Gestión de usuarios y privilegios en el sistema.
Enlaces simbólicos y duros
- Creación y uso de enlaces simbólicos (
ln -s): Atajos o referencias a archivos o directorios, útiles para accesos rápidos. - Diferencias con enlaces duros: Mientras un enlace duro es indistinguible del original, un enlace simbólico apunta al nombre del archivo.
- Gestión y eliminación de enlaces: Cómo identificar y eliminar enlaces sin afectar al contenido original.
Redirección y tuberías
- Redirección de salida estándar:
>sobrescribe y>>agrega al final de un archivo;2>y2>>manejan errores. - Redirección de entrada estándar:
<permite que un comando tome entrada de un archivo. - Uso de tuberías (
|): Conecta la salida de un comando con la entrada de otro, creando cadenas de procesamiento. - Tuberías con redirección: Combinación de tuberías y redirecciones para operaciones más complejas.
- El comando
tee: Divide la salida de un comando, mostrando en pantalla y guardando en un archivo simultáneamente.
Gestión de procesos y servicios
Gestión de procesos con ps, htop y pgrep
- Procesos en primer y segundo plano: Diferencias y cómo interactuar con ellos.
- Visualización y monitorización:
psmuestra procesos activos,topyhtopofrecen una vista en tiempo real. - Buscar procesos con
pgrep: Localiza procesos por nombre o criterios específicos. - Envío de señales a procesos: Uso de
killy otras señales para controlar procesos.
Gestión de servicios con systemd
- Introducción a los servicios en Unix/Linux: Programas que se ejecutan en segundo plano para ofrecer funcionalidades.
- El sistema de init
systemd: Administrador de sistemas y servicios en muchas distribuciones modernas. - Uso de
systemctl: Controla la activación, desactivación y estado de servicios. - Supervisión y registro con
systemd: Acceso a logs y seguimiento de eventos del sistema.
Interacción con el sistema
Configuración de Bash
- Archivos de configuración:
.bashrc,.bash_profiley otros permiten personalizar el entorno. - Variables de entorno: Modificación y creación de variables que afectan al comportamiento del sistema y aplicaciones.
- Personalización del prompt: Adaptar la línea de comandos para mostrar información relevante.
Redes y comunicación con ifconfig, ip y netstat
- Conceptos básicos de redes: Dirección IP, máscaras de red, puertas de enlace y su importancia.
- Comandos de red:
ifconfigyip: Configuración y visualización de interfaces de red.ping: Verificación de conectividad con otros hosts.nslookupydig: Resolución de nombres de dominio y diagnóstico DNS.traceroute: Seguimiento de la ruta que toman los paquetes hasta su destino.netstatyss: Información sobre conexiones y puertos abiertos.
Transferencia de archivos y comunicación remota con SSH
- El comando
scp: Copia segura de archivos entre hosts a través de SSH. - El comando
rsync: Sincronización eficiente de archivos y directorios, local o remotamente. - El comando
ssh: Conexión segura a servidores remotos, permitiendo ejecutar comandos o acceder a una shell.
Gestión de paquetes y actualización del sistema
- Introducción a gestores de paquetes: Facilitan la instalación, actualización y eliminación de software.
- Uso del gestor
apten Debian/Ubuntu:apt update: Actualiza la lista de paquetes disponibles.apt upgrade: Actualiza los paquetes instalados.apt installyapt remove: Instala o elimina paquetes específicos.
- Gestión de dependencias:
aptse encarga de resolver dependencias para asegurar el correcto funcionamiento del software. - Manejo de repositorios: Añadir o modificar fuentes desde las cuales se obtienen los paquetes.
Sintaxis y creación de scripts en Bash
Variables y tipos de datos
- Definición y asignación: Asignar valores a variables para su uso en scripts.
- Tipos de datos: Aunque Bash trata todo como cadenas, es posible trabajar con números y otros tipos.
- Ámbito de las variables: Entender el alcance local y global, y cómo exportar variables.
Operadores
- Operadores aritméticos: Suma, resta, multiplicación, división y módulo.
- Operadores de comparación: Igualdad, desigualdad, mayor, menor, etc., utilizados en condiciones.
- Operadores lógicos: AND, OR y NOT para evaluar múltiples condiciones.
- Operadores de manipulación de cadenas: Concatenación, longitud, extracción de subcadenas.
- Operadores de archivos: Comprobar existencia, permisos y tipo de archivos.
- Precedencia de operadores: Orden en el que se evalúan las expresiones.
Sintaxis de control de flujo
- Estructuras condicionales:
if,else,elif: Ejecutar comandos basados en condiciones.
- Estructura
case: Simplifica múltiples condiciones, similar a switch en otros lenguajes. - Bucles:
for: Iterar sobre una lista o rango.whileyuntil: Repetir mientras se cumpla o no una condición.
- Control de bucles:
breakpara salir ycontinuepara saltar a la siguiente iteración. - Comando
select: Crear menús interactivos en scripts.
Expresiones regulares y manipulación de texto
- Introducción a las expresiones regulares: Patrones que permiten buscar y manipular texto con precisión.
- Uso de
grep: Buscar cadenas que coincidan con un patrón en archivos o salida de comandos. - Manipulación con
sed: Editor de flujo que permite reemplazar, insertar y eliminar texto en línea. - Procesamiento con
awk: Herramienta potente para analizar y procesar archivos de texto estructurados.
Definición y uso de funciones
- Sintaxis básica: Definir funciones para reutilizar código en scripts.
- Llamada y ejecución: Cómo invocar funciones y pasarles el control en un script.
- Paso de argumentos: Enviar datos a las funciones para personalizar su ejecución.
- Retorno de valores: Obtener resultados de una función para utilizarlos posteriormente.
Explorar más cursos de programación
Descubre más cursos y hojas de ruta de programación
Alan Sastre
Ingeniero de Software y formador, CEO en CertiDevs
Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, se dedica a crear hojas de ruta y cursos de programación estructurados. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan diseña contenido educativo de calidad para desarrolladores de todos los niveles.