Guía de Estudio_ Introducción al Sistema Operativo UNIX_Linux.pdf

Full Transcript

Guía de Estudio: Introducción al Sistema Operativo UNIX/Linux Índice 1. Introducción 2. Conceptos Básicos de Sistemas Operativos 3. Estructura de UNIX/Linux 4. Sistema de Archivos en UNIX/Linux 5. Comandos Básicos para el Manejo de Dire...

Guía de Estudio: Introducción al Sistema Operativo UNIX/Linux Índice 1. Introducción 2. Conceptos Básicos de Sistemas Operativos 3. Estructura de UNIX/Linux 4. Sistema de Archivos en UNIX/Linux 5. Comandos Básicos para el Manejo de Directorios 6. Tipos de Archivos y Permisos en UNIX/Linux 7. Comandos para el Manejo y Administración de Archivos 8. Prácticas y Ejercicios 9. Conclusiones 10. Referencias Introducción El sistema operativo UNIX/Linux es uno de los pilares fundamentales en el mundo de la informática. Su robustez, flexibilidad y potencia lo hacen esencial en el ámbito profesional y académico. Esta guía de estudio tiene como objetivo proporcionar una comprensión detallada y estructurada de los conceptos clave, comandos y estructuras de UNIX/Linux, facilitando su aprendizaje y aplicación práctica. Conceptos Básicos de Sistemas Operativos ¿Qué es un Sistema Operativo? Un sistema operativo es un conjunto de programas que gestionan los recursos de una computadora y facilitan la interacción entre el usuario y el hardware. Sus funciones principales incluyen: Interfaz Usuario-Máquina: Proporciona medios para que los usuarios interactúen con el sistema. Gestión de Recursos: Administra la memoria, el procesador y los dispositivos de entrada/salida. Gestión de Archivos y Datos: Organiza, protege y facilita el acceso a los datos almacenados. Ejecución de Programas: Coordina la ejecución de aplicaciones y procesos. Protección y Seguridad: Asegura que los procesos y usuarios no interfieran de manera inapropiada entre sí. Funciones Específicas de un Sistema Operativo 1. Manejo de Dispositivos: ○ Gestiona dispositivos de entrada y salida, como discos duros, impresoras y teclados. ○ Utiliza controladores (drivers) para comunicarse con el hardware. 2. Gestión de Memoria y Ejecución de Programas: ○ Administra la memoria principal, asignando espacio a los procesos. ○ Carga programas en memoria para su ejecución. ○ Libera memoria cuando ya no es necesaria. 3. Gestión de Redes: ○ Administra conexiones y comunicaciones en redes locales y globales. ○ Maneja protocolos de comunicación y recursos compartidos. 4. Almacenamiento Secundario: ○ Gestiona dispositivos como discos duros y unidades de estado sólido. ○ Organiza el almacenamiento a largo plazo de datos y programas. 5. Seguridad del Sistema: ○ Protege los datos y recursos del sistema contra accesos no autorizados. ○ Implementa mecanismos de autenticación y permisos. 6. Manejo de Procesos: ○ Coordina la creación, ejecución y terminación de procesos. ○ Gestiona la multitarea y la asignación de recursos a los procesos. Estructura de UNIX/Linux UNIX/Linux es conocido por su arquitectura en capas y modularidad. La estructura general incluye: Kernel (Núcleo) Definición: Es el corazón del sistema operativo, responsable de las funciones más básicas y críticas. Funciones: ○ Gestión de la Memoria: Controla la asignación y liberación de memoria. ○ Control de Procesos: Maneja la creación y planificación de procesos. ○ Gestión de Dispositivos: Interactúa con el hardware a través de drivers. ○ Manejo del Sistema de Archivos: Organiza cómo se almacenan y acceden los datos. ○ Seguridad y Protección: Implementa mecanismos para proteger los recursos. Shell Definición: Es la interfaz que permite al usuario interactuar con el sistema operativo. Funciones: ○ Interpretación de Comandos: Lee y ejecuta comandos ingresados por el usuario. ○ Scripting: Permite la ejecución de secuencias de comandos (scripts) para automatizar tareas. Tipos de Shells Comunes: ○ Bourne Shell (sh) ○ Bourne Again Shell (bash) ○ C Shell (csh) ○ Korn Shell (ksh) ○ Z Shell (zsh) Aplicaciones y Utilidades Definición: Programas y herramientas que permiten realizar tareas específicas. Ejemplos: ○ Editores de Texto: vi, nano, emacs. ○ Compiladores: gcc, g++. ○ Herramientas de Red: ssh, ftp, scp. Sistema de Archivos en UNIX/Linux El sistema de archivos en UNIX/Linux es jerárquico y se organiza en una estructura de árbol invertido. Todos los archivos y directorios parten del directorio raíz /. Directorios Estándar del Sistema /: Directorio raíz. /bin/: Contiene comandos binarios esenciales para los usuarios. Ejemplos: ls, cp, mv. /sbin/: Comandos binarios esenciales para el superusuario (root). /etc/: Archivos de configuración del sistema. /home/: Directorios personales de los usuarios. /lib/: Librerías esenciales compartidas por programas en /bin/ y /sbin/. /usr/: Aplicaciones y archivos de usuario. ○ /usr/bin/: Comandos adicionales para usuarios. ○ /usr/sbin/: Comandos adicionales para el superusuario. ○ /usr/lib/: Librerías para programas en /usr/bin/ y /usr/sbin/. /var/: Datos variables como logs, colas de impresión, correos. /tmp/: Archivos temporales creados por el sistema y usuarios. /dev/: Archivos de dispositivos. /proc/: Sistema de archivos virtual que contiene información sobre procesos y el kernel. /media/: Puntos de montaje para dispositivos de almacenamiento extraíbles (CD-ROM, USB). /mnt/: Punto de montaje temporal para sistemas de archivos. Directorio Home Definición: Es el directorio personal de cada usuario, donde se almacenan sus archivos y configuraciones. Ubicación: Generalmente en /home/usuario. Características: ○ Privacidad: Los archivos en el directorio home son privados por defecto. ○ Configuraciones Personales: Archivos ocultos (iniciados con.) contienen configuraciones de aplicaciones. Directorios Padre e Hijo Directorio Padre: Es el directorio que contiene a otros directorios o archivos. Directorio Hijo: Es un subdirectorio contenido dentro de otro directorio. Referencias Especiales: ○. (punto): Representa el directorio actual. ○.. (doble punto): Representa el directorio padre del actual. Rutas Absolutas y Relativas Ruta Absoluta: ○ Comienza desde el directorio raíz /. ○ Proporciona la ubicación exacta del archivo o directorio en el sistema. ○ Ejemplo: /home/usuario/documentos/archivo.txt Ruta Relativa: ○ Comienza desde el directorio actual. ○ Utiliza referencias como. y... ○ Ejemplo:../documentos/archivo.txt (Sube un nivel y entra en documentos) Comandos Básicos para el Manejo de Directorios pwd (Print Working Directory) Función: Muestra la ruta completa del directorio actual. Uso: ○ Escribe pwd y presiona Enter. Ejemplo: $ pwd /home/usuario cd (Change Directory) Función: Cambia el directorio actual a otro especificado. Uso: ○ cd nombre_del_directorio: Cambia al directorio especificado. ○ cd..: Sube al directorio padre. ○ cd: Sin argumentos, te lleva al directorio home. Ejemplo: $ cd documentos $ pwd /home/usuario/documentos ls (List) Función: Lista el contenido del directorio. Opciones Comunes: ○ ls: Lista en formato simple. ○ ls -l: Lista en formato largo con detalles (permisos, propietario, tamaño, fecha). ○ ls -a: Incluye archivos ocultos (comienzan con.). ○ ls -F: Añade un carácter al final de cada nombre para indicar el tipo de archivo (/ para directorios, * para ejecutables). ○ ls -R: Lista de forma recursiva el contenido de subdirectorios. Ejemplo: $ ls -la total 28 drwxr-xr-x 5 usuario grupo 4096 sep 10 12:00. drwxr-xr-x 3 usuario grupo 4096 sep 10 11:00.. -rw-r--r-- 1 usuario grupo 220 sep 10 11:01.bash_logout -rw-r--r-- 1 usuario grupo 3771 sep 10 11:01.bashrc drwx------ 2 usuario grupo 4096 sep 10 12:00.cache drwxr-xr-x 2 usuario grupo 4096 sep 10 12:00 documentos drwxr-xr-x 2 usuario grupo 4096 sep 10 12:00 escritorio mkdir (Make Directory) Función: Crea uno o varios directorios nuevos. Uso: ○ mkdir nombre_del_directorio Ejemplo: $ mkdir proyectos $ mkdir dir1 dir2 dir3 rmdir (Remove Directory) Función: Elimina directorios vacíos. Uso: ○ rmdir nombre_del_directorio Ejemplo: $ rmdir dir3 Tipos de Archivos y Permisos en UNIX/Linux Tipos de Archivos Archivo Regular (-): Contiene datos, texto o código ejecutable. Directorio (d): Contiene otros archivos y directorios. Enlace Simbólico (l): Apunta a otro archivo o directorio. Archivo de Dispositivo (c y b): Representa dispositivos de hardware. Archivo Especial (p, s): Usados para comunicación entre procesos (pipes y sockets). Permisos de Archivos y Directorios Los permisos definen qué acciones pueden realizar los usuarios sobre archivos y directorios. Estructura de Permisos Formato: -rwxrwxrwx Se divide en cuatro partes: 1. Tipo de Archivo: -: Archivo regular. d: Directorio. l: Enlace simbólico. 2. Permisos del Propietario (usuario): Primer grupo de tres caracteres. 3. Permisos del Grupo: Segundo grupo de tres caracteres. 4. Permisos de Otros Usuarios: Tercer grupo de tres caracteres. Significado de los Permisos Lectura (r): ○ Archivos: Permite leer el contenido. ○ Directorios: Permite listar el contenido. Escritura (w): ○ Archivos: Permite modificar el contenido. ○ Directorios: Permite crear o eliminar archivos dentro del directorio. Ejecución (x): ○ Archivos: Permite ejecutar el archivo como un programa. ○ Directorios: Permite acceder (entrar) al directorio. Ejemplo de Permisos drwxr-xr-- 2 usuario grupo 4096 sep 10 12:00 proyectos d: Es un directorio. Permisos del propietario (rwx): Lectura, escritura y ejecución. Permisos del grupo (r-x): Lectura y ejecución. Permisos de otros (r--): Solo lectura. Cambiar Permisos con chmod Sintaxis: chmod opciones archivo Método Simbólico Formato: [ugoa][+-=][rwx] Usuarios: ○ u: Propietario (usuario). ○ g: Grupo. ○ o: Otros. ○ a: Todos (usuario, grupo y otros). Operadores: ○ +: Añadir permiso. ○ -: Quitar permiso. ○ =: Asignar permiso específico. Ejemplos: ○ chmod u+x script.sh: Añade permiso de ejecución al propietario. ○ chmod go-rw archivo.txt: Quita permisos de lectura y escritura a grupo y otros. ○ chmod a=r archivo.txt: Asigna permiso de solo lectura para todos. Método Numérico (Absoluto) Valores de Permisos: ○ Lectura (r): 4 ○ Escritura (w): 2 ○ Ejecución (x): 1 Cálculo de Permisos: ○ Sumar los valores para cada categoría (usuario, grupo, otros). Ejemplo: ○ Permisos Deseados: Propietario: Lectura, escritura y ejecución (rwx): 4+2+1=7 Grupo: Lectura y ejecución (r-x): 4+0+1=5 Otros: Sin permisos (---): 0 ○ Comando: chmod 750 programa Comandos para el Manejo y Administración de Archivos Visualización de Archivos cat (Concatenate) Función: Muestra el contenido de uno o varios archivos. Uso: ○ cat archivo.txt: Muestra el contenido completo. ○ cat archivo1 archivo2: Muestra el contenido de ambos archivos consecutivamente. Opciones: ○ -n: Numera las líneas. Ejemplo: $ cat -n poema.txt 1 En un lugar de La Mancha, 2 de cuyo nombre no quiero acordarme... more y less Función: Permiten visualizar archivos largos de forma paginada. Uso: ○ more archivo.txt ○ less archivo.txt Controles: ○ Espacio: Avanza una página. ○ Enter: Avanza una línea. ○ q: Salir. head Función: Muestra las primeras líneas de un archivo. Uso: ○ head archivo.txt: Muestra las primeras 10 líneas. ○ head -n 5 archivo.txt: Muestra las primeras 5 líneas. tail Función: Muestra las últimas líneas de un archivo. Uso: ○ tail archivo.txt: Muestra las últimas 10 líneas. ○ tail -n 5 archivo.txt: Muestra las últimas 5 líneas. Creación y Modificación de Archivos touch Función: Crea archivos vacíos o actualiza la fecha de modificación de archivos existentes. Uso: ○ touch archivo.txt: Crea un archivo vacío si no existe. ○ touch -t MMDDhhmm archivo.txt: Cambia la fecha y hora del archivo. Ejemplo: $ touch -t 09101200 informe.doc Copiar, Mover y Renombrar Archivos cp (Copy) Función: Copia archivos y directorios. Uso: ○ cp archivo_origen archivo_destino ○ cp archivo1 archivo2 directorio_destino Opciones: ○ -i: Solicita confirmación antes de sobrescribir. ○ -r: Copia directorios de forma recursiva. Ejemplo: $ cp documento.txt copia_documento.txt $ cp -r carpeta1 /home/usuario/respaldo/ mv (Move) Función: Mueve o renombra archivos y directorios. Uso: ○ mv archivo_viejo archivo_nuevo: Renombra. ○ mv archivo directorio_destino: Mueve archivo. Opciones: ○ -i: Solicita confirmación antes de sobrescribir. Ejemplo: $ mv informe.txt informe_final.txt $ mv imagen.jpg /home/usuario/imagenes/ Eliminación de Archivos y Directorios rm (Remove) Función: Elimina archivos y directorios. Uso: ○ rm archivo.txt: Elimina archivo. ○ rm -r directorio: Elimina directorio y su contenido. Opciones: ○ -i: Solicita confirmación antes de eliminar. ○ -f: Fuerza la eliminación sin pedir confirmación. Precaución: El uso de rm es irreversible. Usar con cuidado. Ejemplo: $ rm viejo.txt $ rm -rf /home/usuario/descargas/temp/ Contar Palabras y Líneas wc (Word Count) Función: Cuenta líneas, palabras y bytes en archivos. Uso: ○ wc archivo.txt: Muestra líneas, palabras y bytes. ○ wc -l archivo.txt: Muestra solo líneas. ○ wc -w archivo.txt: Muestra solo palabras. ○ wc -c archivo.txt: Muestra solo bytes. Ejemplo: $ wc informe.txt 200 1500 7500 informe.txt Prácticas y Ejercicios Ejercicio 1: Navegación y Exploración de Directorios 1. Despliega el nombre del directorio de trabajo actual: ○ Comando: pwd ○ Resultado esperado: Muestra la ruta completa del directorio donde te encuentras. 2. Lista el contenido del directorio padre de tu directorio home: ○ Comando: ls../ ○ Explicación:.. representa el directorio padre. 3. Lista en orden alfabético inverso todos los archivos (incluyendo ocultos) de tu directorio home: ○ Comando: ls -laRr ~ ○ Opciones: -l: Lista detallada. -a: Incluye archivos ocultos. -R: Lista recursivamente. -r: Orden inverso. ~: Representa tu directorio home. 4. Interpreta la información detallada de ls -l: ○ Ejecuta: ls -l ○ Analiza las columnas: Permisos: Tipo y permisos del archivo. Enlaces: Número de enlaces duros. Propietario: Usuario dueño del archivo. Grupo: Grupo al que pertenece. Tamaño: En bytes. Fecha de Modificación: Última modificación. Nombre: Nombre del archivo o directorio. 5. Crea una estructura de directorios: ○ Objetivo: Crear los directorios proyecto, proyecto/src, proyecto/bin. Comandos: $ mkdir proyecto $ mkdir proyecto/src ○ $ mkdir proyecto/bin 6. Verifica la estructura creada: ○ Comando: ls -R proyecto ○ Debes ver los subdirectorios src y bin dentro de proyecto. 7. Borra el último nivel del árbol de directorios: ○ Objetivo: Eliminar proyecto/bin. ○ Comando: rmdir proyecto/bin 8. Lista el contenido del directorio mostrando el tipo de archivos: ○ Comando: ls -F proyecto ○ Interpretación: Los directorios aparecerán con / al final. Ejercicio 2: Gestión de Usuarios y Sistemas 9. ¿Para qué sirve el comando whoami? ○ Respuesta: Muestra el nombre del usuario actual. 10. ¿Qué información nos proporciona uname? ○ Respuesta: Muestra información sobre el sistema operativo. ○ Comando: uname -a para información detallada. 11. Crea directorios para cada usuario del sistema: ○ Objetivo: Dentro de un directorio llamado alumnos, crear un directorio para cada usuario. Comandos: $ mkdir alumnos $ cd alumnos ○ $ for user in $(who | awk '{print $1}'); do mkdir $user; done ○ Explicación: Utiliza el comando who para listar usuarios conectados y crea un directorio para cada uno. 12. Renombra los directorios con los nombres reales: ○ Objetivo: Renombrar los directorios con los nombres completos de los usuarios. ○ Comando: $ mv usuario1 Nombre_Completo1 13. Lista los directorios en forma alfabética: ○ Comando: ls -l | sort ○ Preguntas: ¿Quién es el dueño de los directorios creados? Respuesta: El usuario que los creó (tu usuario). ¿Cuál es la fecha de creación? Respuesta: Se muestra en la columna de fecha en ls -l. 14. Borra la estructura anterior en un solo paso: ○ Comando: rm -r alumnos ○ Nota: Asegúrate de que es correcto antes de ejecutarlo. Conclusiones El dominio de los comandos y conceptos básicos de UNIX/Linux es esencial para cualquier profesional en informática. Esta guía ha cubierto detalladamente los aspectos fundamentales del sistema operativo, desde la estructura de directorios hasta la gestión de archivos y permisos. La práctica constante y la exploración de nuevos comandos y opciones fortalecerán tus habilidades y te prepararán para enfrentar desafíos más avanzados en el entorno UNIX/Linux. Referencias Manual de Prácticas: Taller de Sistema Operativo UNIX. Universidad Autónoma de Baja California. Pérez Ornelas, F., & Palacios Guerrero, A. L.. Manual de prácticas: Taller de sistema operativo UNIX. Recuperado de Enlace al documento proporcionado por el docente. Documentación Oficial de GNU/Linux: https://www.kernel.org/doc/ Páginas de Manual (man pages): Utiliza el comando man seguido del nombre del comando para obtener información detallada. Ejemplo: man ls. Nota Importante: Siempre debes tener precaución al ejecutar comandos que puedan modificar o eliminar archivos y directorios. Especialmente comandos como rm -r y chmod pueden causar cambios significativos en el sistema. Asegúrate de comprender completamente el efecto de cada comando y, si es posible, practica en un entorno controlado o en máquinas virtuales.

Use Quizgecko on...
Browser
Browser