Title: Programaci
11 - Introducción a UNIX
Programación II
Ing. Diego J. Arcusin info_at_digikol.com.ar
2Qué 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,
3Caracterí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
4Historia del Unix
- Primera a Sexta Edición
- ATT System V -gt SCO Unix
- Berkley Software Distributions (BSD) -gt FreeBSD y
NetBSD - Linux
- Variantes del UNIX
5Arquitectura de Software de UNIX
Aplicaciones Editores, Navegadores, ftp, telnet,
compiladores
Interfaz del Usuario de Aplicaciones
Shell de UNIX
Bibliotecas de lenguajes C, C, Java,
Fortran,etc.
Interfaz del Programador de Aplicaciones
Interfaz de llamadas al sistema
Núcleo (Kernel)Administración de
Archivos,Administración del Almacenamiento, Admin
istración de Procesos, etc.
Sistema Operativo
Controladores (Drivers)
Hardware Cables, Transistores, CPU, Memoria,
Disco, etc.
6Inicio 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
7El Manual
- man nombre de comando
- Ejemplos
- man who
- man date
- Intente man man
8Algunos 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)
9Má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)
10El 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
11Directorios
- 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
12Directorios (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.
13Arbol de Directorios
- /
- bin dev etc usr tmp unix boot
- ls carlos martin andrea
- pendientes.txt fuente.c foto.jpg
pendientes.txt
14El 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.
15Procesos
- 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)
16El 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)
17Preguntas
18Ejercicios
- 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?
19Ejercicios (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.
20Ejercicios (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?
21Ejercicios 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.
22Ejercicios 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.