Sei sulla pagina 1di 33

Grupo Universitario de GNU/Linux de Entre Ros

Curso de Administracin GNU/Linux Nivel I


Facultad de Ciencia y Tecnologa Oro Verde - 2009

Grupo Universitario de GNU/Linux de Entre Ros

Curso de Administracin GNU/Linux Nivel I


Facultad de Ciencia y Tecnologa Oro Verde - 20091

El Curso de Administracin de GNU/Linux pretende formar profesionales en el mbito del Software Libre.

Curso de Administracin GNU/Linux Nivel I


Captulo 1: Introduccin a GNU/Linux

Origen de GNU/Linux Caractersticas de GNU/Linux Conceptos Bsicos Trabajando con la lnea de comandos

En la primera clase veremos algo de historia acerca de GNU/Linux y el software libre y algunos conceptos bsicos sobre los mismos. Adems aprenderemos a trabajar con el intrprete de comandos y veremos algunos comandos bsicos.

Curso de Administracin GNU/Linux Nivel I


Clase 1: Origen de GNU/Linux

Algo de historia...
1.970 UNIX Sistema Operativo multiusuario, multitarea y multiplataforma Desarrollado en AT&T, por Ken Tommson y Dennis Ritchie Muchos fabricantes compraron su cdigo fuente y crearon diversas versiones (AIX, HP UIX, Solaris, entre otros) Debido al gran desorden e incompatibilidad se decide adoptar el estndar IEEE POSIX.1 Termin siendo un Sistema Operativo demasiado costoso y de gran volumen
3

UNIX es uno de los sistemas operativos ms populares del mundo. Es una marca registrada de The Open Group, aunque originalmente fue desarrollado por AT&T. UNIX es un sistema operativo real. Por sistema operativo real se entiende que debe tener como mnimo dos caractersticas: ms de una persona puede acceder al mismo tiempo al ordenador y, mientras lo hacen, cada una de ellas puede ejecutar mltiples aplicaciones. Esto se llama ser un sistema operativo multiusuario y multitarea. UNIX fue diseado originalmente para ser ese tipo de sistema multitarea, all en los aos 70,y para que se pudiera ejecutar en mainframes y en minicomputadoras. Con UNIX, cada usuario accede al sistema utilizando un nombre de acceso. Opcionalmente, (aunque es altamente recomendable), el usuario deber proporcionar una contrasea, que asegura que la persona que accede es quien dice ser. Adems, los usuarios no acceden a cualquier computadora en caso de que estemos hablando de una red. UNIX funcionar prcticamente en cualquier plataforma que haya sido construida. Muchos fabricantes han adquirido el cdigo fuente (IBM; Hewlett-Packard, Sun, etc.) y desarrollado sus propias versiones, a las que han incorporado su toque personal a lo largo de los aos. Pero no son los nicos que continan modificando UNIX. Cuando el sistema se desarroll por primera vez, el cdigo fuente se proporcion gratuitamente a las universidades y a los institutos. Dos de ellas han estado en primera lnea desde el primer momento: la Universidad de California en Berkeley y el Instituto Tecnolgico de Massachussetts. Como nos podemos imaginar, el desarrollo de UNIX se produjo de forma bastante desordenada. Gente de todo el planeta comenz a desarrollar herramientas para UNIX. Desgraciadamente, no exista ninguna coordinacin que guiase todo el desarrollo, lo cual produjo grandes diferencias entre las distintas versiones de UNIX. Finalmente la mayora de los estndares se encuentran bajo el estndar IEEE POSIX.1. El mayor inconveniente de UNIX es que es muy grande. Tambin es caro, especialmente en sus versiones para PC. Aqu es donde aparece Linux, pues, como se explica con ms detalle un poco ms adelante, se dise para ser pequeo, rpido y barato. Hasta ahora los diseadores han tenido xito.

Curso de Administracin GNU/Linux Nivel I


Clase 1: Origen de GNU/Linux

Algo de historia...
1.983 Proyecto GNU Iniciado y liderado por Richard Stallman Tiene como objetivo principal desarrollar un sistema operativo totalmente libre Tambin ha desarrollado diversas herramientas como compiladores, editores de texto, entornos de escritorio entre otros Todos sus desarrollos se licencian bajo Licencia GPL de GNU Muy ligado con la Free Software Foundation
4

El proyecto GNU fue iniciado por Richard Stallman con el objetivo de crear un sistema operativo completamente libre: el sistema GNU . El 27 de septiembre de 1983 se anunci pblicamente el proyecto por primera vez en el grupo de noticias net.unixwizards. Al anuncio original, siguieron otros ensayos escritos por Richard Stallman como el "Manifiesto GNU", que establecieron sus motivaciones para realizar el proyecto GNU, entre las que destaca "volver al espritu de cooperacin que prevaleci en los tiempos iniciales de la comunidad de usuarios de computadoras". GNU es un acrnimo recursivo que significa GNU No es Unix (GNU is Not Unix). Puesto que en ingls "gnu" (en espaol "u") se pronuncia igual que "new", Richard Stallman recomienda pronunciarlo "guh-noo". En espaol, se recomienda pronunciarlo u como el antlope africano o fonticamente; por ello, el trmino mayoritariamente se deletrea (GN-U). En 1985, Stallman cre la Free Software Foundation (FSF o Fundacin para el Software Libre) para proveer soportes logsticos, legales y financieros al proyecto GNU. La FSF tambin contrat programadores para contribuir a GNU, aunque una porcin sustancial del desarrollo fue (y contina siendo) producida por voluntarios. A medida que GNU ganaba renombre, negocios interesados comenzaron a contribuir al desarrollo o comercializacin de productos GNU y el correspondiente soporte tcnico. El ms prominente y exitoso de ellos fue Cygnus Solutions, ahora parte de Red Hat.

