Post on 26-Jul-2020
1
PRIMERA SESIÓN
Sofware Libre y GPL
Introducción a Unix y Linux
Comandos básicos del curso
2
VISIÓN + SOFTWARE LIBRE (I)
❖ Hay proyectos cercanos con software libre:
❖ Extremadura: Linex.
❖ Madrid: Max.
❖ Andalucía: GuadaLinex.
❖ Valencia: Lliurex.
❖ Universidad de Murcia: Softla y Caldum.
❖ Otros: http://www.libroblanco.com.
3
VISIÓN + SOFTWARE LIBRE (II)
❖ También otras Universidades están con el S.L. Por ejemplo la UPC distribuye entre los alumnos matriculados para el nuevo curso un CD-ROM Linux Live-CD con programas libres y gratuitos con los que podrán seguir todas las materias que se impartan en sus estudios.
❖ La UPC creará el próximo curso la Cátedra de Programación Libre.
CIBERP@IS 9 DE SEPTIEMBRE DE 2004
4
VISIÓN + SOFTWARE LIBRE (III)
❖ El software libre permite ahorrar dinero:
❖ Linex posibilitó un ahorro de 30 millones de euros.
❖ Según HispaLinux la Administraciones Pública Española podría ahorrarse 300 millones de euros.
5
VISIÓN + SOFTWARE LIBRE (IV)
❖ El modelo tradicional es: pago por licencias y servicios.
❖ En Brasil, de los 3000 millones de dólares anuales de la industria informática unos 1000 millones se pagan en concepto de licencias.
❖ Un nuevo modelo de negocio: con el software libre no se pagan licencias y el ahorro revierte en formación, servicios personalizados y consultoría de empresas locales.
6
VISIÓN + SOFTWARE LIBRE (V)
❖ Hay gestos de aproximación. Por ejemplo Microsoft dentro del proyecto Shared Source Initiative se suma al código abierto, dejando en sourceforge dos programas:
❖ Windows Template Library (WLT) para crear interfaces gráficas. Licencia CPL
❖ Windows Installer XML (WiX) para crear paquetes de instalación basados en XML.
❖ También se apuntan IBM, SUN, etc.
7
VISIÓN + SOFTWARE LIBRE (VI)
❖ Con el software libre no hay problemas con la piratería. Según la BSA durante 2003 el índice de piratería en España se mantiene entre los cuatro primeros de Europa con un 44%, con pérdidas que suponen 421 millones de euros. Casi uno de cada dos programas que se instalan en nuestro país es ilegal. La piratería conduce a una menor contribución del TI al PIB, menor inversión en I+D y pérdida de puestos de trabajo.
REVISTA PC WORLD SEPTIEMBRE 2004
8
VISIÓN SOFTWARE LIBRE
❖ No es fácil migrar aplicaciones en explotación.
❖ Reticencias de los usuarios.
❖ Interfaces poco amigables.
❖ Escasez drivers actualizados.
❖ Necesidad de formación.
❖ No hay soporte técnico.
❖ ¿Se os ocurren otras?
9
FILOSOFIA SOFTWARE LIBRE
❖ El software libre es una filosofía:
❖ Todos tenemos derecho a que el conocimiento sea libre y el software como idea, accesible a todos.
❖ Todos tenemos la libertad para estudiar y manipular el software.
❖ Se intenta aportar desinteresadamente software y documentación a la sociedad y establecer colaboraciones entre voluntarios (Internet es un ejemplo).
10
FILOSOFIA SOFTWARE LIBRE
❖ El software libre es la antítesis del software propietario.
❖ El software propietario fomenta:
✗ La depencia tecnológica.
✗ Ocultación de software y conocimiento.
✗ Las licencias.
✗ Las patentes y la propiedad intelectual/industrial.
BUENO, PERO TODO ESTO ES LEGAL
11
LEGAL NO ES IGUAL A JUSTO
Los calores del verano no sirvieron de excusa a 51 mujeres que corren el peligro de ser azotadas tras haber sido detenidas en Irán por “llevar el velo mal puesto”, algo considerado por el régimen islámico como “una inmoralidad pública”.
Las detenidas han sido remitidas a las autoridades judiciales de las localidades de Gilan y Rasht para que sean juzgadas por no llevar el velo islámico sobre la cabeza de forma adecuada, de acuerdo con la normativa establecida tras la Revolución Islámica de 1979, liderada por el fundador del régimen teocrático, el ayatolá Jomeini.
DIARIO LA VERDAD – 7 DE AGOSTO DE 2004
12
LAS COMISIONES BANCARIAS
Un estudio de la Asociación de Usuarios de Bancos, Cajas y Seguros (Adicae) afirma que los españoles pagan al año una media de 176€ en comisiones bancarias.
En el libro de tarifas de un banco se recogen todos los conceptos por los que un banco puede cobrarnos. El banco de España las recoge en http://www.bde.es/tipos/comisiones.htm.
Si se consulta el libro de tarifas se observan que los bancos tienen fijadas comisiones para todas las situaciones posibles. Por ahora la entidad no cobra algunos servicios, pero se reserva la posibilidad de hacerlo.
DIARIO LA VERDAD – 7 DE AGOSTO DE 2004
13
DEPENCIA TECNOLOGICA
❖ Con la dependencia tecnológica somos simples espectadores frente al cambio de estándares y tecnologías por empresas privadas.
❖ Desde Europa se fomenta la Sociedad de la Información para que las empresas no pierdan el tren tecnológico y los ciudadanos no sean “analfabetos tecnológicos”.
❖ Hoy en día nadie duda de la necesidad de inversión en I+D.
14
OCULTISMO
❖ Si tengo una idea buena otro la puede copiar, por tanto debo protegerla con una patente.
❖ Si hago una “killer application” debo ocultar los detalles para evitar competencia.
❖ Si alguien quiere conocimiento antes debe pagar, pues nada es gratis.
❖ Con esta actitud una empresa consigue una posición dominante en el mercado y aumenta la depencia tecnológica.
15
RIESGOS POR NO OCULTAR
❖ Según un estudio de la firma Gartner los dispositivos de bolsillo que usan USB y FireWire presentan riesgos para los negocios porque introducen virus o sirven para robar datos corporativos. Aconseja prohibir su uso a los empleados con acceso directo a las redes corporativas y para proteger la propiedad intelectual recomienda hacer uso de tecnología de gestión de derechos de la propiedad.
REVISTA PC WORLD SEPTIEMBRE 2004
16
LICENCIAS
❖ Basta leer el fichero Eula.txt de MS Windows©:
✗ Licencia para un único dispositivo.
✗ No puedo venderlo a un amiguete.
✗ No hay garantías.
✗ No hay responsabilidad por daños emergentes.
✗ No permite modificarlo a mis necesidades.
✗ No permite arreglar fallos => debemos esperar la modificación por el propietario.
17
EL GRAN HERMANO
18
PATENTES
❖ El dinero va a la casa matriz. Samsung Barcelona: el pago de royalties a Corea ha supuesto el doble de los costes salariales y hasta veinte veces los beneficios (El País 12-2-2004).
❖ Controversia con las patentes de software en la Comisión Europea.
❖ Una patente es legal pero en ciertos casos es inmoral. Como ejemplo están los medicamentos contra la pandemia del SIDA y las luchas de estados como Sudáfrica y Brasil.
19
CUATRO LIBERTADES DEL SOFTWARE LIBRE
❖ Richard Stallman define cuatro libertades:
❖ Libertad para ejecutar el programa en cualquier sitio, con cualquier finalidad y para siempre.
❖ Libertad para estudiarlo y adaptarlo a nuestras necesidades => acceso al código fuente.
❖ Libertad de redistribución y colaboración.
❖ Libertad para mejorar el programa manteniendo accesible el código fuente.
20
GNU, GPL y FSF
❖ En 1984 Richard Stallman abandona el MIT y comienza el proyecto GNU (GNU's Not Unix).
❖ GNU desea proporcionar un conjunto de software de propósito general totalmente libre.
❖ Stallman creó la licencia GPL para velar por las cuatro libertades anteriores.
❖ Stallman fundó la Free Software Foundation (FSF) para conseguir fondos para el desarrollo y protección del software libre.
21
GNU General Public License (GPL)
❖ Permite la redistribución de fuentes y binarios.
❖ Permite realizar cualquier modificación.
❖ Sólo se puede integrar código GPL o similar.
❖ Si en el código se incluyen elementos con patente (por ej. algoritmo patentado) no puede ser GPL.
❖ Un código GPL nunca puede ser propietario.
❖ Pretende dar la propiedad del software a quien lo tiene y no al autor.
❖ No hay garantía (como licencia MS Windows©).
22
PROTECCION DE LA GPL
❖ Si un software libre se deja a la comunidad algún espabilado puede convertirlo en software privativo.
❖ Con el “copyleft” (antítesis del “copyright”) se protege el software GNU cuando se pone en el dominio público.
❖ Copyleft garantiza que cualquier distribuidor, con o sin cambios, debe dar la libertad de copiar y modificar el software.
23
Software con licencia GPL
❖ Compilador GCC y shell BASH.
❖ Editor de imágenes Gimp.
❖ Lector de correo evolution.
❖ Acceso a recursos SMB con Samba.
❖ Kernel de Linux.
❖ Utlidades de Gnome y KDE.
❖ Programas en el CD automatrícula 2004.
24
Un mundo de licencias (I)
❖ Desde el punto de vista del software libre hay dos tipos de licencias: las compatibles con la GPL y las incompatibles con la GPL.
❖ Licencias compatibles con la GPL:
❖ Con una licencia de dominio público el autor renuncia a todos sus derechos.
❖ La GNU Lesser General Public License (LGPL)permite el uso de software libre con software propietario.
25
Un mundo de licencias (II)
❖ Ejemplos de licencias LGPL son las librerías de Gnome y KDE.
❖ OpenOffice con licencia LGPL y SISSL (SUN).
❖ Un programa freeware se puede puede utilizar y redistribuir gratuitamente, pero el autor no facilita el código fuente.
❖ Una licencia de código abierto hace énfasis en la disponibilidad de código fuente.
❖ La licencia BSD es incompatible con la GPL.
26
Un mundo de licencias (III)
❖ La licencia Berkeley Software Distribution (BSD)
✗ Obliga a citar los autores.
✗ Permite (sin obligar) la distribución binaria y de código fuente.
✗ Permite realizar modificaciones e integraciones casi sin restricciones.
✗ Por contra, una modificación (versión) puede convertirse en propietaria.
✔ Ejemplos: openssh, openssl, tcl, bind, pam
27
Un mundo de licencias (IV)
❖ Licencias parecidas a BSD:
❖ Familia *BSD (por ejemplo FreeBSD).
❖ MacOS X.
❖ Apache Software License para el servidor web apache.
❖ XFree86 License para el gestor gráfico X Window.
❖ Desde la versión 4.4. XFree86 4.4 no es GPL. Se ha creado XORG.
28
Un mundo de licencias (V)
❖ La IBM Public License (IPL) es compatible con la licencia GPL porque establece unos requisitos no presentes en la la GPL, como por ejemplo que se den ciertas licencias sobre patentes.
❖ La Common Public License (CPL) es una extensión de la IPL.
❖ El software de código abierto Windows Template Library (WLT) para crear interfaces gráficas tiene licencia CPL.
29
PARA PROFUNDIZAR
❖ Filosofía del Proyecto GNU.
www.gnu.org/philosophy/philosophy.es.html
❖ Introducción al software libre.
www.uoc.edu/masters/softwarelibre/esp/materials/libre.pdf
❖ Software libre en el sector público.
www.uoc.edu/dt/20327/20237.pdf
30
¿HACEMOS UN DESCANSO?
5 minutos
31
HISTORIA DE UNIX
❖ Nace en 1972 en los Bell Labs de AT&T. Sus padres son Ken Thompson y Dennis Ritchie.
❖ Las universidades tenían acceso al código fuente.
❖ La Universidad de Berkeley añade nuevas funcionalidades (como TCP/IP) => Unix BSD.
❖ AT&T cambia su actitud por ocultismo y licencias. Aparecen Unix comerciales.
❖ Dos ramas: BSD (SunOS) y System V (Solaris).
32
CARACTERISTICAS DE UNIX (I)
❖ Portable.
❖ Conjunto de programas sencillos que hacen bien su cometido.
❖ No hacer un programa grande. Mejor combinar varios programas para conseguir el resultado. Ej:
cat /etc/termcap | pr | lpr❖ Multiusuario y multitarea.
❖ Es necesaria una cuenta para acceder al sistema.
33
CARACTERISTICAS DE UNIX (II)
❖ Distinción entre mayúsculas y minúsculas.
❖ Sistema de ficheros jerárquico (se empieza desde la raíz /).
❖ Los sistemas de ficheros (por ejemplo un CD) se montan en directorios. No hay A:, C:, D:
❖ Hay permisos de acceso a los ficheros.
❖ Permite automatizar tareas con scripts y cron.
❖ Eficiente, robusto y seguro.
34
HISTORIA DE LINUX
❖ Andrew Tanenbaum crea MINIX para que sus alumnos tengan acceso al código fuente.
❖ En 1991 Linus Torvalds crea el kernel 0.0.1 de Linux y adapta bash y gcc (ambos con licencia GPL) ofreciéndolos en comp.os.minix.
❖ Linux es la combinación del kernel y software GPL por ello se denomina GNU/Linux.
❖ Miles de voluntarios contribuyen al desarrollo de Linux apareciendo diferentes distribuciones.
35
DISTRIBUCIONES LINUX
❖ Todas las distribuciones tienen en común el kernel. La última versión está disponible en:
http://www.kernel.org❖ Numeración del kernel xx.yy.zz. xx es la versión
principal. yy par (producción), yy impar (desarrollo). zz versión dentro de la serie.
❖ Cada distribución acompaña al kernel con unas utilidades dotando a la distribución de un estilo.
36
DEBIAN GNU/LINUX (I)
❖ En 1993 Ian Murdock comienza Debian.
❖ Debian es desarrollado por voluntarios.
❖ Distribución cercana a las tesis de Stallman.
❖ Existen categorías de software según la licencia y requisitos:
main: cumplen Debian Free Software Guidelines.
contrib: paquetes libres dependentes de otros no libres.
non-free: paquetes no libres.
37
DEBIAN GNU/LINUX (II)
non-US/main non-US/non-free: no pueden ser exportados fuera de EEUU por cuestiones de patentes o seguridad criptográfica.
Las categorias se indican en /etc/apt/sources.list:
deb http://ftp.debian.org/debian/ woody main non-free contrib
❖ Hay tres tipos: estable (woody), inestable (sid) y en pruebas (sarge). Woody tiene 4 sabores: vanilla, compact, idepci, bf24 (kernel 2.4).
❖ Formato de paquetes propio (.deb).
38
RED HAT LINUX
❖ Red Hat Software Inc. fué creada en 1994.
❖ Ha creado el estándar RPM Package Manager (RPM) de gestión de paquetes.
❖ En 1999 Red Hat sale a bolsa.
❖ Tras la versión 9 Red Hat ha orientado su estrategia a las empresas potenciando su Red Hat Enterprise Linux (RHEL no es gratuito).
❖ No hay soporte desde 30-4-2004 a R. H. 9.
❖ Proyecto Fedora.
39
ELEGIR UNA DISTRIBUCION
❖ Además tenemos Suse (de Novell), SUN Java Desktop System 2003, Mandrake, etc.
❖ Las aplicaciones condicionan la elección de una distribución. Por ejemplo, Oracle 10g y 9i está certificado para RHEL y Suse.
❖ Si disponemos de dinero podemos decantarnos por distribuciones de pago (RHEL, Suse, Mandrake, etc.)
❖ Debian no tiene coste y es muy estable.
40
CARACTERISTICAS DE LINUX
❖ Compatible POSIX.
❖ Kernel monolítico con módulos cargables dinámicamente.
❖ Multiplataforma y multiprocesador (SMP). Soporta arquitecturas de 64 bits.
❖ Dispone de miles de aplicaciones para convertir un equipo en una estación de trabajo personal, o de un grupo de trabajo o un servidor corporativo.
❖ Apoyo de IBM, Novell, SUN, etc.
41
WEBS DE INTERES
❖ http://www.google.es/linux
❖ http://www.linuxhq.com
❖ http://es.tldp.org
❖ http://linux.tucows.com
❖ http://www.yolinux.com
❖ http://libertonia.escomposlinux.org
❖ http://barrapunto.com
❖ http://sourceforge.net
42
DISPOSITIVOS
❖ /dev/hdx para discos IDE y /dev/sdx para SCSI.
❖ /dev/hda maestro en el primer canal IDE.
❖ /dev/hdb esclavo en el primer canal IDE.
❖ /dev/hdc maestro en el segundo canal IDE.
❖ /dev/hdd esclavo en el segundo canal IDE.
❖ /dev/sda primer disco de la controladora SCSI.
❖ /dev/sdb primer disco de la controladora SCSI.
43
SISTEMAS DE FICHEROS
❖ ext2: antiguo sistema de ficheros.
❖ ext3: sistema de ficheros desde versión 2.4.
❖ swap: espacio de intercambio. JFS (IBM)
❖ iso9660: para CDs. XFS (Silicon Graphics)
❖ nfs: sistema de ficheros en red.
❖ smbfs: sistema de ficheros de red de Windows.
❖ dos, vfat: para MS-DOS y Windows 9x.
❖ ntfs: de NT, Windows 2000, XP.
44
PARTICIONES
❖ Al instalar Linux se crean varias particiones.
❖ Podemos ver las particiones con fdisk
/sbin/fdisk -l /dev/hdaDispositivo Inicio Principio Fin Bloques Id Sistema
/dev/hda1 * 1 1282 10273567+ 7 HPFS/NTFS
/dev/hda2 1283 1315 265072+ 82 Linux swap
/dev/hda3 1316 2432 8972302+ 83 Linux
❖ Había una partición (/dev/hda1) y se crearon otras dos para Linux.
45
MONTAJE DE SISTEMAS DE FICHEROS
❖ /etc/fstab contiene los sistemas de ficheros:
#Dispositivo Directorio Tipo Opciones dump fsck
LABEL=/ / ext3 defaults 1 1
/dev/hda3 swap swap defaults 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,user,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner 0 0
/dev/sda1 /mnt/pendrive auto noauto,owner,user 0 0
❖ Podemos montar el cd tecleando
mount /mnt/cdrom /cdrom en Debian
46
MODOS DE ACCESO
❖ Cuando se termina se desmonta:
umount /mnt/cdrom❖ Para utilizar la disquetera empleamos mtools.
❖ Desde Gnome pinchamos botón derecho, seleccionamos Discos y podemos montar
Disquetera
Pendrive
CDROM
47
EJEMPLOS DE MONTAJE
❖ Montamos partición NTFS
mount -t ntfs /dev/hda1 /mnt❖ Montamos la disquetera
mount -t vfat /dev/fd0 /mnt❖ Montamos el CD-ROM
mount -t iso9660 -o ro /dev/hdb /mnt❖ Montamos el pendrive
mount -t vfat /dev/sda1 /mnt
48
SISTEMAS DE FICHEROS SOPORTADOS POR EL KERNEL
❖ Para conocer los sistemas de ficheros que es capaz de montar nuestra distribución vemos el fichero /etc/filesystems.
cat /etc/filesystems
ext2, ext3, nodev proc nodev devpts, iso9660, vfat, hfs
❖ Como no incluye soporte ntfs debemos compilar el núcleo dando soporte a este sistema de ficheros.
49
/proc
❖ El sistema de ficheros /proc lo gestiona el kernel.
❖ Podemos cambiar ciertos parámetros del kernel modificando el contenido de algunos ficheros o bien empleando /sbin/sysctl.
❖ Podemos ver los parámetros susceptibles de cambio tecleando
/sbin/sysctl -a❖ /sbin/sysctl utiliza el fichero /etc/sysctl.conf.
50
DIRECTORIOS BASICOS EN LINUX
❖ /home : directorios de las cuentas
❖ /bin y /usr/bin : comandos básicos de usuario
❖ /sbin y /usr/sbin : comandos para el root
❖ /etc : configuración del sistema
❖ /tmp : ficheros temporales
❖ /var : spool, logs, DNS, etc.
❖ /usr/local : aplicaciones nuevas
❖ /dev : dispositivos
51
SECCIONES DEL MANUAL (I)
❖ Para conocer las opciones de un comando podemos recurrir al manual. Ejemplo:
man passwd (otra posibilidad es comando --help)
❖ Las páginas del manual están ordenadas en secciones:
1 comandos de usuario 5 formatos de ficheros
2 llamadas al sistema 6 juegos
3 llamadas libc 7 convenciones, macros
4 dispositivos 8 adm. del sistema
52
SECCIONES DEL MANUAL (II)
❖ Ejemplo:
man 1 passwd
man 5 passwd❖ Linux establece un orden de búsqueda en las
páginas del manual.
/etc/manpath.config Debian
/etc/man.config Red Hat
❖ Comandos de interés: apropos, whatis.
53
COMANDOS DE SESION
❖ ^d abandona la sesión.
❖ exit, logout abandona la sesión (IGNOREEOF=1)
❖ who muestra los usuarios activos.
❖ su [-] cambia a otra cuenta.
❖ tty informa del terminal en uso.
❖ last muestra los últimos accesos al sistema.
❖ uname da información del sistema Linux.
❖ id muestra id y gid.
variables de entorno en mayúsculas
54
CAMBIANDO DE USUARIO
❖ Si no se realizan tareas de administración no es adecuado acceder siempre como root. Se aconseja accder como un usuario sin privilegios y hacer
su --
para convertirnos en root. Tras la tarea se termina con
exit❖ Se puede ejecutar un comando como root
temporalmente
su root -c “/sbin/fdisk -l /dev/hda”
55
COMANDOS EN MODO GRAFICO
❖ Gnome y KDE incluyen herramientas gráficas para la mayoría de comandos. Por ejemplo guname.
56
FICHEROS Y DIRECTORIOS (I)
❖ Es aconsejable conocer algunos comandos relacionados con ficheros y directorios:
cp, mv, rm, ln, touch, mkdir, cd, pwd, rmdir
❖ Si trabajamos en entornos gráficos, con Nautilus y Konqueror podemos manipular fácilmente con el ratón ficheros y directorios.
❖ cp permite copiar ficheros. Ejemplos:
cp /etc/hosts /tmp/hosts
cp -pr /etc .
57
FICHEROS Y DIRECTORIOS (II)
❖ mkdir crea directorios. Ejemplos:
mkdir prueba
mkdir -p /tmp/a/b/c /tmp/aa/bb/cc
❖ mv renombra ficheros o cambia un fichero o directorio de lugar. Ejemplos:
mv /tmp/a/b/c /tmp/a/b/cc
mv /tmp/a/b/cc /tmp/aa
58
FICHEROS Y DIRECTORIOS (III)
❖ Para actualizar la fecha de modificación de un fichero se utiliza touch. Ejemplo:
mkdir /tmp/1 ls -lt /tmp
sleep 1m touch /tmp/1
mkdir /tmp/2 ls -lt /tmp❖ Si no existe el fichero touch lo crea con tamaño
cero. Si un programa falla porque necesita un fichero podemos crearlo con touch.
59
FICHEROS Y DIRECTORIOS (IV)
❖ Para compilar se utiliza la utilidad make. Esta orden es muy sensible a las fechas de los ficheros.
#include <stdio.h> CC=gcc
CFLAGS=-O2
int main() TARGETS=hola
{ all: hola
printf("Hola mundo"); hola: hola.o
exit(0); ${CC} -o $@ ${CFLAGS} $@.o
} clean:
hola.c -rm -rf *.o ${TARGETS}
Makefile
60
FICHEROS Y DIRECTORIOS (V)
makegcc -O2 -c -o hola.o hola.c
gcc -o hola -O2 hola.o
makemake: no se hace nada para `all'.
touch hola.cmake
61
FICHEROS Y DIRECTORIOS (VI)
❖ Para borrar un fichero o directorio se usa rm:
touch /tmp/nada
rm -f /tmp/nada
rm -rf /tmp/aa (rm -r equivale a rmdir -p)
❖ Los enlaces asocian un fichero o directorio a otro.
ls -l /usr
lrwxrwxrwx 7 root root ... tmp -> ../var/tmp
62
FICHEROS Y DIRECTORIOS (VII)
❖ Si nuestro disco duro se llena podemos poner un segundo disco (por ejemplo /dev/hdc), pasar un directorio (por ejemplo /usr/local) y crear un enlace:
ln -s /disco2/usr/local /usr/local❖ Lo anterior presupone que en /etc/fstab tenemos
#Dispositivo Directorio Tipo Opciones dump fsck
/dev/hdc1 /disco2 ext3 defaults 1 1
63
FICHEROS Y DIRECTORIOS (VIII)
❖ Tras desplazarnos unos instantes por la estructura de directorios quizá nos interese saber donde estamos. Para ello se utiliza la orden pwd.
❖ Para volver a nuestro directorio de trabajo basta teclear la orden cd (sin opciones).
❖ Pese a trabajar en entornos gráficos muchas veces se abre un terminal donde se ejecutan órdenes. Por consiguiente, debemos conocer el shell.
64
¿HACEMOS OTRO DESCANSO?
5 minutos
65
SHELL BASH
❖ Los directorios /usr y /usr/bin están en el PATH
echo $PATH
(por eso no añadimos la ruta con ciertas órdenes)❖ Hay otras variables de entorno, para verlas:
env❖ Las variables se especifican:
para cada usuario: ~/,bashrc y ~/.bash_profile
para todos los usuarios: /etc/bashrc y /etc/profile
alias y funcionesvariables de entorno
66
ESTABLECIENDO VARIABLES (I)
❖ Poner una variable al estilo Bourne shell
TMOUT=10
export TMOUT❖ Cambiamos el prompt en una sola línea
export PS1="[\d \w]\\$ "
unset PS1
export PS1="[\u@\h \W]\\$ "
67
ESTABLECIENDO VARIABLES (II)
❖ Si salimos de la sesión se pierden las variables.
❖ Para tenerlas de forma permanente se deben incluir en el fichero ~/.bash_profile, por ejemplo
export JAVA_HOME=/usr/java/j2sdk1.4.2_04
❖ Si estamos editando el fichero ~/.bash_profile no es necesario salir y volver a entrar en la sesión. Para este cometido se utiliza el comando .
. ~/.bash_profile
68
VENTANAS REMOTAS
❖ La variable de entorno DISPLAY sirve para trabajar de forma remota con aplicaciones gráficas X-Window.
[mipc]$ xhost +servidor.um.es
[mipc]$ ssh -l alumno servidor.um.es
[servidor]$ export DISPLAY=mipc.um.es:0
[servidor]$ xterm &
❖ Otra posibilidad:
X -query servidor :1 (CTRL+ALT+F8)
69
VARIABLES ESPECIALES
❖ $0 argumento 0 (orden) se
❖ $1 primer argumento utilizan
❖ $* todos los argumentos en
❖ $# número de argumentos scripts
❖ $$ número de proceso actual
echo $$❖ $? resultado de la ejecución de un comando
mkdir -p /a/b/c ; echo $?
70
ALIAS Y FUNCIONES
❖ Los alias permiten crear un comando a la carta o dar unas opciones por defecto
alias
alias 'dir=ls' ~/.bashrc
alias 'cp=cp -i'❖ Las funciones son pequeños programas
tarc () { tar cvzf $1.tgz $1; }
tarx () { tar xvzf $1; }
71
REPETICION DE ORDENES
❖ Las órdenes tecleadas están en ~/.bash_history. Con y repetimos los comandos previos.
❖ Para ver las órdenes se usa history
10 ls /etc/passwd
11 ls /etc/shadow
12 cat /etc/passwd
❖ !número o !cadena para repetir una orden
!12
!ls (repite la orden 11)
72
OTRAS POSIBILIDADES
❖ Pulsando el tabulador se completa la orden o el nombre del fichero o directorio.
❖ CTRL+L borra la pantalla.
❖ SHIFT+REPAG muestra pantalla anterior.
❖ SHIFT+AVPAG muestra pantalla inferior.
❖ CTRL+U borra todos los caracteres anteriores al cursor.
❖ CTRL+W elimina la última palabra
73
MODOS DE EJECUCION
❖ El shell permite ejecutar comandos.
❖ Modos de ejecución:
cat /etc/termcap | less (tubería)
cd /etc ; ls -l rc.d ; cd /tmp (secuencial)
cd /etc ; (ls -l rc.d ; cd /tmp) (subshell)
ls -ltR / & (background)
ls -l /dev/sda1 && ls -l /dev/sda2 (and)
ls -l /dev/sda100 || ls -l /dev/sda2 (or)
74
EJEMPLOS DE TUBERIAS
❖ Comando sort permite ordenar la salida
ls -s /dev | sort -n | less❖ ¿Cuantos dispositivos tienen tamaño cero?
utilizamos los filtros grep y wc
ls -s /dev | sort -n | grep “0 “ | wc -l❖ Lenguaje awk es muy útil
ls -s /dev | awk '$1==0 {cero++} END {print cero}'
❖ PERL es aconsejable para administradores.
Ayuda comando:comando --helpman comando
75
MAS EJEMPLOS
❖ Comando find permite buscar ficheros
date +%r ; find / -name find -print ; date +%r❖ Si no deseamos esperar se ejecuta en background
find / -name find -print &
find permite hacer más cosas
(cd /etc ; find . -name hosts -exec cat {} \;) ; pwd❖ Comando test chequea ficheros y compara valores
test -d /etc && cd /etc ; pwd
76
METACARACTERES
❖ El shell permite metacaracteres:
* cualquier cadena
find / -name “*gnome*” -print
? cualquier carácter
ls /usr/bin/??
[rango] un carácter del rango
cd /usr/bin ; ls -1 | grep “ps[f-u]*”
cd /usr/bin ; ls -1 | grep “̂ [aeiou]”
77
REDIRECCION
❖ Cuando ejecutamos el comando find nos aparecen mensajes de error (por falta de permisos). Para evitarlo se redirecciona la entrada y salida
cat < /etc/host* (entrada)
ls -laR > listado (salida)
ls /root 2>/dev/null (salida de error)
find / -name “pdf*” -print 2>/dev/null
awk -F: '$3>500 {print $1}' /etc/passwd > users
echo “En total `wc -l users`” >> users
78
LENGUAJE SHELL
❖ El shell dispone de un lenguaje de programación con estructuras if, case, for, while. Ejemplo:
STRING=$"Checking root filesystem" ; echo $STRING
initlog -c "fsck -T -a $fsckoptions /" man initlog
rc=$? variable $? guarda resultado ejecución comando
if [ $rc -gt 1 ]; then [ ] es equivalente a test
echo “File system error"
fi
79
EJEMPLO FOR
cat <<fin >ejemplo_for Editores:
#!/bin/sh vi, mcedit,
for i in 1 3 5 7 9 joe, emacs,
do etc.
mkdir /tmp/$idonefin chmod +x ejemplo_for
sh ./ejemplo_for ./ejemplo_for
80
EJEMPLO WHILE
#!/bin/shVALOR=$1FIN=$2while [ $VALOR -lt $FIN ]do echo $VALOR VALOR=`expr $VALOR + 1`done sh ./ejemplo_while 1 5
81
¿PARA QUE SIRVE LO ANTERIOR?
❖ Para saber como arranca Linux:
1 Al prender el PC se carga el sector arranque y el gestor (LILO o GRUB) nos dice los S.O. disponibles.
2 Escogido Linux se carga el kernel, se monta / y se ejecuta /sbin/init (PID=1).
3 Red Hat: init ejecuta /etc/rc.d/rc.sysinit, monta /proc, se configuran los parámetros del kernel, se montan los sistemas de ficheros, se inicializan los dispositivos, etc.
82
NIVEL DE ARRANQUE
3 Debian: init ejecuta /etc/init.d/rcS y este ejecuta los scripts de /etc/rcS.d/S* y /etc/rc.boot/*.
4 init lee /etc/inittab para saber nivel arranque.
0 parada del sistema 4 no usado
1 monousuario 5 modo gráfico
2 multiusuario, sin NFS 6 reboot
3 multiusuario
id:5:initdefault:
1:2345:respawn:/sbin/mingetty tty1
83
FINALIZANDO EL ARRANQUE
5 Se configura el nivel: se paran los servicios que empiezan por K y lanza servicios que comienzan por S (daemons). Todos son enlaces a /etc/init.d.
6 Se ejecutan los programas especificados en el fichero /etc/inittab (por ejemplo las consolas virtuales).
7 Red Hat: se ejecuta /etc/rc.d/rc.local.
Debian: poner script en /etc/rc.boot o /etc/rcS.d (poniendo los enlaces con update-rc.d).
84
PARAMETROS SCRIPTS
❖ Los ficheros en /etc/init.d admiten parámetros en la invocación. Por ejemplo:
❖ /etc/init.d/sshd start (lanza servicio SSH)
❖ /etc/init.d/sshd stop (para servicio SSH)
❖ /etc/init.d/sshd restart (para y lanza SSH)
❖ /etc/init.d/sshd reload (lee ficheros configuración)
❖ /etc/init.d/sshd status (muestra estado)
85
VEAMOS UN SCRIPT
❖ El fichero /etc/rc.d/S10network activa las interfaces de red. Una parte puede ser:
. /etc/sysconfig/network pone var. necesarias
[ "${NETWORKING}" = "no" ] && exit 0
case "$1" in
start)
echo "Bringing up loopback interface: "
./ifup ifcfg-lo
86
EJERCICIOS SHELL
❖ El comando ps muestra los procesos del sistema. El comando touch modifica fecha de acceso y si no existe el fichero lo crea. El comando mv renombra un fichero.
1 Descubra todos los comandos (con todos sus argumentos) ejecutados como root.
2 Directorios y subdirectorios en /var/log.
3 Cree tres ficheros denominados imagen1.gif, imagen2.gif e imagen3.gif. Utilize awk para cambiar la extensión .gif por .jpg.
87
¿HACEMOS UNA DESCANSO?
5 minutos
88
SOLUCIONES EJERCICIOS SHELL
1 ps -auxww | grep root | awk '{print $11}' ps -fu root
2 find /var/log -type d -print
3 touch imagen1.gif
touch imagen2.gif
touch imagen2.gif
ls *.gif | awk -F. '{print “mv”,$n,$1”.jpg”' | sh
❖ Con awk hemos indicado el comando y los argumentos. Tras ello se pasa al shell.
89
UID Y /ETC/PASSWD
❖ Las cuentas del sistema están en /etc/passwd
alumno:x:510:100:Alumno:/home/alumno:/bin/bash
❖ 510 es el uid (identificador de usuario)
❖ 100 es el gid (identificador de grupo)
❖ Alumno es información de la cuenta (GECOS)
❖ /home/alumno es su directorio de trabajo
❖ /bin/bash es el shell asignado.
90
CAMBIOS POSIBLES
alumno:x:510:100:Alumno:/home/alumno:/bin/bash
❖ chfn cambia la información de la cuenta
chfn -f “Alumno del curso” alumno❖ chsh cambia el shell
chsh -s /bin/csh alumno❖ La clave se cambia con el comando passwd.
❖ usermod (comando para root) puede cambiar todos los campos.
91
GID Y PERMISOS
❖ Los grupos están en /etc/group
users:x:100: aquí se indica el grupo secundario
comando id muestra grupo primario y secundarios
❖ ¿Y la clave donde está? en /etc/shadow
-r-------- 1 root root 1226 oct 20 2003 /etc/shadow❖ Permisos r-- para la cuenta root
❖ Permisos --- para el grupo root
❖ Permisos --- para el resto (nosotros)
r lecturaw escriturax ejecución
92
PERMISOS EN NUESTRO HOME
❖ ¿Y qué permisos tenemos en nuestro directorio?
ls -ld $HOME
drwx------ 3 alumno users ... /home/alumno❖ Como propietarios podemos dar/quitar permisos
chmod u=rwx,g=r--,o=--- /home/alumno
chmod 740 /home/alumno (octal)
❖ Otros permisos
set uid bit (s), set gid bit (s) y sticky bit (t).
r permite lsw crear ficherosx permite cd
93
TIPOS DE FICHEROS (I)
❖ El tipo aparece al principio de un ls -l. Tipos:
- fichero plano -rw------- /etc/lilo.conf
d directorio drwxr-xr-x /bin
l enlace simbólico lrwxrwxrwx /usr/tmp-> ../var/tmp
b fichero de bloques brw-rw---- /dev/hda
c fichero de caracteres crw------- /dev/tty1
s socket srwx------ /dev/gpmctl
p tubería prw------- /dev/initctl
94
TIPOS DE FICHEROS (II)
❖ La extensión de un fichero no determina su tipo.
❖ file nos dice el tipo de fichero.
echo “nada” > vacio.jpg ; file vacio.jpg❖ Los ficheros planos pueden ser de texto o
binarios. Los ficheros binarios necesitan una aplicación para visualizarlos. Los ficheros de texto pueden visualizarse con las utilidades more, cat y less.
cat /boot/vmlinuz ; reset resetea terminal
95
MODULOS
❖ El kernel permite cargar y descargar módulos. Así, en la secuencia de arranque se carga el módulo correspondiente a la tarjeta de red.
❖ Para ver los módulos empleamos lsmod. La cuenta root puede utilizar insmod y rmmod.
❖ En Red Hat se tiene un fichero /etc/modules.conf con los módulos a cargar.
❖ En Debian se debe utilizar el comando modconf para cargar y descargar módulos.
96
LIBRERIAS
❖ ldd nos dice las dependencias:
ldd /bin/ls❖ LD_LIBRARY_PATH especifica los directorios
donde buscar librerías. Ver /etc/ld.so.conf.
❖ strings muestra cadenas de un fichero binario
strings /bin/gawk❖ strip quita símbolos de un fichero binario
file /bin/gawk (243k not stripped) Red Hat 7.3
97
DIFERENCIAS ENTRE ARCHIVOS
cp /bin/gawk ~ ; strip ~/gawk
file ~/gawk (221k stripped) Red Hat 7.3
❖ xargs y find permiten buscar estos ficheros
find / -print | xargs file | grep “not stripped”❖ Con diff vemos los cambios entre ficheros
hola don pepito hola
adios don jose
fichero1 fichero2
98
PARCHEO
❖ Obtenemos diferencias en formato ed
diff -e fichero2 fichero1 > parche❖ Se parchea para tener dos ficheros iguales
patch -e fichero2 parche❖ patch se utiliza para aplicar parches a ficheros de
código fuente. Normalmente el formato es
patch -p0 <parche
99
CONTROL DE RECURSOS (I)
❖ Para saber el espacio disponible:
free -m memoria (ver /proc/meminfo)
df -h disco
❖ Para conocer el tiempo activo y carga del sistema
uptime (ver /proc/loadavg)
11:10 up 24 min, 2 users, load average:1.75, 0.90, 0.53
hora en activo usuarios carga 1 5 15 min
100
CONTROL DE RECURSOS (II)
❖ iostat muestra estadísticas de E/S. Por ejemplo:
iostat -d 1 10 ; iostat -c 1 10❖ mpstat muestra estadísticas de CPU.
mpstat 1 10❖ sar reporta la actividad del sistema.
sar -n 1 10❖ vmstat reporta estadísticas de memoria virtual.
vmstat -n 1 10
101
W Y TOP
❖ Orden w es una mezcla entre uptime y ps
2:17am up 1:09, 2 users, load average: 0.09, 0.18, 0.11
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
alfonso pts/0 :0 1:08am 0.00s 0.19s 0.00s w
alfonso pts/1 :0 1:08am 6:19 0.23s 0.23s bash
❖ top muestra uso de la CPU. Puede ser interactivo o no. Por ejemplo, monitorizar durante cinco segundos el proceso syslogd
top -n 5 -p `ps -C syslogd -o pid=`
102
TOP
2:10am up 1:03, 2 users, load average: 0,13, 0,09, 0,05
78 processes: 76 sleeping, 2 running, 0 zombie, 0 stopped
CPU states: 6,2% user, 1,1% system, 0,0% nice, 92,6% idle
Mem: 247532K av, 241296K used, 6236K free, 0K shrd, 21624K buff
Swap: 265064K av, 40812K used, 224252K free 112060K cached
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
2220 alumno 15 0 1012 1012 800 R 1,9 0,4 0:00 top
1 root 15 0 472 428 408 S 0,0 0,1 0:04 init
2 root 15 0 0 0 0 SW 0,0 0,0 0:00 keventd
3 root 15 0 0 0 0 RW 0,0 0,0 0:00 kapmd
103
ALGUNOS CAMPOS TOP
❖ PRI es la prioridad.
❖ NI es la prioridad. Un valor – es + prioridad.
❖ SIZE tamaño del proceso y su pila.
❖ RSS memoria física usada por el proceso.
❖ SHARE cantidad de memoria compartida.
❖ STAT estado. R (runnable), S (sleeping), D (IO), Z (zombie), T (stopped), N (low priority).
Algunos valores el administrador los limita en /etc/security/limits.conf o con ulimit.
104
NICE Y RENICE
❖ Los procesos tienen una prioridad que va desde -20 (la mayor) hasta 19 (la menor).
ps -eo "%p %n %c" | grep tuxracer
2447 0 tuxracer
❖ Se puede cambiar la prioridad cuando se lanza el comando (nice) o cuando está activo (renice):
ps -ef | grep tuxracer | awk '{print $2}' | xargs renice +10
ps -eo "%p %n %c" | grep tuxracer
2447 10 tuxracer
105
CONSOLA DE MONITORIZACION
❖ La utilidad procinfo muestra información almacenada en el sistema de ficheros /proc.
❖ Si deseamos tener siempre en la consola virtual número 8 la información de procinfo, en el fichero /etc/inittab podemos poner:
p8:23:respawn:/usr/bin/procinfo -biDn1 -F/dev/tty8
❖ Para no reiniciar tecleamos:
/sbin/telinit q
106
MATANDO PROCESOS
❖ Los procesos colgados se pueden eliminar
kill -9 1 (1 es el proceso init)
❖ Para ver las señales disponibles
kill -l❖ kill se utiliza para forzar la lectura de un fichero
de configuración tras un cambio.
vi /etc/ssh/sshd_config
kill -1 `ps -C sshd -o pid=`
107
LSOF
❖ Si deseamos conocer los ficheros abiertos por un proceso podemos utilizar lsof.
top
688 root 15 0 972 788 788 S 0,0 0,3 0:00 sshd
lsof -p 688
❖ Algunos de los ficheros abiertos están asociados a las dependencias del programa
ldd /usr/sbin/sshd
108
SERVICIOS EN MARCHA (I)
❖ En Red Hat tenemos el comando chkconfig
/sbin/chkconfig –list❖ En cualquier Linux podemos utilizar
netstat -aptu (otra utilidad es nmap)❖ Para quitar un servicio lanzados de forma
autónoma, es decir, tienen un script en /etc/init.d
chkconfig --del httpd (Red Hat)
update-rc.d -f apache remove (Debian)
109
SERVICIOS EN MARCHA (II)
❖ Para poner un servicio autónomo
chkconfig --level 345 httpd on (Red Hat)
update-rc.d apache defaults (Debian)
update-rc.d apache start 40 2 3 4 5 . stop 20 0 1 6❖ Los servicios controlados por inetd (Debian) están
en /etc/inetd.conf. Los servicios controlados por xinetd (Red Hat) están en los ficheros del directorio /etc/xinetd.d.
110
OTROS PROGRAMAS EN MARCHA
❖ Unix dispone de la utilidad cron para ejecutar de forma periódica órdenes y scripts.
0 15 * * * /usr/bin/wall Nos vamos
❖ Linux dispone de estos directorios:
/etc/cron.d /etc/cron.weekly
/etc/cron.hourly /etc/cron.monthly
/etc/cron.daily❖ Si el PC no estuvo encendido anacron se encarga
de ejecutar los scripts de los directorios.
111
DIAGNOSTICO DE RED
❖ Comandos útiles:
❖ ping hace un test de comunicación.
❖ traceroute muestra la ruta hasta un destino.
❖ nslookup consulta al DNS.
❖ ifconfig muestra/configura la tarjeta de red.
❖ netstat muestra estadísticas de red.
❖ route muestra/manipula tabla de rutas.
❖ tcpdump para ver el tráfico (sniffer).
112
PAQUETES EN REDHAT
Ver paquetes instalados: rpm -qa
Instalar un paquete: rpm -ivh paquete.rpm
Actualizar un paquete: rpm -Uvh paquete.rpm
Desinstalar un paquete: rpm -e paquete
Información de un paquete instalado: rpm -qi paquete
Inform. paquete no instalado: rpm -qpi paquete.rpm
Ficheros de un paquete instalado: rpm -ql paquete
Paquete asociado a un fichero: rpm -qf /etc/inittab
113
PAQUETES EN DEBIAN
Ver paquetes instalados: dpkg -l
Buscar un paquete: apt-cache search paquete
Instalar un paquete: apt-get install paquete
Actualizar paquetes: apt-get update; apt-get upgrade
Desinstalar un paquete: dpkg -r paquete
Información de un paquete: apt-cache show paquete
Ficheros de un paquete instalado: dpkg -L paquete
Paquete asociado a un fichero: dkpg -S /etc/inittab
114
COPIANDO LO BUENO
❖ La gestión de paquetes y actualizaciones en Debian es muy fácil y cómoda.
❖ La instalación de paquetes .rpm es muy tediosa debido a las dependencias entre paquetes.
❖ Existe la utilidad apt para Red Hat.
❖ Fedora también dispone de apt y yum.
❖ Red Hat y Fedora pueden utilizar up2date para actualizar paquetes instalados.
❖ Gnome Ximian dispone de Red Carpet.
115
INSTALACION DESDE CODIGO FUENTE
❖ Descomprimir el fichero
tar xvzf programa.tgz ; cd programa❖ Configurar el programa
./configure❖ Compilarlo
make❖ Instalarlo
make install
116
COMPILANDO E INSTALANDO
tar xvzf netkit-ftp-0.10.tar.gzcd netkit-ftp-0.10less README./configure --prefix=/usr/localmakemake install/usr/local/bin/ftp
117
INSTALAR CLIENTE NOVELL (I)
❖ Se obtiene el programa novelclient y se instala
rpm -ivh novelclient-0.86-3.i386.rpm ncpfs-2.2.4-1.i386.rpm \ ipxutils-2.2.4-1.i386.rpm
❖ En el fichero /etc/sysconfig/multicast se pone
DEV=eth0
❖ Se activa el enrutamiento multicast:
/etc/init.d/multicast start❖ Se lanza el programa novelclient
118
INSTALAR CLIENTE NOVELL (II)
119
INSTALAR CLIENTE NOVELL (III)
120
MAS INFORMACION
❖ Utilidades y herramientas.www.uoc.edu/masters/softwarelibre/esp/materials/Utilidades_herramientas.pdf
❖ Sistema operativo GNU/Linux básico.www.uoc.edu/masters/softwarelibre/esp/materials/libre_m2_baja.pdf
❖ Administración avanzada de GNU/Linux.www.uoc.edu/masters/softwarelibre/esp/materials/Admin_GNULinux.pdf