Está en la página 1de 71

LINUX NIVEL BASICO

MANUAL

Ing. Carrasco Ore Nilo E.

Linux- Nivel Bsico

Contenido Contenido ......................................................................................................................... 2 1. Fundamentos de Linux ............................................................................................. 6 1.1. Breve Historia................................................................................................... 6 1.2. Caractersticas de Software Libre..................................................................... 6 1.2.1. Cdigo fuente Abierto .............................................................................. 6 1.2.2. Modificar, Mejorar ................................................................................... 6 1.2.3. Redistribucin........................................................................................... 6 1.3. Ventajas de Software Libre .............................................................................. 7 1.3.1. Compilar ................................................................................................... 7 1.3.2. Adaptable.................................................................................................. 7 1.3.3. Evolucin Rpida ..................................................................................... 7 1.3.4. Fiable ........................................................................................................ 7 1.3.5. Educacin ................................................................................................. 7 1.4. Como Naci Linux ........................................................................................... 8 1.5. Linux hoy en da ............................................................................................... 8 1.6. Caractersticas de Linux .................................................................................. 9 1.7. Comandos y utilidades bsicas....................................................................... 11 1.8. Lenguajes de programacin y utilidades ........................................................ 11 1.9. El sistema X Window ..................................................................................... 12 1.10. Redes .......................................................................................................... 12 1.11. Distribuciones de Linux ........................................................................... 12 1.11.1. Redhat..................................................................................................... 13 1.11.2. Fedora Core ............................................................................................ 13 1.11.3. Conectiva ................................................................................................ 13 1.11.4. Mandrake ................................................................................................ 13 1.11.5. Debian..................................................................................................... 14 1.11.6. S.u.S.E. ................................................................................................... 14 1.11.7. Slackware ............................................................................................... 14 1.11.8. Corel Linux............................................................................................. 14 1.11.9. Mklinux .................................................................................................. 14 1.11.10. Knoppix .............................................................................................. 14 1.11.11. Caldera................................................................................................ 15 1.11.12. Gentoo ................................................................................................ 15 1.12. Preparndose para la Instalacin ................................................................ 15 1.13. Instalacin de Linux ................................................................................... 15 1.13.1. Formas de Instalacin............................................................................. 15 1.13.2. Como generar un disquete de Instalacin............................................... 16 1.13.3. Instalacin desde CD-ROM.................................................................... 16 1.13.3.1. Seleccin del Idioma .......................................................................... 16 1.13.3.2. Deteccin de Mouse o ratn ............................................................... 17 1.13.3.3. Seleccin del Tipo de Teclado............................................................ 17 1.13.3.4. Seleccin del tipo de Instalacin ........................................................ 17 1.13.3.5. Seleccin del Modo de Instalacin..................................................... 17 1.13.3.6. Particionamiento del Disco Duro ....................................................... 18 1.13.3.7. Seleccin de Paquetes......................................................................... 20 1.13.3.8. Seleccin de Tarjeta de Red ............................................................... 20 1.13.3.9. Configuracin de Red......................................................................... 21 2 Ing. Carrasco Ore Nilo

Linux- Nivel Bsico 1.13.3.10. Seleccionar la Tarjeta de video....................................................... 21 1.13.3.11. Seleccin del Monitor..................................................................... 21 1.13.3.12. Configuracin del Escritorio .......................................................... 21 1.13.3.13. Configuracin del Usuario ............................................................. 22 1.13.3.14. Configuracin del Gestor de Arranque........................................... 22 1.13.3.15. Crear un disco de Arranque. ........................................................... 22 1.13.3.16. Fin de la instalacin........................................................................ 23 2. Conociendo el Entorno de UNIX ......................................................................... 24 2.1. Secuencia de arranque .................................................................................... 24 2.2. Niveles de Arranque (INIT o RUNLEVELS) ................................................ 24 2.3. Creacin de una cuenta................................................................................... 25 2.4. Presentacin en el sistema (loggin in) ............................................................ 25 2.5. Consolas virtuales........................................................................................... 26 2.6. Interpretes de comandos y comandos............................................................. 26 2.7. Salida del sistema ........................................................................................... 28 2.8. Ficheros y directorios ..................................................................................... 28 2.9. El rbol de directorios..................................................................................... 29 2.10. Directorio de trabajo actual ........................................................................ 30 2.11. Refirindose al directorio home ................................................................. 30 3. Estructura del Sistema de Archivos de Linux ........................................................ 31 3.1. El Directorio Raz / .................................................................................. 31 3.2. /bin Binarios de comandos esenciales de usuarios (disponibles para todos los usuarios). .................................................................................................................... 31 3.2.1. Comandos generales:.............................................................................. 31 3.2.2. Comandos para restauracin................................................................... 32 3.2.3. Comandos de red. ................................................................................... 32 3.3. /boot: Archivos estticos del cargador de arranque (boot loader). ................. 32 3.4. /dev Archivos de dispositivos......................................................................... 32 3.5. /etc : Configuracin del sistema local a la mquina. ...................................... 32 3.5.1. Archivos de Red: .................................................................................... 33 3.6. /home: Directorios hogar de los usuarios (opcional)...................................... 33 3.7. /lib: Libreras compartidas y mdulos de kernel escenciales ......................... 33 3.8. /mnt: Punto de montaje para sistemas de archivos montados temporalmente.34 3.9. /proc: Sistema de archivos virtual de informacion de procesos y del kernel. 34 3.10. /root: Directorio hogar de root (opcional) .................................................. 34 3.11. /sbin: Binarios del Sistema (Alguna vez mantenidos en /etc) .................... 34 3.11.1. Comandos Generales. ............................................................................. 35 3.11.2. Comandos de Apagado........................................................................... 35 3.11.3. Comandos de manejo de sistemas de archivos....................................... 35 3.11.4. Comandos de Red................................................................................... 35 3.12. tmp: Archivos temporales........................................................................... 35 3.13. La jerarqua /usr.......................................................................................... 36 3.13.1. /usr/local: Jerarqua local........................................................................ 36 3.13.2. /usr/sbin: Binarios de sistema estndar no-esenciales. ........................... 36 3.13.3. /usr/src : Cdigo fuente. ......................................................................... 37 3.14. La Jerarqua /var ......................................................................................... 37 4. Comandos UNIX ................................................................................................... 38 4.1. Movindonos por el entorno........................................................................... 38 4.2. Mirando el contenido de los directorios ......................................................... 39 4.3. Creando directorios nuevos ............................................................................ 40 Ing. Carrasco Ore Nilo 3

Linux- Nivel Bsico 4.4. Copia de ficheros ............................................................................................ 40 4.5. Moviendo ficheros.......................................................................................... 41 4.6. Borrando ficheros y directorios ...................................................................... 41 4.7. Mirando los ficheros....................................................................................... 41 4.8. Obteniendo ayuda en lnea ............................................................................. 42 4.9. Sumario de Ordenes Bsicas ....................................................................... 42 5. Tipos de interpretes de comandos ...................................................................... 45 5.1. Caracteres comodn ....................................................................................... 45 6. Fontanera UNIX ................................................................................................... 48 6.1. Entrada y salida estandard .............................................................................. 48 6.2. Redireccionando la entrada y salida ............................................................... 49 6.3. Uso de tuberas (pipes) ................................................................................... 50 6.4. Redireccin no destructiva ............................................................................. 51 7. Permisos de Ficheros ............................................................................................ 52 7.1. Conceptos de permisos de ficheros ................................................................ 52 7.2. Interpretando los permisos de ficheros........................................................... 52 7.3. Dependencias.................................................................................................. 53 7.4. Cambiando permisos ...................................................................................... 54 7.5. Manejando enlaces de ficheros.................................................................... 54 7.5.1. Enlaces duros (Hard links) ..................................................................... 54 7.5.2. Enlaces simblicos ................................................................................. 55 8. Montar y Desmontar un sistema de archivos.......................................................... 57 8.1. Montaje automtico: ....................................................................................... 59 9. Control de Tareas ................................................................................................. 60 9.1. Tareas y procesos............................................................................................ 60 9.2. Primer plano y Segundo plano ....................................................................... 60 9.3. Envo a segundo plano y eliminacin de procesos ......................................... 61 9.4. Parada y relanzamiento de tareas.................................................................... 63 10. Archivando y Comprimiendo Ficheros ........................................................... 65 10.1. Utilizando tar .............................................................................................. 65 10.2. gzip y compress .......................................................................................... 66 10.3. Juntndolo todo .......................................................................................... 66 11. Gestin de Usuarios.......................................................................................... 68 11.1. Conceptos de gestin de usuarios............................................................... 68 11.2. Aadiendo usuarios .................................................................................... 69 11.3. Borrando usuarios....................................................................................... 70 11.4. Poniendo atributos de usuario .................................................................... 70 11.5. Grupos ........................................................................................................ 70

Ing. Carrasco Ore Nilo

Linux- Nivel Bsico

OBJETIVOS El presente curso tiene como objetivo el brindar los conocimientos necesarios a los participantes de modo que puedan desempearse con la mayor facilidad en las diferentes reas que brinda el sistema operativo GNU/Linux, tanto como usuarios o administradores.

Ing. Carrasco Ore Nilo 5

Linux- Nivel Bsico


1.

Fundamentos de Linux 1.1. Breve Historia UNIX es uno de los sistemas operativos mas populares del mundo debido a su extenso soporte y distribucin. Originalmente fue desarrollado como sistema multitarea con tiempo compartido para mini ordenadores y mainframes a mediados de los 70, y desde entonces se ha convertido en uno de los sistemas mas utilizados a pesar de su, ocasionalmente, confusa interfaz con el usuario y el problema de su estandarizacin. Linux es una versin de UNIX de libre distribucin, inicialmente desarrollada por Linus Torvalds1 en la Universidad de Helsinki, en Finlandia. Fue desarrollado con la ayuda de muchos programadores y expertos de UNIX a lo largo y ancho del mundo, gracias a la presencia de Internet. Cualquier habitante del planeta puede acceder a Linux y desarrollar nuevos mdulos o cambiarlo a su antojo. El nucleo de Linux no utiliza ni una sola linea del cdigo de AT&T o de cualquier otra fuente de propiedad comercial, y buena parte del software para Linux se desarrolla bajo las reglas del proyecto de GNU de la Free Software Foundation, Cambridge, Massachusetts. Hoy Linux es ya un clonico de UNIX completo, capaz de ejecutar X Window, TCP/IP, Emacs, UUCP y software de correo y News. Mucho software de libre distribucin ha sido ya portado a Linux, y estn empezando a aparecer aplicaciones comerciales. 1.2. Caractersticas de Software Libre

A continuacin presentamos las principales caracterstica del Software Libre

1.2.1. Cdigo fuente Abierto


Es quiz la principal caracterstica del software libre la cual nos da la posibilidad de analizar y verificar la forma en que fue hecho la aplicacin y darnos la confiabilidad de que es segura y no tiene cdigos ocultos que pueda perjudicar la seguridad de nuestro sistema o empresa.

1.2.2. Modificar, Mejorar


Al tener el cdigo fuente y el poder analizarlo nos da la opcin de poder modificarlo, mejorarlo y adaptarlo a nuestras necesidades ya sea aadiendo opciones que nos falten o quitando las que no necesitamos. Esto es una real ventaja ya que no dependeramos tecnolgicamente del fabricante y podemos encontrar la solucin con cualquier experto programador o empresa de servicios tecnolgicos de software.

1.2.3. Redistribucin
Una de las grandes virtudes de software libre, con la cual, podemos con una sola 6 Ing. Carrasco Ore Nilo

Linux- Nivel Bsico fuente instalar el programa o aplicativo en una o varias estaciones de trabajo o servidores, sin requerir de una licencia por estacin o por servidor y mucho menos una licencia para que nuestra estacin se conecte con nuestro servidor. 1.3. Ventajas de Software Libre

1.3.1. Compilar
Muchas aplicaciones de software libre nos dan el cdigo fuente ya compilado listo para ser instalado y/o nos dan el cdigo para compilarlo, este ltimo le da a la aplicacin la virtud de adaptarse al hardware que tenemos y poderlo optimizar al mximo para que la performance del aplicativo sea notablemente mejor. Esto lo hace Portable al distinto hardware existente ya que quiz con unos pequeos cambios podemos instalarlo en cualquier tipo de hardware.

1.3.2. Adaptable
Como mencionamos anteriormente al tener el cdigo fuente podemos modificarlo y extraer lo innecesario de l o aadirle lo que necesitemos adaptandolo a nuestras necesidades.

1.3.3. Evolucin Rpida


Lo impresionante del software libre es que es usado por los ms expertos en todo el mundo que trabajan constantemente con l, as es que si aparece algn defecto no tardar mucho tiempo en encontrarse una solucin. Tambin todas las nuevas y mejoras del software son publicadas constantemente convirtindolo en un software cada vez ms slido teniendo una evolucin muy rpida.

1.3.4. Fiable
Claro est, se imaginan que el software que estn usando es usado por los mas expertos en todo el mudo literalmente hablando, esto lo hace que se perfeccione y su performance sea mas alta y mayor que los aplicativos de cdigo cerrado. Por ejemplo una comparacin entre software de cdigo abierto con cdigo cerrado para un mismo sistema UNIX. Los test realizados en software comercial (cdigo cerrado) dieron como resultado entre un 15% a 43% de veces en que entraron en un loop en otras palabras se colgaron y los test realizados en software Libre (cdigo abierto) dieron como resultado entre 7% y 12% de veces en que entraron en un loop.

1.3.5. Educacin
Las ventajas de la aplicacin de software libre para la educacin son innumerables imagnense lo que ahorrara un colegio en implementar todos sus laboratorios con Software Libre, en ves de armar dos laboratorios con software propietario podran ahorrase las licencia o implementar un tercer o hasta cuarto laboratorio. Ing. Carrasco Ore Nilo 7

Linux- Nivel Bsico La tecnologa podra llegar a lugares ms remotos y con menores recursos ya que el software libre es adaptable y puede instalares tranquilamente en hardware antiguo y tener las mismas capacidades. Tambin es una gran ventaja lo que podran aprender los alumnos de tecnologa teniendo el cdigo abierto en sus manos y muchas ms ventajas. 1.4. Como Naci Linux

En la Universidad de Vrije, en Amsterdan, el profesor Andrew Tannenbaum usaba un sistema operativo basado en arquitectura Unix para computadoras personales, este sistema operativo llamado Minix fue muy usado para fines educativos. Uno de los alumnos Linuz Torvals, pens que el sistema deba ser mejorado, pero su profesor le indico que el fin de minix era estrictamente educativo y que debe quedar como esta. As es que manos a la obra! para 1991 Linuz Torvals escribi un nuevo cdigo logrando un nuevo kernel el cual dio el nacimiento de Linux en este primer prototipo. Linuz Tovals se comunico con todos los usuario de minix y les dijo .. he creado un sistema operativo solo por aficin y gratuito para pcs AT 386(486) Todo el grupo comenz a desarrollarlo y a mejorarlo, en un inicio Linux solo corra algunos comandos de unix, pero con el trabajo de Linuz y de miles de programadores voluntarios en el mundo hicieron del Linux un Sistema Operativo Completo. Para 1994 se lanzo la primera versin de Linux (GNU/Linux 1.0) ya estable y lleno de caractersticas Avanzadas. En 1996 linux ya era soportado por una infinidad de hardware, desde una Atari ST hasta una Macintosh. Linux tiene licencia GNU/GPL esto quiere decir que es de libre distribucin, el cdigo es abierto por lo tanto puede ser modificado y mejorado, la nica condicin era que los desarrolladores recibieran el crdito apropiado y que los cambios hechos en el cdigo sean de conocimiento pblico. No obstante muchas empresas venden el Linux pero a un preci realmente mdico donde uno no solo recibe los CD si no tambin manuales y otros elementos de valor agregado evitndose el fastidio de bajarlo por Internet. En las comunidades de Software Libre del Per se pueden conseguir los CD de las diferentes distribuciones de Linux al 2 x 1, eso quiere decir que por cada dos CDS te entregan uno grabado. 1.5. Linux hoy en da

Linux corre en un estimado de 7 a 8 millones de computadores en todo el mundo contando con miles de programadores que trabajan en encontrar soluciones al los problemas si es que se presentan. Si, as es, si usted encuentra una falla en el Linux lo nico que tiene que hacer es publicarla y en cuestin de minutos tendr miles de personas en el mundo trabajando en la solucin, es cuestin de horas o pocos das para que la solucin o parche este publicada en Internet y en varios idiomas. Actualmente nos encontramos en la versin de Kernel 2.6.xx la cual es compatible con una gran cantidad de arquitectura de hardware como Alpha, Amiga, Atari, IBM, Intel, Power PC/Macintosh, SGI, Sun SPARC y otras mas. En todas las plataformas o arquitectura de hardware Linux corre con mucha estabilidad y mas rpido que otros sistemas operativos. 8 Ing. Carrasco Ore Nilo

Linux- Nivel Bsico 1.6. Caractersticas de Linux