Curso de Administracin GNU/Linux Nivel I


Clase 1: Origen de GNU/Linux

Algo de historia...
1.987 MINIX Sistema Operativo, clon de UNIX. Desarrollado en la Universidad de Vrije de msterdam por Andrew Tanenbaum Construido para ejecutarse nicamente en plataformas INTEL Licenciado bajo Licencia BSD Desarrollado con propsitos especficamente educativos

Minix es un clon del sistema operativo Unix distribuido junto con su cdigo fuente y desarrollado por el profesor Andrew S. Tanenbaum en 1987. La ltima versin oficial de Minix es la 3.1.2, publicada el 8 de Mayo de 2006. Fue creado para ensear a sus alumnos el diseo de sistemas operativos en la Vrije Universiteit de msterdam. La razn de su desarrollo fue porque Unix estaba bajo restricciones de licencia de AT&T, era demasiado complicado y corra sobre mquinas complejas; algo completamente antipedgogico. Gracias a su reducido tamao, diseo basado en el paradigma del microncleo, y su amplia documentacin, resulta bastante apropiado para personas que desean instalar un sistema operativo compatible con Unix en su mquina personal as como aprender sobre su funcionamiento interno. Minix fue desarrollado para correr sobre IBM PC con procesador Intel 8088 o superior, aunque se han creado conversiones para otros sistemas. Debido al enfoque puramente educacional de Minix, Tanenbaum no permita que este fuera modificado demasiado ya que esto complicara el sistema y no permitira que sus estudiantes lo entendieran en un semestre. Por estos motivos, Linus Torvalds decidi escribir su propio ncleo de sistema operativo (Linux) compatible con Unix. En simbiosis con las herramientas de GNU surgi GNU/Linux, que ha ganado protagonismo en el campo de los Unix para ordenadores compatibles con el IBM PC, principalmente debido a que su licencia (GPL) que permite la modificacin del mismo. Actualmente Minix se distribuye con una licencia similar a la licencia BSD, lo que permite su modificacin. Para una persona poco familiarizada con los elementos internos de un sistema operativo, Minix es una buena opcin que le permite entender casi todos los elementos del sistema con solo algunos meses de uso y estudio.

Curso de Administracin GNU/Linux Nivel I


Clase 1: Origen de GNU/Linux

Algo de historia...
1.991 LINUX Ncleo de Sistema Operativo multiusuario y multitarea, tambin clon de UNIX y basado en MINIX. Creado originalmente por Linus Torvalds en la Universidad de Helsinki, Finlandia Construido para arquitecturas PC inicialmente Licenciado bajo Licencia GPL de GNU Desarrollado con propsitos especficamente educativos

Linux es la denominacin de un sistema operativo tipo Unix (tambin conocido como GNU/Linux) y el nombre de un ncleo. Es uno de los ejemplos ms prominentes del software libre y del desarrollo del cdigo abierto, cuyo cdigo fuente est disponible pblicamente, para que cualquier persona pueda libremente usarlo, estudiarlo, redistribuirlo, comercializarlo y, con los conocimientos informticos adecuados, modificarlo . Las variantes de los sistemas Linux de denominan "distribuciones" (distro) y su objetivo es ofrecer una edicin que cumpla con las necesidades de determinado grupo de usuarios, de estar forma existen distribuciones para hogares, empresas y servidores. Algunas son gratuitas y otras de pago, algunas insertan software no libre y otras contienen solo software libre. Los primeros sistemas Linux se originaron en 1992, al combinar utilidades de sistema y bibliotecas del proyecto GNU con el ncleo Linux, creado por Linus Torvalds, con la colaboracin de cientos de co-desarrolladores y que se distribuye bajo la Licencia Pblica General de GNU. Desde finales del 2000 se ha incrementado el apoyo y respaldo de parte de fabricantes de hardware como IBM, Sun Microsystems, Hewlett-Packard, y Novell. Algunos de ellos (como Dell, Hewlett-Packard, Lenovo y Acer) lo incluyen preinstalado en algunos modelos de computadoras porttiles y de escritorio para el usuario final. El respaldo de las compaas de software tambin est presente, ya que -entre otras aplicaciones- Nero, Java, Google Earth, Google Desktop, Adobe Reader, Adobe Flash, RealPlayer, Silverlight y Yahoo! Messenger estn disponibles para Linux. Linux puede instalarse en computadores de escritorio (PCs x86 y x86-64 as como Macintosh y PowerPC), computadores de bolsillo, telfonos celulares, porttiles, dispositivos empotrados, videoconsolas (Xbox, PlayStation 3, PlayStation Portable, Dreamcast, GP2X...) y otros (como en varios modelos de iPod), sin embargo su mayor desarrollo se ha llevado a cabo en el los servidores y supercomputadores. La marca registrada Linux (Nmero de serie: 1916230) pertenece a Linus Torvalds y se define como "un sistema operativo para computadoras que facilita su uso y operacin". Existen grupos de usuarios del sistema Linux en casi todas las reas del planeta.

