Upload
matiasromero
View
217
Download
0
Embed Size (px)
DESCRIPTION
El proyecto GNU fue iniciado por Richard Stallman con el objetivo de crear un sistema operativo completamente libre: el sistema GNU.1El 27 de septiembre de 1983 se anunció públicamente el proyecto por primera vez en el grupo de noticias net.unix-wizards. 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 espíritu de cooperación que prevaleció en los tiempos iniciales de la comunidad de usuarios de computadoras".UNIX es un sistema operativo no libre muy popular, porque está basado en una arquitectura que ha demostrado ser técnicamente estable. El sistema GNU fue diseñado para ser totalmente compatible con UNIX. El hecho de ser compatible con la arquitectura de UNIX implica que GNU esté compuesto de pequeñas piezas individuales de software, muchas de las cuales ya estaban disponibles, como el sistema de edición de textos TeX y el sistema gráfico X Window, que pudieron ser adaptados y reutilizados; otros en cambio tuvieron que ser reescritos.Para asegurar que el software GNU permaneciera libre para que todos los usuarios pudieran "ejecutarlo, copiarlo, modificarlo y distribuirlo", el proyecto debía ser liberado bajo una licencia diseñada para garantizar esos derechos al tiempo que evitase restricciones posteriores de los mismos. La idea se conoce en Inglés como copyleft (lo cual significa que el autor permite la distribución libre del mismo, en clara oposición a copyright o "derecho de autor"), y está contenida en la Licencia General Pública de GNU (GPL).Richard Stallman, iniciador del proyecto GNUEn 1985, Stallman creó la Free Software Foundation (FSF o Fundación para el Software Libre) para proveer soportes logísticos, legales y financieros al proyecto GNU. La FSF también contrató programadores para contribuir a GNU, aunque una porción sustancial del desarrollo fue (y continúa siendo) producida por voluntarios. A medida que GNU ganaba renombre, negocios interesados comenzaron a contribuir al desarrollo o comercialización de productos GNU y el correspondiente soporte técnico. El más prominente y exitoso de ellos fue Cygnus Solutions, ahora parte de Red Hat.En 1990, el sistema GNU ya tenía un editor de texto llamado Emacs, un exitoso compilador (GCC), y la mayor parte de las bibliotecas y utilidades que componen un sistema operativo UNIX típico. Pero faltaba un componente clave llamado núcleo (kernel en inglés).En el manifiesto GNU, Stallman mencionó que "un núcleo inicial existe, pero se necesitan muchos otros programas para emular Unix". Él se refería a TRIX, que es un núcleo de llamadas remotas a procedimientos, desarrollado por el MIT y cuyos autores decidieron que fuera libremente distribuido; TRIX era totalmente compatible con UNIX versión 7. En diciembre de 1986 ya se había trabajado para modificar este núcleo. Sin embargo, los programadores decidieron que no era inicialmente utilizable, debido a que solamente funcionaba en "algunos equipos sumamente complicados y caros" razón por la cual debería ser portado a otras arquitecturas antes de que se pudiera utilizar. Finalmente, en 1988, se decidió utilizar como base el núcleo Mach desarrollado en la CMU. Inicialmente, el núcleo recibió el nombre de Alix (así se llamaba una novia de Stallman), pero por decisión del programador Michael Bushnell fue renombrado a Hurd. Desafortunadamente, debido a razones técnicas y conflictos personales entre los programadores originales, el desarrollo de Hurd acabó estancándose.Símbolo del CopyleftEn 1991, Linus Torvalds empezó a escribir el núcleo Linux y decidió distribuirlo bajo la licencia GPL. Rápidamente, múltiples programadores se unieron a Linus en el desarrollo, colaborando a través de Internet y consiguiendo paulatinamente que Linux llegase a ser un núcleo compatible con UNIX. En 1992, el núcleo Linux fue combinado con el sistema GNU, resultando en un siste
Citation preview
Sistema Operativo GNU/Linux
2Copyright y licencia
Obra tomada y ADAPTADA por Enrique Corchero para este curso desde: http://cs.uns.edu.ar/~ags/linux
Copyright 2005 Alejandro G. Stankevicius y Javier Echaiz.
Se asegura la libertad para copiar, distribuir y modificar este documento de acuerdo a los trminos de la GNU Free Documentation License, Version 1.2 o cualquiera posterior publicada por la Free Software Foundation, sin secciones invariantes ni textos de cubierta delantera o trasera.
Una copia de esta licencia est siempre disponible en la pgina http://www.gnu.org/copyleft/fdl.html.
3Shells - IntroduccinUn shell provee una interfaz tradicional de lnea de comandos Se denomina shell = caparazn porque es la
cubierta externa del S.O., observable por los usuarios.
El usuario opera su computadora mediantes comandos que el shell ejecuta (texto accin).
Es similar al command.com/cmd.exe del M$-Window$
4 Para acceder a nuestra linea de comandos:Aplicaciones -> Accesorios -> Terminal
Interpretacin del prompt:
usuario@maquina:~$
usuario que inici la sesin, seguido del nombre de la maquina y luego del : el directorio donde estamos actualmente (~ en este caso).
El smbolo $ es el prompt que nos indica que la consola est lista para aceptar comandos.
5Qu Shell usamos?
Para saber los shells presentes en nuestra mquina:$> cat /etc/shells
Para saber qu shells estamos usando:$> echo $SHELL
6Ventajas del Bourne Again SHell Es software libre!!! (licencial GNU GPL) Incorpora caractersticas tiles de otros
shells Cumple estandares internacionales. Muy potente tanto para la programacin
como para el uso interactivo. De todas formas, el shell es personal...
BASH
7Programas y E/S estndar
ProgramaStandard Input(STDIN)
Standard Error(STDERR)
Standard Output(STDOUT)
8Comandos Bsicos
Comando Funcin Significado
man Muestra la ayuda sobre un cmd Manual
cat Mostrar un archivo en pantalla conCATenate
cp Copiar un archivo CoPy
mv Renombrar o Mover un arch. MoVe
rm Borrar archivos ReMove
ls Listar el contenido de un dir. LiSt
chmod Cambiar permisos Change MODe
pwd Muestra el directorio actual Print WorkingDir
cd Cambia el directorio actual Change Dir
9Comandos Bsicos
Comando Funcin Significado
mkdir Crear un directorio MaKe DIR
rmdir Borrar un directorio ReMove DIR
ps Muestra los procesos en ejecucin Process Status
df Muestra estatus sobre sist.arch Disk File
du Muestra la ocupacin del disco Disk Utilization
grep Busca patrones en archivos
lpr Imprimir un archivo Line PRinter
otros tantos:
top, touch, echo, uname, wc, tar, gzip, zip, cut, paste, tee...
10
Ejercicios Prcticos
Mostrar directorio actual.Ejecutar el comando pwd directamente sobre el usuario con el que nos hemos logueado.
usuario@maquina:~$ pwd
Listar directorio actual.Para realizar esta accin debemos de ejecutar el comando ls directamente sobre el usuario con el que nos hemos logueado, en este caso usuario.
usuario@maquina:~$ ls
11
Crear estructura desde el directorio /home/usuario.
Puesto que estamos dentro del directorio usuario debemos de crear 4 primeras ramas de las que luego colgaran subdirectorios u otros ficheros. Para crear estas ramas:
Si son directorios deberemos utilizar el comando mkdir como por ejemplo: mkdir dir1 dir2 dir3 dir4 (sin espacios!!)
Si son ficheros utilizaremos el comando touch. Ejemplo:
touch f1 f2
Una vez creados los directorios, crearemos subdirectorios y ficheros; para ello nos introduciremos en cada directorio a travs del comando cd por ejemplo:
cd /home/usuario/dir1usuario@maquina:dir1$ mkdir dir11
Hacemos lo mismo dentro de cada directorio:dir1/dir11 dir2/dir22 dir3/dir33 dir4/dir44
Ejercicios Prcticos
12
Crear archivos f1, f2, f3 y f4 en los respectivos directorios dir1, dir2, dir3, dir4Cmo lo hacemos?
$ cd dir1$ touch f1$ cd ..$ cd dir2$ touch f2
Y as......
Ejercicios Prcticos
13
Cmo movemos archivos? Con el comando mv Ejemplo: $ cd dir1
$ mv f1 /home/usuario/dir2$ cd ..$ cd dir2$ ls
Y cmo copiamos un archivo?Intentemos resolverlo entre todos...
Ejercicios Prcticos
14
Wildcards (comodines)
En la lnea de comandos algunos caracteres son tratados de manera especial.
Estos caracteres especiales facilitan la especificacin de archivos/directorios.
Reemplazan la lnea de comandos por una que incluye muchos nombres de archivos.
Veamos a continuacin estos comodines.
15
El wildcard *
* = concuerda con todo. * como argumento es reemplazado por
todos los nombres de archivo del directorio actual.
a*b concuerda con todos los archivos que empiezan con a y terminan con b.
Ejemplos:$> ls -l *conf
$> rm *
16
Redireccin de la entrada
En lugar del teclado, redirigimos la entrada a otro archivo. Este archivo ser la entrada del comando tipeado.
Alternativamente se puede emplear un pipe. La salida de otro programa ser la entrada del comando tipeado.
Ver Ejemplos!
17
Redireccin de la salida
En lugar de la pantalla redirigimos la salida a otro archivo. Este archivo ser la salida del comando tipeado. (no habr salida en el monitor)$> ls -l > lista_directorio.txt
Alternativamente se puede emplear un pipe: La salida del comando tipeado ser la entrada de otro programa.$> cat lista_directorio.txt|sort
18
Comando cat Crearemos un archivo colectivo llamado pelis $ touch pelis Dentro de el archivo pelis entre todos
escribiremos peliculas que hallamos visto $ cat > pelis
Ejercicios Prcticos
19
Pipes (Caeras)
Un pipe es un espacio donde se mantiene un stream de datos.
Un pipe enva la salida de un programa como entrada de otro, i.e. comunica los streams std.
Ejemplo:$> history | less
prog1prog1 prog2prog2
20
Buscamos informacin sobre algunos comandos
Busquemos en la Web informacin sobre para qu sirven y cmo se usan los comandos de bsqueda: find y locate
Busquemos en la Web informacin sobre para qu sirve y cmo se usa el comando: grep
#
Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20