Download Presentación de PowerPoint
Document related concepts
Transcript
1 - Introducción a UNIX Programación II Ing. Diego J. Arcusin info@digikol.com.ar ¿Qué es Unix? En sentido estricto, es el núcleo (Kernel) de un sistema operativo. En un sentido amplio abarca también programas esenciales como compiladores, editores, shells, programas para administración de archivos, etc. En un sentido más amplio, puede incluir programas desarrollados por los propios usuarios, Características del Unix Sistema de Código Abierto Desarrollado en su mayor parte en un lenguaje de alto nivel (Lenguaje C) Sistema Operativo de Tiempo Compartido Historia del Unix Primera a Sexta Edición AT&T System V -> SCO Unix Berkley Software Distributions (BSD) -> FreeBSD y NetBSD Linux Variantes del UNIX Arquitectura de Software de UNIX Interfaz del Usuario de Aplicaciones Interfaz del Programador de Aplicaciones Sistema Operativo Aplicaciones: Editores, Navegadores, ftp, telnet, compiladores Shell de UNIX Bibliotecas de lenguajes: C, C++, Java, Fortran,etc. Interfaz de llamadas al sistema Núcleo (Kernel) Administración de Archivos, Administración del Almacenamiento, Administración de Procesos, etc. Controladores (Drivers) Hardware: Cables, Transistores, CPU, Memoria, Disco, etc. Inicio de Sesión Autenticación en UNIX Login Contraseña El Prompt (Símbolo de Espera) Por lo general un símbolo $ o % Tecleo de Comandos El Manual man [nombre de comando] Ejemplos: man who man date Intente: man man Algunos Comandos date (fecha y hora) who (Quién está logueado) who am i echo (Imprime en la terminal el argumento recibido) cat (muestra el contenido de un archivo) more (pagina el contenido de un archivo) Más Comandos ls (lista de nombres de archivo) mv (Movimiento y Renombre de archivos) cp (Copiado de Archivos) rm (eliminación de archivos) wc (Cuenta líneas, palabras y caracteres) grep (Búsqueda de textos dentro archivos) sort (Ordenamiento de archivos) tail (despliega las últimas 10 líneas de un archivo) El Editor Unix cuenta con varios editores. Entre ellos: ed Editor muy elemental. Utilizado en versiones anteriores. vi Potente editor de textos de una enorme flexibilidad. Otros editores: pico emacs Editores gráficos Directorios Directorios Home Directory Directorio Personal, de origen o de login Es el directorio al cuál se accede al iniciar la sesión Directorio de Trabajo Directorio actual Puede ser diferente al Home Directory Por defecto, los archivos se crean en el directorio de trabajo. Un directorio puede contener archivos u otro directorios A ésta organización se la denomina “Arbol de directorios” Directorios (cont) Es posible desplazarse a cualquier directorio del árbol de directorios. Comandos: pwd (Print Working Directory) – indica el directorio actual cd (Change Directory) – cambio de directorio mkdir (Make Directory) – Crear directorio rmdir (Remove Directory) – Eliminar directorio pathname (Trayectoria) de un archivo Representa el nombre completo de una ruta desde la raiz hasta un archivo, a través del árbol completo de directorios. Arbol de Directorios / bin dev etc usr tmp unix boot ls pendientes.txt carlos fuente.c martin andrea foto.jpg pendientes.txt El Shell Intérprete de comandos. Es el Intermediario entre el usuario y el Kernel. Es un programa como cualquier otro aunque con muchas funcionalidades. Las más importantes: Administra abreviaturas de nombres de archivos. Posibilita el redireccionamiento de la entrada-salida Permite la personalización del entorno Existen varios Shells disponibles: Sh, ksh, csh, rsh, etc. Procesos Identificador de proceso (Process ID) Estructura jerárquica de los procesos Parent Process ID (PPID) El símbolo & (Procesos en Foreground y Background) Comandos útiles ps (Listado de Procesos) wait (Espera la finalización del proceso para devolver el prompt) kill (Mata ,o envía señales, a un proceso) nohup (mantiene el proceso en ejecución al cerrar la sesión) nice (cambia la prioridad de los procesos) at (Programa comando para comenzar su ejecución a cierta hora) El Entorno El UNIX permite la personalización del Ambiente de Trabajo stty (Comando para la configuración de teclas especiales) El archivo .profile Archivo ejecutado por el shell al iniciar la sesión del usuario Util para configurar automáticamente el entorno al inicio de la sesión El .profile debe encontrarse en el Home Directory del usuario Permite la ejecución automática de cualquier comando Permite la configuración de variables del SHELL. Algunas de ellas: PS1 = (Cadena que muestra el intérprete de comandos) PATH (Directorio de búsqueda de comandos) TERM (Tipo de terminal utilizada) Variables personales (Por ejemplo: d=/directorio/horriblemente/largo) Preguntas Ejercicios 1. 1. ¿Cuáles son las diferencias entre los siguientes comandos? $ ls pendientes.txt $ echo pendientes.txt $ ls / $ echo / $ ls $ echo $ ls * $ echo * $ ls ‘*’ $ echo ‘*’ 1. 2. ¿Cuál era la rama académica de UNIX?¿Cuál la rama comercial? 1. 3.¿Qué es una llamada al sistema? 1. 4.¿Qué es el Kernel?¿Qué diferencia hay entre Kernel y Shell? 1. 5. ¿Qué datos son necesarios para iniciar una sesión? 1.6. ¿Qué comando utilizaría para listar los archivos de un directorio? Ejercicios (cont) 1.7. ¿Cómo averiguaría cuántos usuarios hay conectados en un momento dado en su sistema? 1.8. Cómo se cierra una sesión de Shell 1.9. Para que sirve la variable PATH. 1.10 ¿Para que sirve el .profile? ¿En que directorio debe encontrarse? 1.11 Escriba un comando para ver los archivos lab1, lab2, lab3 y lab4. ¿Podría escribir otros dos comandos que hagan lo mismo? 1.12 Escriba un comando que muestre los datos del mayor usuario (alfabéticamente hablando) que se encuentra logueado en este momento. Ejercicios (cont) 1.13. Utilice el comando ls para listar recursivamente todo los directorios y archivos debajo de /etc 1.14. Utilice el comando ls para listar los archivos invisibles en su Home Directory 1.15. Crear una archivo llamado himno1 con la primer línea del himno nacional, repetir para los archivos himno2 e himno3 Crear un único archivo llamado himno con las 3 líneas del himno Ordene las líneas alfabéticamente (Intente hacerlo sin utilizar el archivo himno) Indique cuántos caracteres tiene su versión del himno. 1.16. Investigue el comando touch ¿Para que sirve? 1.17. Investigue la opción –k del comando man ¿Podría ser de utilidad? Ejercicios Complementarios 1c.1. Ingrese con su Login y Passwd 1c.2. Liste el contenido de su HOME Directory 1c.3. Cree 3 directorios (Fuentes, Datos, Varios) 1c.4. Cree al menos 5 archivos en cada directorio. Utilice cat, cp, redireccionamientos de salida y el editor vi 1c.5. Cree en Datos un archivo con los usuarios logueados y la fecha del día 1c.6. Liste el contenido de los directorios. Utilice las opciones –a –l y –t) 1c.7. Elimine el directorio varios 1c.8. Cuente las palabras de todos los archivos de datos (Individualmente y el total general). 1c.9. Indique qué archivos dentro del directorio fuentes contienen la letra q 1c.10. Ordene el archivo /etc/passwd . Investigue las opciones –r –n –nr y –F del comando sort. Ejercicios Complementarios 1c.11. Cree en su directorio una copia del /etc/passwd, edítelo y modifique el contenido en dos líneas diferentes. Investigue los comandos cmp y diff para compararlos y analice las diferencias. 1c.12. Muestre la primer y última fila del /etc/passwd 1c.13. Cómo averiguaría qué usuarios usan los shells ksh o csh 1c.14. Liste el contenido del directorio /etc y /bin 1c.15. Investigue los comandos du y find 1c.16. Utilice el comando find para buscar todos los archivos del disco que contengan la cadena passwd . Lance el mismo comando en background 1c.17. Utilice ps . investigue las opciones –e y –f ¿Para qué sirven? 1c-18 Modifique su .profile para modificar su prompt principal y para incluir un saludo de bienvenida al iniciar la sesión.