Curso de Administracin GNU/Linux Nivel I


Clase 1: Origen de GNU/Linux

Algo de historia...
1.992 GNU/LINUX Es un Sistema Operativo completo. Contiene el ncleo desarrollado por Linus Tordvals y las aplicaciones del proyecto GNU. En distintos sabores o Distribuciones GNU/Linux

GNU/Linux a diferencia de Linux, es un Sistema Operativo completo, conformado por el ncleo desarrollado por Linus Tordvals y las herramientas aportadas por el proyecto GNU. En 1.992 empezaron a aparecer lo que denominamos Distribuciones GNU/Linux y una de las destacada SLS (Softlangind Linux System) en 1993 y vigente con el nombre de Slackware. Una Distribucin GNU/Linux propiamente dicha es un Kernel de Linux compilado, ms las herramientas del proyecto GNU, ms algn agregado propio de la misma. En la actualidad existen ms de 200 distribuciones GNU/Linux, algunas desarrolladas por empresas y otras por grupos de usuarios de diversas partes del mundo. Cada distribucin dispone de alguna herramienta en particular o algn agregado como ser herramientas de instalacin de software, de configuracin del mismo o aplicaciones desarrolladas para ella. Las distribuciones ms conocidas al momento son:

Debian GNU/Linux Ubuntu Linux Fedora Red Hat Linux Suse Linux Mandriva PC Linux OS Slackware Linux Gentoo Linux

En nuestro pas se desarrollan algunas distribuciones GNU/Linux, entre ellas Tuquito (desarrollada en Tucumn y basada en Debian) y Ututo (Desarrollada en Salta y basada en Gentoo).

Curso de Administracin GNU/Linux Nivel I


Clase 1: Origen de GNU/Linux

Software Libre
Qu es? Se refiere a la libertad que da el software, es decir a todos los derechos que brinda. No quiere decir que sea absolutamente gratis Qu permite hacer? Ejecutar el programa, bajo cualquier propsito Estudiar el funcionamiento del programa, para poder adaptarlo a nuestras necesidades Redistribuir copias del mismo Mejorar el programa y poner esas mejoras a disposicin de toda la 8 comunidad

La confusin del trmino gratis en el Software Libre proviene de la traduccin al espaol que se hace de la frase "Free Software", en donde "Free" en ingles tiene un doble significado: libre y gratis. Sin embargo, la correcta y verdadera traduccin en el Software Libre es hacia el trmino de libertad y no al nulo costo econmico del software. El Software Libre, por lo tanto, nos remite a una libertad en su uso, de aqu que la Free Software Fundation (FSF) nos da a conocer las cuatro libertades que poseen las aplicaciones que son liberadas bajo este concepto: El Software Libre proporciona la libertad de: 0.Ejecutar el programa, para cualquier propsito; 1.Estudiar el funcionamiento del programa, y adaptarlo a sus necesidades; 2.Redistribuir copias; 3.Mejorar el programa, y poner sus mejoras a disposicin del pblico, para beneficio de toda la comunidad." Debido a estas libertades encontramos muchas veces que podemos disponer gratuitamente del Software Libre, ya sea descargndolo desde Internet u obtenindolo por otro medio. No obstante, dentro de las cuatro libertades que se han descrito anteriormente, y en la GNU General Public Licence (Licencia Publica General GNU), que es una de las principales licencias bajo las cuales se libera el Software Libre (en donde se incluye el sistema GNU/Linux), no limitan la redistribucin de las copias a un plano no lucrativo, sino que intentan promover su libre distribucin por cualquier medio y de cualquier forma, ya sea como regalo, en rifas, como bono, en venta directa, etc. Es por ello que existen empresas que venden sus productos, aun cuando han sido liberados como Software Libre. Del mismo modo, encontramos autores de Software que piden una retribucin por su trabajo, la mayora de las veces como donaciones, pero tambin en algunas otras con un costo mnimo de uso.

Curso de Administracin GNU/Linux Nivel I


Clase 1: Caractersticas de GNU/Linux

Caractersticas
Es multitarea Es multiusuario Utiliza un sistema de paginado de memoria virtual Es software libre Es adaptable a muchos entornos y ambientes Es altamente estable Cuenta con una gran cantidad de aplicaciones Altamente resistente a virus y amenazas similares Cuenta con una gran comunidad de usuarios
9

