Presentación
Instrucciones para la presentación
1. Piense en el nombre de un animal que inicie con la primera letra de su nombre.
2. Este no deberá repetirse.
3. Al presentarse deberá completar la siguiente frase: Mi nombre es: _______ y he venido sobre un/a: _______ a la escuela desde _____
4. Dar respuesta a las preguntas:
4.1 ¿Porqué estudio está carrera?
4.2 ¿Qué me ha gustado de la carrera hasta ahora?
Temas del curso
Unidad 1. Introducción
1.1. Sistemas unix/linux.
1.2. El sistema de archivos.
Temas del curso
Unidad 2. El shell.
2.1. Uso del shell.
2.2. Programación en el shell
2.2.1. Variables, operadores y expresiones.
2.2.2. Control de flujo.
2.2.3. Funciones.
2.2.4. Expresiones. Regulares.
2.2.5. Entrada y salida estándar.
2.2.6. Entubamientos.
Temas del curso
Unidad 3. Programación con entrada y salida estándar.
3.1. Entrada y salida estándar.
3.2. Argumentos de programas.
3.3. Archivos.
3.4. Depuración.
Temas del curso
Unidad 4. Llamadas al sistema
4.1. Entrada y salida de bajo nivel.
4.2. Procesos.
4.3. Señales e interrupciones.
Temas del curso
Unidad 5. Programación del kernel.
5.1. Compilación e instalación del kernel y módulos. 5.2. Creación de módulos.
5.3. Programación de módulos para hardware.
Temas del curso
Unidad 6 El entorno gráfico
6.1. Servidor x
6.2. Lenguajes y juegos de herramientas
6.2.1. tk, gtk , qt
6.2.4. wxwidgets
6.2.5. Otros
6.3. Administrador de ventanas
6.4. Comunicación entre componentes y procesos. 6.5. Eventos y salida.
6.6. Programación de scripts.
6.7. Generadores de código.
6.8. Consideraciones de diseño.
Políticas de clase
Lineamientos de clase
El incumplimiento de las tareas en tiempo y forma llevarán a una no aprobación del curso.
Lineamientos de clase
El incumplimiento de las tareas en tiempo y forma llevarán a una no aprobación del curso.
Realizar el seguimiento personal desde el Aula Virtual.
Estar pendiente de los resultados de las evaluacion/es parcial/es y final/es.
Notificar al tutor por escrito, con copia a la coordinación académica, si, por alguna razón excepcional, se encontrara en una circunstancia especial que le impidiera continuar con el curso y recibir así indicaciones de cómo proceder a partir de ese momento.
Descripción de las actividades
Unidad 1 Introducción.
Descripción de las actividades
Unidad 2 El shell.
Descripción de las actividades
Unidad 3 Programación con entrada y salida estándar.
Descripción de las actividades
Unidad 4 Llamadas al sistema
Descripción de las actividades
Unidad 5 Programación del kernel.
Descripción de las actividades
Unidad 6 El entorno gráfico
Actividades de encuadre
Actividades de encuadre
Instrucciones:
Tiempo de la actividad: 6 minutos.
Actividades de encuadre
Instrucciones:
Tiempo de la actividad: 6 minutos.
Actividades de encuadre
Instrucciones:
Tiempo de la actividad: 6 minutos.
Actividades de encuadre
Una vez contestadas las preguntas anteriores escribir en el foro respectivo la respuesta a cada pregunta.
Tiempo de la actividad: 6 minutos.
Recomendaciones para las actividades
Trabajos:
Párrafos:
Ortografía - Gramática
Recomendaciones para las actividades
Referencias bibliográfica
Lista referencia bibliográfica
Recomendaciones para las actividades
Introducción y conclusión
Formato del trabajo
Recomendaciones para las actividades
Diagramas:
Códigos fuentes:
Tablas:
Recomendaciones para las actividades
Imagenes / diagramas / gráficas:
¿Dudas / Preguntas / comentarios?
1. Introducción.
1.1. Sistemas unix/linux.
1.2. El sistema de archivos.
# Unix
¿Qué es Unix?
# Unix
Aspectos claves
Multiusuario:
UNIX permite que múltiples usuarios accedan al sistema simultáneamente. Cada usuario tiene su propio espacio de trabajo y puede ejecutar procesos independientes.
Multitarea:
Permite la ejecución simultánea de múltiples procesos, lo que significa que el sistema puede realizar varias tareas al mismo tiempo.
# Unix
Aspectos claves
Sistema de Archivos Jerárquico:
Los archivos y directorios en UNIX están organizados en una estructura de árbol jerárquico. Esto facilita la organización y navegación de archivos.
Interfaz de Línea de Comandos (CLI):
UNIX es conocido por su interfaz de línea de comandos, donde los usuarios interactúan con el sistema ingresando comandos en una terminal.
# Unix
Aspectos claves
Shell:
El shell es la interfaz de usuario entre el usuario y el núcleo del sistema operativo. Proporciona un intérprete de comandos que ejecuta comandos dados por el usuario.
Programas Pequeños y Especializados:
En lugar de utilizar programas monolíticos, UNIX sigue el principio de tener programas pequeños y especializados que realizan tareas específicas y se pueden combinar mediante la canalización (pipes) para lograr funcionalidades más complejas.
# Unix
Aspectos claves
Seguridad
UNIX tiene un sistema de permisos robusto que controla el acceso a los archivos y recursos del sistema. Cada archivo y proceso tiene atributos de permisos que especifican quién puede leer, escribir o ejecutarlos.
Portabilidad
La filosofía de diseño de UNIX ha influido en sistemas operativos posteriores, y muchos de sus conceptos se han adoptado en diferentes plataformas.
# Unix
Aspectos claves
Redes:
UNIX tiene una sólida capacidad de red, lo que lo hace muy adecuado para servidores y entornos de red.
Variantes:
Es importante señalar que hay varias variantes de UNIX, como AIX, HP-UX, Solaris y BSD. Cada una tiene sus propias características y peculiaridades. Además, Linux, aunque no es estrictamente UNIX, sigue muchos de los principios y conceptos de diseño de UNIX.
# Unix
Aspectos claves
Redes:
UNIX tiene una sólida capacidad de red, lo que lo hace muy adecuado para servidores y entornos de red.
Variantes:
Es importante señalar que hay varias variantes de UNIX, como AIX, HP-UX, Solaris y BSD. Cada una tiene sus propias características y peculiaridades. Además, Linux, aunque no es estrictamente UNIX, sigue muchos de los principios y conceptos de diseño de UNIX.
# Unix
Actividad de aprendizaje
# Unix / linux
Unix
Linux
# Unix / linux
Unix
Desarrollado a fines de la década de 1960 en los laboratorios Bell de AT&T por Ken Thompson, Dennis Ritchie y otros.
Iniciado por Linus Torvalds en 1991 como un sistema operativo compatible con Unix y de código abierto.
Linux
Origen
Similitud
# Unix / linux
Aspectos claves de linux
Núcleo (Kernel) de Linux:
Sistema de Archivos Hierárquico:
# Unix / linux
Aspectos claves de linux
Interfaz de Línea de Comandos (CLI) y Entorno Gráfico:
Código Abierto y Licencia GNU:
# Unix / linux
Aspectos claves de linux
Multitarea y Multiusuario:
Seguridad:
# Unix / linux
Aspectos claves de linux
Gestión de Paquetes:
Redes y Comunicación:
# Unix / linux
Aspectos claves de linux
Amplia Variedad de Software:
Comunidad Activa y Documentación Extensa:
# Unix / linux
Aspectos claves de linux
Portabilidad:
Actualizaciones y Personalización:
Actividad de aprendizaje
# Unix / linux
# Sistema de fichero
Un sistema de archivos (o sistema de ficheros) es una estructura lógica utilizada por las computadoras para organizar y almacenar datos en dispositivos de almacenamiento (discos duros, SSD, USB, entre otros).
En un sistema de archivos típico, se organizan en directorios (o carpetas), y fichero con nombre único que lo identifica. Incluyen métodos para realizar operaciones (leer, escribir, borrar y renombrar), así como para crear y eliminar directorios.
Cada O.S. tiene su propio sistema de archivos, y los más comunes son NTFS y FAT en sistemas Windows, HFS+ en macOS, y ext4 en sistemas basados en Linux.
# Sistema de fichero
Aspectos claves de NTF (New Technology File System)
Seguridad:
Compresión:
# Sistema de fichero
Aspectos claves de NTF (New Technology File System)
Recuperación:
# Sistema de fichero
Aspectos claves de FAT (File Allocation Table)
Compatibilidad:
Limitaciones:
# Sistema de fichero
Aspectos claves de FAT (File Allocation Table)
Sin seguridad avanzada:
# Sistema de fichero
Aspectos claves de HFS+ (Hierarchical File System Plus)
Diseñado para macOS:
Soporte para metadatos:
# Sistema de fichero
Aspectos claves de ext4 (Fourth Extended File System)
Tamaño de archivo y sistema de archivos grande:
Journaling:
# Sistema de fichero
Aspectos claves de ext4 (Fourth Extended File System)
Compatibilidad con versiones anteriores:
Actividad de aprendizaje
# Sistema de ficheros
# Shell
# Shell
Aspectos claves
Interfaz de Línea de Comandos (CLI):
Intérprete de Comandos::
# Shell
Aspectos claves
Automatización mediante Scripts:
Intérprete de Comandos:
# Shell
Aspectos claves
Redirección y Piping:
Personalización:
# Shell
Actividad de aprendizaje
# Usando el Shell
Abrir la Terminal:
Ctrl + Alt + T
.# Usando el Shell
Navegación por Directorios:
cd [directorio]
Donde [directorio]
es la ruta al directorio al cual deseas cambiar.
Cambiar al directorio "Documentos":
cd Documentos
Cambiar al directorio superior (directorio padre):
cd ..
Cambiar al directorio personal del usuario:
cd ~
Cambiar al directorio raíz:
cd /
Ejemplos
# Usando el Shell
Listar Archivos y Directorios:
ls [opciones] [directorio]
Donde:
[opciones]
son parámetros adicionales que puedes incluir para personalizar la salida del comando.
[directorio]
es el directorio del cual quieres listar el contenido. Si no se especifica, por defecto lista el contenido del directorio actual.
-l
: Muestra la lista en formato largo, incluye permisos, propietario, grupo, tamaño y fecha de modificación.-a
: Muestra todos los archivos, incluyendo los ocultos.-h
: Con la opción -l
, muestra los tamaños de los archivos en formato legible para humanos (por ejemplo, KB, MB).-R
: Lista de manera recursiva, mostrando el contenido de subdirectorios.# Usando el Shell
Manipular archivos y directorios:
mkdir nombre_directorio
-p
: Crea directorios padres si no existen.Crear directorio:
# Usando el Shell
Manipular archivos y directorios:
rm nombre_archivo
-f
: Elimina sin confirmación.-r
o -R
: Elimina directorios y su contenido.Eliminar archivos:
# Usando el Shell
Manipular archivos y directorios:
cp origen destino
-r
o -R
: Copia directorios y su contenido.Copiar archivos y directorios:
# Usando el Shell
Manipular archivos y directorios:
mv origen destino
Mover o renombrar archivos y directorios:
# Usando el Shell
Manipular archivos y directorios:
cat nombre_archivo
less
o more
: Permiten visualizar el contenido de un archivo página por página.Visualizar el contenido de un archivo:
# Usando el Shell
Manipular archivos y directorios:
nano nombre_archivo
vim
o emacs
.Editar un archivo:
# Usando el Shell
Acceder a la Ayuda:
man nombre_comando
man
que significa "manual"# Usando el Shell
Actividad de aprendizaje
# Programando el Shell
# Programando el Shell
Nociones básicas y conceptos clave
Interprete de Comandos:
Los scripts de shell son interpretados por el shell, lo que significa que el intérprete del shell ejecuta cada comando en el script uno tras otro.
# Programando el Shell
Nociones básicas y conceptos clave
Variables:
Puedes definir y utilizar variables en tus scripts. Las variables almacenan información que puede ser referenciada y modificada a lo largo del script.
# Programando el Shell
Nociones básicas y conceptos clave
Control de Flujo:
Al igual que en otros lenguajes de programación, puedes utilizar estructuras de control de flujo, como bucles (for
, while
) y condicionales (if
, else
), para controlar la ejecución de tus comandos.
# Programando el Shell
Nociones básicas y conceptos clave
Funciones:
Puedes definir funciones en tus scripts para modularizar y reutilizar código.
# Programando el Shell
Nociones básicas y conceptos clave
Entrada/Salida:
Puedes interactuar con archivos y directorios, leer y escribir datos, y utilizar la entrada y salida estándar.
# Programando el Shell
Nociones básicas y conceptos clave
Comentarios:
Puedes incluir comentarios en tus scripts precediendo líneas con el símbolo #
.
# Programando el Shell
Nociones básicas y conceptos clave
Ejecución de Comandos Externos:
Puedes ejecutar comandos externos, programas y utilidades desde tu script.
# Programando el Shell
Nociones básicas y conceptos clave
Ejemplo
#!/bin/bash
# Script que imprime los nombres de archivos en un directorio
DIRECTORIO="/ruta/al/directorio"
for FILE in $DIRECTORIO/*; do
if [ -f "$FILE" ]; then
echo "Nombre del archivo: $FILE"
fi
done
# Programando el Shell
Actividad de aprendizaje
# Entubamiento
En la programación en el shell, la tubería (|
) es un mecanismo que permite combinar la salida de un comando con la entrada de otro. Esto es útil para realizar operaciones más complejas y encadenar varios comandos.
# Entubamiento
Aspectos claves
Sintaxis Básica:
|
.comando1 | comando2
- La salida de comando1
se convierte en la entrada de comando2
.# Entubamiento
Aspectos claves
Comunicación entre Procesos:
# Entubamiento
Aspectos claves
Encadenamiento de Comandos:
comando1 | comando2 | comando3.
# Entubamiento
Aspectos claves
Flujo de Datos Unidireccional:
# Entubamiento
Aspectos claves
Uso en Scripts:
# Entubamiento
Aspectos claves
Filtros y Procesamiento de Datos:
ls -l | grep "file" | awk '{print $1}'
- lista los permisos de los archivos que contienen "file".# Entubamiento
Aspectos claves
Redirección de Salida:
comando1 | comando2 > salida.txt
.# Entubamiento
Aspectos claves
Uso con Comandos de Texto:
grep
, sed
y awk
.# Entubamiento
Aspectos claves
Eficiencia y Conveniencia:
# Entubamiento
Aspectos claves
Interoperabilidad:
# Entubamiento
Actividad de aprendizaje
# Programación con entrada y salida estándar
La programación de entrada y salida estándar en el shell se refiere a la manipulación de datos que fluyen entre un programa y el entorno del sistema operativo a través de los canales de entrada y salida estándar. Estos canales son normalmente el teclado (entrada estándar) y la pantalla (salida estándar).
# Programación con entrada y salida estándar
Aspectos Claves
Redirección de Entrada y Salida:
Redirección de Salida (>
):
Permite redirigir la salida estándar de un comando hacia un archivo en lugar de la pantalla.
ls > lista_archivos.txt
# Programación con entrada y salida estándar
Aspectos Claves
Redirección de Entrada y Salida:
Redirección de Entrada (<
):
Permite que un comando lea su entrada estándar desde un archivo en lugar del teclado.
sort < archivo_desordenado.txt
# Programación con entrada y salida estándar
Aspectos Claves
Redirección de Entrada y Salida:
Redirección de Salida y Anexar (>>
):
Agrega la salida estándar al final de un archivo en lugar de sobrescribirlo.
echo "Nuevo contenido" >> archivo_existente.txt
# Programación con entrada y salida estándar
Aspectos Claves
Pipes (|
):
Permite tomar la salida estándar de un comando y utilizarla como entrada estándar para otro.
cat archivo.txt | grep "palabra"
# Programación con entrada y salida estándar
Aspectos Claves
Comandos de Lectura y Escritura:
echo
: Imprime texto en la salida estándar.
echo "Hola, mundo!"
# Programación con entrada y salida estándar
Aspectos Claves
Comandos de Lectura y Escritura:
read
: Lee la entrada desde el teclado y asigna el valor a una variable.
read -p "Ingrese su nombre: " nombre
# Programación con entrada y salida estándar
Aspectos Claves
Comandos de Lectura y Escritura:
printf
: Imprime texto con formato.
printf "El resultado es: %d\n" 42
# Programación con entrada y salida estándar
Actividad de aprendizaje
# Argumentos de programas
Ejemplo
# Argumentos de programas
./mi_script.sh argumento1 argumento2
Los scripts de shell pueden acceder a estos argumentos dentro del código y utilizarlos para realizar operaciones específicas.
En un script de shell en bash, puedes referenciar los argumentos utilizando variables especiales. Por ejemplo:
# Argumentos de programas
#!/bin/bash
echo "El primer argumento es: $1"
echo "El segundo argumento es: $2"
En un script de shell en bash, puedes referenciar los argumentos utilizando variables especiales. Por ejemplo:
# Argumentos de programas
#!/bin/bash
echo "El primer argumento es: $1"
echo "El segundo argumento es: $2"
Al ejecutar el script como ./mi_script.sh valor1 valor2
El primer argumento es: valor1
El segundo argumento es: valor2
Actividad de aprendizaje
# Argumentos de programas
# Archivos
Los archivos son esenciales para manipular datos almacenados en dispositivos de almacenamiento.
# Archivos
Se puede crear archivos directamente desde el shell utilizando comandos como touch
o echo
.
Aspectos claves
Creación y Manipulación de Archivos:
echo "Hola, mundo" > archivo.txt
Ejemplo
# Archivos
Se puede editar archivos directamente desde el shell utilizando editores de texto como nano
, vim
, o emacs
.
Aspectos claves
Edición de Archivos:
nano demo.txt
Ejemplo
# Archivos
Puedes eliminar archivos con el comando rm
.
Aspectos claves
Eliminación de Archivos:
rm archivo.txt
Ejemplo
# Archivos
Comandos como cp
(copiar), mv
(mover), y ln
(crear enlaces) te permiten realizar operaciones avanzadas con archivos.
Aspectos claves
Operaciones con Archivos:
# Archivos
chmod
te permite cambiar los permisos de un archivo.chown
te permite cambiar el propietario de un archivo.Aspectos claves
Permisos y Propietarios:
# Archivos
Actividad de aprendizaje
# Llamadas al sistema
# Llamadas al sistema
Aspectos claves
Creación y Gestión de Procesos:
fork()
: Esta llamada al sistema se utiliza para crear un nuevo proceso hijo. El proceso hijo es una copia exacta del proceso padre, pero tiene su espacio de memoria independiente.
exec()
: Después de fork()
, exec()
reemplaza la imagen del proceso actual con un nuevo programa. Puede ser execvp
, execl
, etc.
wait()
y waitpid()
: Estas llamadas al sistema permiten que un proceso padre espere a que su proceso hijo termine la ejecución.
# Llamadas al sistema
Aspectos claves
Manipulación de Archivos:
open()
y close()
: open()
se utiliza para abrir un archivo, mientras que close()
se utiliza para cerrar un descriptor de archivo abierto.
read()
y write()
: Permiten la lectura y escritura de datos desde/hacia un archivo.
lseek()
: Se utiliza para cambiar la posición del puntero de archivo en el archivo abierto.
unlink()
: Elimina un enlace a un archivo, y si es el último enlace, elimina el archivo.
# Llamadas al sistema
Aspectos claves
Gestión de Procesos:
kill()
: Se utiliza para enviar señales a procesos. Por ejemplo, kill -9 PID
envía la señal SIGKILL para terminar un proceso.
ps()
y top()
: Aunque no son llamadas al sistema directas, son comandos que proporcionan información sobre los procesos en ejecución.
# Llamadas al sistema
Aspectos claves
Comunicación entre Procesos:
pipe()
: Crea una tubería para la comunicación entre dos procesos.
shmget()
, shmat()
, y shmdt()
: Estas llamadas al sistema se utilizan para la gestión de memoria compartida entre procesos.
# Llamadas al sistema
Aspectos claves
Otros:
chdir()
: Cambia el directorio de trabajo del proceso.
umask()
: Establece la máscara de modo del proceso.
time()
y date()
: Proporcionan información sobre la hora actual.
# Llamadas al sistema
Actividad de aprendizaje
# Entrada y salida bajo nivel
Se refieren a operaciones que interactúan directamente con los descriptores de archivo y se centran en la manipulación detallada de los datos.
# Entrada y salida bajo nivel
Aspectos claves
Descriptores de Archivo:
Los descriptores de archivo son enteros que identifican una conexión abierta con un archivo o un dispositivo. En la programación de shell, los descriptores de archivo se utilizan para manipular las entradas y salidas.
stdin
(Descriptor 0):# Entrada y salida bajo nivel
Aspectos claves
Descriptores de Archivo:
stdout
(Descriptor 1): stderr
(Descriptor 2):# Entrada y salida bajo nivel
Aspectos claves
Redirección de Entrada y Salida:
>
para redireccionar la salida a un archivo y <
para redireccionar la entrada desde un archivo.# Redirigir la salida estándar a un archivo
echo "Hola, mundo" > salida.txt
# Redirigir la entrada estándar desde un archivo
cat < entrada.txt
# Entrada y salida bajo nivel
Aspectos claves
dup
y dup2
) permite copiar un descriptor de archivo existente a otro. Esto es útil para redirigir la salida estándar a un archivo, por ejemplo.# Duplicar la salida estándar y redirigirla a un archivo
exec 3>&1
exec > salida.txt
# ...comandos...
# Restaurar la salida estándar
exec 1>&3
# Entrada y salida bajo nivel
Aspectos claves
En la programación de shell, algunos archivos especiales simplifican la entrada y salida.
/dev/null
: Un archivo especial que descarta todo lo que se escribe en él. Útil para suprimir la salida.# Redirigir la salida estándar a /dev/null
comando > /dev/null
# Entrada y salida bajo nivel
Aspectos claves
/dev/tty
: Se refiere al terminal actual y se puede usar para redirigir la salida a la pantalla.
# Redirigir la salida estándar al terminal actual
comando > /dev/tty
# Entrada y salida bajo nivel
Actividad de aprendizaje
# Procesos
Es una instancia en ejecución de un programa. Cuando ejecutas un programa en el shell, se crea un nuevo proceso para ese programa.
# Procesos
Aspectos Claves
Al ejecutar un programa en el shell, se crea un nuevo proceso. Puedes hacer esto usando comandos como ./nombre_del_programa
o simplemente escribiendo el nombre del comando.
# Procesos
Aspectos Claves
Cada proceso tiene un identificador único llamado PID (Identificador de Proceso). Puedes ver los PIDs de los procesos en ejecución usando comandos como ps
o top
.
# Procesos
Aspectos Claves
fork()
para crear un nuevo proceso, exec()
para reemplazar la imagen del proceso actual con otro programa, y wait()
para esperar a que un proceso hijo termine.# Procesos
Aspectos Claves
|
) y redirecciones (>
, <
) son ejemplos de cómo los procesos pueden compartir información a través del shell.# Procesos
Aspectos Claves
&
al final del comando.# Procesos
Aspectos Claves
SIGKILL
para terminar un proceso.# Procesos
Aspectos Claves
#!/bin/bash
# Crear un nuevo proceso
echo "Hola desde el proceso padre $$"
# Crear un proceso hijo
./mi_programa_hijo.sh &
# Esperar a que el proceso hijo termine
wait
echo "Proceso hijo finalizado"
# Procesos
Actividad de aprendizaje
¿Qué problemas tuviste al realizar cada ejecución?
# Señales e Interrupciones
Señales:
Algunas señales comunes incluyen:
Ctrl+C
en la terminal.Las señales son mecanismos de comunicación asincrónica entre procesos o entre el núcleo y los procesos. Son utilizadas para notificar eventos o solicitar ciertas acciones.
# Señales e Interrupciones
Manejo de Señales en Shell:
Se puede establecer cómo tu script de shell manejará ciertas señales mediante el comando trap
.
# Ejemplo de manejo de señales en un script de shell
trap 'echo "Recibida la señal SIGINT (Ctrl+C)"; exit' SIGINT
trap 'echo "Recibida la señal SIGTERM"; exit' SIGTERM
# Resto del script
echo "El script está en ejecución..."
# Espera indefinida
while true; do
sleep 1
done
# Señales e Interrupciones
Interrupciones y Programas en Segundo Plano:
Cuando se ejecuta un programa en segundo plano y luego se cierra la terminal, el proceso puede recibir la señal SIGHUP (hang-up) si la terminal se cierra. Se puedes prevenir esto usando nohup
o redirigiendo la entrada y salida estándar.
# Ejecutar un programa en segundo plano sin verse afectado por SIGHUP
nohup ./mi_programa.sh &
# Señales e Interrupciones
Interrupciones con Ctrl+C:
Cuando se presiona Ctrl+C
en la terminal, se envía la señal SIGINT al proceso en primer plano. Se puedes interceptar esta señal para realizar acciones específicas antes de que el programa termine.
# Ejemplo de manejo de la señal SIGINT en un script
trap 'echo "Script interrumpido por Ctrl+C"; cleanup_function' SIGINT
cleanup_function() {
# Realizar acciones de limpieza o manejo antes de salir
echo "Realizando limpieza..."
exit
}
# Resto del script
echo "El script está en ejecución..."
# Espera indefinida
while true; do
sleep 1
done
# Señales e Interrupciones
Interrupciones con Ctrl+C:
Cuando se presiona Ctrl+C
en la terminal, se envía la señal SIGINT al proceso en primer plano. Se puedes interceptar esta señal para realizar acciones específicas antes de que el programa termine.
# Ejemplo de manejo de la señal SIGINT en un script
trap 'echo "Script interrumpido por Ctrl+C"; cleanup_function' SIGINT
cleanup_function() {
# Realizar acciones de limpieza o manejo antes de salir
echo "Realizando limpieza..."
exit
}
# Resto del script
echo "El script está en ejecución..."
# Espera indefinida
while true; do
sleep 1
done
# Señales e Interrupciones
Actividad de aprendizaje
¿Qué comandos debes de utilizar para que en un script se ejecute un ping a google.com y aún que se precione ctrl+c no se interrumpa?