Upload
duongdan
View
217
Download
0
Embed Size (px)
Citation preview
COMPUTACION – 2016 Introducción al UNIX / Linux
Paula Benaglia
Rodolfo Vallverdú Andrea Torres
Página: http://valhalla.fcaglp.unlp.edu.ar/computacion/
Fuentes: WeeSan Lee, Dan Hood, Eric Bishop
¿Qué es un sistema operativo? • El sistema operativo (SO) es un paquete de programas que se
ponen en marcha cuando se enciende el equipo; ellos corren por debajo de todos los demás programas. Sin el SO, no pasaría absolutamente nada.
• Un SO es un gerente. Gestiona todos los recursos disponibles en la computadora: la CPU, la memoria, los accesos a discos, ...
• Tareas del SO: • Controla el hardware (todas las partes de la computadora), y trabaja
para conseguir que todo funcione en conjunto. • Ejecuta las aplicaciones –o software-, que incluyen procesadores de
texto, navegadores, juegos, etc. • Maneja datos y archivos: el SO le facilita al usuario el manejo de la
compu. A través de él, podemos trabajar con los datos, copiarlos, moverlos, borrarlos, renombrarlos. Ayuda a encontrar y organizar los datos.
Partes del SO • Kernel – se ocupa de manejar la memoria, los requerimientos
de entrada y salida y la programación de los programas.Es el núcleo del SO. Provee la conexión básica entre el software y el hardware.
• Shell e Interfaces gráficas de los usuario (GUIs) – Los shells proveen la interfaz de línea de comando para que los usuarios tipeen comandos. Estos comandos son traducidos a algo que el kernel puede comprender, y ejecutados por el kernel.
• Programas básicos – son programas que le permiten al usuario realizar tareas más complejas, que por eso no puede construirse en el shell. Ejemplos: programas que nos permiten ver los contenidos de un directorio, mover y copiar archivos, borrarlos, etc...
• Otros programas – son programas adicionales a la distribución del SO, o disponibles por separado. Van desde versiones adicionales o diferentes de utilidades básicas a aplicaciones comerciales a gran escala.
¿Qué es UNIX? • Un sistema operativo
• Desarrollado por la compañía AT&T Bell Labs en los 1960‘
• Un intérprete de comandos de línea
• Con interfaces gráficas para cada usuario (tipo Windows)
Características generales del SO • Multiusuario, Multitarea, Multiplataforma
• Con más de 30 años de uso
• Gran cantidad de aplicaciones
• Aplicaciones gratis y SO gratis
• Usa menos recursos que otros SO
• Desarrollos en Internet: Gran parte de la columna vertebral de internet es manejada desde servidores UNIX.
Presentaciones del SO Puede agruparse en dos categorías: Open Source y Propietario • Propietario: (redistribucion y modification prohibida o restringida; se paga)
• Solaris • IRIX • Mac OS X • Y otros más ...
• Open Source: (el código fuente está disponible y libre de ser modificado) • FreeBSD • Distribuciones Linux
• RedHat y Fedora Project (mantenido por RedHat) • Mandrake • Debian • SuSE • Slackware • Y otros más.
Linux es un SO open source, basado en UNIX, cuyo kernel fue original-mente desarrollado en 1991 por Linus Torvalds, un estudiante finlandés.
Unix versus Linux • Unix fue el predecesor de Linux • Linux es una variante de Unix (así como Mac OS X) • Linux es un sistema de código abierto (open source)
¿Por qué usar Unix/Linux?
• Linux es gratis
• Es totalmente “personalizable”
• Es estable (i.e. casi nunca se “cae”)
Estas características lo vuelven un SO ideal para programadores y científicos
GUI: Interfaz gráfica de usuario
• Para usar las máquinas con SO Linux de la Sala Informatizada debemos ingresar usuario y palabra clave (password) = “logearnos” en el sistema. Se abre un entorno grafico que se asemeja al de Windows.
GUI: Interfaz gráfica de usuario Interfaz de línea de comando
• Para usar las máquinas con SO Linux de la Sala Informatizada debemos ingresar usuario y palabra clave (password) = “loguearnos” en el sistema. Se abre un entorno grafico que se asemeja al de Windows.
• Se puede acceder al SO a través de una terminal de texto
El “prompt”
El directorio de trabajo (parte del “path”)
El ‘anfitrion’
Conexión a un sistema Unix/Linux
• Abrimos una terminal:
¿Qué es el “shell”? • Luego de ‘loguearse’, Linux/Unix corre un programa llamado shell
• El shell interpreta los comandos que tipea el usuario y maneja su ejecución
• El shell se comunica con la parte interna del SO llamada kernel
• Los shells más usados son: tcsh, csh, korn, and bash • En la sala informatizada se usa por defecto bash
• ¡Los comandos del shell son SENSIBLES a MAYÚSCULAS y minúsculas!
Sistema de archivos Unix/Linux
/home/john/portfolio/
/home/mary/
El Path o camino
NOTA: los nombres de los archivos son SENSIBLES a MAY/min
Directorios Archivos
Comando: cd • “..” representa el directorio ‘arriba’ o ‘padre’ del corriente
(directorio corriente = directorio de trabajo)
Comando: ls • ls tiene muchas opciones
• -l lista larga (despliega mucha info) • -t ordena la lista según fecha de última modificación • -S ordena por tamaño • -h lista tamaños de archivos en una unidad más legible • -r lista en orden inverso
• “man ls” para más opciones • Las opciones pueden combinarse “ls -ltr”
Comando: ls -ltr • Lista archivos por fecha de última modificación, en orden inverso, usando lista larga
Creación de archivos en Unix/Linux • Se necesita usar un Editor • Hay varios Editores:
1) nano / pico 2) vi, vim 3) emacs
Comando: cat • ‘Escupe’ un archivo entero en la ventana de salida • Se usa para desplegar (=mostrar) archivos cortos
Comando: less • “less” despliega un archivo permitiendo recorrerlo hacia
adelante y hacia atrás • La tecla ‘enter’ avanza línea por línea de a una; • La barra espaciadora avanza página por página; • La tecla ‘y’ retrocede una línea; • La tecla ‘b’ retrocede una página.
• se puede usar “/” para buscar una palabra • Para salir, tipear ‘q’.
Comando: head • “head” despliega las primeras líneas –o registros- de un
archivo • Por defecto muestra las 10 primeras líneas • Con la opción -n se puede cambiar lo anterior • “head -n50 file.txt” despliega las primeras 50 líneas del
archivo file.txt
Comandos de archivos • Copiar un archivo: cp • Mover o renombrar un archivo: mv • Borrar un archivo: rm
Comando: rm • Para borrar un directorio que tiene archivos se puede
+ borrar primero todos sus archivos con rm * y luego el directorio vacío con rmdir <nombre-del-dir>
+ borrar directorio y contenido con rm –rf <nombre-del-dir> • OJO, que por línea de comandos, el borrar archivos y
directorios es una acción que no puede deshacerse !!!
Permisos de archivos • Cada archivo (y directorio) en Unix/Linux tiene un nivel de
permisos asociados • Esto protege al usuario de que otros le lean, modifiquen o
ejecuten sus archivos y/o directorios • Se usa “ls –l nombre-de-archivo” para conocer el nivel de
permisos de ese archivo
Niveles de permisos • “r” significa permiso de lectura • “w” significa permiso de escritura • “x” significa permiso de ejecución
• En el caso de directorios, “x” otorga permiso de listar el contenido del directorio
Comando: chmod • Si uno es el dueño de archivo, puede cambiar los
permisos con “chmod” • Sintaxis: chmod [user/group/others/all]+[permiso] [archivo(s)] • Abajo, otorgamos permiso de ejecución para todos los archivos:
Correr un programa (t.c.c. un ‘job’) • Asegúrense de que el programa tiene permisos de
ejecución • Se usa “./” para correr el programa
Correr un programa: ejemplo • Correr el ejemplo fortran “holis-en-fortran”
zhome:~/linux_tutorial$ ./holis-en-fortran¡¡Holis!!zhome:/~linux_tutorial$
Redirección Entrada/Salida (“piping”) • Los programas (o salidas de programas) pueden usarse como entradas de otros programas
• Esto se denomina “piping” • “programa_a | programa_b”
• la salida del programa_a output pasa a ser la entrada del programa_b
• “programa_a > arch1.txt” • la salida del programa_a se guarda en un archivo
llamado “arch1.txt” • “programa_a < input.txt”
• el programa_a toma una entrada de un archivo llamado “input.txt”
Comando: wc • Para contar caracteres, palabras y líneas de un archivo
se usa “wc” • La primera columna en la salida es la cantidad de líneas,
la segunda es de palabras y la tercera es de caracteres
Comando: grep • Para buscar archivos en un directorio que contengan una
cadena de caracteres específica se usa “grep”
ssh, scp • ssh se usa para loguearse en forma remota a otros sistemas (antes
se usaba telnet) • ssh [username]@[hostname] • scp se usa para copiar en forma segura archivos desde/hacia
sistemas remotos. La sintaxis es similar a cp: • scp [path de archivo local] [usernme]@[hostname]:[path de archivo
remoto]