Multitarea: Se pueden ejecutar varias tareas y se puede acceder a varios dispositivos al mismo tiempo. Memoria virtual: Linux puede usar una porcin de su disco duro como memoria virtual, lo que aumenta la eficiencia del sistema al mantener los procesos activos en la memoria fsica Soporte multiusuario: Linux permite que varios usuarios accedan a su sistema simultneamente sin que haya conflicto entre ellos y cada uno con su espacio de trabajo. Cdigo fuente libre: El kernel de Linux no utiliza cdigo propietario. Adaptabilidad: Linux puede ejecutar una amplia variedad de software, disponible gracias al proyecto GNU. Este software incluye de todo, desde desarrollo de aplicaciones a la administracin del sistema y juegos. En casa podemos tener un servidor web, o un servidor FTP con nuestro Linux. Slo hay que leer la documentacin de cmo hay que hacerlo y poner manos a la obra. Esto ha generado grandes cambios sociales en nuestro tiempo, al descentralizar las fuentes de informacin en el mundo. Estabilidad: Linux presenta una gran estabilidad en la gestin de sus procesos internos del sistema. Es muy difcil conseguir que Linux se "cuelgue" y, por supuesto, jams se ver una "pantalla azul". Defensa contra los virus: Aunque la mayor parte de los virus que rondan por Internet son desarrollados para Windows, es cierto que, en teora, existen algunos para Linux, pero son ms difciles de crear debido a que Linux emplea un sistema de permisos de archivos previendo los posibles desastres que se ven todos los das en los entornos de Windows y principalmente la comprometida comunidad de desarrolladores de GNU/Linux se encargan de corregir los posibles errores de seguridad en tiempo ptimo. Relacin con Internet: Debido a que Linux creci gracias a Internet, digamos que ambos hablan en el mismo lenguaje y por tanto, se ve claramente que navegar por Internet con Linux es ms rpido que otros sistemas. La comunidad Linux: Linux tiene una comunidad de voluntarios con ganas de ayudar a los que les cuesta adentrarse en este mundo. Y todo por afn de colaborar en este proyecto.

Curso de Administracin GNU/Linux Nivel I


Clase 1: Conceptos Bsicos de GNU/Linux

Conceptos bsicos
Bases Proyecto GNU Ncleo o kernel Caractersticas Todo es un archivo Memoria Virtual Sistema de paquetes

SISTEMA OPERATIVO GNU/Linux

Distribuciones Distros instalables Distros LiveCD

Difusin Internet Linux User Group

Licenciamiento Software Libre y Open Source Licencias de Software Libre10

Memoria Swap: La mayora de los sistemas operativos modernos poseen un mecanismo llamado memoria virtual, que permite hacer creer a los programas que tienen ms memoria que la disponible realmente, en GNU/Linux existe una particin especifica para llevar a cabo esta labor de intercambio. Ncleo o Kernel: El Kernel es la parte fundamental de un sistema operativo. Es el software responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma ms bsica, es el encargado de gestionar recursos, a travs de servicios de llamada al sistema. Todo es un archivo: En Linux todo es un archivo, y cuando digo todo es todo. Desde los archivos de datos hasta las particiones de los discos pasando por el ratn y la tarjeta de sonido. Los directorios tambin son archivos. Existe un directorio raz (/) del que cuelga todo. Los dispositivos cuelgan del directorio /dev. Live CD: Es un sistema operativo almacenado en un medio extrable, tradicionalmente un CD o un DVD (de ah sus nombres), que puede ejecutarse desde ste sin necesidad de instalarlo en el disco duro de una computadora, para lo cual usa la memoria RAM como disco duro virtual y el propio medio como sistema de ficheros. Sistema de paquetes: Un sistema de gestin de paquetes, tambin conocido como gestor de paquetes, es una coleccin de herramientas que sirven para automatizar el proceso de instalacin, actualizacin, configuracin y eliminacin de paquetes de software. Software Libre y Open Source: El Software Libre hace referencia a la libertad y el Open Source indica gratuidad. Licencias: La licencia es una autorizacin que da el autor de un Software a los usuarios que estn interesados en el uso del mismo. Las libertades del SL estn protegidas por muchas licencias, pasamos a mencionas algunas: GPL, BSD, LGPL y CC. La licencia pblica general de GNU o mas conocida por su nombre en ingls GNU General Public License o simplemente su acrnimo del ingls GNU GPL, es una licencia creada por la Free Software Foundation a mediados de los 80, y est orientada principalmente a proteger la libre distribucin, modificacin y uso de software. La licencia BSD es la licencia de software otorgada principalmente para los sistemas BSD (Berkeley Software Distribution). Las licencias Creative Commons o CC estn inspiradas en la licencia GPL (General Public License) de la Free Software Foundation, sin embargo no son un tipo de licenciamiento de software. Linux User Group: Un Grupo de Usuarios de Linux, tambin conocido por su acrnimo GUL (o en ingls LUG, de Linux User Group), suele ser una asociacin local, provincial, regional o nacional, sin nimo de lucro, que intenta difundir el uso de Linux y del software libre, y su cultura en su mbito de su actuacin, as como representar un punto de apoyo para los propios usuarios.

Curso de Administracin GNU/Linux Nivel I


Clase 1: Conceptos Bsicos de GNU/Linux
Todo sistema operativo posee tres niveles que corresponden a sus funciones vitales:

Kernel o ncleo

Drivers o controladores

Interfaz del usuario


11

