===================== Sesión 2 - Linux Básico ===================== Revisión y Ampliación de Comandos de Linux ========================================== En esta sesión, ampliaremos nuestro conocimiento sobre los comandos de Linux y exploraremos características más avanzadas que nos permitirán trabajar de manera más eficiente en el entorno de la terminal. Permisos de Archivos en Linux ----------------------------- En Linux, cada archivo y directorio tiene un conjunto de permisos que determinan quién puede leer, escribir o ejecutar el contenido. Los permisos se dividen en tres categorías: 1. **Usuario propietario** (u): La persona que creó el archivo. 2. **Grupo propietario** (g): Usuarios que pertenecen al mismo grupo. 3. **Otros usuarios** (o): Todos los demás usuarios del sistema. Para cada categoría, existen tres tipos de permisos: - **Lectura (r)**: Permite ver el contenido del archivo o listar el contenido de un directorio. - **Escritura (w)**: Permite modificar el archivo o crear/eliminar archivos dentro de un directorio. - **Ejecución (x)**: Permite ejecutar el archivo si es un programa, o acceder a los archivos dentro de un directorio. Visualizando Permisos ^^^^^^^^^^^^^^^^^^^^^ Cuando utilizamos el comando ``ls -l``, podemos ver los permisos de cada archivo representados por una secuencia de caracteres: .. code-block:: bash $ ls -l -rw-r--r-- 1 usuario grupo 4096 Jul 25 10:30 archivo.txt drwxr-xr-x 2 usuario grupo 4096 Jul 25 10:31 directorio En este ejemplo: - El primer carácter indica el tipo de archivo (``-`` para archivos regulares, ``d`` para directorios). - Los siguientes tres caracteres (``rw-``) representan los permisos del usuario propietario. - Los siguientes tres (``r--``) son los permisos del grupo. - Los últimos tres (``r--``) son los permisos para otros usuarios. Cambiando Permisos con chmod ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ El comando ``chmod`` (change mode) permite modificar los permisos de archivos y directorios. Existen dos notaciones para utilizar este comando: 1. **Notación simbólica**: Utiliza letras y símbolos para representar los permisos. .. code-block:: bash # Agregar permiso de ejecución al propietario chmod u+x archivo.py # Quitar permiso de escritura a otros usuarios chmod o-w archivo.txt # Dar permisos de lectura y escritura al propietario y solo lectura al grupo y otros chmod u=rw,g=r,o=r archivo.txt 2. **Notación octal**: Utiliza números para representar los permisos. - 4 = Lectura (r) - 2 = Escritura (w) - 1 = Ejecución (x) Se suman los valores para cada categoría de usuario: .. code-block:: bash # Dar permisos rw- r-- r-- (644) chmod 644 archivo.txt # Dar permisos rwx r-x r-x (755) chmod 755 script.py Ejemplos comunes de permisos: - **644** (rw-r--r--): Estándar para archivos de texto. - **755** (rwxr-xr-x): Estándar para scripts y ejecutables. - **700** (rwx------): Archivos privados, solo el propietario puede acceder. - **777** (rwxrwxrwx): Todos los permisos para todos (¡usar con precaución!). Cambio de Propietario con chown ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ El comando ``chown`` (change owner) permite cambiar el propietario y/o grupo de un archivo o directorio: .. code-block:: bash # Cambiar solo el propietario sudo chown nuevo_usuario archivo.txt # Cambiar propietario y grupo sudo chown nuevo_usuario:nuevo_grupo archivo.txt # Cambiar recursivamente para un directorio y su contenido sudo chown -R usuario:grupo directorio/ .. note:: Los comandos ``chmod`` y ``chown`` a menudo requieren privilegios de administrador (sudo) para modificar archivos que no te pertenecen. Atajos y Trucos de Terminal --------------------------- Para trabajar de manera más eficiente en la terminal de Linux, es útil conocer varios atajos de teclado y funcionalidades que ahorran tiempo. Autocompletado con Tab ^^^^^^^^^^^^^^^^^^^^^^ El autocompletado con Tab es una de las funcionalidades más útiles de la terminal: - Presiona ``Tab`` una vez para autocompletar un comando o nombre de archivo. - Si hay múltiples posibilidades, presiona ``Tab`` dos veces para ver todas las opciones. Ejemplo: .. code-block:: bash # Escribe "cd Do" y presiona Tab cd Do[Tab] → cd Documents/ # Si hay múltiples coincidencias, presiona Tab dos veces ls p[Tab][Tab] → muestra todas las opciones que comienzan con "p" Atajos de Teclado Importantes ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. list-table:: :widths: 30 70 :header-rows: 1 * - Atajo - Función * - ``Ctrl+C`` - Interrumpir el proceso actual (detiene un programa en ejecución). * - ``Ctrl+Z`` - Suspender el proceso actual (envía a segundo plano). * - ``Ctrl+D`` - Envía la señal EOF (End Of File) y cierra la entrada estándar. * - ``Ctrl+L`` - Limpia la pantalla (equivalente a ``clear``). * - ``Ctrl+A`` - Mueve el cursor al inicio de la línea. * - ``Ctrl+E`` - Mueve el cursor al final de la línea. * - ``Ctrl+U`` - Elimina todo desde el cursor hasta el inicio de la línea. * - ``Ctrl+K`` - Elimina todo desde el cursor hasta el final de la línea. * - ``Ctrl+W`` - Elimina la palabra anterior al cursor. * - ``Ctrl+R`` - Búsqueda en el historial de comandos. Historial de Comandos ^^^^^^^^^^^^^^^^^^^^^ La terminal guarda un historial de los comandos ejecutados, lo que facilita repetir o modificar comandos anteriores: - ``↑`` (flecha arriba): Navega hacia atrás en el historial de comandos. - ``↓`` (flecha abajo): Navega hacia adelante en el historial de comandos. - ``history``: Muestra una lista numerada de comandos ejecutados anteriormente. - ``!n``: Ejecuta el comando número ``n`` del historial. - ``!!``: Repite el último comando ejecutado. Ejecución de Python en Linux ============================ Python es un lenguaje de programación interpretado que está disponible en la mayoría de las distribuciones de Linux. A continuación, veremos cómo trabajar con Python desde la terminal. Verificando la Instalación de Python ----------------------------------- Antes de comenzar, es importante verificar qué versión de Python está instalada en el sistema: .. code-block:: bash # Verificar si Python 3 está instalado python3 --version # En algunos sistemas, Python 3 puede estar disponible como 'python' python --version Intérprete Interactivo de Python -------------------------------- Python ofrece un intérprete interactivo, también conocido como REPL (Read-Eval-Print Loop), que permite ejecutar código Python línea por línea: .. code-block:: bash # Iniciar el intérprete interactivo de Python 3 python3 Una vez dentro del intérprete, verás un prompt ``>>>`` que indica que Python está esperando que ingreses código: .. code-block:: python >>> print("Hola, mundo!") Hola, mundo! >>> 2 + 3 5 El intérprete de Python como calculadora ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Una de las formas más simples de utilizar el intérprete interactivo de Python es como una calculadora avanzada: .. code-block:: python >>> 10 + 5 # Suma 15 >>> 10 - 5 # Resta 5 >>> 10 * 5 # Multiplicación 50 >>> 10 / 5 # División (devuelve un float) 2.0 >>> 10 // 3 # División entera 3 >>> 10 % 3 # Módulo (resto de la división) 1 >>> 10 ** 2 # Potencia 100 Importando módulos en el intérprete ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Python incluye una biblioteca estándar con muchos módulos útiles. Por ejemplo, el módulo ``math`` proporciona funciones matemáticas avanzadas: .. code-block:: python >>> import math >>> math.sqrt(16) # Raíz cuadrada 4.0 >>> math.pi # Valor de π 3.141592653589793 >>> math.sin(math.radians(30)) # Seno de 30 grados 0.49999999999999994 >>> math.log10(100) # Logaritmo base 10 2.0 Para salir del intérprete interactivo de Python, puedes usar la función ``exit()``, ``quit()``, o presionar ``Ctrl+D``: .. code-block:: python >>> exit() Creando y Ejecutando Scripts de Python ------------------------------------- Aunque el intérprete interactivo es útil para pruebas rápidas, para programas más complejos es mejor crear scripts que se puedan guardar y ejecutar. Creando un Script de Python ^^^^^^^^^^^^^^^^^^^^^^^^^^ Puedes crear un script de Python utilizando cualquier editor de texto. Vamos a crear un script simple: 1. Abre un editor de texto como ``nano``: .. code-block:: bash nano hola_mundo.py 2. Escribe el siguiente código: .. code-block:: python #!/usr/bin/env python3 # Este es mi primer script en Python print("¡Hola, mundo!") # Una operación matemática resultado = 5 * 10 print(f"5 x 10 = {resultado}") La primera línea (shebang) indica al sistema que este script debe ejecutarse con Python 3. 3. Guarda el archivo presionando ``Ctrl+O``, luego ``Enter``, y sal del editor con ``Ctrl+X``. Ejecutando un Script de Python ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Hay varias formas de ejecutar un script de Python: 1. **Usando el intérprete de Python explícitamente**: .. code-block:: bash python3 hola_mundo.py 2. **Haciendo el script ejecutable**: Primero, debes darle permisos de ejecución al script: .. code-block:: bash chmod +x hola_mundo.py Luego, puedes ejecutarlo directamente: .. code-block:: bash ./hola_mundo.py Esto funciona gracias a la línea shebang que le indica al sistema qué intérprete usar. Sintaxis Básica de Python ------------------------ Si estás familiarizado con otros lenguajes de programación, notarás algunas diferencias importantes en Python: 1. **No hay punto y coma al final de las instrucciones** - Las líneas terminan con un salto de línea, no con un punto y coma. 2. **Indentación en lugar de llaves** - Los bloques de código se definen por su indentación, no por llaves o palabras clave. 3. **Tipado dinámico** - No es necesario declarar el tipo de una variable antes de usarla. 4. **Orientado a objetos** - Todo en Python es un objeto, incluso los tipos de datos simples como números y cadenas. Ejercicios Prácticos =================== A continuación, se presentan algunos ejercicios para practicar lo aprendido: Ejercicio 1: Permisos de Archivos -------------------------------- 1. Crea un nuevo directorio llamado ``scripts`` en tu directorio home: .. code-block:: bash mkdir ~/scripts 2. Crea un script de Python llamado ``saludo.py`` dentro de ese directorio: .. code-block:: bash nano ~/scripts/saludo.py 3. Agrega el siguiente código: .. code-block:: python #!/usr/bin/env python3 nombre = input("¿Cómo te llamas? ") print(f"¡Hola, {nombre}! Bienvenido al curso de Python.") 4. Haz el script ejecutable y pruébalo: .. code-block:: bash chmod 755 ~/scripts/saludo.py ~/scripts/saludo.py Ejercicio 2: Usar Python como Calculadora --------------------------------------- 1. Inicia el intérprete interactivo de Python: .. code-block:: bash python3 2. Realiza las siguientes operaciones: - Calcula el área de un círculo con radio 5 (A = πr²) - Convierte 30 grados Celsius a Fahrenheit (F = C × 9/5 + 32) - Calcula el logaritmo natural de 100 - Calcula el valor de 2⁵ 3. Sal del intérprete. Ejercicio 3: Crear un Script con Estructura Básica ------------------------------------------------ 1. Crea un nuevo script llamado ``calculadora.py``: .. code-block:: bash nano ~/scripts/calculadora.py 2. Escribe un programa que: - Solicite dos números al usuario - Muestre un menú con opciones para sumar, restar, multiplicar o dividir - Realice la operación seleccionada y muestre el resultado 3. Haz el script ejecutable y pruébalo con diferentes valores. Conclusión ========= En esta sesión hemos ampliado nuestro conocimiento sobre el manejo de permisos en Linux y hemos dado nuestros primeros pasos con Python. Ahora puedes: - Comprender y modificar permisos de archivos con ``chmod`` y ``chown`` - Utilizar atajos de teclado para trabajar más eficientemente en la terminal - Ejecutar Python en modo interactivo y usarlo como una calculadora avanzada - Crear y ejecutar scripts de Python básicos En las próximas sesiones, profundizaremos en los tipos de datos, estructuras de control y funciones de Python para desarrollar programas más complejos y útiles.