Guía de Estudio_ Introducción al Sistema Operativo UNIX.pdf
Document Details
Uploaded by Deleted User
Tags
Full Transcript
Guía de Estudio: Introducción al Sistema Operativo UNIX Índice 1. Introducción a los Sistemas Operativos 2. Historia y Características de UNIX 3. Estructura del Sistema Operativo UNIX 4. Sistema de Archivos en UNIX 5. Comandos Básicos par...
Guía de Estudio: Introducción al Sistema Operativo UNIX Índice 1. Introducción a los Sistemas Operativos 2. Historia y Características de UNIX 3. Estructura del Sistema Operativo UNIX 4. Sistema de Archivos en UNIX 5. Comandos Básicos para el Manejo de Directorios 6. Administración de Archivos 7. Ejercicios Prácticos 8. Conclusiones 9. Referencias 1. Introducción a los Sistemas Operativos Un sistema operativo es un conjunto de programas que actúan como intermediarios entre el usuario y el hardware de la computadora. Sus principales funciones son: Gestionar los recursos de la computadora, como la CPU, la memoria y los dispositivos de entrada/salida. Proporcionar una interfaz para que los usuarios interactúen con el sistema. Coordinar la ejecución de programas y la gestión de archivos y datos. 2. Historia y Características de UNIX Historia de UNIX UNIX fue desarrollado originalmente en 1969 por Ken Thompson y Dennis Ritchie en los Laboratorios Bell de AT&T. Fue uno de los primeros sistemas operativos escritos en un lenguaje de alto nivel (C), lo que facilitó su portabilidad y adopción en diversas plataformas. Debido a regulaciones que impedían a AT&T comercializar UNIX, el sistema fue distribuido a bajo costo entre universidades y colegas, lo que contribuyó a su popularidad en el ámbito académico y científico. Con el tiempo, se desarrollaron diversas versiones y variantes de UNIX. Características de UNIX Multiusuario: Permite que múltiples usuarios accedan al sistema simultáneamente, compartiendo recursos pero manteniendo ciertos recursos como personales (por ejemplo, archivos y directorios). Multitarea: Capaz de ejecutar múltiples tareas al mismo tiempo, optimizando el uso del procesador. Multiproceso: Soporta la ejecución en sistemas con múltiples procesadores. 3. Estructura del Sistema Operativo UNIX 3.1 El Kernel El kernel es el núcleo del sistema operativo. Es el componente central que interactúa directamente con el hardware y gestiona los recursos del sistema. Funciones del Kernel: Gestión de la memoria: Asigna y libera memoria para procesos y aplicaciones. Control de procesos: Crea, planifica y finaliza procesos. Gestión de dispositivos: Interactúa con los dispositivos de hardware a través de controladores. Manejo del sistema de archivos: Organiza y gestiona la lectura y escritura de datos en dispositivos de almacenamiento. Seguridad y protección: Implementa mecanismos para proteger datos y recursos. 3.2 El Shell El shell es un programa que actúa como interfaz entre el usuario y el kernel. Permite al usuario introducir comandos que el sistema operativo ejecuta. Funciones del Shell: Interpretación de comandos: Lee e interpreta las órdenes del usuario. Ejecución de programas: Inicia la ejecución de aplicaciones y scripts. Scripting: Permite la creación de scripts (secuencias de comandos) para automatizar tareas. Tipos de Shells Comunes: Bourne Shell (sh): Shell estándar en muchas versiones de UNIX. Bourne Again Shell (bash): Versión mejorada del Bourne Shell, común en sistemas Linux. C Shell (csh): Diseñado para usuarios que programan en C. Korn Shell (ksh): Combina características del Bourne Shell y el C Shell. 4. Sistema de Archivos en UNIX 4.1 Jerarquía del Sistema de Archivos El sistema de archivos en UNIX tiene una estructura jerárquica en forma de árbol invertido, donde: El directorio raíz es / y es el punto de partida de todo el sistema de archivos. Directorios estándar incluyen: ○ /bin: Comandos básicos de usuario. ○ /sbin: Comandos básicos de superusuario (administrador). ○ /usr: Aplicaciones y utilidades del sistema. ○ /home: Directorios personales de los usuarios. ○ /etc: Archivos de configuración del sistema. ○ /dev: Archivos de dispositivos (hardware). ○ /tmp: Archivos temporales. Representación del árbol de directorios: / ├── bin/ ├── sbin/ ├── usr/ ├── home/ │ ├── usuario1/ │ ├── usuario2/ │ └──... ├── etc/ ├── dev/ ├── tmp/ └──... 4.2 Tipos de Archivos y Nombres Archivos ordinarios: Contienen datos, texto o código ejecutable. Directorios: Contienen una lista de archivos y otros directorios. Archivos especiales: Representan dispositivos de hardware. Nombres de archivos: ○ Pueden contener letras, números y ciertos caracteres especiales. ○ Son sensibles a mayúsculas y minúsculas (Archivo.txt es diferente de archivo.txt). ○ Los archivos cuyo nombre comienza con un punto (.) son archivos ocultos. Comodines (wildcards): *: Representa cualquier cadena de caracteres. ?: Representa un solo carácter. []: Representa un rango o conjunto de caracteres. 5. Comandos Básicos para el Manejo de Directorios A continuación, se presentan comandos fundamentales para navegar y gestionar directorios en UNIX. 5.1 pwd (print working directory) Significado: "Imprimir el directorio de trabajo". Función: Muestra la ruta completa del directorio actual en el que te encuentras. Uso: $ pwd Ejemplo: $ pwd /home/usuario1 Esto indica que estás en el directorio /home/usuario1. 5.2 ls (list) Significado: "Listar". Función: Muestra el contenido del directorio actual. Uso: $ ls Opciones comunes: ○ -l: Lista detallada (permite ver permisos, propietario, tamaño, fecha). ○ -a: Incluye archivos ocultos (los que comienzan con.). ○ -F: Añade un carácter al final de cada nombre para indicar el tipo de archivo (/ para directorios, * para ejecutables). ○ -R: Lista de forma recursiva todos los subdirectorios. Ejemplo: $ ls -l total 8 drwxr-xr-x 2 usuario1 usuarios 4096 Sep 20 10:00 documentos -rw-r--r-- 1 usuario1 usuarios 1024 Sep 20 09:50 notas.txt 5.3 cd (change directory) Significado: "Cambiar directorio". Función: Cambia el directorio de trabajo actual. Uso: $ cd nombre_del_directorio Comandos útiles: ○ cd..: Subir al directorio padre. ○ cd: Sin argumentos, te lleva a tu directorio personal (/home/usuario). ○ cd /ruta/absoluta: Cambia al directorio especificado por la ruta absoluta. Ejemplo: $ cd documentos $ pwd /home/usuario1/documentos 5.4 mkdir (make directory) Significado: "Crear directorio". Función: Crea un nuevo directorio. Uso: $ mkdir nombre_del_directorio Ejemplo: $ mkdir proyectos Esto crea un directorio llamado proyectos en el directorio actual. 5.5 rmdir (remove directory) Significado: "Eliminar directorio". Función: Elimina un directorio vacío. Uso: $ rmdir nombre_del_directorio Ejemplo: $ rmdir proyectos Esto elimina el directorio proyectos si está vacío. 6. Administración de Archivos 6.1 cat (concatenate) Significado: "Concatenar". Función: Muestra el contenido de uno o más archivos en la pantalla. Uso: $ cat nombre_del_archivo Ejemplo: $ cat notas.txt Esto muestra el contenido del archivo notas.txt. 6.2 more Función: Muestra el contenido de un archivo página por página. Uso: $ more nombre_del_archivo Controles durante su uso: ○ Barra espaciadora: Avanza una página. ○ Enter: Avanza una línea. ○ q: Sale del programa. Ejemplo: $ more largo.txt Esto permite leer el archivo largo.txt de forma pausada. 6.3 touch Significado: "Tocar". Función: Cambia la fecha y hora de un archivo o crea un archivo vacío si no existe. Uso: $ touch nombre_del_archivo Ejemplo: $ touch nuevo.txt Esto crea un archivo vacío llamado nuevo.txt o actualiza su fecha si ya existe. 6.4 mv (move) Significado: "Mover". Función: Mueve o renombra archivos y directorios. Uso para renombrar: $ mv nombre_actual nuevo_nombre Uso para mover: $ mv archivo directorio_destino Ejemplo: ○ Renombrar un archivo: $ mv notas.txt resumen.txt ○ Mover un archivo a otro directorio: $ mv resumen.txt documentos/ 6.5 cp (copy) Significado: "Copiar". Función: Copia archivos y directorios. Uso: $ cp archivo_origen archivo_destino Opciones comunes: ○ -r: Copia directorios de forma recursiva. ○ -i: Solicita confirmación antes de sobrescribir. Ejemplo: $ cp resumen.txt copia_resumen.txt Esto crea una copia del archivo resumen.txt llamada copia_resumen.txt. 6.6 Permisos y Propiedades de Archivos Los permisos en UNIX determinan quién puede leer, escribir o ejecutar un archivo o directorio. Tipos de permisos: r (read): Lectura. w (write): Escritura. x (execute): Ejecución. Categorías de usuarios: u (user): El propietario del archivo. g (group): Los usuarios del grupo al que pertenece el archivo. o (others): Todos los demás usuarios. Visualización de permisos: Usando ls -l, puedes ver los permisos de los archivos: $ ls -l -rwxr-xr-- 1 usuario1 usuarios 1024 Sep 20 09:50 script.sh Interpretación: -rwxr-xr--: ○ -: Indica un archivo regular (si fuera d, sería un directorio). ○ rwx (usuario): Lectura, escritura y ejecución. ○ r-x (grupo): Lectura y ejecución. ○ r-- (otros): Solo lectura. Cambiar permisos con chmod: Uso simbólico: $ chmod u+x archivo Añade permiso de ejecución al propietario. Uso numérico: Los permisos se representan con números: ○ r: 4 ○ w: 2 ○ x: 1 Ejemplo: $ chmod 755 script.sh Esto asigna permisos: ○ 7 (usuario): 4+2+1 = Lectura, escritura y ejecución. ○ 5 (grupo): 4+0+1 = Lectura y ejecución. ○ 5 (otros): 4+0+1 = Lectura y ejecución. 7. Ejercicios Prácticos A continuación, se proponen una serie de actividades para aplicar los conocimientos adquiridos. Actividad 1: Navegación y Listado de Directorios 1. Mostrar el directorio actual: $ pwd 2. Listar el contenido del directorio padre de tu directorio personal: $ ls.. 3. Listar todos los archivos (incluyendo ocultos) de tu directorio personal en orden alfabético inverso: $ ls -alr 4. Listar el contenido detallado de tu directorio personal: $ ls -l Pregunta: ¿Qué información muestra cada columna? Respuesta: Permisos, enlaces, propietario, grupo, tamaño, fecha y nombre. 5. Crear una estructura de directorios: Crea los directorios taller, taller/unix y taller/unix/practicas. $ mkdir -p taller/unix/practicas 6. Verificar la estructura creada: $ ls -R taller 7. Eliminar el último nivel del árbol de directorios: $ rmdir taller/unix/practicas 8. Listar el contenido del directorio mostrando los tipos de archivos: $ ls -F Actividad 2: Gestión de Usuarios y Sistema 9. ¿Para qué sirve el comando whoami? Respuesta: Muestra el nombre del usuario actual. $ whoami 10. Obtener información del sistema con uname: $ uname Para información detallada: $ uname -a Respuesta: Muestra información del sistema operativo y del kernel. 11. Crear directorios para cada usuario conectado: ○ Obtener la lista de usuarios conectados: $ who Crear el directorio alumnos y subdirectorios para cada usuario: $ mkdir alumnos $ cd alumnos $ mkdir usuario1 usuario2 usuario3 ○ 12. Renombrar los directorios con los nombres reales: $ mv usuario1 nombre_real1 13. Listar los directorios en orden alfabético y verificar el propietario: $ ls -l | sort Pregunta: ¿Quién es el dueño de los directorios creados y cuál es la fecha de creación? Respuesta: El dueño es el usuario que los creó; la fecha de creación aparece en la lista detallada. 14. Eliminar la estructura anterior en un solo paso: $ rm -r alumnos Nota: El comando rm -r elimina directorios y su contenido de forma recursiva. 8. Conclusiones El dominio de los comandos básicos y la comprensión de la estructura del sistema de archivos de UNIX son esenciales para cualquier persona que desee trabajar en entornos UNIX/Linux. Esta guía proporciona una base sólida para navegar, gestionar archivos y comprender el funcionamiento general del sistema. La práctica constante y la exploración de nuevos comandos fortalecerán tus habilidades y te prepararán para tareas más avanzadas. 9. Referencias Manual de Prácticas: Taller de Sistema Operativo UNIX. Universidad Autónoma de Baja California. Documentación Oficial de UNIX/Linux. Páginas de Manual: En UNIX, puedes acceder a la documentación de un comando con man nombre_del_comando. Nota: Siempre ten precaución al ejecutar comandos que puedan modificar o eliminar archivos y directorios. Es recomendable practicar en un entorno controlado o en una máquina virtual para evitar pérdidas de datos.