1 - Introducción a UNIX
Programación II
Ing. Diego J. Arcusin
[email protected] ¿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 Aplicaciones: Editores, Navegadores, ftp, telnet, compiladores
Usuario de
Aplicaciones Shell de UNIX
Interfaz del Bibliotecas de lenguajes: C, C++, Java, Fortran,etc.
Programador de
Aplicaciones Interfaz de llamadas al sistema
Sistema Núcleo (Kernel)
Operativo 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 carlos martin andrea
pendientes.txt fuente.c 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)