El Kernel o el ncleo del sistema es quien realmente controla a la computadora. Es el software responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma ms bsica, es el encargado de gestionar recursos, a travs de servicios de llamada al sistema. Hay cuatro grandes tipos de ncleos: Los ncleos monolticos facilitan abstracciones del hardware subyacente realmente potentes y variadas. Los microncleos (en ingls microkernel) proporcionan un pequeo conjunto de abstracciones simples del hardware, y usan las aplicaciones llamadas servidores para ofrecer mayor funcionalidad. Los ncleos hbridos (microncleos modificados) son muy parecidos a los microncleos puros, excepto porque incluyen cdigo adicional en el espacio de ncleo para que se ejecute ms rpidamente. Son los que reciben o dan salida a seales analgicas que son procesadas digitalmente. Esto puede realizarse gracias a los conversores analogicos/digitales que, como su nombre indica ,convierte seales analgicas a digitales Los exoncleos no facilitan ninguna abstraccin, pero permiten el uso de bibliotecas que proporcionan mayor funcionalidad gracias al acceso directo o casi directo al hardware.

Los Drivers son los programas encargados de la traduccin de instrucciones entre el Kernel y los distintos componentes del hardware. La Interfaz del usuario, por otra parte, tambin se encarga de un tipo de usuario comunicacin, pero con el usuario del sistema.

Curso de Administracin GNU/Linux Nivel I


Clase 1: Tabajando con la lnea de comandos

Intrprete de comandos o Shell

Permite ejecutar ordenes bsicas del sistema operativo

Permite manejar los procesos del sistema

Permite redirigir la entrada/salida de los comandos

Nos provee de un sistema de script (archivos por lotes)


12

Es un programa informtico que acta como Interfaz de usuario para comunicar al usuario con el sistema operativo mediante una ventana que espera rdenes escritas por el usuario en el teclado, los interpreta y los entrega al sistema operativo para su ejecucin. La respuesta del sistema operativo es mostrada al usuario en la misma ventana. A continuacin, El programa shell queda esperando ms instrucciones. Se interacta con la informacin de la manera ms sencilla posible, sin grficas, solo el texto crudo. Por extensin tambin se llama Intrprete de comandos a algunas interfaces de programas (mayores) que comunican al usuario con el software o al Cliente (informtica) de un Servidor, como por ejemplo, bancos de datos (MySQL, Oracle) u otros programas (openSSL, FTP). Dada la importancia de esta herramienta, existe ya desde los comienzos de la computacin. Existen para diversos sistemas operativos, diversos tipos de hardware, con diferente funcionalidad. Suelen incorporar caractersticas tales como control de procesos, redireccin de entrada/salida, listado y lectura de ficheros, proteccin, comunicaciones y un lenguaje de rdenes para escribir programas por lotes o (scripts o guines).

Curso de Administracin GNU/Linux Nivel I


Clase 1: Tabajando con la lnea de comandos

Algunos Intrpretes de comandos:


command.com: es para plataformas MS-DOS, Windows de 16/32 bits.

cmd.exe: es para plataformas Windows NT/2000/XP/2003.

ksh: El korn shell de UNIX para sistemas *nix y GNU/Linux.

C Shell (csh): similar en sintaxis al lenguaje C para sistemas *nix..

Bourne Shell (sh): para sistemas *nix.

13

COMMAND.COM es el nombre del intrprete de comandos para DOS y versiones de Windows de 16/32bits (95/98/98 SE/Me). Al ser el primer programa que se ejecuta despus del inicio, posee tambin el rol de la configuracin del sistema ejecutando el archivo AUTOEXEC.BAT. Como intrprete de comandos, tiene dos modos de ejecucin. El primero es el modo interactivo, en el que el usuario escribe comandos los cuales son luego ejecutados. El segundo es el modo por lotes(batch), que ejecuta una secuencia predefinida de comandos guardada como un archivo de texto con la extensin .BAT. El sucesor de COMMAND.COM en Windows NT/2000/XP/2003 y OS/2 es cmd.exe. cmd.exe El Korn shell (ksh) es un Intrprete de lnea de rdenes para los sistemas Linux y Unix. Fue desarrollado por David Korn de los Laboratorios AT&T Bell en los comienzos de los 80s. Es totalmente compatible con el Bourne Shell y tambin incluye muchos elementos del interprete de comandos C, como historia de rdenes. C Shell es un lenguaje de programacin, conocido tambin como csh y que fue desarrollado por Bill Joy en la Universidad de Berkeley, California. Bourne Shell era la shell por defecto de la versin 7 de Unix, y sustituy la Thompson shell, cuyo ejecutable tena el mismo nombre: sh. Fue desarrollado por Stephen Bourne, de los Laboratorios Bell de AT&T, y vio la luz en la versin 7 de Unix distribuida a colegios y universidades. Todava es una shell muy popular para cuentas Unix. En la mayora de los sistemas Unix el programa binario de la Bourne shell o un programa compatible se encuentra en /bin/sh.

Curso de Administracin GNU/Linux Nivel I


Clase 1: Tabajando con la lnea de comandos

Algunos Intrpretes de comandos:


GNU Bourne Again Shell (bash): variante del Bourne Shell clsico para Linux con caractersticas avanzadas.

Tcsh: versin de C Shell para Linux con funcionalidades similares a bash.