Linux implementa la mayor parte de las caractersticas que se encuentran en otras implementaciones de UNIX, mas algunas otras que no son habituales. Linux es un sistema operativo completo con multitarea y multiusuario (como cualquier otra versin de UNIX). Esto significa que pueden trabajar varios usuarios simultneamente en el, y que cada uno de ellos puede tener varios programas en ejecucin. El sistema Linux es compatible con ciertos estndares de UNIX a nivel de cdigo fuente, incluyendo el IEEE POSIX.1, System V y BSD. Fue desarrollado buscando la potabilidad de los fuentes: encontrara que casi todo el software gratuito desarrollado para UNIX se compila en Linux sin problemas. Y todo lo que se hace para Linux (cdigo del nucleo, drivers, libreras y programas de usuario) es de libre distribucin. En Linux tambin se implementa el control de trabajos POSIX (que se usa en los shells csh y bash), las pseudo-terminales (dispositivos pty), y teclados nacionales mediante manejadores de teclado cargables dinmicamente. Adems, soporta consolas virtuales, lo que permite tener mas de una sesin abierta en la consola de texto y conmutar entre ellas fcilmente. Linux soporta diversos sistemas de ficheros para guardar los datos. Algunos de ellos, como el ext2 fs, han sido desarrollados especficamente para Linux. Otros sistemas de ficheros, como el Minix-1 o el de Xenix tambin estn soportados. Y con el de MS-DOS se podrn acceder desde Linux a los disquetes y particiones en discos duros formateados con MS-DOS. Adems, tambin soporta el ISO-9660, que es el estndar seguido en el formato de los CD-ROMs. Linux implementa todo lo necesario para trabajar en red con TCP/IP. Tambin se han portado los clientes de TCP/IP, como FTP, telnet, NNTP y SMTP. El ncleo soporta ejecutables con paginacin por demanda. Esto significa que solo los segmentos del programa que se necesitan se cargan en memoria desde el disco. Las paginas de los ejecutables son compartidas mediante la tcnica copy-on-write, contribuyendo todo ello a reducir la cantidad de memoria requerida para las aplicaciones. Con el fin de incrementar la memoria disponible, Linux implementa la paginacin con el disco. Cuando el sistema necesita mas memoria, expulsara paginas inactivas al disco, permitiendo la ejecucin de programas mas grandes o aumentando el numero de usuarios que puede atender a la vez. Sin embargo, el espacio de intercambio no puede suplir totalmente a la memoria RAM, ya que el primero es mucho mas lento que esta. Los ejecutables hacen uso de las libreras de enlace dinmico. Esto significa que los ejecutables comparten el cdigo comn de las libreras en nico fichero, como sucede en SunOS. As, los ejecutables sern mas cortos a la hora de guardarlos en el disco, incluyendo aquellos que hagan uso de muchas funciones de librera. Ing. Carrasco Ore Nilo 9

Linux- Nivel Bsico

Multitarea

Es la capacidad de realizar varios procesos en forma simultnea Tiene la capacidad de atender varios usuarios en forma simultnea manteniendo estrictamente su perfil en altos niveles de seguridad Por lo mismo que el Linux soporta gran cantidad de hardware se vuelve totalmente Portable, no es ningn problema el cambiar tu sistema a otro hardware totalmente distinto. Maneja protocolos e interfaces dentro de las normas estndar como POSIX, BSD, IEEE, ISO y System V Capaz de operar con todos los sistemas de archivos estndar como FAT de DOS, VFAT de Win95/98, OS2/FS, ISO9660(CD-ROM), MINIX, UNIX , UFS de BSD y otros mas. Su protocolo madre es TCP/IP, soporta todo tipo de tarjetas de red. SLIP/PPP para acceso serial a TCP/IP, PLIP para conexiones en paralelo, NFS sistema de archivo de red, Telnet, SSH, NNTP, SMTP, IPX, AppleTalk, Samba para compartir archivos e impresoras con sistemas Windows, etc. Su arquitectura es de 32 bits reales en una PC y de 64 bits en un Alpha, su sistema utiliza las caractersticas del modo protegido del los micros 386 y superiores. Quiere decir que varias aplicaciones pueden utilizar las mismas libreras al mismo tiempo sin necesidad de cargarla varias veces en memoria. Soporta gran variedad de Multimedia, mdems, impresoras, tarjetas de video, monitores, teclados, mouse, etc. Soporta distintos entornos grficos, los ms populares son GNOME, KDE, FWVM, CDE, Enlightenment, Afterstep, Nextlevel, TWM, etc. Se tiene el cdigo fuente, puede ser modificado y mejorado, puede ser reproducido libremente sin necesidad del pago de una licencia, lo que lo hace de adquisicin gratuita.

Multiusuario

Multiplataforma

Estndar

Interaccin

Red

Arquitectura

Libreras Dinamicas

Hardware

Entorno Grfico

Licencia GPL

10

Ing. Carrasco Ore Nilo

Linux- Nivel Bsico

1.7.

Comandos y utilidades bsicas

La utilidad mas importante para la mayora de los usuarios es el interprete de comandos. El interprete de comandos es un programa que lee y ejecutar ordenes del usuario. Adems, muchas proporcionan caractersticas como control de procesos (permitiendo al usuario manejar varios procesos corriendo a la vez), redireccin de entrada/salida, y un lenguaje de ordenes para escribir scripts. Una script es un fichero que contiene un programa en el lenguaje de ordenes del interprete de comandos, similar a los ficheros "batch" de MS-DOS. Hay varios tipos de interpretes de comandos disponibles para Linux. La principal diferencia entre ellos es el lenguaje de comandos. Por ejemplo, el C Shell (csh) usa un lenguaje de comandos muy parecido al lenguaje de programacin C. El clsico Bourne Shell usa un lenguaje de comandos diferente. Un argumento para la eleccin de un determinado interprete de comandos es el lenguaje de comandos que proporciona. El interprete de comandos que use, definir su entorno de trabajo bajo Linux. No importa el interprete de comandos que este acostumbrado a usar, alguna versin de este habr sido probablemente llevada a Linux. La mas popular es el GNU Bourne Again Shell (bash) 1.8. Lenguajes de programacin y utilidades

Linux proporciona un completo entorno de programacin UNIX, incluyendo todas las libreras estandard, herramientas de programacin, compiladores, depuradores y todo aquello que esperarias encontrar en otro sistema UNIX. En el mundo del desarrollo de programas UNIX, las aplicaciones y sistemas suelen ser programados en C o C++. El compilador estandard de C y C++ para Linux es el GNU gcc, el cual es un avanzado y moderno compilador que permite multitud de opciones. Es tambin capaz de compilar C++ as como en Objetive-C y otros dialectos de C orientados a objetos. Ing. Carrasco Ore Nilo 11

Linux- Nivel Bsico Adems de C y C++ han sido llevados a Linux muchos otros lenguajes de programacin tanto interpretados como compilados, como Smalltalk, FORTRAN, Pascal, LISP, Scheme, Ada. Adems hay disponibles varios ensambladores para escribir cdigo del 80386 en modo protegido. Los lenguajes favoritos de UNS como Perl y Tcl/Tk (un procesador de ordenes al estilo del interprete de comandos incluyendo soporte para desarrollar aplicaciones simples para X Window). 1.9. El sistema X Window

El sistema X Window es un interface grfico estandard para maquinas UNIX. Es un potente entorno que soporta muchas aplicaciones. Usando X Windows, el usuario puede tener mltiples terminales a la vez en ventanas sobre la pantalla, cada una conteniendo una sesin diferente. Un dispositivo apuntador como el raton es usado a menudo en el interface X. El sistema X Window fue desarrollado originalmente en el MIT y es de libre distribucin. A pesar de esto muchas empresas han distribuido sus mejoras particulares al diseo original de X Window. La versin de X Window disponible para Linux es conocida como XFree86, una adaptacin de X11R56 de libre distribucin para sistemas UNIX basados en 80386, como es Linux. XFree86 soporta una gran variedad de tarjetas de vdeo, incluyendo VGA, Super VGA y gran cantidad de tarjetas aceleradoras de vdeo. Esta es una distribucin completa de X Windows conteniendo el servidor de X, muchas aplicaciones y utilidades, libreras de programacin y documentacin. 1.10. Redes

Linux dispone de los dos principales protocolos de red para sistemas UNIX: TCP/IP y UUCP. TCP/IP (para los aficionados a los acrnimos, Transmisin Control Protocol/Internet Protocol) es un conjunto de protocolos de red que permite a sistemas de todo el mundo comunicarse en una nica red conocida como Internet. Con Linux, TCP/IP y una conexion a la red, puede comunicarse con usuarios y maquinas por toda Internet mediante correo electrnico, noticias, transferencias de ficheros con FTP y mucho mas. Actualmente hay muchos sistemas Linux conectados a Internet. NFS (Network File System) permite fcilmente compartir ficheros con otras maquinas de la red.FTP (File Transfer Protocol) permite la transferencia de ficheros entre maquinas. Otras aplicaciones incluyen sendmail, sistema para enviar y recibir correo electrnico usando el protocolo SMTP; telnet, rlogin y rsh, que permiten iniciar una sesin y ejecutar ordenes en otras maquinas de la red. Hay literalmente cientos de aplicaciones basadas en TCP/IP y protocolos disponibles por la red. 1.11. Distribuciones de Linux

En principio cuando hablamos de Linux estamos hablando del Kernel, el corazn del Sistema Operativo, sobre el cual se implementan varias aplicaciones, como por ejemplo el Bash, aplicaciones de configuracin, soporte para grficos (llamado Xwindows), y el ambiente grficos, este conjunto de herramientas y aplicaciones sobre el Kernel es denominado Sistema Operativo. Comunidades y/o Empresas de Software Libre han desarrollado distintas herramientas y aplicacines que son
6

Linux dispone en la actualidad de la version X11R6 de X Window

12

Ing. Carrasco Ore Nilo

Linux- Nivel Bsico soportadas por linux, este conjunto de paquetes especificos para cubrir las necesidades de una comunidad o un pas es lo que se denomina Distribucin. Cada distribucin presenta un conjunto de aplicaciones o paquetes diferentes orientados ya sea a un usuario final, un administrador o un desarrollador . A continuacin presentamos algunas de las distribuciones ms conocidas

1.11.1.

Redhat
La ms comercial de las Distribuciones de fcil instalacin y buena calidad de contenidos, presenta varias opciones de idiomas para la instalacin. http://www.redhat.com ftp.redhat.com/pub

1.11.2.

Fedora Core
Fedora fue introducido en el mercado de las distribuciones Linux hacia finales del 2003, desarrollado para y con la participacin de la comunidad de cdigo abierto, fue construido como un OS, para aquellos entusiastas de Linux, que no trabajen bajo ambientes crticos.

1.11.3.

Conectiva

Distribucin desarrollada en Brasil, presenta los idiomas Ingls, portugus y espaol, fcil y muy administrable para la instalacin. http://www.conetctiva.com/es

1.11.4.

Mandrake
Una distribucin que ha venido ganando terreno en el mundo de las distribuciones Linux, es potente, de interfaz amigable e incluye muchas herramientas de software que hacen fcil la administracin de usuarios y otras funciones de red , es ampliamente aceptado en Europa. http://www.linux-mandrake.com/es

Ing. Carrasco Ore Nilo 13

Linux- Nivel Bsico

1.11.5.

Debian
Distribucin muy estable al igual que las otras presenta varios idiomas para la instalacin desde el espaol hasta el japons, quizs un poco mas complicado para la instalacin pero sin mayores problemas. http://www.debian.org/ ftp.debian.org/debian

1.11.6.

S.u.S.E.
De procedencia alemana y fcil instalacin se compone de 8 cds, el nico inconveniente es que no se pueden copiar los cd ya que traen aplicaciones propietaria pero, es la nica distribucin certificada por Oracle company. http://www.suse.de/es/index.html ftp.suse.com

1.11.7.

Slackware

Una de las primeras distribuciones, lamentablemente no ha tenido muchas actualizaciones, aunque ahora ultimo esta retomando la actividad. http://www.slackware.com

1.11.8.

Corel Linux

Distribucin reciente realizado por Corel y esta basada en Debian, su instalacin es bastante sencilla y en ambiente grfico. http://www.corel.com/ ftp://ftp.corel.com/pub/linux/

1.11.9.

Mklinux

Distribucin de Linux para Power PC de Macintosh 6100, 7100 y 8100, Power Computing 100 y 200, Pawer MAC 7200 hasta la 9500 http://www.mklinux.apple.com ftp://ftp.mklinux.apple.com/pub

1.11.10.

Knoppix
Es un sistema operativo libre y de cdigo abierto, encaminado a resolver problemas de tiempo real, la caracterstica especial de knoppix es que puede ser utilizado sin utilizar el disco duro de nuestra computadora

14

Ing. Carrasco Ore Nilo

Linux- Nivel Bsico

1.11.11.

Caldera

Provoc una conmocin en el mercado informtico al anunciar un Linux con soporte comercial, la idea es ofrecer versiones de Linux probadas, estables y con apoyo de una compaa. WordPerfect 6 para Linux est diseado para Calderas Network Desktop, y slo se distribuye con sta versin de Linux. Las primeras versiones de StarOffice estaban pensadas para las distribuciones de Caldera. La distribucin de Caldera incluye el entorno de trabajo K, una licencia no comercial de StarOffice para Linux, soporte Netware y una licencia de DR-Dos para compatibilidad con DOS

1.11.12.

Gentoo

Nueva distribucin con innovacin en el manejo de paquetes, los cuales tienen que ser compilados logrando la optimizacin mxima del software de hardware. http://www.gentoo.org/ 1.12. Preparndose para la Instalacin

Previamente a la instalacin es necesario en lo posible conocer todo el hardware que se tiene y si desea puede verificarlo si es soportado por linux en el archivo hardware-howto en el siguiente Site: http://www.linux.org/docs/ldp/howto/HOWTO-INDEX/howtos.html En la actualidad ya es poco el hardware no soportado por Linux. Si no conoce todo su hardware, no se preocupe Linux tiene una gran gama de drivers estndar que le permitirn que sus dispositivos trabajen, solamente necesitar conocer en un un inicio el Tipo de Procesador, el tipo de tarjeta de red (en caso de interactuar en una red), arquitectura de hardware si es IDE, SCSI o PCMCIA, cantidad de memoria y disco duro. 1.13. Instalacin de Linux

1.13.1.

Formas de Instalacin

El Linux puede ser instalado bsicamente de 3 formas Boteando desde un CDROM local Desde un disco duro Desde la red por FTP , http, nfs

Ing. Carrasco Ore Nilo 15

Linux- Nivel Bsico

1.13.2.

Como generar un disquete de Instalacin

Si su hardware no reconoce el CD Booteable, o desea realizar una instalacin por red puede generar un disquete el cual de dar esas opciones. En el CD se encuentra en el directorio /dosutils/ el programa rawrite con el podemos generar el disquete de la siguiente forma 1.- Ejecutamos el comando rawrite 2.- Indicamos el tipo de disquete que queremos generar, ../images/boot.img Existen tres imgenes A) boot.img B) bootnet.img C) pcmcia.img

para casos en que el hardware no reconozca el CD booteable para casos que la instalacin sea por red para casos de tecnologa PCMCIA generalmente encontrada en computadores porttiles.

3.- indicamos en donde se encuentra el disquete a o b ya sea el caso. 4.- ingresamos el disquete y le damos enter. 5.- el disquete es generado inmediatamente.

1.13.3.

Instalacin desde CD-ROM

Booteamos directamente desde el cdrom o con el disquete segn sea el caso. Previamente se puede seleccionar varias formas de instalacin como Instalacin en modo texto, modo grfico, modo experto o modo vesa graphics, este ltimo muy recomendable en caso de no conocer la tarjeta de vdeo interna SCSI Si, tiene una tecnolgia SCSI el sistema lo reconoce y le consulta si es que tiene el driver especfico para el hardware o instala uno de sus drivers estndar

1.13.3.1. Seleccin del Idioma


La mayoria de las distribuciones de linux presentan varias opciones de lenguaje como por ejemplo Red Hat presenta mas de 10 idiomas. En nuestro caso conectiva presenta 3. Linux no tiene ningun problema de compatibilidad con los idiomas y es muy comn que en una distro esncontremos dos o mas lenguajes combinados en el sistema, en la mayora el idioma con el que se instale mas el ingles o en algunos casos encontraremos partes con el idioma del origen del pais donde se creo la distro claro esta si no es ingles. Seleccione el Idioma Portugus 16 Ing. Carrasco Ore Nilo

Linux- Nivel Bsico Espaol Ingls etc Seleccionamos el idioma espaol

1.13.3.2. Deteccin de Mouse o ratn


El mouse siempre es detectado, en el caso de PS2 en el COM1 con una configuracin genrica, si usted encuentra el tipo exacto puede seleccionarlo en caso contrario no hay ningn problema de dejarlo con el predeterminado. En Linux la denominacin COM1 es representada por el puerto ttyS0 de ah COM2 como ttyS1 y as sucesivamente. Una vez verificado la seleccin le damos continuar

1.13.3.3. Seleccin del Tipo de Teclado


Casi el 100% de los casos el teclado es detectado automticamente lo nico en nuestro caso es que la mayora de los teclados vienen con la distribucin Latinoamericano o espaol Seleccionemos el tipo de teclado y le damos continuar < Ahora Linux comienza a cargar los Mdulos del Kernel para la instalacin, detecta los destinos y carga el particionador>

1.13.3.4. Seleccin del tipo de Instalacin


En este paso elegir si desea Realizar una instalacin nueva o Actualizar copia ya instalada Lo recomendable es siempre realizar una instalacin nueva, si usted desea pasar de una versin a una nueva lo mejor es que realice un backup de toda su data y reinstale desde cero para evitar problemas y garantizar la estabilidad del sistema

1.13.3.5. Seleccin del Modo de Instalacin


Instalacin realmente mnima Instalacin mnima Instalacin estndar Encaminador / Firewall Estacin de Trabajo Bsica con X Estacin de Trabajo Notebook Servidor de Red Instalacin completa Instalacin personalizada Ing. Carrasco Ore Nilo 17

Linux- Nivel Bsico

