Sin título de diapositiva

Anuncio
Fundamentos de Linux y
Programación en Shell
Prof. Wílmer Pereira
USB --- UCAB
UNIX/LINUX
Prof. Wílmer Pereira
1
Definiciones Básicas
❚ Hardware son los componentes físicos del computador
❚ Software son los componentes programados
❚ Un Sistema de Operación es la entidad de software que
regula la operatividad del computador
Sistema
Bancario
Reservaciones
Aereas
Compiladores
UNIX/LINUX
Navegadores
Web
Interpretadores
Editores
de comandos
Sistema de Operación
Lenguaje de Máquina
Microprogramación
Dispositivos físicos
Prof. Wílmer Pereira
...
...
2
Sistema de Operación
❚
❚
❚
❚
❚
❚
Los sistemas de operación, generalmente no ambientes PC,
son:
Multiusuario
Multitarea
Multiconexiones
En particular, UNIX con los shell programables provee una
extraordinaria flexibilidad. Los más conocidos son:
C-Shell
Bourne Shell
Korn Shell
UNIX/LINUX
Prof. Wílmer Pereira
3
UNIX
❚ Creado a finales de los años 60 por Thompson y reescrito en
C junto con Ritchie en AT&T Bell.
❚ Es adoptado por las universidades y la de California
desarrolla la versión Berkeley (serie BSD)
❚ El sistema V desarrollado también por AT&T se fusiona con
la versión de SUN y se transforma en el standard.
❚ Aparece SVR4.2 producida por USL (Unix System
Laboratory que ahora pertenece a Novell)
UNIX/LINUX
Prof. Wílmer Pereira
4
Funcionalidades de UNIX
❚
❚
❚
❚
❚
❚
❚
❚
shell programables,
Independencia de sus dispositivos
Interoperabilidad
Creación, modificación y destrucción no sólo de
archivos sino también de programas y procesos,
Jerarquía de directorios,
Comunicación entre procesos (pipes y coprocesos),
Gran cantidad de utilities y rutinas de librerías.
Disponible en una amplia variedad de plataformas.
UNIX/LINUX
Prof. Wílmer Pereira
5
LINUX
❚ Desarrollado para ambientes PC a partir de MINIX
❚ Está disponible gratuitamente (de allí su popularidad) y se
nutre de las contribuciones de múltiples adeptos.
❚ Multiplicidad de versiones (Debian, Suse, Fedora, Mandrake,
Ubuntu …)
❚ Administración de LINUX es responsabilidad del usuario PC
❚ Instalación cada vez más sencilla (light CD, maquinas
virtuales, …)
❚ Diversidad de ambientes de ventanas (gnome, KDE, …)
❚ Versiones para cluster (beowolf …)
UNIX/LINUX
Prof. Wílmer Pereira
6
Primer Contacto ...
Inicialmente todo usuario de un Sistema de
Operación debe disponer de una cuenta.
❚ Nombre (login)
❚ Clave de acceso (password)
❚ Directorio Principal (home)
❚ El prompt del shell tiene por defecto el camino del
directorio home del usuario.
UNIX/LINUX
Prof. Wílmer Pereira
7
Sintaxis de Comandos
Un comando es cualquier directiva que el usuario desea
de UNIX o LINUX, el cual tiene opciones y parámetros.
$ comando [opciones [parámetros]] [parámetros]
Los corchetes indican que tanto las opciones con sus
parámetros como los parámetros del propio comando
pueden ser colocados o no (optativo al usuario).
Por ejemplo:
$ ls -l -s -F /dev
UNIX/LINUX
Prof. Wílmer Pereira
8
Comandos Básicos
date
who
clear
exit
Muestra la fecha y hora actual
Indica los usuarios conectados
Limpia la pantalla
Salida de la sesión de trabajo UNIX o LINUX
$ who
wpereira tty0
ycardina tty1
nathalie tty3
$
UNIX/LINUX
Feb
Feb
Feb
Prof. Wílmer Pereira
13
13
12
09:30
11:25
15:20
9
Manuales
Los manuales de referencia están en lenguaje técnico y describen
lo necesario para el programador, administrador o usuario
❚ Están divididos en nueve secciones por temas:
* Comandos generales
* Librerías
* Llamadas al sistema
* Comandos de administración, etc ...
❚ Su versión es línea es mediante el comando man.
$ man -k password
mkpasswd (1)
- generate new password
passmass (1)
- change password on
multiple machines
passwd (1)
- change password
conflict (8)
- search for alias/password conflicts
$
UNIX/LINUX
Prof. Wílmer Pereira
10
Manuales en línea
❚ La estructura de los manuales de comandos es la siguiente:
❙
❙
❙
❙
❙
❙
❙
❙
❙
❙
❙
Name (Breve reseña del comando)
Synopsis (Sintaxis del comando)
Description (Descripción detallada para su uso)
Options (Todas las opciones posibles)
Operands (Los parámetros necesarios o posibles)
Environment (Variables de ambiente que conciernen al comando)
Exit Status (Valores de retorno después de la ejecución del comando)
Files (Archivos involucrados en la ejecución del comando)
See also (Otros comandos que podrían ser de utilidad)
Notes (Condiciones especiales en el comportamiento del comando)
Bugs (Errores reportados y no corregidos)
UNIX/LINUX
Prof. Wílmer Pereira
11
Directorios y Archivos
❚ Un archivo es un nombre que referencia a un espacio en disco.
❚ Un directorio contiene archivos y/o otros directorios.
América
Sur
Venezuela
UNIX/LINUX
Centro
Colombia
Prof. Wílmer Pereira
Norte
USA
12
Camino de Acceso
Es el manera inequívoca de referenciar a un archivo
en función a su posición dentro de la jerarquía de directorios.
Camino Absoluto:
Absoluto es la posición del archivo /home/wpereira/prog.c
con respecto a la raíz de
la jerarquía (comienza con /)
Camino Relativo:
Relativo es la posición del archivo con
respecto al directorio actual
(nunca comienza con /)
UNIX/LINUX
Prof. Wílmer Pereira
html/index.html
13
Ejemplo de jerarquía
/
etc
passwd
index.html
inittab
home
shutdown
profile
html
agentes
imagenes
inv.html
wpereira
nathalie
ycardinal
pub
docencia
logica
quiz1.tex
Archivo
pub
redes
sop
pI.tex
scripts
logout.sh
Directorio Actual
examenes
bin
lib
src
logout.sh
test.sh
Camino Absoluto
Camino Relativo
/home/wpereira
/home/wpereira/pub/scripts/logout.sh
pub/scripts/logout.sh
profile
/usr/pub
/etc/profile
../../etc/profile
inittab
/
/etc/inittab
etc/inittab
/home/wpereira/html/index.html
index.html
pI.tex
tmp
scripts
logout.sh
index.html /home/wpereira/html
UNIX/LINUX
usr
/home/wpereira/docencia /home/wpereira/docencia/logica/pI.tex logica/pI.tex
Prof. Wílmer Pereira
14
Comandos en directorios
ls
pwd
cd
mkdir
rmdir
passwd
Muestra el contenido de un directorio
Devuelve el camino absoluto del directorio actual
Cambia el directorio actual
Crea un directorio
Borra un directorio (debe estar vacío)
Cambia la clave de acceso a la cuenta
Para verificar las opciones posibles y parámetros para cada uno de
estos comandos, utilice el manual en línea (man). Generalmente
los parámetros son nombres de archivos o directorios.
UNIX/LINUX
Prof. Wílmer Pereira
15
I-nodos y Discos
❚ Los discos son dispositivos que almacenan la información
contenida en los archivos.
❚ Cada disco tiene un espacio para:
❙ inicialización del sistema,
❙ el superbloque (información sobre el espacio libre y ocupado del disco)
❙ los i-nodos.
❚ Los i-nodos almacenan información administrativa de los
archivos. Entre ellas se encuentra:
* Dueño
* Tipo
* Tamaño
* Protecciones
* Fecha del último acceso
UNIX/LINUX
* Fecha de creación
* Número de nombres
* Fecha de la última modificación
Prof. Wílmer Pereira
16
Tipos de Archivos
El comando file permite determinar entre los siete tipos
posibles de archivos:
❚
❚
❚
❚
❚
❚
❚
Normal:
Normal
Directorio:
Directorio
Fifo:
Fifo
Bloque:
Bloque
Carácter:
Carácter
Link:
Link
Socket
UNIX/LINUX
Contiene datos o programas
Archivo con información del directorio
Designa un canal de comunicación entre procesos
Usado para transferir como buffer de I/O
Corresponde a dispositivos a caracteres.
Archivo que enlaza su contenido
Designa un canal de comunicación entre máquinas
Prof. Wílmer Pereira
17
Información de Archivos
$ ls -Fsl /
Una parte de la ejecución de este comando es:
8 drwxr-xr-x 30 root sys
2 -rwxr-xr-x 1 root other
2 lrwxrwxrwx 1 root root
3584 Aug 1 03:10 etc/
193 Nov 6 1998 init-ntp*
9 Dec 9 1997 lib -> ./usr/lib/
Espacio ocupado en bloques
Tipo de archivo
Protección
Número de enlaces
Propietario
Grupo
Fecha
UNIX/LINUX
Prof. Wílmer Pereira
Número de bytes
Nombre Archivo
18
Protección de Archivos
Todo archivo tiene un propietario, el cual a su vez,
pertenece a uno o varios grupos de trabajo
La protección de cada archivo se fija en función a tres entes
que pueden acceder a la información:
Propietario
UNIX/LINUX
Miembro
del grupo
Prof. Wílmer Pereira
Cualquier
usuario
19
Tipos de Protección
❚ Para cada archivo hay tres maneras de protegerlo:
❙ r (read) posibilidad de lectura
❙ w (write) posibilidad de escritura
❙ x (execute) posibilidad de ejecución
❚ En cada directorio las tres maneras de protegerlo son:
❙ r - - posibilidad de ver los archivos y directorios que lo componen
❙ w - - posibilidad de crear y borrar archivos o directorios
❙ x - - posibilidad de que se use en un camino de acceso (pathname)
La protección sólo puede ser cambiada por el
propietario o el administrador de UNIX o LINUX
(root)
UNIX/LINUX
Prof. Wílmer Pereira
20
Formato de Protección
La protección se fija para cada uno de los tres entes
según las tres maneras de protección.
Se escribe mediante una secuencia rwx.
2 -rwxrwxrwx 2 wpereira cs 512 Jun 1 1998 index.html
La primera secuencia de rwx indica los derechos que tiene
el propietario sobre el archivo. La segunda secuencia los
que tendría cualquier miembro del grupo cs. La última
los de cualquier otro usuario.
El archivo index.html está habilitado para lectura,
escritura y ejecución para cualquier ente
UNIX/LINUX
Prof. Wílmer Pereira
21
Cambio de Protección
chmod <protección> <archivos>
❚ La protección por cada ente se presenta en tres bits (rwx), es
decir, que se representa en binario y se modifica usando su
representación en octal.
Ejemplos:
Binario: 101 Octal: 5 Protección: r-x
Binario: 110 Octal: 6 Protección: rwAsí:
$ chmod 655 index.html
Impediría al propietario ejecutar el archivo index.html, y
permitiría a los demás leerlo y ejecutarlo.
UNIX/LINUX
Prof. Wílmer Pereira
22
Archivo de passwords
Originalmente existe un archivo que contenía
información del usuario y el password cifrado: passwd.
Sin embargo ahora el password cifrado está en shadow.
Ambos están en /etc
❚ Esta decisión se tomó porque el archivo passwd es de lectura para
cualquier usuario. En consecuencia se podían hacer ataques con
diccionario o de fuerza bruta.
❚ Ahora el archivo shadow, solo lo puede leer el superusuario,
contiene los passwords cifrados y passwd la información general
del usuario: cuota en bloques, camino del home, UID, GID, etc.
❚ También está el archivo de grupos en el directorio /etc
UNIX/LINUX
Prof. Wílmer Pereira
23
Comandos en archivos I
cp
rm
mv
cat
more, less
file
Copia archivos
Borra archivos
Mueve nombres de archivos
Concatena el contenido de uno o varios archivos
Permiten ver pausadamente archivos
Indica el tipo de un archivo
De nuevo debe verificar las múltiples opciones para cada uno de
estos comandos en el manual en línea (man).
UNIX/LINUX
Prof. Wílmer Pereira
24
Comandos en archivos II
tail
head
wc
pr
diff
Permite visualizar el final del archivo
Muestra el principio del archivo
Indica las líneas, palabras y caracteres del archivo
Formatea el contenido del archivo
Compara dos archivos por línea y da las diferencias
❚ Tanto en tail como en head, si no se indica explícitamente, se
imprimen 10 lineas del final o comienzo respectivamente.
❚ pr tiene opciones para arreglar un archivo de texto: divide en
páginas, ajusta ancho de página, permite multicolumnas, coloca doble
espaciado, define encabezado de página, etc.
UNIX/LINUX
Prof. Wílmer Pereira
25
Envío de Mensajes
❚ Existen varios comandos dependiendo de la modalidad de
comunicación que se desee:
❙ Comunicación unidireccional : write
❙ Comunicación bidirecional diferida: mail o elm
❙ Comunicación bidirecional a tiempo real: talk
$ write usuario [terminal]
• Es necesario especificar el terminal cuando el usuario está
conectado en varios terminales de la misma máquina.
• Si el receptor del mensaje desea responder debe, a su vez,
utilizar el comando write para enviar su respuesta.
UNIX/LINUX
Prof. Wílmer Pereira
26
Mensajes a Tiempo Real
$ talk dirección [terminal]
❚ El receptor verá el siguiente mensaje en su pantalla
Message from [email protected] at 20:15
talk: connection request by [email protected]
talk respond with: talk [email protected]
Una vez establecida la comunicación, ambos verán su
pantalla dividida en dos partes: una para escribir su
mensaje y otra para recibir información. Además
ambos pueden escribir simultáneamente sin perturbar el
mensaje del otro.
UNIX/LINUX
Prof. Wílmer Pereira
27
Correo Electrónico
❚ El correo electrónico o e-mail al igual que el correo
convencional es diferido, es decir, el receptor lee el mensaje
cuando lo estime conveniente.
❚ El e-mail, a diferencia del talk y el write, no produce
interrupción en el receptor.
Emisor envía mensaje:
$ mail [email protected]
? Dejamos que el mundo se acabe ?
^D
$
Receptor lee el mensaje
$ mail
From wpereira Thu Sep 09 09:09:99 Ext 1999
? Dejamos que el mundo se acabe ?
?
El receptor sólo lo leerá al momento que decida consultar su buzón
UNIX/LINUX
Prof. Wílmer Pereira
28
Comandos Remotos
UNIX Y LINUX incluyen comandos de interacción
con sistemas de operación análogos remotos
rlogin
rsh
rcp
rwho
Sesión de conexión a una máquina UNIX remota
Corre un comando en un UNIX remoto
Copia de archivos entre UNIX remotos
Usuarios de una máquina remota (últimos 5 min.)
Los archivos /etc/host.equiv y $HOME/.rhost, son
verificados a la ejecución de estos comandos. De estar el nombre
de la máquina en alguno de ellos no se requiere password.
UNIX/LINUX
Prof. Wílmer Pereira
29
Comandos INTERNET
telnet
ftp
archie
ping
Abre una conexión con un servicio remoto
Transfiere archivos desde y hacia máquinas remotas
Buscador de servidores ftp dado un texto.
Verifica si la máquina está activa y hay conexión.
❚ En estos comandos se debe conocer explícitamente el URL
de la máquina remota a conectarse.
❚ En ftp y telnet debe conocerse la clave de acceso a menos
que se permita conexión anónima. archie y ping no requieren
de ninguna clave de acceso.
UNIX/LINUX
Prof. Wílmer Pereira
30
Descargar