Zsh: pequeo intrprete similar al Bourne Shell.


14

Bash es un shell de Unix (intrprete de rdenes de Unix) escrito para el proyecto GNU. Su nombre es un acrnimo de bourne-again shell (otro shell bourne) haciendo un juego de palabras (born-again significa renacimiento) sobre el Bourne shell (sh), que fue uno de los primeros intrpretes importantes de Unix. Hacia 1978 el intrprete Bourne era el intrprete distribuido con el Unix Version 7. Stephen Bourne, por entonces investigador de los Laboratorios Bell, escribi el intrprete Bourne original . Brian Fox escribi el intrprete bash en 1987. En 1990, Chet Ramey se convirti en su principal desarrollador. bash es el intrprete predeterminado en la mayora de sistemas GNU/Linux.. La "T" de tcsh, viene de la T de TENEX, que es un sistema operativo que inspir a Ken tcsh Greer (el autor de tcsh) con su singular capacidad de autocompletado de comandos. Ken Greer trabaj en su proyecto tcsh a finales de los aos 70 en la Universidad de Carnegie Mellon. Tiempo despus Paul Placeway de la Universidad de Ohio continu con su desarrollo en los aos 80. Zsh Es un interprete de comandos, tambin conocido como shell, para sistemas operativos basados en Unix, como por ejemplo GNU/Linux. La primera versin de la Zsh fue escrita por Paul Falstad en 1990 cuando era un estudiante en la Princeton University. El nombre Zsh deriva de Zhong Shao por entonces un asistente de estudios en la universidad. Paul Falstad pens que su nombre de login "zsh" era un buen nombre para una shell.

Curso de Administracin GNU/Linux Nivel I


Clase 1: Tabajando con la lnea de comandos

Comandos generales:
pwd ls cd find grep touch
15

A continuacin veremos una serie de comandos generales que se encuentran en todas las distribuciones GNU/Linux. Comenzaremos viendo un grupo que se encarga de moverse por el sistema, cambiar de directorio y revisar archivos.

Curso de Administracin GNU/Linux Nivel I


Clase 1: Tabajando con la lnea de comandos

Comandos generales:
pwd - Imprime por pantalla el nombre del directorio de trabajo actual. Sintaxis: pwd <opcin> Opciones: --help: muestra la ayuda del comando y sale del mismo. --version: muestra informacin de la versin del comando. Ejemplos: $pwd $pwd --version
16

Ahora comenzaremos a trabajar con la lnea de comandos y veremos la utilizacin de algunos comandos bsicos que vienen en la gran mayora de las distribuciones GNU/Linux. El comando pwd (Present Working Directory) se encarga de mostrar el directorio actual de trabajo en el cual nos encontramos posicionados.

Curso de Administracin GNU/Linux Nivel I


Clase 1: Tabajando con la lnea de comandos

Comandos generales:
ls Lista los contenidos de los directorios. Sintaxis: ls <opciones> <archivo...> Opciones: -l: lista con formato largo mostrando los permisos, cantidad de enlaces, etc. -a: muestra todos los archivos incluyendo a los ocultos. -R: lista en forma recursiva el contenido de los subdirectorios encontrados. Ejemplos: $ls -la $ls -R
17

Uno de los comandos ms utilizados es el ls (list), el cual se encarga de mostrar los archivos que se ubican dentro del directorio actual de trabajo. Algunos de sus usos ms importantes son ls color (muestra la salida formateada por colores) ls -l (muestra la salida en modo listado largo) ls -a (muestra los archivos ocultos) ls -R (muestra el contenido en forma recursiva) ls -F(muestra los directorios anteponiendo el carcter /) Debemos tener en cuenta que los usuarios deben tener permiso para poder listar el contenido de un determinado directorio (esto lo veremos ms adelante en el curso).

Curso de Administracin GNU/Linux Nivel I


Clase 1: Tabajando con la lnea de comandos

Comandos generales:
cd Cambia el directorio de trabajo. Sintaxis: cd <opciones> <ruta> Opciones: .: cambia al directorio actual. ..: cambia el directorio actual al padre. Ejemplos: $cd .. $cd /home/juan
18

Otro comando muy utilizado es el cd (change directory) que nos permite cambiar el directorio a actual al que nosotros tipeemos. Algunas opciones importantes son cd .. (cambia al directorio padre) cd (cambia al directorio anterior) cd . (cambia al directorio actual) cd ~ (cambia al directorio principal del usuario)

Curso de Administracin GNU/Linux Nivel I


Clase 1: Tabajando con la lnea de comandos

Comandos generales:
find Realiza una bsqueda de archivos en una jerarqua de directorios. Sintaxis: find <opciones> <ruta...> <expresin> Opciones: -L: seguir enlaces simblicos. -P: No seguir enlaces simblicos. Ejemplos: $find -L /home -name archivo.txt $find -P / -iname linux*
19

El comando find (bsqueda) nos permite buscar archivos en una ubicacin especfica utilizando distintos tipos de bsqueda, entre ellos: find ./ -iname algo* (busca todos los archivos que comiencen con algo) find ./ -type f (muestra nicamente los archivos, no mostrando enlaces y directorios) find /home/usuario -L (sigue los enlaces hasta su destino especfico) find ../ -type -f -ls (muestra solamente los archivos del directorio actual en formato largo) find . \( -name "*txt" -or -name "*dat" \) -type f -ls (muestra todos los archivos que terminan en txt o directorio actual de trabajo en formato largo) dat dentro del