Forzar Seleccin de paquetes Forzar Particionamiento manual No instalar Documentacin Dependiendo de la seleccin se instalar los mdulos de paquetes necesarios segn se describe, lo recomendable es marcar la Opcin Forzar Seleccin de paquetes la cual nos detallar ms mdulos de paquetes y nos dar un mayor control en la instalacin de paquetes. Tambin debe marcar la opcin Forzar Particionamiento manual el cual me permitir particionar manualmente el disco duro, es recomendable siempre esta opcin ya que instalemos por primera vez o segunda tomaremos el control de cmo se distribuir la informacin en el disco duro. La tercera opcin no es recomendable marcarla ya que es siempre til tener documentacin a la mano y no ocupa mucho espacio ya que todo es en modo texto.

1.13.3.6. Particionamiento del Disco Duro


El sistema de Archivos nativo de Linux es el ext2 y la ultima versin mejorada es el ext3 En primer lugar definamos la forma en que el Linux toma a los dispositivos de almacenamiento. A) Para los discos IDE El primer disco fsico instalado se denominar: hda > Hard Disk A (Primer disco fsico del sistema)

Si a este disco le definimos particiones se denominarn : hda1 hda2 > > Hard Disk A particin primaria 1 Hard Disk A particin primaria 2

Y por que primaria? Simple, los discos duros solo soportan hasta cuatro particiones primarias por lo tanto el Linux reserva las particiones 1 hasta la 4 para las primarias Si definimos un particin primaria y de ah una extendida, la primera particin lgica empezara en 5 es decir hda5 > Har Disk A (primera) particin lgica 5

El Segundo disco fsico instalado se denominar: hdb > Hard Disk B (Segundo disco fsico del sistema)

Y de la misma forma las particiones sern hdb1, hdb2, hdb3.etc y as sucesivamente con los siguientes discos.

18

Ing. Carrasco Ore Nilo

Linux- Nivel Bsico B) Discos SCSI En el caso de los Discos SCSI la denominacin sera sda1, sda2. sdb1, sdb2. Linux-Swap Es la memoria cache de disco la cual debe ser configurada con el doble de la memoria RAM, es decir el tamao de la particin linux-swap es igual a 2 veces la memoria RAM que disponemos en nuestro sistema, en caso de que tengamos un Giga de memoria RAM no ser necesario configurar 2Gigas de Linux-Swap, ya que la idea de tener un Giga de RAM es que todo se cargue en memoria. Linux-Swap = 2 x memoria RAM En los discos duros con ms de 1024 cilindros ser necesario particin pequea para el boot. El siguiente caso es para un disco duro de 5.0 GB Dispositivo F B Tipo Sistema de Archivos Inicio Tamao (Mb) (Mb) /dev/hda1 * * primary ext 3 0 100 /dev/hda2 * Primary Linux-swap 101 512 /dev/hda3 * Primary ext3 614 4506 crear una

Punto de Montaje /boot /

Dispositivo: Indica el disco duro y la particin F: Indica que la particin ser formateada B: Indica que la particin ser booteable Tipo: Indica si la particin es primaria, extendida o lgica Sist. Archivos: Indica el sistema de Archivos ext2, ext3, Vfat, linuxswap, etc Inicio: Indica el punto donde inicia la particin en Mega Bytes Tamao: Indica el tamao de la particin en MegaBytes Punto de Montaje: Indica el lugar donde sern instalados los paquetes /boot > En este directorio se instalan todos los archivos de booteo del Linux / > Directorio raz, se instala el resto de archivos de Linux. El Linux define una estructura de directorios estndar aplicable para casi todas las distribuciones, as es que, lo mejor es respetarla. Si usted esta instalado el Linux sobre otro sistema operativo para compartir el disco dur, debe tener cuidado de no borrar las particiones que ya estn definidas, en caso de que esto suceda puede elegir la opcin restaurar para recuperar el Particionamiento anterior. Los cambios no se efectan hasta terminar y darle continuar. Si el sistema operativo que tiene instalado ocupa todo el disco duro y no tiene un segundo disco duro para instalar el Linux, lo que puede hacer y si tiene espacio suficiente es reparticionar el disco duro usando un utilitario, el mas usado es el Partition Manager o el ranish y los puede en contrar en : Ing. Carrasco Ore Nilo 19

Linux- Nivel Bsico

http://www.partition-manager.com http://www.ranish.com/part/

Una vez terminado el Particionamiento le damos continuar < Ahora el sistema comienza a formatear las particiones, esto puede tardar algn tiempo dependiendo del tamao de las particiones> < Una vez formateado el disco duro comienza a cagar el listado de paquetes si es que eligi la opcion Forzar Seleccin de paquetes.>

1.13.3.7. Seleccin de Paquetes


Tiene un listado de paquetes bastante grande (creo que cada descripcin define lo que usted quiera instalar), puede elegir una o varias opciones segn lo que requiera. Aparte de la seleccin de paquetes usted puede instalar cada uno de los componentes de cada paquete individualmente eligiendo la opcin Seleccionar Paquetes Individualmente En esta opcin usted podr observar y controlar a detalle que quiere o no que se instale, si usted agrega un paquete individualmente no se preocupe que el Linux detecta las dependencias y los instala en caso de no haberlas seleccionado, Si no quiere darse molestias seleccione los paquetes deseados y la opcin instalar todos los paquetes, y dele continuar.

< Ahora el Linux crea una base de datos de todos los componentes a instalar. Una vez creada esta lista comienza a detectar las dependencias> <Comienzo de la instalacin de paquetes, esto puede tardar varios minutos dependiendo de la cantidad de paquetes seleccionados>

1.13.3.8. Seleccin de Tarjeta de Red


Dependiendo de la forma de instalacin que eligi (Paso 8.3) la tarjeta de red es detectada automticamente, si no el sistema le proporciona un listado de drivers para que lo seleccione. Si le apareci esta opcin elija el driver que mas se adecua a su tarjeta de Red y dele continuar.

20

Ing. Carrasco Ore Nilo

Linux- Nivel Bsico

1.13.3.9. Configuracin de Red


Primero elija el nombre del servidor, puede presionar el botn de sugerencia para que le de una idea para el nombre. Segundo tiene tres Opciones Sin interfz de red <este caso es para estaciones de trabajo stand alone> Configuracin de Red va DHCP <para cuando tiene un servidor DHCP> Configuracin de red manual Si elige cualquiera de las dos primeras opciones por favor elija continuar. Y salte al siguiente paso. Si Eligio la tercera opcin tendr que ingresar los siguientes datos Direccin IP <IP-de su red> ejemplo: Mascara de Red <netnamsk> ejemplo: Encaminador <IP-router> ejemplo: (En este caso ingrese la direccin del router o tuviese) Servidor de Nombres <IP-DNS> ejemplo: 172.16.2.123 255.255.255.0 172.16.2.1 del servidor proxy si lo 206.105.138.36

1.13.3.10.

Seleccionar la Tarjeta de video

Tiene dos Opciones Usar lo detectado o configurarlo manualmente Usar la configuracin detectada automticamente Esta opcin es para los dos casos modelo y controlador Seleccionar la tarjeta de video manualmente y/o Seleccionar un controlador alternativo Una vez seleccionado dele continuar

1.13.3.11.

Seleccin del Monitor

Busque el nombre de marca y modelo de su monitor en la lista, si no lo encuentra utilice un controlador genrico o slatelo par configurarlo posteriormente

1.13.3.12.

Configuracin del Escritorio

Seleccione la opcin de resolucin y cantidad de colores en el que desea trabajar y dele continuar, si desea puede elegir la opcin prueba para verificar que se eligi la opcin correcta. Ing. Carrasco Ore Nilo 21

Linux- Nivel Bsico

1.13.3.13.

Configuracin del Usuario

En este paso crea la contrasea del sper usuario el cual es denominado como root. Por favor ingrese una contrasea no menor de 6 caracteres confrmelo y no se lo olvide Tambin le da la opcin de crear un usuario, de preferencia cree por lo menos uno Ingrese Su nombre Completo, el Nombre de Acceso, su contrasea y de la opcin aadir o agregar. Una ves creado el usuario e ingresado la contrasea del root le damos continuar

1.13.3.14.

Configuracin del Gestor de Arranque

El gestor de arranque es la aplicacin que permitir arrancar el sistema Linux, pero tambin puede administrar el arranque de otro sistema operativo si lo tuviese. Lo mas recomendable es que el gestor de arranque sea instalado en el sector de arranque Master Boot Record (MBR), si no lo desea puede instalarlo en el disco duro en una particin booteable y bootear desde un disquete. Tenemos dos opciones con respecto al gestor de arranque GRUB LILO Ninguno Gestor de Arranque en modo grfico Gestor estndar y es en modo texto no recomendable

Elegimos Lilo e instalarlo en el MBR En parmetros de Kernel no ingresamos nada, En caso de que nuestra instalacin sea sobre discos SCSI tendremos que seleccionar la opcin Usar el modo lineal (necesario para algunos discos SCSI) Le damos continuar < en este momento el sistema graba los archivos de configuracin>

1.13.3.15.

Crear un disco de Arranque.

Es importante que por lo menos tenga un disco de arranque, as es que si no lo tiene es mejor que no se salte esta opcin y lo genere. Genere el disco y dele continuar. <Una vez generado el disquete el sistema ejecuta el script de posinstalacin 22 Ing. Carrasco Ore Nilo

Linux- Nivel Bsico y finaliza la instalaci>

1.13.3.16.

Fin de la instalacin

Retire el cd y el disquete si lo tuviese y de clic en la opcin salir < en este momento el servidor se reinicia.>

Ing. Carrasco Ore Nilo 23

Linux- Nivel Bsico


2.

Conociendo el Entorno de UNIX

UNIX es un sistema operativo multitarea y multiusuario. Esto significa que puede haber mas de una persona usando un ordenador a la vez, cada uno de ellos ejecutando a su vez diferentes aplicaciones. (Esto difiere de MS-DOS, donde solo una persona puede usar el sistema en un momento dado). Bajo UNIX, para que los usuarios puedan identificarse en el sistema, deben presentarse (login), proceso que consta de dos pasos: Introducir el nombre de usuario (login) (el nombre con que ser identificado por el sistema), y una palabra de paso (password), la cual es su llave personal secreta para entrar en la cuenta. Como solo usted conoce su palabra de paso, nadie mas podr presentarse en el sistema con su nombre de usuario. En los sistemas UNIX tradicionales, el administrador del sistema asignara el nombre de usuario y una palabra de paso inicial en el momento de crear la cuenta de usuario. Como usted es el administrador del sistema, debe configurar su propia cuenta antes de poder presentarse. Adems, cada sistema UNIX tiene un nombre del sistema (hostname) asignado. Este "hostname" le da nombre a la maquina, adems de carcter y encanto. El nombre del sistema es usado para identificar maquinas en una red, pero incluso aunque la maquina no este en red, debera tener su nombre. 2.1. Secuencia de arranque

Cuando una computadora es encendida ejecuta una secuencia de pasos antes de cargar el sistema operativo:
Power INIT coordina el resto del proceso de arranque Bsqueda y ejecucin de INIT

Bsqueda de BIOS

Se ejecuta rc.sysinit

POST

Se ejecuta inittab

Bsqueda de MBR

Carga del Kernel

Se carga el runlevel

Carga de GRUB o LILOO

Ejecucin de GRUB o LILO

2.2.

Niveles de Arranque (INIT o RUNLEVELS)

Existen ocasiones en las que se necesita que el equipo opere en un estado determinado, por ejemplo cuando se requiere corregir algn problema de corrupcin en el disco duro. Surge el concepto de runlevel, el cual es un estado que le indica al equipo que servicios debe encender o apagar. Actualmente existen 7 niveles de arranque: 24 Ing. Carrasco Ore Nilo

Linux- Nivel Bsico

Normalmente Linux opera en el runlevel 3 (full-multiuser mode), pero existen 7 niveles en los que puede operar: 0 - (Halt) Detiene todos los servicios y apaga el equipo 1 - (Single User) Detiene todos los servicios de red, solo el acceso local est permitido y nada ms con el usuario root 2 - (Sin uso) Este nivel no es empleado y puede ser definido por el usuario 3 - (Full-multiuser) Completamente funcional, pero sin un login grfico 4 - (Sin uso) Este nivel no es empleado y puede ser definido por el usuario 5 - (Full-multiuser) Completamente funcional con login grfico 6 - (Reboot) Detiene todos los servicios y reinicia el equipo 2.3. Creacin de una cuenta

Antes de poder usar el sistema, deber configurarse una cuenta de usuario. Esto es necesario, porque no es buena idea usar la cuenta de root para los usos normales. La cuenta de root debera reservarse para el uso de comandos privilegiados y para el mantenimiento del sistema. Para crear su propia cuenta, necesita entrar en la cuenta de root y usar las ordenes useradd o adduser. 2.4. Presentacin en el sistema (loggin in)

En el momento de presentarse en el sistema, vera la siguiente lnea de comandos en la pantalla:


mousehouse login: __________

Ing. Carrasco Ore Nilo 25

Linux- Nivel Bsico Ahora, introduzca su nombre de usuario y pulse |_Return_.| Nuestro hroe Larry, tecleara lo siguiente:
mousehouse login: Larry Password:

Ahora introduzca la palabra de paso. Esta no ser mostrada en la pantalla conforme se va tecleando, por lo que debe teclear cuidadosamente. Si introduce una palabra de paso incorrecta, se mostrara el siguiente mensaje Login incorrect y deber intentarlo de nuevo. Una vez que ha introducido correctamente el nombre de usuario y la palabra de paso, esta oficialmente "presentado" en el sistema y libre para comenzar a trabajar. 2.5. Consolas virtuales

