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:

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

    # 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:

    # 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:

# 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/

Nota

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:

# 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

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:

# 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:

# 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:

>>> 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:

>>> 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:

>>> 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:

>>> 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:

    nano hola_mundo.py
    
  2. Escribe el siguiente código:

    #!/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:

    python3 hola_mundo.py
    
  2. Haciendo el script ejecutable:

    Primero, debes darle permisos de ejecución al script:

    chmod +x hola_mundo.py
    

    Luego, puedes ejecutarlo directamente:

    ./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:

    mkdir ~/scripts
    
  2. Crea un script de Python llamado saludo.py dentro de ese directorio:

    nano ~/scripts/saludo.py
    
  3. Agrega el siguiente código:

    #!/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:

    chmod 755 ~/scripts/saludo.py
    ~/scripts/saludo.py
    

Ejercicio 2: Usar Python como Calculadora

  1. Inicia el intérprete interactivo de Python:

    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:

    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.