Curso de Administracin GNU/Linux Nivel I


Clase 1: Tabajando con la lnea de comandos

Comandos generales:
touch Cambia la fecha de un archivo. Sintaxis: touch <opciones> <archivo...> Opciones: -a: cambia solamente el tiempo de acceso. -m: cambia solamente la fecha de modificacin. -c: no crea archivos que no existan antes. Ejemplos: $touch archivo.txt $touch -am -t 0803011100.30 archivo1.txt
20

Este comando cambia la fecha de creacin de un archivo, adems si este archivo no existe se crea, con contenido vaco.

Curso de Administracin GNU/Linux Nivel I


Clase 1: Tabajando con la lnea de comandos

Comandos generales:
grep Imprime en pantalla las lineas que coincidan con un patrn especificado. Sintaxis: grep <opciones> patrn <archivo...> Opciones: -r: busca recursivamente dentro de todos los subdirectorios del directorio actual. -H: Imprime el nombre del archivo con cada coincidencia. Ejemplos: $grep 'pc1' archivo.txt $grep -H 'pc2' archivo1.txt
21

El comando grep (global regular expression print) permite buscar una subcadena de texto o expresin en una cadena dada. Por ejemplo grep 'hola' archivo1 (devuelve todas las lneas en donde se encuentra la cadena 'hola' en el archivo 'archivo1') grep -v 'adios' archivo2 (devuelve todas las lneas que no contienen la cadena 'adios' en el archivo 'archivo2') grep --color 'cadena' algo (devuelve todas las lneas donde se encuentra la cadena 'cadena' en el archivo 'algo' y colorea las coincidencias)

Curso de Administracin GNU/Linux Nivel I


Clase 1: Tabajando con la lnea de comandos

Comandos para mostrar informacion sobre archivos:


stat file

22

A continuacin veremos un par de comandos que nos muestran informacin sobre el estado y el tipo de archivo.

Curso de Administracin GNU/Linux Nivel I


Clase 1: Tabajando con la lnea de comandos

Comandos para mostrar informacion sobre archivos:


stat muestra el estado de un archivo o un sistema de archivos Sintaxis: stat <archivo> Opciones: -f: muestra informacin acerca de un sistema de archivos en vez de un archivo Ejemplos: $stat /home/usuario/Desktop $stat -f /dev/hda
23

El comando stat (statistics) muestra el informacin y el estado de un archivo o de un sistema de archivos, si se usa con un archivo, nos permite ver su fecha de creacin, modificacin, cantidad de bloques e inodos y dems. Si se usa con un sistema de archivos (con la opcin -f) nos muestra espacio total y disponible del mismo (en bloques) entre otros.

Curso de Administracin GNU/Linux Nivel I


Clase 1: Tabajando con la lnea de comandos

Comandos para mostrar informacion sobre archivos:


file identifica tipos de archivos Sintaxis: file <archivo> Opciones: -i: muestra informacin de su archivo y su tipo mime

Ejemplos: $file /home/usuario/Desktop $file -i /home/usuario/.bashrc


24

El comando file (archivo) se encarga de proporcionar informacin sobre el tipo de archivo al que nos referimos, asi como informacin sobre su tipo mime.

Curso de Administracin GNU/Linux Nivel I


Clase 1: Tabajando con la lnea de comandos

Comandos para mostrar el contenido de archivos:


cat tac head tail more less
25

A continuacin veremos los comandos que se utilizan para mostrar el contenido de un archivo (plano o de texto) de diferentes formas. Los comandos cat y tac muestran el contenido total de un archivo en orden e inversamente. Los comandos head y tail muestran las primeras y ltimas lneas de un archivo, respectivamente. Los comandos more y less muestran el archivo en formato paginado, permitiendo navegar por su contenido y realizar bsquedas

Curso de Administracin GNU/Linux Nivel I


Clase 1: Tabajando con la lnea de comandos

Comandos para mostrar el contenido de archivos:


cat muestra el contenido de un archivo y permite concatenar cadenas de texto tac muestra el contenido de un archivo en orden inverso Sintaxis: cat <opciones> <archivo...> Opciones: -b: no muestra las lneas en blanco del archivo -n: nmera las lneas del archivo Ejemplos: $cat -b archivo $cat -n archivo2
26

El comando cat (catenate) se encarga de mostrar el contenido de un archivo o de concatenar cadenas de texto, adems suele utilizarse junto con el comando grep: cat archivo | grep hola (devuelve todas las lneas del archivo 'archivo' que contienen la cadena 'hola') El comando tac (catenate al revs) realiza la misma tarea que el comando cat pero muestra los archivos en orden inverso, es decir comenzando por la ltima lnea y llegando a la primera.

Curso de Administracin GNU/Linux Nivel I


Clase 1: Tabajando con la lnea de comandos

Comandos para mostrar el contenido de archivos:


