computacion – 2016 -...

70
COMPUTACION – 2016 Introducción al UNIX / Linux Paula Benaglia [email protected] Rodolfo Vallverdú Andrea Torres Página: http://valhalla.fcaglp.unlp.edu.ar/computacion/ Fuentes: WeeSan Lee, Dan Hood, Eric Bishop

Upload: duongdan

Post on 07-Oct-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

COMPUTACION – 2016 Introducción al UNIX / Linux

Paula Benaglia

[email protected]

Rodolfo Vallverdú Andrea Torres

Página: http://valhalla.fcaglp.unlp.edu.ar/computacion/

Fuentes: WeeSan Lee, Dan Hood, Eric Bishop

http://valhalla.fcaglp.unlp.edu.ar/computacion/

¿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)

Historia de UNIX y Linux

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

Conexión a un sistema Unix/Linux

• Abrimos una terminal:

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!

Comandos: general

$ comando [ opcion(es) ] < argumento(s) >

¡Ayuda! • Cuando necesiten ayuda con un comando, tipeen “man”

seguido por el nombre del comando

¡Ayuda!

¡Ayuda!

¡Ayuda!

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: pwd • Para conocer el path del directorio de trabajo se usa “pwd”

Comando: cd • Para cambiar a un directorio específico se usa “cd”

Comando: cd •  “~” representa el directorio ‘home’ de cada usuario

Comando: cd •  “..” representa el directorio ‘arriba’ o ‘padre’ del corriente

(directorio corriente = directorio de trabajo)

Comando: ls • Para listar los archivos en el directorio de trabajo se usa “ls”

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

Sintaxis general: * •  “*” puede ser usado como comodín en Unix/linux

Comando: mkdir • Para crear un nuevo directorio se usa “mkdir”

Comando: rmdir • Para borrar un directorio vacío se usa “rmdir”

Creación de archivos en Unix/Linux •  Se necesita usar un Editor •  Hay varios Editores:

1)  nano / pico 2)  vi, vim 3)  emacs

Editar un archivo usando pico o nano •  Tipeen “pico” o “nano”

Editar un archivo usando pico • Para guardar los cambios se usa “ctrl-x”

Desplegar un archivo • Hay muchas formas de desplegar un archivo en Unix

•  cat •  less •  head •  tail

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

Comando: head • Ejemplo de uso:

Comando: tail •  Lo mismo que el comando head, pero muestra las últimas

líneas

Comandos de archivos • Copiar un archivo: cp • Mover o renombrar un archivo: mv • Borrar un archivo: rm

Comando: cp • Para copiar un archivo se usa “cp”

Comando: mv • Para mover un archivo a un área (directorio) diferente se usa “mv”

Comando: mv • mv puede usarse también para renombrar archivos

Comando: rm • Para borrar un archivo se usa “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

Permisos de archivos

Usuario (ustedes)

Permisos de archivos

Grupo

Permisos de archivo

“el mundo”

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$

program saludo write(*,*) ‘¡¡Holis!!’ end

Poner fin a un programa • Para forzar el fin de un programa se usa “ctrl-c”

Comando: ps • Para conocer qué procesos estoy corriendo:

Comando: top • Para conocer el uso de CPU de todos los procesos:

Comando: kill • Para liquidar un proceso se usa “kill”

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”

Ejemplos de “piping”

Ejemplos de “piping”

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

Ejemplos de “piping”

Comando: grep • Para buscar archivos en un directorio que contengan una

cadena de caracteres específica se usa “grep”

Comando: diff • Para buscar diferencias entre archivos se usa “diff”

•  diff arch1 arch2

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]

$ exit