La consola del sistema es el monitor y teclado conectado directamente al sistema. (Como UNIX es un sistema operativo multiusuario, puede tener otros terminales conectados a puertos serie del sistema, pero estos no sern la consola). Linux, como otras versiones de UNIX, proporciona acceso a consolas virtuales (o VC's), las cuales le permitirn tener mas de una sesin de trabajo activa desde la consola a la vez. Para demostrar esto, entre en su sistema (como hemos visto antes). Ahora pulse |_alt-F2_.| Debera ver la pregunta login: de nuevo. Esta viendo la segunda consola virtual ha entrado en el sistema por la primera. Para volver a la primera VC, pulse |_alt-F1_.|Voila! ha vuelto a la primera sesin. Un sistema Linux recin instalado probablemente le permita acceder a las primeras seis VC's, usando |_alt-F1_ |a |_alt-F6_.| Como puede ver, el uso de VC's es muy potente puede estar trabajando en diferentes VC's a la vez. Mientras que el uso de VC's es algo limitado (despus de todo, solo puede mirar un VC cada vez), esto debera darle una idea de las capacidades multiusuario del sistema. Mientras esta trabajando en el VC #1, puede conmutar al VC #2 y comenzar a trabajar en otra cosa. 2.6. Interpretes de comandos y comandos

En la mayora de las exploraciones en el mundo de UNIX, estar hablando con el sistema a traves del uso de un interprete de comandos. Un interprete de comandos es simplemente un programa que toma la entrada del usuario (p.ej. las ordenes que teclea) y las traduce a instrucciones. Esto puede ser comparado con el COMMAND.COM de MS-DOS, el cual efecta esencialmente las misma tarea. El interprete de comandos es solo uno de los interfaces con UNIX. Hay muchos interfaces posibles como el sistema X Windows, el cual le permite ejecutar comandos usando el raton y el teclado. Tan pronto como entra en el sistema, el sistema arranca un interprete de comandos y Ud. ya puede teclear ordenes al sistema. Veamos un ejemplo rpido. Aqui, Larry entra en el sistema y es situado en el interprete de comandos 26

Ing. Carrasco Ore Nilo

Linux- Nivel Bsico

mousehouse login: Larry Password: larry's password Welcome to Mousehouse! /home/larry#

"/home/larry#" es el "prompt" del interprete de comandos, indicando que esta listo para recibir ordenes. Tratemos de decirle al sistema que haga algo interesante: /home/larry# make love make: *** No way to make target `love'. Stop. /home/larry#

Bien, como resulta que make es el nombre de un programa ya existente en el sistema, el interprete de comandos lo ejecuta. (Desafortunadamente, el sistema no esta siendo muy amigable). Esto nos lleva a una cuestion importante: >Que son ordenes? >Que ocurre cuando tecleamos "make love"? La primera palabra de la orden, "make", es el nombre de la orden a ejecutar. El resto de la orden es tomado como argumentos de la orden. Ejemplos: /home/larry# cp foo bar Aqui, el nombre de la orden es "cp", y los argumentos son "foo" y "bar". Cuando teclea una orden, el interprete de comandos hace varias cosas. Primero de todo, busca el nombre de la orden y comprueba si es una orden interna. (Es decir, una orden que el propio interprete de comandos sabe ejecutar por si mismo. Hay bastantes ordenes de ese tipo que veremos mas adelante). El interprete de comandos tambin comprueba si la orden es un "alias" o nombre sustitutorio de otra orden. Si no se cumple ninguno de estos casos, el interprete de comandos busca el programa y lo ejecuta pasndole los argumentos especificados en la linea de comandos. En nuestro ejemplo, el interprete de comandos busca el programa llamado make y lo ejecuta con el argumento love. make es un programa usado a menudo para compilar programas grandes, y toma como argumentos el nombre de un "objetivo" a compilar. En el caso de "make love", ordenamos a make que compile el objetivo love. Como make no puede encontrar un objetivo de ese nombre, falla enviando un mensaje de error y volviendo al interprete de comandos. >Que ocurre si tecleamos una orden y el interprete de comandos no puede encontrar el programa de ese nombre? Bien, probmoslo: /home/larry# eat dirt eat: command not found /home/larry# Ing. Carrasco Ore Nilo 27

Linux- Nivel Bsico

Bastante simple, si no se puede encontrar el programa con el nombre dado en la orden (aqui "eat"), se muestra un mensaje de error que debera de ser autoexplicativo. A menudo vera este mensaje de error si se equivoca al teclear una orden (por ejemplo, si hubiese tecleado "mkae love" en lugar de "make love". 2.7. Salida del sistema

Antes de ahondar mas, deberamos ver como salir del sistema. Desde la lnea de ordenes usaremos la orden para salir. Hay otras formas, pero esta es la mas fcil. /home/larry# exit 2.8. Ficheros y directorios

Bajo la mayora de los sistemas operativos (UNIX incluido), existe el concepto de fichero, el cual es un conjunto de informacin al que se le ha asignado un nombre (llamado nombre del fichero). Ejemplos de fichero son un mensaje de correo, o un programa que puede ser ejecutado. Esencialmente, cualquier cosa salvada en el disco es guardada en un fichero individual. Los ficheros son identificados por sus nombres. Por ejemplo, el fichero que contiene su historial podra ser salvado con el nombre history-paper. Estos nombres usualmente identifican el fichero y su contenido de alguna forma significativa para usted. No hay un formato estandar para los nombres de los ficheros como lo hay en MS-DOS y en otros sistemas operativos; en general estos pueden contener cualquier carcter (excepto / ), y estn limitados a 256 caracteres de longitud. Con el concepto de fichero aparece el concepto de directorio. Un directorio es simplemente una coleccin de ficheros. Puede ser considerado como una "carpeta" que contiene muchos ficheros diferentes. Los directorios tambin tienen nombre con el que los podemos identificar. Adems, los directorios mantienen una estructura de rbol; es decir, directorios pueden contener otros directorios. Un fichero puede ser referenciado por su nombre con camino, el cual esta constituido por su nombre, antecedido por el nombre del directorio que lo contiene. Por ejemplo, supongamos que Larry tiene un directorio de nombre papers que contiene tres ficheros: history-final, english-lit y masters-thesis. (Cada uno de los tres ficheros contiene informacin sobre tres de los proyectos en los que Larry esta trabajando). Para referirse al fichero english-lit, Larry puede especificar su camino: papers/english-lit Como puede ver, el directorio y el nombre del fichero van separados por un carcter /. Por esta razn, los nombres de fichero no pueden contener este carcter. Los usuarios de MS-DOS encontraran esta convencin familiar, aunque en el mundo MS-DOS se usa el carcter \). Como hemos mencionado, los directorios pueden anidarse uno dentro de otro. Por ejemplo, supongamos que Larry tiene otro directorio dentro de papers llamado cheat-sheet. El camino de este fichero seria papers/notes/cheat-sheet 28 Ing. Carrasco Ore Nilo

Linux- Nivel Bsico

Por lo tanto, el camino realmente es la "ruta" que se debe tomar para localizar a un fichero. El directorio sobre un subdirectorio dado es conocido como el directorio padre. Aqui, el directorio papers es el padre del directorio notes. 2.9. El rbol de directorios

La mayora de los sistemas UNIX tienen una distribucin de ficheros estndar, de forma que recursos y ficheros puedan ser fcilmente localizados. Esta distribucin forma el rbol de directorios, el cual comienza en el directorio "/", tambin conocido como "directorio raz". Directamente por debajo de / hay algunos subdirectorios importantes: /bin, /etc, /dev y /usr, entre otros. Estos a su vez contienen otros directorios con ficheros de configuracin del sistema, programas, etc. En particular, cada usuario tiene un directorio "home". Este es el directorio en el que el usuario guardara sus ficheros. En los ejemplos anteriores, todos los ficheros de Larry (como cheat-sheer y history-final) estaban contenidos en el directorio home de Larry. Usualmente, los directorios home de los usuarios cuelgan de /home y son nombrados con el nombre del usuario al que pertenecen. Por lo tanto, el directorio "home" de Larry es /home/Larry.
/ ________||bin |___dev | |___etc | |___home ________larry | | | |___sam |___ | lib |___proc | |___tmp | |

Fig. 3.1 En la figura 3.1 se muestra un rbol de directorio de ejemplo. Este debera darle una idea de como esta organizado en su sistema el rbol de directorios.

Ing. Carrasco Ore Nilo 29

Linux- Nivel Bsico 2.10. Directorio de trabajo actual

En cualquier momento, las ordenes que teclee al interprete de comandos son dadas en trminos de su directorio de trabajo actual. Puede pensar en su directorio actual de trabajo como en el directorio en el que actualmente esta "situado". Cuando entra en el sistema, su directorio de trabajo se inicializa a su directorio /home/larry en nuestro caso. En cualquier momento que referencie a un fichero, puede hacerlo en relacin a su directorio de trabajo actual, en lugar de especificar el camino completo del fichero. Vemos un ejemplo. Larry tiene el directorio papers, y papers contiene el fichero history-final. Si Larry quiere echar un vistazo a ese fichero, puede usar la orden /home/larry# more /home/larry/papers/history-final La orden more simplemente muestra el fichero, pantalla a pantalla. Pero, como el directorio de trabajo actual de Larry es /home/larry, podra haberse referido al fichero de forma relativa a su directorio de trabajo actual. La orden seria /home/larry# more papers/history-final Por lo tanto, si comienza el nombre de un fichero (como papers/final) con un carcter distinto a "/", el sistema supone que se esta refiriendo al fichero con su posicin relativa a su directorio de trabajo. Esto es conocido como camino relativo. Por otra parte, si comienza el nombre del fichero con "/", el sistema interpreta esto como un camino completo es decir, el camino al fichero completo desde el directorio raz, /. Esto es conocido como camino absoluto. 2.11. Refirindose al directorio home

Bajo tcsh y bash,1 el directorio "home" puede ser referenciado usando el carcter de la tilde ( ~ ). Por ejemplo, la orden /home/larry# more ~/papers/history-final es equivalente a /home/larry# more /home/larry/papers/history-final El carcter "~" es simplemente sustituido por el interprete de comandos, con el nombre del directorio home. Adems, tambin puede especificar otros directorios home de usuarios con la tilde. El camino "~karl/letters" es traducido por el interprete de ordenes a "/home/Karl/letters" (si /home/Karl es el directorio home de Karl). El uso de la tilde es simplemente un atajo; no existe ningn directorio llamado "~"_es simplemente una ayuda sintctica proporcionada por el interprete de comandos.
1

tcsh y bash son dos interpretes de comandos que corren bajo Linux. Un interprete de comandos es el programa que lee las ordenes del usuario y las ejecuta; la mayora de los sistemas Linux habilitan bash para las nuevas cuentas de usuario.

30

Ing. Carrasco Ore Nilo

Linux- Nivel Bsico


3.

Estructura del Sistema de Archivos de Linux

Linux Filesystem Structure standard (FSSTND)

Grupo de Standard de el Sistema de Archivos (FSSTND) 3.1.


bin boot dev etc home lib mnt root sbin tmp usr var

El Directorio Raz /
Binarios de comandos esenciales Archivos estticos de cargador de arranque(boot-loader) Archivos de dispositivos Configuracin del sistema local-mquina Directorios home de los usuarios Libreras compartidas Punto de montaje de particiones temporales Directorio hogar del usuario root Binarios del sistema esenciales Archivos temporales Segunda jerarqua mayor Informacin variable

3.2. /bin Binarios de comandos esenciales de usuarios (disponibles para todos los usuarios). bin contiene comandos que pueden ser utilizados por ambos los usuarios y /el administrador del sistema, pero que son requeridos en el modo /mono-usuario (single-user mode) puede tambin contener comandos que son /utilizados indirectamente por algunos scripts. Todos los binarios utilizables slo por root, tales como daemons,init,getty, update, etc. Estaran localizados en /sbin /usr/sbin dependiendo si son o no esenciales. No habr subdirectorios dentro de /bin. Los binarios de los comandos que no son suficientemente esenciales para estar en /bin estarn localizados en /usr/bin, los elementos que son utilizados por usuarios solamente (pero no por root) (mail,chsh, etc) no son suficientemente esenciales para estar dentro de la particin /. Archivos requeridos en /bin:

3.2.1. Comandos generales:


Los siguientes comandos han sido incluidos porque son esenciales. algunos estn presentes debido a que tradicionalmente han estado en /bin.
arch, cat, chgrp, chmod, chown, cp, date, dd, df, dmesg, echo, ed, false,kill, in, login, mxdir, mknod, more, mount, mv, ps, pwd, rm, rmdir, sed, setserial, sh, sfty, su, sinc, true, umount, uname.

Ing. Carrasco Ore Nilo 31

Linux- Nivel Bsico

3.2.2. Comandos para restauracin.


Estos comandos se han incluido para hacer posible el restaurar el sistema(siempre que / este intacto). tar, gzip, gunzip (enlace hacia gzip), zcat (enlace hacia gzip). Los comandos de restauracin pueden aparecer en, ya sea /bin /usr/bin en sistemas Linux diferentes.

3.2.3. Comandos de red.


stos son unicamente los binarios de red que los usuarios y root querrn o necesitarn ejecutar que no sean los que estan en /usr/bin /usr/local/bin
domainname, hostname, netstat, ping.

3.3. /boot: Archivos estticos del cargador de arranque (boot loader). Este directorio contiene todo para arrancar excepto los archivos de configuracin y el instalador de mapas. En su sentido ms sencillo /boot es para cualquier cosa que se utiliza antes de que el kernel ejecute /sbin/init. sto incluye sectores maestros de arranque (master boot sectors) guardados, archivos de mapeo de sectores y cualquier otra cosa que no es editada directamente a mano. Los programas necesarios para arreglar que el cargador de arranque sea capaz de arrancar un archivo (tal como el instalador de mapas [lilo] ) estarn localizados en /sbin. Los archivos de configuracin para cargadores de arranque podran estar localizados en /etc. El kernel de Linux puede estar localizado en / en /boot, si se localiza en /boot, recomendamos que se le d un nombre ms descriptivo. 3.4. /dev Archivos de dispositivos.

ste es el directorio de los dispositivos. Contendra un archivo por cada dispositivo que el kernel de Linux puede soportar. 3.5. /etc : Configuracin del sistema local a la mquina.

etc contiene archivos y directorios que son locales al sistema actual. Ningn binario debe ir directamente dentro de /etc. Los binarios que en el pasado se encontraban en /etc, irn en /sbin /usr/sbin. sto incluye archivos tales como init, getty y update. Los binarios tales como hostname que son utilizados por usuarios ordinarios y por root no iran en /sbin sino en /bin.
/etc --- Configuracin de sistemas locales de mquina.

32

Ing. Carrasco Ore Nilo

Linux- Nivel Bsico

X11 skel

Archivos de configuracin para el x11 Esqueletos de configuracin de usuarios

etc/skel es la localidad para los llamados archivos esqueletos de /usuarios, que le son dados por defecto cuando un nuevo usuario recibe una /cuenta, este directorio puede contener subdirectorios para diferentes /grupos de usuarios (i.e./etc/skell/apoyo, /etc/skell/usuarios). Estos archivos son necesarios en la mayora de los sistemas Linux.
adjtime, csh.login, disktab, fdprm, fstab, gettydefs, group, inittab, issue, ld.so.conf, lilo.conf, magic, motd, mtab, mtools, passwd, profile, psdatabase, securetty, shells, syslog.conf, tercamp, ttytype

3.5.1. Archivos de Red:


Estos archivos estaran instalados en la mayoria de los sistemas Linux.
exports, ftpusers, gateways, hosts, host.conf, host.equiv, host.lpd,inetd.conf, networks, printcap, protocols, resolv.conf.rpc, services

3.6.

/home: Directorios hogar de los usuarios (opcional)

home es un concepto algo estndar, pero es claramente un sistema de /archivos especfico de un site. El arreglo diferir de mquina a mquina. /Esta seccin describe una localizacin sugerida para los directorios hogar /de los usuarios, aun as, recomendamos que todas las distribuciones /Linux usen este lugar como la localizacin por defecto de los /directorios hogar. En sistemas pequeos, cada directorio de usuario es uno de los subdirectorios debajo de /home, p.ej. /home/smith, /home/torvalds, /home/operador, etc. En sistemas grandes (especialmente cuando los directorios /home son compartidos entre varias mquinas usando NFS) es til subdividir los directorios hogar. La subdivisin puede ser llevada a cabo utilizando subdirectorios tales como /home/apoyo, /home/huspedes, /home/estudiantes, etc. 3.7. /lib: Libreras escenciales compartidas y mdulos de kernel

El directorio /lib contiene aquellas imgenes de las libreras compartidas que se necesitan para arrancar el sistema y ejecutar los comandos en el sistema de archivos raz. lib --- libreras compartidas y modulos de kernel esenciales. Las libreras que son necesitadas slo por los binarios en /usr (como cualquier binario de X Window) no pertenecen a /lib. Slo las libreras compartidas requeridas para ejecutar los binarios dentro de /bin y /sbin deben estar aqu. Ing. Carrasco Ore Nilo 33

Linux- Nivel Bsico

3.8. /mnt: Punto de montaje para sistemas de archivos montados temporalmente. Este directorio se ha provisto para que el administador pueda montar temporalmente sistemas de archivos cuando lo necesite. El contenido de este directorio es un asunto local y no debe afectar la manera en la cual se ejecuta ningn programa. 3.9. /proc: Sistema de archivos virtual de informacion de procesos y del kernel. El sistema de archivos proc se est convirtiendo en el estndar de facto para el manejo de informacin de procesos y de sistema en vez de /dev/kmem y otros mtodos similares. Recomendamos fuertemente esto para el almacenamiento y obtencin de informacin de procesos asi como otra informacin del kernel y de memoria. 3.10. /root: Directorio hogar de root (opcional)

El directorio / es tradicionalmente el directorio hogar del usuario root en los sistemas UNIX. /root se usa en muchos sistemas Linux y en algunos sistemas UNIX. El directorio hogar de la cuenta de el usuario root puede ser determinada por el desarrollador o por preferencias locales. Las posibilidades obvias incluyen /, /root, y /home/root. NOTA: Recomendamos contra el uso de la cuenta root para cosa mundanas tales como leer el correo y ver las noticias (mail & news) sino que se use solamente para la administracin del sistema. 3.11. /sbin: Binarios del Sistema (Alguna vez mantenidos en /etc) Los tiles usados por la administracin del sistema ( y otros comandos que slo root utiliza ) estn almacenados en /sbin, /usr/sbin, y /usr/local/sbin. /sbin tpicamente contiene binarios escenciales para arrancar el sistema ademas de los binarios en /bin. Cualquier cosa que se ejecuta despus de que se sabe que /usr se ha montado (cuando no hay problemas) debera estar en /usr/sbin. Los binarios de administracin de sistema slo-locales deben estar localizados en /usr/local/sbin. Decidir que cosa va en los directorios de /sbin es sencillo: Si un usuario necesitar ejecutarlo, debe de ir en otro lado. Si slo ser ejecutado por el administrador del sistema o por root como scripts de administracin, entonces debe ir en /sbin (o en /usr/sbin o en /usr/local/sbin, si el archivo no es vital para la operacin del sistema). Archivos como chfn que los usuarios usan slo ocasionalmente deben aun estar en /usr/bin. ping aunque es absolutamente necesario para el root (recuperacin de la red y diagnstico) es tambien frecuentemente usado por los usuarios y por esa razon debe ir en /bin.

34

Ing. Carrasco Ore Nilo

Linux- Nivel Bsico Los usuarios ordinarios no tendrn que poner ninguno de los directorios sbin en su bsqueda (path). Recomendamos que los usuarios tengan permisos de lectura y ejecucin en todo lo que se encuentra en /sbin excepto tal vez ciertos programas; setuid y setgid. La divisin entre /sbin y /bin no fue creada por motivos de seguridad o para evitar que los usuarios vieran el sistema operativo, sino para proveer una buena particin entre binarios que todos usan y los que se usan, principalmente las tareas de administracin. No hay ganancia inherente en seguridad en hacer que /sbin este fuera del alcance de los usuarios. Archivos requeridos en /sbin:

3.11.1.

Comandos Generales.
init, update, mkswap, swapon, swapoff,

clock, getty, telinit.

3.11.2.

Comandos de Apagado.

fastboot, fasthalt, halt, reboot, shutdown.

3.11.3.

Comandos de manejo de sistemas de archivos.

fdisk, fsck, fsck.*, mkfs.

3.11.4.

Comandos de Red.

arp, ifconfig, route.

3.12.

tmp: Archivos temporales.

tmp se utiliza para archivos temporales, preferentemente en un /dispositivo rpido (un sistema de archivos basado en memoria por ejemplo) La "persistencia" de la informacion que es almacenada en /tmp es diferente de aquella que sea almacenada en /var/tmp. /tmp puede ser limpiada en cada arranque o a intervalos relativamente frecuentes. Por tanto, no se debe esperar que la informacion almacenada en /tmp permanezca por algn periodo largo de tiempo. Los administradores de sistemas pueden elegir enlazar /tmp a algun otro directorio, tal como /var/tmp; esto es til, por ejemplo, para conservar espacio en la particin raz. Si sto se lleva a cabo, entonces la persistencia de archivos en /var/tmp debe ser al menos tan larga como la de /tmp. tmp puede estar e un disco RAM. /var/tmp no debe nunca localizarse en /algun dispositivo RAM.

Ing. Carrasco Ore Nilo 35

Linux- Nivel Bsico

3.13.

La jerarqua /usr

usr es la segunda mayor seccin del sistema de archivos. /usr es /informacin compartible, de slo-lectura, esto significa que /usr, debe ser /compartible entre varias mquinas que corren Linux y no se debe /escribir. Cualquier informacin que es local a una mquina o vara con el /tiempo, se almacena en otro lugar.
/usr --- Segundo mayor punto de montaje (permanente) X11R6 X386 bin dict doc etc games include info lib local man sbir share arquitectura src Sistema X Window Version 11 release 6 Sistema X Windows Version 11 release 5 en plataformas X 86 La mayora de los comandos de usuario Listas de palabras Documentacin miscelnea Configuracin del Sistema (todo el site) Juegos y binarios educacionales Archivos header incluidos por programas C Directorio primario del sistema GNU Info Libreras Jerarqua local (vaca justo despus de la instalacin principal) Manuales en lnea Binarios de Administracin del Sistema NoVitales Informacin independiente de la Cdigo fuente

3.13.1.

/usr/local: Jerarqua local

La jerarqua /usr/local est para ser utilizada por el administrador del sistema cuando se instale el software localmente. Necesita estar a salvo de ser sobreescrito cuando el software del sistema se actualiza. Puede ser usado por programas y por informacin que son compartibles entre un grupo de mquinas, pero no se encuentran en /usr. El software instalado localmente debe estar localizado dentro de /usr/local, en vez de /usr a menos que este siendo instalado para reemplazar o actualizar el software en /usr.

3.13.2.

/usr/sbin: Binarios de sistema estndar no-esenciales.

Este directorio contiene cualesquier binario no-esencial utilizando exclusivamente por el administrador del sistema. Los programas de administracin del sistema que sean requeridos para la reparacin del sistema, recuperacin del sistema, montaje de /usr u otras funciones esenciales deben localizarse en /sbin en vez de aqu. Tpicamente /usr/sbin contiene los deamons de red, cualquier herramienta de administracin no-escencial y binarios para programas servidores no-crticos.

36

Ing. Carrasco Ore Nilo

Linux- Nivel Bsico

3.13.3.

/usr/src : Cdigo fuente.

Cualquier cdigo fuente no-local debe localizarse en este directorio. El nico cdigo fuente que siempre debe localizarse en un lugar especfico es el cdigo del kernel (cuando exista o est enlazado como parte de una estructura en /usr/include) 3.14.
/var

La Jerarqua /var
Informacin variable

Lib Informacin del estado de aplicaciones Local Informacin variable del software de /usr/local Lock Archivos de bloqueo log Archivos de bitcora named Archivos DNS, slo red nis Archivos base de datos NIS preserve Archivos almacenados despus de una falla de ex vi run Archivos relevantes a procesos ejecutndose spool Directorios de trabajos en fila para realizarse despus tmp Archivos temporales, utilizado para mantener /tmp pequeo

var contiene archivos con informacin variable. sto incluye archivos y /directorios en fila de ejecucin, informacin de bitcora administrativa y /archivos temporales y transitorios.

Ing. Carrasco Ore Nilo 37

Linux- Nivel Bsico


4.

Comandos UNIX

Antes de comenzar es importante destacar que todos los nombres de ficheros y comandos son "case-sensitive" (que hacen diferencia entre maysculas y minsculas, a diferencia de sistemas operativos como MS-DOS). Por ejemplo, el comando make es diferente a Make o MAKE. Lo mismo ocurre en el caso de nombres de ficheros o directorios.
4.1. Movindonos por el entorno

Ahora que ya podemos presentarnos como usuarios, y sabemos como indicar ficheros con su camino completo, >como podemos cambiar nuestro directorio de trabajo? La orden para movernos por la estructura de directorios es cd, abreviacin de "cambio de directorio". Hay que destacar, que la mayora de las ordenes UNIX mas usadas son de dos o tres letras. La forma de uso de la orden cd es: cd <directorio> donde <directorio> es el nombre del directorio al que queremos ir. Como dijimos, al entrar al sistema comenzamos en el directorio "home". Si Larry quiere ir al subdirectorio papers, debera usar la orden /home/larry# cd papers /home/larry/papers# Como se puede ver, la linea de comandos de Larry cambia para mostrar su directorio actual de trabajo. Ahora que ya esta en el directorio papers puede echarle un vistazo a su fichero history-final con el comando /home/larry/papers# more history-final Ahora Larry esta en el subdirectorio papers, para volver al directorio padre de este, usara la orden /home/larry/papers# cd .. /home/larry#

(Dese cuenta del espacio entre "cd" y ".."). Cada directorio tiene una entrada de nombre ".." la cual se refiere al directorio padre. De igual forma, existe en cada directorio la entrada "." la cual se refiere a si mismo. As que el comando nos deja donde estamos. /home/larry/papers# cd . /home/larry/papers# Tambin pueden usarse nombres con el camino absoluto en la orden cd. Para ir al directorio de Karl con cd, introduciremos la siguiente orden.

38

Ing. Carrasco Ore Nilo

Linux- Nivel Bsico /home/larry/papers# cd /home/Karl /home/karl# Tambin, usando cd sin argumentos nos llevara a nuestro directorio de origen. /home/karl# cd /home/larry# 4.2. Mirando el contenido de los directorios

Ahora que ya sabe como moverse por los directorios probablemente pensara: >Y bien? El simple movimiento por el rbol de directorios es poco til, necesitamos un nuevo comando, ls. ls muestra por el terminal la lista de ficheros y directorios, por defecto, los del directorio activo. Por ejemplo; /home/larry# ls Mail letters papers /home/larry# Aqu podemos ver que Larry tiene tres entradas en su directorio actual: Mail, letters y papers. Esto no nos dice demasiado >son ficheros o directorios?. Podemos usar la opcion -F de la orden ls para obtener mas informacin. /home/larry# ls -F Mail/ letters/ papers/ /home/larry#

Por el carcter / aadido a cada nombre sabemos que las tres entradas son subdirectorios. La orden ls -F puede tambin aadir al final "*", esto indica que es un fichero ejecutable. Si ls -F no aade nada, entonces es un fichero normal, es decir no es ni un directorio ni un ejecutable. Por lo general cada orden UNIX puede tomar una serie de opciones definidas en forma de argumentos. Estos usualmente comienzan con el carcter "-", como vimos antes con ls -F. La opcion -F le dice a ls que de mas informacin sobre el tipo de ficheros en este caso aadiendo un / detrs de cada nombre de un directorio. Si a ls le pasamos un nombre de directorio, mostrara el contenido de ese directorio. /home/larry# ls -F papers english-lit history-final masters-thesis notes/ /home/larry# Vayamos al directorio raz con "cd .." y desde all vayamos al directorio /usr/bin. Ing. Carrasco Ore Nilo 39

Linux- Nivel Bsico

/home/larry# cd .. /home# cd .. /# cd usr /usr# cd bin /usr/bin# Tambin podemos movernos dentro de directorios en mltiples pasos, como en cd /usr/bin. Trate de moverse por varios directorios usando ls y cd. En algunos casos podr encontrarse el desagradable mensaje de error "Permission denied". Esto simplemente es debido a cuestiones de seguridad del UNIX. Para poder moverse o listar un directorio debe de tener permisos para poder hacerlo. 4.3. Creando directorios nuevos

Es el momento de aprender a crear directorios. Para ello se usa la orden mkdir. Pruebe lo siguiente: /home/larry# mkdir foo /home/larry# ls -F Mail/ foo/ letters/ papers/ /home/larry# cd foo /home/larry/foo# ls /home/larry/foo# <Enhorabuena! Acaba de crear un directorio nuevo y moverse a el. Como no hay ningn fichero en el directorio nuevo, veamos como copiar ficheros desde un lugar a otro. 4.4. Copia de ficheros

La copia de ficheros es efectuada por la orden cp: /home/larry/foo# cp /etc/termcap . /home/larry/foo# cp /etc/shells . /home/larry/foo# ls -F shells termcap /home/larry/foo# cp shells bells /home/larry/foo# ls -F bells shells termcap /home/larry/foo# La orden cp copia los ficheros listados en la linea de comandos al fichero o directorio pasado como ultimo argumento. Ntese como se usa el directorio "." para referirnos al directorio actual.

40

Ing. Carrasco Ore Nilo

Linux- Nivel Bsico 4.5. Moviendo ficheros

La orden mv mueve ficheros en lugar de copiarlos. La sintaxis es muy sencilla. /home/larry/foo# mv termcap sells /home/larry/foo# ls -F bells sells shells /home/larry/foo# Ntese como termcap ya no existe, en su lugar esta el fichero sells. Esta orden puede usarse para renombrar ficheros, como acabamos de hacer, pero tambin para mover ficheros a directorios diferentes. Nota: mv y cp sobrescribirn los ficheros destino (si ya existen) sin consultar. Sea cuidadoso cuando mueva un fichero a otro directorio: puede haber ya un fichero con el mismo nombre que ser sobrescrito. Borrando ficheros y directorios

4.6.

Para borrar un fichero, use la orden rm. ("rm" viene de "remove"). /home/larry/foo# rm bells sells /home/larry/foo# ls -F shells /home/larry/foo# Nos hemos quedado solo con el fichero "shells", pero no nos quejaremos. Ntese que rm por defecto no preguntara antes de borrar un fichero luego, sea cuidadoso. Una orden relacionada con rm es rmdir. Esta orden borra un directorio, pero solo si esta vaco. Si el directorio contiene ficheros o subdirectorios, rmdir se quejara. 4.7. Mirando los ficheros

Las ordenes more y cat son usadas para ver el contenido de ficheros. more muestra el fichero pantalla a pantalla mientras que cat lo muestra entero de una vez. Para ver el contenido del fichero shells podemos usar la orden /home/larry/foo# more shells Por si esta interesado en el contenido de shells, es una lista de interpretes de comandos validos disponibles en el sistema. En la mayora de los sistemas incluye /bin/sh, /bin/bash y /bin/csh. Durante la ejecucin de more pulse |_Space_ |para avanzar a la pagina siguiente y |_b_|para_volver a la pagina anterior. Hay otros comandos disponibles, los citados son solo los mas basicos. |_q_| finalizara la ejecucin de more. Salga de more y pruebe cat /etc/termcap. El texto probablemente pasara demasiado rpido como para poder leerlo. El nombre "cat" viene de "concatnate", que es para lo que realmente sirve el programa. La orden cat puede ser usada para concatenar el contenido de varios ficheros y guardar el resultado en otro fichero. Esto se discutir mas adelante. Ing. Carrasco Ore Nilo 41

Linux- Nivel Bsico

4.8.

Obteniendo ayuda en lnea

Prcticamente cada sistema UNIX, incluido Linux, proporciona una utilidad conocida como "paginas de manual". Estas paginas contienen documentacin en linea para todas las ordenes del sistema, recursos, ficheros de configuracin, etc. La orden usada para acceder a las paginas de manual es man. Por ejemplo, si esta interesado en conocer otras opciones de la orden ls, puede escribir /home/larry# man ls y le ser mostrada la pagina de manual para ls. 4.9. Sumario de Ordenes Bsicas

Esta seccin introduce algunos de las ordenes bsicas mas tiles de un sistema UNIX, incluidas las ya cubiertas en las secciones anteriores. Ntese que las opciones usualmente comienzan con "-" y en la mayora de los casos se pueden aadir mltiples opciones de una letra con un nico "-". Por ejemplo, en lugar de usar ls -l -F es posible usar ls -lF. En lugar de listar todas las opciones disponibles para cada uno de los comandos solo hablaremos de aquellas mas tiles o importantes. De hecho, la mayora de las ordenes tienen un gran numero de opciones (muchas de las cuales nunca usara). Puede usar man para ver las paginas de manual de cada orden, la cual mostrara la lista completa de opciones disponibles. Ntese tambin, que la mayora de las ordenes toman una lista de ficheros o directorios como argumentos, denotados como "<fichero1> . . . <ficheroN>". Por ejemplo, la orden cp toma como argumentos la lista de ficheros a copiar, seguidos del fichero o directorio destino. Cuando se copia mas de un fichero, el destino debe de ser un directorio.

cd

Cambia el directorio de trabajo actual. Sintaxis: cd <directorio> <directorio> es el directorio al que cambiamos. ("." se refiere al directorio actual,".." al directorio padre.) Ejemplo: cd ../foo pone ../foo como directorio actual. Muestra informacin sobre los ficheros o directorios indicados. Sintaxis: ls <fichero1> <fichero2> ...<ficheroN> Donde <fichero1> a <ficheroN> son los ficheros o directorios a listar. Opciones: Hay mas opciones de las que podra suponer. Las mas usadas comnmente son: -F (usada para mostrar informacin sobre el tipo de fichero), y -l (da un listado "largo" incluyendo tamao, propietario, permisos, etc. Trataremos esto en detalle mas adelante.) Ejemplo: ls -lF /home/larry mostrara el contenido del directorio /home/larry. Copia fichero(s) en otro fichero o directorio. Sintaxis: cp <fichero1> <fichero2> ...<ficheroN> <destino>

ls

cp

42

Ing. Carrasco Ore Nilo

Linux- Nivel Bsico Donde <fichero1> a <ficheroN> son los ficheros a copiar, y <destino> es el fichero o directorio destino. Ejemplo: cp ../frog joe copia el fichero ../frog al fichero o directorio joe. mv Mueve fichero(s) a otro fichero o directorio. Es equivalente a una copia seguida del borrado del original. Puede ser usado para renombrar ficheros, como el comando MS-DOS RENAME. Sintaxis: mv <fichero1> <fichero2> ...<ficheroN> <destino> Donde <fichero1> a <ficheroN> son los ficheros a "mover" y <destination> es el fichero o directorio destino. Ejemplo: mv ../frog joe mueve el fichero ../frog al fichero o directorio joe. Borra ficheros. Ntese que cuando los ficheros son borrados en UNIX, son irrecuperables (a diferencia de MS-DOS, donde usualmente se puede recuperar un fichero borrado). Sintaxis: rm <fichero1> <fichero2> ...<ficheroN> Donde <fichero1> a <ficheroN> son los nombres de los ficheros a borrar. Opciones: -i pedir confirmacin antes de borrar un fichero. Ejemplo: rm -i /home/larry/joe /home/larry/frog borra los ficheros joe y frog en /home/larry.

rm

mkdir Crea directorios nuevos. Sintaxis: mkdir <dir1> <dir2> ...<dirN> Donde <dir1> a <dirN> son los directorios a crear. Ejemplo: mkdir /home/larry/test crea el directorio test colgando de /home/larry. rmdir Esta orden borra directorios vacos. Al usar rmdir, el directorio de trabajo actual no debe de estar dentro del directorio a borrar. Sintaxis: rmdir <dir1> <dir2> ...<dirN> Donde <dir1> a <dirN> son los directorios a borrar. Ejemplo: rmdir /home/larry/papers borra el directorio /home/larry/papers si esta vaco. man Muestra la pagina de manual del comando o recurso (cualquier utilidad del sistema que no es un comando, como funciones de librera) dado. Sintaxis: man <command> Donde <command> es el nombre del comando o recurso sobre el que queremos obtener la ayuda Ejemplo: man ls muestra ayuda sobre la orden ls.

more Muestra el contenido de los ficheros indicados, una pantalla cada vez. Sintaxis: more <fichero1> <fichero2> ...<ficheroN> Donde <fichero1> a <ficheroN> son los ficheros a mostrar. Ejemplo: more papers/history-final muestra por el terminal el contenido del fichero papers/history-final. cat Oficialmente usado para concatenar ficheros, cat tambin es usado para mostrar el contenido completo de un fichero de una vez. Ing. Carrasco Ore Nilo 43

Linux- Nivel Bsico Sintaxis: cat <fichero1> <fichero2> ...<ficheroN> Donde <fichero1> a <ficheroN> son los ficheros a mostrar. Ejemplo: cat letters/from-mdw muestra por el terminal el contenido del fichero letters/from-mdw. echo Simplemente enva al terminal los argumentos pasados. Sintaxis: echo <arg1> <arg2> ...<argN> Donde <arg1> a <argN> son los argumentos a mostrar. Ejemplo: echo ``Hola mundo'' muestra la cadena "Hola mundo".

grep Muestra todas las lneas de un fichero dado que coinciden con un cierto patrn. Sintaxis: grep <patrn> <fichero1> <fichero2> ...<ficheroN> Donde <patrn> es una expresin regular y <fichero1> a <ficheroN> son los ficheros donde buscar. Ejemplo: grep loomer /etc/hosts mostrara todas las lneas en el fichero /etc/hosts que contienen la cadena "loomer".

44

Ing. Carrasco Ore Nilo

Linux- Nivel Bsico


5.

Tipos de interpretes de comandos

Como hemos mencionado anteriormente en numerosas ocasiones, UNIX es un sistema operativo multitarea y multiusuario. La multitarea es muy til, y una vez la haya probado, la usara continuamente. En poco tiempo podr ejecutar programas "de fondo", conmutar entre mltiples tareas y "entubar" programas unos entre otros para conseguir resultados complejos con un nico comando. Muchas de las caractersticas que trataremos en esta seccin son proporcionadas por el interprete de comandos. Hay que tener cuidado en no confundir UNIX (el sistema operativo) con el interprete de comandos- este ultimo, es un interface con el sistema que hay debajo. El interprete de comandos proporciona la funcionalidad sobre el UNIX. El interprete de comandos no es solo un interprete interactivo de los comandos que tecleamos, es tambin un potente lenguaje de programacin, el cual permite escribir guiones, que permiten juntar varias ordenes en un fichero. Los usuarios de MS-DOS reconocern esto como los ficheros "batch". El uso de los guiones del interprete de comandos es una herramienta muy potente que le permitir automatizar e incrementar el uso de UNIX. Hay varios tipos de interpretes de comandos en el mundo UNIX. Los dos mas importantes son el "Bourne shell" y el "C shell". 5.1. Caracteres comodn

Una caracterstica importante de la mayora de los interpretes de comandos en UNIX es la capacidad para referirse a mas de un fichero usando caracteres especiales. Estos llamados comodines le permiten referirse a, por ejemplo, todos los ficheros que contienen el carcter n". El comodn "*" hace referencia cualquier carcter o cadena de caracteres en el fichero. Por ejemplo, cuando usa el carcter "*" en el nombre de un fichero, el interprete de comandos lo sustituye por todas las combinaciones posibles provenientes de los ficheros en el directorio al cual nos estamos refiriendo. Veamos un ejemplo rpido. Supongamos que Larry tiene los ficheros frog, joe y stuff en el directorio actual. /home/larry# ls frog joe /home/larry#

stuff

Para acceder a todos los ficheros con la letra "o" en su nombre, hemos de usar la orden /home/larry# ls *o* frog joe /home/larry# Como puede ver, el comodn "*" ha sido sustituido con todas las combinaciones posibles que coincidan de entre los ficheros del directorio actual.

Ing. Carrasco Ore Nilo 45

Linux- Nivel Bsico El uso de "*" solo, simplemente se refiere a todos los ficheros, puesto que todos los caracteres coinciden con el comodn. /home/larry# ls * frog joe stuff /home/larry# Veamos unos pocos ejemplos mas. /home/larry# ls f* frog /home/larry# ls *ff stuff /home/larry# ls *f* frog stuff /home/larry# ls s*f stuff /home/larry# El proceso de la sustitucin de "*" en nombres de ficheros es llamado expansin de comodines y es efectuado por el interprete de comandos. Esto es importante: las ordenes individuales, como ls, nunca ven el "*" en su lista de parmetros. Es el interprete quien expande los comodines para incluir todos los nombres de ficheros que se adaptan. Luego la orden /home/larry# ls *o* es expandida para obtener /home/larry# ls frog joe Una nota importante acerca del carcter comodn "*". El uso de este comodn NO cuadrara con nombres de ficheros que comiencen con un punto ("."). Estos ficheros son tratados como "ocultos" aunque no estn realmente ocultos, simplemente no son mostrados en un listado normal de ls y no son afectados por el uso del comodn "*". He aqui un ejemplo. Ya hemos mencionado que cada directorio tiene dos entradas especiales: "." que hace referencia al directorio actual y ".." que se refiere al directorio padre. De cualquier forma, cuando use ls esas dos entradas no se mostraran. /home/larry# ls frog joe stuff /home/larry# Si usa el parmetro -a con ls podr ver nombres de ficheros que comienzan por ".". Observe: /home/larry# ls -a . .. .bash_profile .bashrc frog joe stuff /home/larry#

Ahora podemos ver las dos entradas especiales, "." y "..", as como otros dos ficheros "ocultos"_.bash_profile y .bashrc. Estos dos ficheros son usados en el arranque por bash cuando larry se presenta al sistema. 46 Ing. Carrasco Ore Nilo

Linux- Nivel Bsico

Otro carcter comodn es "?". Este carcter comodn solo expande un nico carcter. Luego "ls?" mostrara todos los nombres de ficheros con un carcter de longitud, y "ls termca?" mostrara "termcap" pero no "termcap.backup". Aqui tenemos otro ejemplo: /home/larry# ls j?e joe /home/larry# ls f??g frog /home/larry# ls ????f stuff Como puede ver, los caracteres comodn le permiten referirse a mas de un fichero a la vez. En el resumen de ordenes en la Seccin 3.4 dijimos que cp y mv pueden copiar o mover mltiples ficheros de una vez. Por ejemplo, /home/larry# cp /etc/s* /home/larry copiara todos los ficheros de /etc que comiencen por "s" al directorio /home/larry. Por lo tanto,el formato de la orden cp es realmente cp <fichero1> <fichero2> <fichero3> ...<ficheroN> <destino> donde <fichero1> a <ficheroN> es la lista de los ficheros a copiar, y <destino> es el fichero o directorio destino donde copiarlos. mv tiene idntica sintaxis. Ntese que si esta copiando o moviendo mas de un fichero, <destino> debe ser un directorio. Solo puede copiar o mover un nico fichero a otro fichero.

Ing. Carrasco Ore Nilo 47

Linux- Nivel Bsico


6.

Fontanera UNIX 6.1. Entrada y salida estandard

Muchos comandos UNIX toman su entrada de algo conocido como entrada estandard y envan su salida a la salida estandar (a menudo abreviado como "stdin" y "stdout"). El interprete de comandos configura el sistema de forma que la entrada estandar es el teclado y la salida la pantalla. Veamos un ejemplo con el comando cat. Normalmente cat lee datos de los ficheros cuyos nombres se pasan como argumentos en la linea de comandos y enva estos datos directamente a la salida estandar. Luego, usando el comando /home/larry/papers# cat history-final masters-thesis mostrara por pantalla el contenido del fichero history-final seguido por mastersthesis. Si no se le pasan nombres de ficheros a cat como parmetros, leer datos de stdin y los enviara a stdout. Veamos un ejemplo. /home/larry/papers# cat Hello there. Hello there. Bye. Bye._____ |_ctrl-D_ | /home/larry/papers# Como se puede ver, cada linea que el usuario teclea (impresa en itlica) es inmediatamente reenviada al monitor por cat. Cuando se esta leyendo de la entrada estandar, los comandos reconocen el fin de la entrada de datos cuando reciben el carcter EOT (end-of-text, fin de texto). Normalmente es generado con la combinacin |_ctrl-D_.| Veamos otro ejemplo. El comando sort toma como entrada lneas de texto (de nuevo leer desde stdin si no se le proporcionan nombres de ficheros en la linea de comandos), y devuelve la salida ordenada a stdout. Pruebe lo siguiente: /home/larry/papers# sort bananas carrots apples |_ctrl-D_ | apples bananas carrots /home/larry/papers#

48

Ing. Carrasco Ore Nilo

Linux- Nivel Bsico 6.2. Redireccionando la entrada y salida

Ahora, supongamos que queremos que la salida de sort vaya a un fichero para poder salvar la lista ordenada de salida. El interprete de comandos nos permite redireccionar la salida estandar a un fichero usando el smbolo ">". Veamos como funciona. /home/larry/papers# sort > shopping-list bananas carrots apples___ |_ctrl-D_ | /home/larry/papers# Como puede ver, el resultado de sort no se muestra por pantalla, en su lugar es salvado en el fichero shopping-list. Echemos un vistazo al fichero. /home/larry/papers# cat shopping-list apples bananas carrots /home/larry/papers# Supongamos ahora que tenamos guardada nuestra lista de compra desordenada original en el fichero tems. Una forma de ordenar la informacin y salvarla en un fichero podra ser darle a sort el nombre del fichero a leer en lugar de la entrada estandar y redireccionar la salida estandar como hicimos arriba. /home/larry/papers# sort tems > shopping-list /home/larry/papers# cat shopping-list apples bananas carrots Hay otra forma de hacer esto. No solo puede ser re-direccionada la salida estandar, tambin puede ser re-direccionada la entrada estandar usando el smbolo "<". /home/larry/papers# sort < tems apples bananas carrots /home/larry/papers#

Tcnicamente, sort < tems es equivalente a sort tems, pero nos permite demostrar que sort < tems se comporta como si los datos del fichero fueran tecleados por la entrada estandar. El interprete de comandos es quien maneja las redirecciones. sort no recibe el nombre del fichero (tems) a leer, desde el punto de vista de sort, esta leyendo datos de la entrada estandar como si fueran tecleados desde el teclado.

Ing. Carrasco Ore Nilo 49

Linux- Nivel Bsico Esto introduce el concepto de filtro. Un filtro es un programa que lee datos de la entrada estandar, los procesa de alguna forma, y devuelve los datos procesados por la salida estandar. Usando la redireccion la entrada estandar y/o salida estandar pueden ser referenciadas desde ficheros. Sort es un filtro simple: ordena los datos de entrada y enva el resultado a la salida estandar. cat es incluso mas simple, no hace nada con los datos de entrada, simplemente enva a la salida cualquier cosa que le llega. 6.3. Uso de tuberas (pipes)

Ya hemos visto como usar sort como un filtro. Pero estos ejemplos suponen que tenemos los datos en un fichero en alguna parte o vamos a introducir los datos manualmente por la entrada estandar. Que pasa si los datos que queremos ordenar provienen de la salida de otro comando, como ls?. Por ejemplo, usando la opcion -r con sort ordenaremos los datos en orden inverso. Si queremos listar los ficheros en el directorio actual en orden inverso, una forma podra ser. /home/larry/papers# ls english-list history-final masters-thesis notes /home/larry/papers# ls > file-list /home/larry/papers# sort -r file-list notes masters-thesis history-final english-list /home/larry/papers# Aqu, salvamos la salida de ls en un fichero, y entonces ejecutamos sort -r sobre ese fichero. Pero esta forma necesita crear un fichero temporal en el que salvar los datos generados por ls. La solucin es usar las pipes 3 . El uso de pipes es otra caracterstica del interprete de comandos, que nos permite conectar una cadena de comandos en un "pipe", donde la stdout del primero es enviada directamente a la stdin del segundo y as sucesivamente. Queremos conectar la salida de ls con la entrada de sort. Para crear un pipe se usa el smbolo "|": /home/larry/papers# ls | sort -r notes masters-thesis history-final english-list /home/larry/papers# Esta forma es mas corta y obviamente mas facil de escribir. Otro ejemplo til usando el comando
3

tuberias

50

Ing. Carrasco Ore Nilo

Linux- Nivel Bsico

/home/larry/papers# ls /usr/bin mostrara una lista larga de los ficheros, la mayora de los cuales pasara rpidamente ante nuestros ojos sin que podamos leerla. En lugar de esto, usemos more para mostrar la lista de ficheros en /usr/bin. /home/larry/papers# ls /usr/bin | more Ahora podemos ir avanzando pagina a pagina cmodamente. Podemos "entubar" mas de dos comandos a la vez. El comando head es un filtro que muestra la primeras lneas del canal de entrada (aqui la entrada desde una pipe). Si queremos ver el ultimo fichero del directorio actual en orden alfabtico, usaremos: /home/larry/papers# ls | sort -r | head -1 notes /home/larry/papers# Donde head -1 simplemente muestra la primera linea de la entrada que recibe en este caso, el flujo de datos ordenados inversamente provenientes de ls). 6.4. Redireccin no destructiva

El uso de ">" para redireccionar la salida a un fichero es destructivo: en otras palabras, el comando /home/larry/papers# ls > file-list sobrescribe el contenido del fichero file-list. Si en su lugar, usamos el smbolo ">>", la salida ser aadida al final del fichero nombrado, en lugar de ser sobrescrito. /home/larry/papers# ls >> file-list aadir la salida de ls al final de file-list.

Ing. Carrasco Ore Nilo 51

Linux- Nivel Bsico


7.

Permisos de Ficheros 7.1. Conceptos de permisos de ficheros

Al ser UNIX un sistema multiusuario, para proteger ficheros de usuarios particulares de la manipulacin por parte de otros, UNIX proporciona un mecanismo conocido como permisos de ficheros. Este mecanismo permite que ficheros y directorios "pertenezcan" a un usuario en particular. Por ejemplo, como Larry creo ficheros en su directorio "home", Larry es el propietario de esos ficheros y tiene acceso a ellos. UNIX tambin permite que los ficheros sean compartidos entre usuarios y grupos de usuarios. Si Larry lo desea, podra restringir el acceso a sus ficheros de forma que ningn otro usuario tenga acceso. De cualquier modo, en la mayora de los sistemas por defecto se permite que otros usuarios puedan leer tus ficheros pero no modificarlos o borrarlos. Los permisos estn divididos en tres tipos: lectura, escritura y ejecucin. Estos permisos pueden ser fijados para tres clases de usuarios: el propietario del fichero, el grupo al que pertenece el fichero y para todos los usuarios independientemente del grupo. El permiso de lectura permite a un usuario leer el contenido del fichero o en el caso de un directorio, listar el contenido del mismo (usando ls). El permiso de escritura permite a un usuario escribir y modificar el fichero. Para directorios, el permiso de escritura permite crear nuevos ficheros o borrar ficheros ya existentes en dicho directorio. Por ultimo, el permiso de ejecucin permite a un usuario ejecutar el fichero si es un programa o guin del interprete de comandos. Para directorios, el permiso de ejecucin permite al usuario cambiar al directorio en cuestion con cd. 7.2. Interpretando los permisos de ficheros

Veamos un ejemplo del uso de permisos de ficheros. Usando el comando ls con la opcion -l se mostrara un listado "largo" de los ficheros, el cual incluye los permisos de ficheros. /home/larry/foo# ls -l stuff -rw-r--r-- 1 larry /home/larry/foo# El primer campo impreso en el listado representa los permisos de ficheros. El tercer campo es el propietario del fichero (larry), y el cuarto es el grupo al cual pertenece el fichero (users). Obviamente, el ultimo campo es el nombre del fichero (stuff), y los dems campos los trataremos mas adelante. Este fichero pertenece a larry y al grupo users. Echemos un vistazo a los permisos. La cadena -rw-r--r-- nos informa, por orden, de los permisos para el propietario, el grupo del fichero y cualquier otro usuario. El primer carcter de la cadena de permisos ("-") representa el tipo de fichero. El "" significa que es un fichero regular. Las siguientes tres letras ("rw-") representan 52 Ing. Carrasco Ore Nilo users 505 Mar 13 19:05 stuff

Linux- Nivel Bsico los permisos para el propietario del fichero, larry. El "r" para "lectura" y "w" para escritura. Luego Larry tiene permisos de lectura y escritura para el fichero stuff. Como ya mencionamos, aparte de los permisos de lectura y escritura esta el permiso de "ejecucin", representado por una "x". Como hay un "-" en lugar del "x", significa que Larry no tiene permiso para ejecutar ese fichero. Esto es correcto, puesto que stuff no es un programa de ningn tipo. Los siguientes tres caracteres, r-- representan los permisos para los miembros del grupo. El grupo al que pertenece el fichero es users. Como solo aparece un "r" cualquier usuario que pertenezca al grupo users puede leer este fichero. Los ltimos tres caracteres, tambin r--, representan los permisos para cualquier otro usuario del sistema (diferentes del propietario o de los pertenecientes al grupo users). De nuevo, como solo esta presente el "r", los dems usuarios pueden leer el fichero, pero no escribir en el o ejecutarlo. Aqu tenemos otros ejemplos de permisos de grupo. -rwxr-xr-x El propietario del fichero puede leer, escribir y ejecutar el fichero. Los usuarios pertenecientes al grupo del fichero, y todos los dems usuarios pueden leer y ejecutar el fichero. El propietario del fichero puede leer y escribir. Nadie mas puede acceder al fichero. Todos los usuarios pueden leer, escribir y ejecutar el fichero.

-rw-------

-rwxrwxrwx 7.3.

Dependencias

Es importante darse cuenta de que los permisos de un fichero tambin dependen de los permisos del directorio en el que residen. Por ejemplo, aunque un fichero tenga los permisos -rwxrwxrwx, otros usuarios no podrn acceder a el a menos que tambin tengan permiso de lectura y ejecucin para el directorio en el cual se encuentra el fichero. Si Larry quiere restringir el acceso a todos sus ficheros, podra simplemente poner los permisos de su directorio "home" /home/larry a -rwx------. De esta forma ningn usuario podr acceder a su directorio ni a ninguno de sus ficheros o subdirectorios. Larry no necesita preocuparse de los permisos individuales de cada uno de sus ficheros. En otras palabras, para acceder a un fichero, debes de tener permiso de ejecucin de todos los directorios a lo largo del camino de acceso al fichero, adems de permiso de lectura (o ejecucin) del fichero en particular. Habitualmente, los usuarios de un sistema UNIX son muy abiertos con sus ficheros. Los permisos que se dan a los ficheros usualmente son -rw-r--r--, lo que permite a todos los dems usuarios leer los ficheros, pero no modificarlos de ninguna forma. Los directorios, usualmente tienen los permisos -rwxr-xr-x, lo que permite que los dems usuarios puedan moverse y ver los directorios, pero sin poder crear o borrar nuevos ficheros en ellos.

Ing. Carrasco Ore Nilo 53

Linux- Nivel Bsico 7.4. Cambiando permisos

El comando chmod se usa para establecer los permisos de un fichero. Solo el propietario puede cambiar los permisos del fichero. La sintaxis de chmod es: chmod {a,u,g,o}{+,-}{r,w,x} <filenames> Brevemente, indicamos a que usuarios afecta all, user, group o other. Entonces se especifica si se estn aadiendo permisos (+) o quitndolos (-). Finalmente se especifica que tipo de permiso Read, write o execute. Algunos ejemplos: chmod a+r stuff Da a todos los usuarios acceso al fichero. chmod +r stuff Como arriba_ si no se indica a, u, g o o por defecto se toma a. chmod og-x stuff Quita permisos de ejecucin a todos los usuarios excepto al propietario. chmod u+rwx stuff Permite al propietario leer, escribir y ejecutar el fichero. chmod o-rwx stuff Quita permisos de lectura, escritura y ejecucin a todos los usuarios menos al propietario y a los usuarios del grupo del fichero. 7.5. Manejando enlaces de ficheros

Los enlaces le permiten dar a un nico fichero mltiples nombres. Los ficheros son identificados por el sistema por su numero de inodo, el cual es el nico identificador del fichero para el sistema de ficheros 4 . Un directorio es una lista de nmeros de inodo con sus correspondientes nombres de fichero. Cada nombre de fichero en un directorio es un enlace a un inodo particular.

7.5.1. Enlaces duros (Hard links)


La orden ln es usada para crear mltiples enlaces para un fichero. Por ejemplo, supongamos que tiene un fichero foo en un directorio. Usando ls -i, veremos el numero de inodo para el fichero. # ls -i foo 22192 foo # Aqu, el fichero foo tiene el numero de inodo 22192 en el sistema de ficheros. Podemos crear otro enlace a foo, llamado bar: # ln foo bar Con ls -i veremos que los dos ficheros tienen el mismo inodo. # ls -i foo bar 22192 bar 22192 foo #
4

La orden ls -i mostrara los nmeros de inodo.

54

Ing. Carrasco Ore Nilo

Linux- Nivel Bsico

Ahora, accediendo a foo o a bar accederemos al mismo fichero. Si hace cambios en foo, estos cambios tambin sern efectuados en bar. Para todos los efectos, foo y bar son el mismo fichero. Estos enlaces son conocidos como enlaces duros (Hard links) porque directamente crean el enlace al inodo. Cuando borra un fichero con rm, esta solamente borrando un enlace a un fichero. Si usa el comando # rm foo solo el enlace de nombre foo es borrado; bar todava existir. Un fichero es solo definitivamente borrado del sistema cuando no quedan enlaces a el. Usualmente, los ficheros tienen un nico enlace, por lo que el uso de rm los borra. Pero si el fichero tiene mltiples enlaces, el uso de rm solo borrara un nico enlace; para borrar el fichero, deber borrar todos los enlaces del fichero. La orden ls informacin). -l muestra el numero de enlaces a un fichero (entre otra

# ls -l foo bar -rw-r--r-- 2 root root 12 Aug 5 16:51 bar -rw-r--r-- 2 root root 12 Aug 5 16:50 foo # La segunda columna en el listado, "2", especifica el numero de enlaces al fichero. As resulta que un directorio no es mas que un fichero que contiene informacin sobre la translacin enlace a inodo. Tambin, cada directorio tiene al menos dos enlaces duros en el: "." (un enlace apuntando a si mismo) y ".." (un enlace apuntando al directorio padre). En el directorio raz (/), el enlace ".." simplemente apunta a /.

7.5.2. Enlaces simblicos


Los enlaces simblicos son otro tipo de enlace, que es diferente al enlace duro. Un enlace simblico permite dar a un fichero el nombre de otro, pero no enlaza el fichero con un inodo. La orden ln -s crea un enlace simblico a un fichero. Por ejemplo, si usamos la orden # ln -s foo bar crearemos un enlace simblico bar apuntando al fichero foo. Si usamos ls -i, veremos que los dos ficheros tienen inodos diferentes, en efecto. # ls -i foo bar 22195 bar 22192 foo # De cualquier modo, usando ls simblico apuntando a foo. # ls -l foo bar Ing. Carrasco Ore Nilo 55 -l vemos que el fichero bar es un enlace

Linux- Nivel Bsico lrwxrwxrwx -rw-r--r-1 root 1 root root root 3 Aug 5 16:51 bar -> foo 12 Aug 5 16:50 foo

Los bits de permisos en un enlace simblico no se usan (siempre aparecen como rwxrwxrwx). En su lugar, los permisos del enlace simblico son determinados por los permisos del fichero "apuntado" por el enlace (en nuestro ejemplo, el fichero foo). Funcionalmente, los enlaces duros y simblicos son similares, pero hay algunas diferencias. Por una parte, puede crear un enlace simblico a un fichero que no existe; lo mismo no es cierto para enlaces duros. Los enlaces simblicos son procesados por el ncleo de forma diferente a los duros, lo cual es solo una diferencia tcnica, pero a veces importante. Los enlaces simblicos son de ayuda puesto que identifican al fichero al que apuntan; con enlaces duros no hay forma fcil de saber que fichero esta enlazado al mismo inodo. Los enlaces se usan en muchas partes del sistema Linux. Los enlaces simblicos son especialmente importantes para las imgenes de las libreras compartidas en /lib.

56

Ing. Carrasco Ore Nilo

Linux- Nivel Bsico


8.

Montar y Desmontar un sistema de archivos

Un sistema de archivos es un conjunto de archivos que parten de un directorio raz y que generalmente se encuentran en una particin del disco duro, adems pueden existir otros tipos de sistemas de archivos situados en otras unidades de almacenamiento (CD-ROM, disquete, etc.). Para que estos sistemas de archivos se integren en el rbol de directorios principal, es necesario realizar la unin de aquellos en este rbol principal. Esta unin se denomina montaje del dispositivo. Dicho montaje lo llevamos a cabo con el comando mount. Los dispositivos con los que ms comnmente se trabaja se muestran a continuacin: /dev/hda disco duro maestro del canal IDE primario, en MSDOS es C: /dev/hdb disco duro esclavo del canal IDE primario, en MSDOS puede ser D: /dev/hdc disco duro maestro del canal IDE secundario. /dev/hdd disco duro esclavo del canal IDE secundario. /dev/sda primer disco duro SCSI. /dev/cdrom normalmente una liga a alguno de los anteriores. /dev/fd0 disquetera A: /dev/ttyS0 primer puerto serie, en MSDOS es COM1: /dev/ttyS1 segundo puerto serie, en MSDOS es COM2: /dev/lp0 puerto paralelo. /dev/psaux ratn PS/2. /dev/mouse liga al puerto del ratn.

Sintaxis: mount dispositivo directorio_de_montaje El dispositivo ser:

El directorio de montaje es el punto donde se va a montar el directorio de archivos. El sistema de archivos principal de Linux es montado de forma automtica durante el inicio de Linux. Con el mismo motivo cuando apagamos el equipo debemos

Ing. Carrasco Ore Nilo 57

Linux- Nivel Bsico previamente desmontar el sistema de archivos para que la prxima vez que se inicie Linux el sistema halla cerrado correctamente. El comando utilizado para desmontar un sistema de archivos es umount . Sintaxis: umount dispositivo directorio En el caso de un disco flexible siempre que vallamos a cambiar de un disquete a otro es preciso desmontar el sistema de archivos del primero. La orden df visualiza los sistemas de archivos que estn montados en un momento determinado, adems por cada uno de los sistemas presenta informacin del espacio que ocupa, el espacio libre, punto de montaje, etc.

A continuacin se muestra el significado de la nomenclatura de los discos IDE:

A continuacin se muestra el significado de la nomenclatura de los discos SCSI:

58

Ing. Carrasco Ore Nilo

Linux- Nivel Bsico A continuacin se muestran las particiones que se pueden definir en un disco:

8.1.

Montaje automtico:

La particin principal de Linux se monta automticamente al arrancar Linux a partir del fichero fstab del directorio etc , cuyo contenido principalmente es el conjunto de particiones que han de montarse durante el arranque. Este fichero incluye varios campos, entre ellos: el nombre del sistema de archivos (/dev/hda1, /dev/hda2), el directorio o punto de montaje ( / ), tipo de sistemas de archivos (ext2, iso9660), las opciones de montaje (entre ellas estn la opcin defaults, que indica que el sistema de archivos ser de escritura o lectura, de bloques; noauto => el dispositivo no ser montado de forma automtica: ni disquete ni CD-ROM normalmente; ro => que indicara que el dispositivo de archivos ser de solo lectura) y al final aparecen dos enteros que el primero de ellos puede tener valor 0 o 1 (indica que el sistema de archivos puede ser volcado o no para hacer copias de seguridad) y el otro nmero entero se usa para saber si el sistema de archivos debe ser comprobado en busca de errores y en que orden en el caso de que haya ms de uno (0 => no se hace comprobacin). La comprobacin de errores se suele hacer con el comando fsck . Sintaxis: fsck dispositivo El sistema de archivos de Linux estructura el dispositivo de bloques generalmente en dos sectores cada uno de 512 bytes. Dentro de esta estructura el primer bloque o bloque 0 se llama bloque de arranque y contiene la informacin principal para iniciar el arranque desde ese dispositivo. El segundo bloque o bloque 1 o superbloque contiene la informacin sobre el tamao del dispositivo, el nmero de inodos y de bloques almacenamiento, estado... El resto de los bloques estn formados por inodos, que son bloques que contienen informacin de cada uno de los archivos, y los bloques de almacenamiento que son los bloque que contienen la informacin propiamente dicha.

Ing. Carrasco Ore Nilo 59

Linux- Nivel Bsico


9.

Control de Tareas 9.1. Tareas y procesos

Control de Tareas es una utilidad incluida en muchos shells (incluidas Bash y Tcsh), que permite el control de multitud de comandos o tareas al momento. Cada vez que usted ejecuta un programa, usted lanza lo que se conoce como proceso, que es simplemente el nombre que se le da a un programa cuando se esta ejecutando. El comando ps visualiza la lista de procesos que se estn ejecutando actualmente, por ejemplo: /home/larry# ps PID TT STAT TIME COMMAND 24 3 S 0:03 (bash) 161 3 R 0:00 ps /home/larry# La columna PID representa el identificador de proceso. La ultima columna COMMAND, es el nombre del proceso que se esta ejecutando. Ahora solo estamos viendo los procesos que esta ejecutando Larry. Vemos que hay dos procesos, bash (Que es el shell o interprete de comandos que usa Larry), y el propio comando ps. Como puede observar, la bash se ejecuta concurrentemente con el comando ps. La bash ejecuto ps cuando Larry tecleo el comando. Cuando ps termina de ejecutarse (despus de mostrar la tabla de procesos), el control retorna al proceso bash, que muestra el prompt, indicando que esta listo para recibir otro comando. Un proceso que esta corriendo se denomina tarea para el shell. Los trminos proceso y tarea, son intercambiables. Sin embargo, se suele denominar "tarea" a un proceso, cuando es usado en conjuncin con control de tareas, que es un rasgo del shell que permite cambiar entre distintas tareas. En muchos casos, los usuarios solo ejecutan un trabajo cada vez, que es el ultimo comando que ellos teclearon desde el shell. Sin embargo, usando el control de tareas, usted podr ejecutar diferentes tareas al mismo tiempo, cambiando entre cada uno de ellos conforme lo necesite. Cuan beneficioso puede llegar a ser esto?. Supongamos que esta usted con su procesador de textos, y de repente necesita parar y realizar otra tarea, con el control de tareas, usted podr suspender temporalmente el editor, y volver al shell para realizar cualquier otra tarea, y luego regresar al editor como si no lo hubiese dejado nunca. Lo siguiente solo es un ejemplo, hay montones de usos prcticos del control de tareas. 9.2. Primer plano y Segundo plano

Un proceso puede estar en Primer plano o en Segundo plano. Solo puede haber un proceso en primer plano al mismo tiempo, el proceso que esta en primer plano, es el que interactua con usted recibe entradas de teclado, y enva las salidas al monitor. (Salvo, por supuesto, que haya re-dirigido la entrada o la salida. El proceso en segundo plano, no recibe ninguna seal desde el teclado por lo general, se ejecutan en silencio sin necesidad de interaccin. 60 Ing. Carrasco Ore Nilo

Linux- Nivel Bsico Algunos programas necesitan mucho tiempo para terminar, y no hacen nada interesante mientras tanto. Compilar programas es una de estas tareas, as como comprimir un fichero grande. No tiene sentido que se siente y se aburra mientras estos procesos terminan. En estos casos es mejor lanzarlos en segundo plano, para dejar el ordenador en condiciones de ejecutar otro programa. Los procesos pueden ser suspendidos. Un proceso suspendido es aquel que no se esta ejecutando actualmente, sino que esta temporalmente parado. Despus de suspender una tarea, puede indicar a la misma que contine, en primer plano o en segundo, segn necesite. Retomar una tarea suspendida no cambia en nada el estado de la misma la tarea continuara ejecutndose justo donde se dejo. Tenga en cuenta que suspender un trabajo no es lo mismo que interrumpirlo._ Cuando usted interrumpe un proceso (generalmente con la pulsacin de |_ctrl-C_6|), el proceso muere, y deja de estar en memoria y utilizar recursos del ordenador. Una vez eliminado, el proceso no puede continuar ejecutndose, y deber ser lanzado otra vez para volver a realizar sus tareas. Tambin se puede dar el caso de que algunos programas capturan la interrupcin, de modo que pulsando |_ctrl-C_ |no se para inmediatamente. Esto se hace para permitir al programa realizar operaciones necesarias de limpieza antes de terminar7. De hecho, algunos programas simplemente no se dejan matar por ninguna interrupcin. 9.3. Envo a segundo plano y eliminacin de procesos

Empecemos con un ejemplo sencillo. El comando yes es un comando aparentemente intil que enva una serie interminable de yes a la salida estandar. Pruebe con esto. /home/larry# yes y y y y y La serie de y-es continuara hasta el infinito, a no ser que usted la elimine, pulsando la tecla de interrupcin, generalmente |_ctrl-C_.| Tambin puede deshacerse de esta serie de yes redigiriendo la salida estandar de yes hacia /dev/null, que como recordara es una especie de "agujero negro" o papelera para los datos. Todo lo que usted envie alli, desaparecera. /home/larry# yes > /dev/null Ahora va mucho mejor, el terminal no se ensucia, pero el prompt de la shell no retorna. Esto es porque yes sigue ejecutndose y enviando esos intiles y-es a /dev/null. Para recuperarlo, pulse la tecla de interrupcin. Supongamos ahora que queremos dejar que el comando yes siga ejecutndose, y volver al mismo tiempo a la shell para trabajar en otras cosas. Para ello nos enviaremos a yes a segundo plano, lo que nos permitir ejecutarlo, pero sin necesidad de interaccin.
6

La_tecla_de interrupcin puede definirse usando el comando stty. Por defecto, en la mayora de sistemas es |_ctrl-C_,|pero no se puede garantizar que sea la misma en su sistema. Tiempo necesario para guardar algunos registros, etc.

Ing. Carrasco Ore Nilo 61

Linux- Nivel Bsico Una forma de mandar procesos a segundo plano es aadiendo un carcter "&" al final de cada comando. /home/larry# yes > /dev/null & [1] 164 /home/larry# Como podr ver, ha regresado a la shell. >Pero que es eso de "[1] 164"?, se esta ejecutando realmente el comando yes? "[1]" representa el numero de tarea del proceso yes. La shell asigna un numero a cada tarea que se este ejecutando. Como yes es el nico comando que se esta ejecutando, se le asigna el numero de tarea 1. El numero "164" es el numero de identificacin del proceso, o PID, que es el numero que el sistema le asigna al proceso. Ambos nmeros pueden usarse para referirse a la tarea como veremos despus. Ahora usted tiene el proceso yes corriendo en segundo plano, y enviando constantemente la seal y hacia el dispositivo /dev/null. Para chequear el estado del proceso, utilice el comando interno de la shell jobs: /home/larry# jobs [1]+ Running /home/larry#

yes >/dev/null &

<Ah esta!. Tambin puede usar el comando ps, como mostramos antes, para comprobar el estado de la tarea. Para eliminar una tarea, utilice el comando kill. Este comando toma como argumento un numero de tarea o un numero de ID de un proceso. Esta era la tarea 1, as que usando el comando /home/larry# kill %1 matara la tarea. Cuando se identifica la tarea con el numero de tarea, se debe preceder el numero con el carcter de porcentaje (%). Ahora que ya hemos matado la tarea, podemos usar el comando jobs de nuevo para comprobarlo:

/home/larry# jobs [1]+ Terminated /home/larry#

yes >/dev/null

La tarea esta, en efecto, muerta, y si usa el comando jobs de nuevo, no mostrara nada. Tambin podr matar la tarea usando el numero de ID de proceso (PID), el cual se muestra conjuntamente con el ID de tarea cuando arranca la misma. En nuestro ejemplo el ID de proceso es 164, as que el comando /home/larry# kill 164 es equivalente a 62 Ing. Carrasco Ore Nilo

Linux- Nivel Bsico

/home/larry# kill %1 No es necesario usar el "%" cuando nos referimos a una tarea a traves de su ID de proceso. 9.4. Parada y relanzamiento de tareas

Hay otra manera de poner una tarea en segundo plano. Usted puede lanzarlo como un proceso normal (en primer plano), pararlo, y despus relanzarlo en segundo plano. Primero, lance el proceso yes en primer plano como lo hara normalmente: /home/larry# yes > /dev/null De nuevo, dado que yes corre en primer plano, no debe retornar el prompt de la shell. _________ Ahora, en vez de interrumpir la tarea con |_ctrl-C_,| suspenderemos la tarea. El suspender una tarea no la mata: solamente la detiene temporalmente hasta que Ud. la retoma. Para hacer esto usted debe pulsar la tecla de suspender, que suele ser |_ctrl-Z_.| /home/larry#_yes > /dev/null |_ctrl-Z_ | [1]+ Stopped /home/larry#

yes >/dev/null

Mientras el proceso esta suspendido, simplemente no se esta ejecutando. No gasta tiempo de CPU en la tarea. Sin embargo, usted puede retomar el proceso de nuevo como si nada hubiera pasado. Continuara ejecutndose donde se dejo. Para relanzar la tarea en primer plano, use el comando fg (del ingles "foreground"). /home/larry# fg yes >/dev/null La shell muestra el nombre del comando de nuevo, de forma que tenga conocimiento de que tarea es la que ha puesto en primer plano. Pare la tarea de nuevo, con |_ctrl-Z_.| Esta vez utilice el comando bg para poner la tarea en segundo plano. Esto har que el comando siga ejecutndose igual que si lo hubiese hecho desde el principio con "&" como en la seccin anterior. /home/larry# bg [1]+ yes >/dev/null & /home/larry# Y tenemos de nuevo el prompt. El comando jobs debera decirnos que yes se esta ejecutando, y podemos matar la tarea con kill tal y como lo hicimos antes. _________

Ing. Carrasco Ore Nilo 63

Linux- Nivel Bsico >Como podemos parar la tarea de nuevo? Si pulsa |_ctrl-Z_ |no funcionara, ya que el proceso esta en segundo plano. La respuesta es poner el proceso en primer plano de nuevo, con el comando fg, y entonces pararlo. Como puede observar podr usar fg tanto con tareas detenidas, como con las que estn segundo plano. Hay una gran diferencia entre una tarea que se encuentra en segundo plano, y una que se encuentra detenida. Una tarea detenida es una tarea que no se esta ejecutando, es decir, que no usa tiempo de CPU, y que no esta haciendo ningn trabajo (la tarea aun ocupa un lugar en memoria, aunque puede ser volcada a disco). Una tarea en segundo plano, se esta ejecutando, y usando memoria, a la vez que completando alguna accin mientras usted hace otro trabajo. Sin embargo, una tarea en segundo plano puede intentar mostrar texto en su terminal, lo que puede resultar molesto si esta intentando hacer otra cosa. Por ejemplo, si usted uso el comando /home/larry# yes & sin redirigir stdout a /dev/null, una cadena de y-es se mostraran en su monitor, sin modo alguno de interrumpirlo (no puede hacer uso de |_ctrl-C_ |para interrumpir tareas en segundo plano). Para poder parar esas interminables y-es, tendra que usar el comando fg para pasar la tarea a primer plano, y entonces usar |_ctrl-C_ |para matarla. Otra observacin. Normalmente, los comandos "fg" y "bg" actan sobre el ultimo proceso parado (indicado por un "+" junto al numero de tarea cuando usa el comando jobs). Si usted tiene varios procesos corriendo a la vez, podr mandar a primer o segundo plano una tarea especifica indicando el ID de tarea como argumento de fg o bg, como en /home/larry# fg %2 (para la tarea de primer plano numero 2), o /home/larry# bg %3 (para la tarea de segundo plano numero 3). No se pueden usar los ID de proceso con fg o bg. Adems de esto, si usa el numero de tarea por si solo, como /home/larry# %2 es equivalente a /home/larry# fg %2

Solo recordarle que el uso de control de tareas es una utilidad de la shell. Los comandos fg, bg y jobs son internos de la shell. Si por algn motivo usted utiliza una shell que no soporta control de tareas, no espere disponer de estos comandos. Y adems, hay algunos aspectos del control de tareas que difieren entre Bash y Tcsh. De hecho, algunas shells no proporcionan ningn control de tareas sin embargo, la mayora de las shells disponibles para Linux soportan control de tareas.

64

Ing. Carrasco Ore Nilo

Linux- Nivel Bsico


10.

Archivando y Comprimiendo Ficheros

Presentamos herramientas utilizadas para archivar ficheros y programas en los sistemas UNIX. 10.1. Utilizando tar

El comando tar es utilizado normalmente para archivar ficheros .El formato del comando tar es tar <opciones> <fichero1> <fichero2> ...<ficheroN> donde <opciones> es la lista de comandos y opciones para tar, y <fichero1> hasta <ficheroN> es la lista de ficheros a aadir o extraer del archivo. Por ejemplo, el comando # tar cvf backup.tar /etc empaquetara todos los ficheros de /etc en el fichero tar backup.tar. El primer argumento de tar "cvf" es el "comando" tar. "c" le dice a tar que cree un nuevo fichero de archivo. La opcion "v" fuerza a tar en el modo detallado _imprimiendo los nombres de los ficheros segn se archivan. La opcion "f" le dice a tar que el siguiente argumento _backup.tar_ es el nombre del archivo a crear. El resto de los argumentos de tar son los nombres de ficheros y directorios a aadir al archivo. El comando # tar xvf backup.tar

extraer el fichero tar backup.tar en el directorio actual. Esto puede ser peligroso a veces cuando se extraen ficheros de un fichero tar, los ficheros antiguos se sobreescriben. Por otra parte, antes de extraer ficheros tar es importante conocer donde se deben desempaquetar los ficheros. Por ejemplo, digamos que se archivaron los siguientes ficheros: /etc/hosts, /etc/group, y /etc/passwd. Si se uso el comando # tar cvf backup.tar /etc/hosts /etc/group /etc/passwd el nombre de directorio /etc se aadi al principio de cada nombre de fichero. Para poder extraer los ficheros en la localizacin correcta, se necesitara utilizar los siguientes comandos: # cd / # tar xvf backup.tar Puesto que los ficheros se extraen con el nombre de camino almacenado en el fichero de archivo. Sin embargo, si se archivaron los ficheros con los comandos # cd /etc Ing. Carrasco Ore Nilo 65

Linux- Nivel Bsico # tar cvf hosts group passwd Los nombres de directorio no se salvaron en el fichero de archivo. Por esto se necesitara hacer "cd /etc" antes de extraer los ficheros. Como se puede ver, el como haya sido creado un fichero tar marca una gran diferencia en como se extrae. Se puede usar el comando # tar tvf backup.tar para mostrar un "ndice" del fichero tar antes de desempaquetarlo. De esta forma se puede ver que directorio se utilizo como origen de los nombres de los ficheros, y se puede extraer el archivo desde la localizacin correcta. 10.2. gzip y compress

A diferencia de los programas de archivo para MS-DOS, tar no comprime automticamente los ficheros segn los archiva. Por ello, si se estn archivando dos ficheros de un megabytes, el fichero tar resultante tendr dos megabytes. El comando gzip puede utilizarse para comprimir un fichero (el fichero a comprimir no necesita ser un fichero tar). El comando # gzip -9 backup.tar comprimir backup.tar y le dejara con backup.tar.gz, que es la version comprimida del fichero.La opcion -9 le dice a gzip que utilice el mayor factor de compresin. El comando gunzip puede ser utilizado para descomprimir un fichero comprimido con gzip. Equivalentemente, se puede utilizar "gzip -d". gzip es una herramienta relativamente nueva en la comunidad UNIX. Durante muchos aos, se utilizo en su lugar el comando compress. Sin embargo, debido a varios factores 1 , compress se esta volviendo desfasado. Los ficheros comprimidos con compress terminan en la extensin .Z. Por ejemplo, backup.tar.Z es la versin comprimida con compress de backup.tar, mientras que backup.tar.gz es la versin comprimida con gzip 2 . El comando uncompress se utiliza para expandir un fichero comprimido con compress; gunzip sabe tambin como tratar los ficheros comprimidos con compress. 10.3. Juntndolo todo

Por lo tanto, para archivar un grupo de ficheros y comprimir el resultado, se pueden utilizar los comandos: # tar cvf backup.tar /etc # gzip -9 backup.tar

Estos factores incluyen una disputa por una patente software contra el algoritmo de compress y el hecho de que gzip es mucho mas eficiente que compress. 2 Para aadir mas confusin, durante algn tiempo la extensin .z ("z" minscula) fue utilizada para los ficheros comprimidos con gzip. La extensin oficial de los ficheros gzip ahora es .gz.
1

66

Ing. Carrasco Ore Nilo

Linux- Nivel Bsico El resultado ser backup.tar.gz. Para desempaquetar este fichero, se usan los comandos contrarios: # gunzip backup.tar.gz # tar xvf backup.tar Por supuesto, asegrese siempre de que esta en el directorio correcto antes de desempaquetar un fichero tar. Se pueden utilizar algunas maas UNIX para hacer todo esto en una sola linea de comando, como por ejemplo: # tar cvf - /etc | gzip -9c > backup.tar.gz Aqu estamos enviando el fichero tar a "-", que representa la salida estandar de tar. Esto es encolado hacia gzip, que comprime el fichero tar de entrada, y el resultado se salva en backup.tar.gz. La opcin -c de gzip le dice que envie su salida hacia la salida estndar, que es redirigida a backup.tar.gz. Un comando nico para desempaquetar este archivo seria: # gunzip -c backup.tar.gz | tar xvf De nuevo, gunzip descomprime el contenido de backup.tar.gz y enva el fichero tar resultante hacia la salida estandar. Esta es redirigida hacia tar, que lee de "-", refirindose esta vez a la entrada estandar de tar. Felizmente, el comando tar tambin incluye la opcion z para comprimir/descomprimir automticamente los ficheros al vuelo, utilizando el algoritmo de compresin de gzip. Por ejemplo, el comando # tar cvfz backup.tar.gz /etc es equivalente a # tar cvf backup.tar /etc # gzip backup.tar Igual que el comando # tar xvfz backup.tar.gz se puede utilizar en vez de # gunzip backup.tar.gz # tar xvf backup.tar Remtase a las paginas man para obtener mas informacin acerca de tar y gzip.

Ing. Carrasco Ore Nilo 67

Linux- Nivel Bsico


11.

Gestin de Usuarios

Independientemente de que tenga muchos usuarios o no en su sistema, es importante comprender los aspectos de la gestion de usuarios bajo Linux. Incluso si se es el nico usuario, se debe tener, presumiblemente, una cuenta distinta de root para hacer la mayor parte del trabajo. Cada persona que utilice el sistema debe tener su propia cuenta. Raramente es una buena idea el que varias personas compartan la misma cuenta. No solo es un problema de seguridad, sino que las cuentas se utilizan para identificar unvocamente a los usuarios al sistema. Se necesita ser capaz de saber quien esta haciendo que. 11.1. Conceptos de gestin de usuarios

El sistema mantiene una cierta cantidad de informacin acerca de cada usuario. Dicha informacin se resume a continuacin. nombre de usuario El nombre de usuario es el identificador nico dado a cada usuario del sistema. Ejemplos de nombres de usuario son larry, Karl y mdw. Se pueden utilizar letras y dgitos junto a los caracteres "_" (subrayado) y "." (punto). Los nombres de usuario se limitan normalmente a 8 caracteres de longitud. user ID El user ID, o UID, es un numero nico dado a cada usuario del sistema. El sistema normalmente mantiene la pista de la informacin por UID, no por nombre de usuario. group ID El group ID, o GID, es la identificacin del grupo del usuario por defecto. Cada usuario pertenece a uno o mas grupos definidos por el administrador del sistema. Clave El sistema tambin almacena la clave encriptada del usuario. El comando passwd se utiliza para poner y cambiar las claves de los usuarios. nombre completo El nombre real" o nombre completo" del usuario se almacena junto con el nombre de usuario. Por ejemplo, el usuario schmoj puede tener el nombre "Jos Schmo" en la vida real. directorio inicial El directorio inicial es el directorio en el que se coloca inicialmente al usuario en tiempo de conexin. Cada usuario debe tener su propio directorio inicial, normalmente situado bajo /home. interprete de inicio El interprete de inicio del usuario es el interprete de comandos que es arrancado para el usuario en tiempo de conexin. Ejemplos pueden ser /bin/bash y /bin/tcsh.

68

Ing. Carrasco Ore Nilo

Linux- Nivel Bsico El fichero /etc/passwd contiene la informacin anterior acerca de los usuarios. Cada lnea del fichero contiene informacin acerca de un nico usuario; el formato de cada lnea es nombre:clave encriptada:UID:GID:nombre completo:dir.inicio:interprete Un ejemplo puede ser: kiwi:Xv8Q981g71oKK:102:100:Laura Poole:/home/kiwi:/bin/bash Como puede verse, el primer campo , "kiwi", es el nombre de usuario. El siguiente campo, "Xv8Q981g71oKK", es la clave encriptada. Las claves no se almacenan en el sistema en ningn formato legible por el hombre. Las claves se encriptan utilizndose a si mismas como clave secreta. En otras palabras, solo si se conoce la clave, esta puede ser desencriptada. Esta forma de encriptacion es bastante segura. Algunos sistemas utilizan "claves en sombra" en la que la informacin de las claves se relega al fichero /etc/shadow. Puesto que /etc/passwd es legible por todo el mundo, /etc/shadow suministra un grado extra de seguridad, puesto que este no lo es. Las claves en sombra suministran algunas otras funciones como puede ser la expiracin de claves. El tercer campo "102", es el UID. Este debe ser nico para cada usuario. El cuarto campo,"100", es el GID. Este usuario pertenece al grupo numerado 100. La informacin de grupos, como la informacin de usuarios, se almacena en el fichero /etc/group. El quinto campo es el nombre completo del usuario. "Laura Poole". Los dos ltimos campos son el directorio inicial del usuario (/home/kiwi) y el interprete de conexion (/bin/bash), respectivamente. No es necesario que el directorio inicial de un usuario tenga el mismo nombre que el del nombre de usuario. Sin embargo, ayuda a identificar el directorio. 11.2. Aadiendo usuarios

Cuando se aade un usuario hay varios pasos a seguir. Primero, se le debe crear una entrada en /etc/passwd, con un nombre de usuario y UID nicos. Se debe especificar el GID, nombre completo y resto de informacin. Se debe crear el directorio inicial, y poner los permisos en el directorio para que el usuario sea el dueo. Se deben suministrar ficheros de comandos de inicializacin en el nuevo directorio y se debe hacer alguna otra configuracin del sistema (por ejemplo, preparar un buzn para el correo electrnico entrante para el nuevo usuario). Aunque no es difcil el aadir usuarios a mano (yo lo hago), cuando se esta ejecutando un sistema con muchos usuarios, es facil el olvidarse de algo. La manera mas simple de aadir usuarios es utilizar un programa interactivo que vaya preguntando por la informacin necesaria y actualice todos los ficheros del sistema automticamente. El nombre de este programa es useradd o adduser dependiendo del software que este instalado. Las paginas man para estos comandos deberan ser suficientemente autoexplicatorias.

Ing. Carrasco Ore Nilo 69

Linux- Nivel Bsico 11.3. Borrando usuarios

De forma parecida, borrar usuarios puede hacerse con los comandos userdel o deluser dependiendo de que software fuera instalado en el sistema. Si se desea "deshabitar" temporalmente un usuario para que no se conecte al sistema (sin borrar la cuenta del usuario), se puede prefijar con un asterisco ("*") el campo de la clave en /etc/passwd. Por ejemplo, cambiando la linea de /etc/passwd correspondiente a kiwi a kiwi:*Xv8Q981g71oKK:102:100:Laura Poole:/home/kiwi:/bin/bash evitara que kiwi se conecte. 11.4. Poniendo atributos de usuario

Despus de que haya creado un usuario, puede necesitar cambiar algn atributo de dicho usuario, como puede ser el directorio inicial o la clave. La forma mas simple de hacer esto es cambiar los valores directamente en /etc/passwd. Para poner clave a un usuario, utilice el comando passwd. Por ejemplo, # passwd larry cambiara la clave de larry. Solo root puede cambiar la clave de otro usuario de esta forma. Los usuarios pueden cambiar su propia clave con passwd tambin. En algunos sistemas, los comandos chfn y chsh estn disponibles, permitiendo a los usuarios el cambiar sus atributos de nombre completo e interprete de conexion. Si no, deben pedir al administrador de sistemas que los cambie por ellos. 11.5. Grupos

Como hemos citado anteriormente, cada usuario pertenece a uno o mas grupos. La nica importancia real de las relaciones de grupo es la perteneciente a los permisos de ficheros, como dijimos , cada fichero tiene un "grupo propietario" y un conjunto de permisos de grupo que define de que forma pueden acceder al fichero los usuarios del grupo. Hay varios grupos definidos en el sistema, como pueden ser bin, Mail, y sys. Los usuarios no deben pertenecer a ninguno de estos grupos; se utilizan para permisos de ficheros del sistema. En su lugar, los usuarios deben pertenecer a un grupo individual, como users. Si se quiere ser detallista, se pueden mantener varios grupos de usuarios como por ejemplo estudiantes, soporte y facultad. El fichero /etc/group contiene informacin acerca de los grupos. El formato de cada linea es nombre de grupo:clave:GID:otros miembros Algunos ejemplos de grupos pueden ser: root:*:0: usuarios:*:100:mdw,larry invitados:*:200: otros:*:250:kiwi 70 Ing. Carrasco Ore Nilo

Linux- Nivel Bsico

El primer grupo, root, es un grupo especial del sistema reservado para la cuenta root. El siguiente grupo, users, es para usuarios normales. Tiene un GID de 100. Los usuarios mdw y larry tienen acceso a este grupo. Recurdese que en /etc/passwd cada usuario tiene un GID por defecto. Sin embargo, los usuarios pueden pertenecer a mas de un grupo, aadiendo sus nombres de usuario a otras lneas de grupo en /etc/group. El comando groups lista a que grupos se tiene acceso. El tercer grupo, invitados, es para usuarios invitados, y otros es para "otros" usuarios. El usuario kiwi tiene acceso a este grupo. Como se puede ver, el campo "clave" de /etc/group raramente se utiliza. A veces se utiliza para dar una clave para acceder a un grupo. Esto es raras veces necesario. Para evitar el que los usuarios cambien a grupos privilegiados (con el comando newgroup), se pone el campo de la clave a "*". Se pueden usar los comandos addgroup o groupadd para aadir grupos a su sistema. Normalmente es mas sencillo aadir lneas a /etc/group uno mismo, puesto que no se necesitan mas configuraciones para aadir un grupo. Para borrar un grupo, solo hay que borrar su entrada de /etc/group.

Ing. Carrasco Ore Nilo 71

También podría gustarte