head muestra las 10 primeras lneas de un archivo tail muestra las 10 ltimas lneas de un archivo Sintaxis: head <opciones> <archivo...> tail <opciones> <archivo...> Opciones: -n: muestra las n lneas del archivo Ejemplos: $head -n 10 archivo1 $tail archivo2
27

Los siguientes dos comandos son muy utilizados a la hora de visualizar partes de un archivo. El comando head (cabecera) nos muestra por defecto las 10 primeras lneas de un archivo, mientras que el comando tail (cola) muestra las ltimas 10. El comando tail se utiliza mucho, en especial cuando se est observando el estado de un servicio y los eventos que suceden al mismo (servidores web, ftp, mail) a travs de sus archivos de log, de esta forma podemos ver nicamente las ltimas lneas del archivo que contienen la informacin reciente. Una opcin interesante es el paramtro -f el cual hace que a medida que se escriben el archivo, stas se ven reflejadas en la pantalla.

Curso de Administracin GNU/Linux Nivel I


Clase 1: Tabajando con la lnea de comandos

Comandos para mostrar el contenido de archivos:


more muestra el contenido de un archivo por pantalla less muestra el contenido de un archivo en orden inverso Sintaxis: more <opciones> <archivo...> less <opciones> <archivo...>

Ejemplos: $more /home/usuario/.bashrc $less /var/log/syslog


28

Estos comandos se utilizan mucho cuando deseamos recorrer un archivo de texto sin modificarlo (ya sea porque no queremos hacerlo o porque no tenemos permisos para realizar modificaciones en el mismo). more fue el primer comando que se utiliz para sto, fue heredado ya de Unix y se utiliza actualmente. less es un comando mucho ms potente, que reemplaza al anterior en todas sus funciones y adems permite recorrer el documento en ambos sentidos y realizar bsquedas en el texto.

Curso de Administracin GNU/Linux Nivel I


Clase 1: Tabajando con la lnea de comandos

Comandos para consultar la ayuda:


info man apropos whereis whatis which
29

A continuacin mostraremos brevemente cuales son los comandos utilizados para consultar la ayuda del sistema y para mostrar informacin sobre un determinado comando. Los 3 primeros comandos (info man y apropos) consultan informacin del sistema sobre algn info, apropos tipo de comando y muestran ms o menos informacin segn como se usen. Los 3 ltimos en cambio (whatis, whereis y which) muestran informacin ms resumida sobre un ) (whatis comando, as como tambin su ubicacin en disco.

Curso de Administracin GNU/Linux Nivel I


Clase 1: Tabajando con la lnea de comandos

Comandos para consultar la ayuda:


info muestra informacin sobre un comando man muestra el manual de un comando (man page) apropos busca informacin sobre comandos entre su nombre y descripcin Sintaxis: info <comando> man <comando> apropos <patrn a buscar> Ejemplos: $info ls $man ls $apropos list
30

En GNU/Linux normalmente cada comando tiene una pgina de ayuda denominada pgina del manual(man page), que contiene detalles tcnicos sobre su utilizacin. Si bien son una muy buena manual fuente de informacin, no forman un tutorial del mismo y no brindan un formato demasiado amigable a la vista, esto sucede ya que los programadores no pierden demasiado tiempo documentando. Las pginas man no solamente hablan de comandos, tambin existen sobre archivos de configuracin y sobre recursos del sistema. Las pginas man vienen Algunas herramientas GNU en vez de pginas man contienen pginas info. En lugar de utilizar un info formato lineal, las pginas info estn organizadas en una estructura de rbol y con referencias cruzadas, brindando una navegacin ms amigable. El comando apropos busca informacin sobre una cadena de texto que se le pasa como parmetro en las descripciones y en los nombres de comandos.

Curso de Administracin GNU/Linux Nivel I


Clase 1: Tabajando con la lnea de comandos

Comandos para consultar la ayuda:


whereis devuelve la ubicacin de un comando y sus archivos de ayuda which devuelve la ubicacin de un comando whatis muestra una breve descripcin de un comando Sintaxis: whereis <comando> which <comando> whatis <patrn a buscar> Ejemplos: $whatis pwd $whereis pwd $which pwd
31

Los ltimos comandos que veremos hoy sirven para mostrar informacin breve acerca de un comando. El comando which nos muestra informacin sobre la ruta de un comando (generalmente un /bin o /usr/bin como veremos ms adelante). El comando whereis adems nos muestra la ubicacin de sus archivos de ayuda (generalmente se encuentran comprimidos en formato gz, en el directorio /usr/share/man). El comando whatis muestra informacin muy resumida acerca de un comando y de su funcin.

Curso de Administracin GNU/Linux Nivel I


Clase 1: Dudas? Consultas?

Informacin de contacto
Va Web:
http://www.gugler.com.ar http://cursos.gugler.com.ar

Va Mail:
contacto@gugler.com.ar soporte@gugler.com.ar capacitacion@gugler.com.ar cursos@gugler.com.ar
32

Versin 1.0

No duden en comunicaste con nosotros por cualquier duda, consulta o sugerencia que deseen realizar. A la brevedad estaremos subiendo los contenidos de la prxima clase.

Administracin GNU/Linux Nivel I Currcula 1.0 Copyright Gugler 2009

Potrebbero piacerti anche