22
Programación II Ing. Diego J. Arcusin [email protected] 1 - Introducción a UNIX

Programación II Ing. Diego J. Arcusin [email protected] 1 - Introducción a UNIX

Embed Size (px)

Citation preview

Page 1: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 - Introducción a UNIX

Programación II

Ing. Diego J. Arcusin [email protected]

1 - Introducción a UNIX

Page 2: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 - Introducción a UNIX

¿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,

Page 3: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 - Introducción a UNIX

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

Page 4: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 - Introducción a UNIX

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

Page 5: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 - Introducción a UNIX

Arquitectura de Software de UNIX

Controladores (Drivers)

Hardware: Cables, Transistores, CPU, Memoria, Disco, etc.

Aplicaciones: Editores, Navegadores, ftp, telnet, compiladores

Bibliotecas de lenguajes: C, C++, Java, Fortran,etc.

Interfaz de llamadas al sistema

Shell de UNIX

Interfaz delUsuario de

Aplicaciones

Interfaz delProgramador de

Aplicaciones

Sistema Operativo

Núcleo (Kernel)Administración de Archivos,

Administración del Almacenamiento,Administración de Procesos, etc.

Page 6: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 - Introducción a UNIX

Inicio de Sesión

Autenticación en UNIXLogin

Contraseña

El Prompt (Símbolo de Espera)Por lo general un símbolo $ o %

Tecleo de Comandos

Page 7: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 - Introducción a UNIX

El Manual

man [nombre de comando]

Ejemplos:man who

man date

Intente: man man

Page 8: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 - Introducción a UNIX

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)

Page 9: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 - Introducción a UNIX

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)

Page 10: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 - Introducción a UNIX

El Editor

Unix cuenta con varios editores. Entre ellos:ed

Editor muy elemental. Utilizado en versiones anteriores.

viPotente editor de textos de una enorme flexibilidad.

Otros editores:pico

emacs

Editores gráficos

Page 11: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 - Introducción a UNIX

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”

Page 12: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 - Introducción a UNIX

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.

Page 13: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 - Introducción a UNIX

Arbol de Directorios

/

bin dev etc usr tmp unix boot

ls carlos martin andrea

pendientes.txt fuente.c foto.jpg pendientes.txt

Page 14: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 - Introducción a UNIX

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.

Page 15: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 - Introducción a UNIX

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)

Page 16: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 - Introducción a UNIX

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)

Page 17: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 - Introducción a UNIX

Preguntas

?

Page 18: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 - Introducción a UNIX

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?

Page 19: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 - Introducción a UNIX

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.

Page 20: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 - Introducción a UNIX

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?

Page 21: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 - Introducción a UNIX

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.

Page 22: Programación II Ing. Diego J. Arcusin info@digikol.com.ar 1 - Introducción a UNIX

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.