El sistema operativo Linux Introducción Que es linux Sistema operativo que emula UNIX Creado por un estudiante, Linus Torvald, para poder hacer sus prácticas en un PC. Nace en 1991 Linux 1.0 en 1994 2.2 en 1999 Hoy > 10 millones de ordenadores Linux es un completo S.O. Basado en Unix, 32 o 64 bits Integra –sin instalación extra- multitud de herramientas de gran potencia como grep, compiladores (C, C++, FORTRAN, …) o herramientas de red/internet (FTP, Telnet) Multi-usuario, multi-tarea, multiprocesador. Multiplataforma. Interfaz gráfica: Sistema X. Archivos y procesos Todo en linux es un archivo o un proceso Proceso: con un identificador único. Archivo: programa en ejecución colección de datos. Documentos, código, instrucciones, directorios. Estructura de directorios La consola Podemos interactuar con linux a través de una terminal (consola) Potente, pero requiere más práctica mediante su interfaz gráfica. Similar a windows. Acceso a la información Listar archivos y directorios ls lista directorios ls – la lista todos los archivos incluyendo los ocultos Crear un directorio mkdir micarpeta crea un directorio llamado “micarpeta” si no se indica ningún path lo crea en el directorio por defecto (default dir) Cambiar de directorio cd micarpeta_inferior Cambia el directorio por defecto a un subdirectorio del directorio actual llamado “micarpeta_inferior” pwd (print working directory) Muestra el directorio de trabajo, o “actual” Los directorios . y .. “.” indica el directorio actual. “..” indica el directorio superior al directorio actual. El path y los pathnames • Un archivo siempre se encuentra en una posición relativa al directorio raíz (/): Esto es su “path”. • El nombre del path forma parte del del archivo en tanto que salvo si estamos en el mismo directorio sin él no podemos acceder al archivo. El path y pathnames (2) Resumen Comodines • • Los comodines permiten aplicar una instrucción a un conjunto de archivos definido genéricamente. Los dos principales son • • * : Cero o más caracteres ? : Un carácter en la posición indicada Ayudas en linea La ayuda para todo linux se obtiene con la instrucción man Otras instrucciones + whatis + apropos Comodines y ayuda Gestión de la información Copiar archivos cp archivo1 archivo2 – Hace una copia del primer archivo en el segundo cp archivo1 . – Hace una copia del primer archivo en el directorio actual con el mismo nombre cp archivo1 .. – Hace una copia del primer archivo en el directorio superior al actual Mover archivos mv archivo1 archivo2 – Mueve el primer archivo (cualquiera que sea su path) al nombre y posición del segundo. mv archivo1 . – Mueve un archivo desde cualquier localización al directorio actual mv archivo1 .. – Mueve un archivo desde cualquier localización al directorio superior al actual. Borrar archivos Elimina archivos (rm) o directorios (rmdir) % cp science.txt tempfile.txt % ls % rm tempfile.txt % ls Ver lo que contienen clear: Limpia la pantalla cat: Muestra un archivo por pantalla less: Muestra un archivo por pantalla, de pantalla en pantalla head: Muestra las primeras líneas tail : muestra las últimas lineas Buscar (por fuera y por dentro) Una de las partes más potentes de linux: la capacidad de buscar archivos o dentro de su contenido usando distintos filtros. less less science.txt / science grep grep Science science.txt grep es más que un comando grep [-ivnc] cadena enarchivo - v muestra las lineas que NO coinciden -n precede cada coincidencia con el número de linea -c muestra solamente el número total de lineas que coinciden -i ignora mayúsculas o minúsculas wc: cuenta las palabras o las lineas de un archivo - wc -w science.txt - wc -l science.txt Resumen Redirección de la salida Redirección Para linux todo son archivos o procesos. Siempre es posible especificar el archivo de entrada y el de salida de un proceso. El teclado y la pantalla son los archivos por defecto. Podemos redirigir tanto la entrada como la salida El comando cat cat sirve para enviar un archivo a... – cat miarchivo • Muestra los contenidos de "miarchivo" – cat > miarchivo • Envia lo que se escribe a "miarchivo" – cat >> miarchivo • Añade lo que se escribe a "miarchivo" El comando sort Ordena el contenido de un archivo Funciona como cat sort miarchivo sort < miarchivo1 > miarchivo2 sort Las tuberías (pipes) who % who > names.txt % sort < names.txt % who | sort % who | wc -l Resumen Seguridad en linux Derechos de acceso Derechos de acceso En archivos r (-) Permiso para leer o copiar el archivo w (-) Permiso para modificar el archivo x (-) Permiso para ejecutar el archivo En directorios r (-) Permiso para listar los archivos del directorio w (-) Permiso para borrar archivos de o escribir archivos en el archivo x (-) Permiso para acceder a los archivos del directorio. Cambiando los permisos chmod modifica los permisos Puede usar letras o dígitos chmod go­rwx biglist chmod a+rw biglist chmod 775 biglist Procesos y trabajos Un proceso es cualquier programa ejecutándose en background, foreground o en suspenso. Cada proceso se identifica con un número o job number (PID). Podemos usar estos números para suspender, reiniciar o matar los procesos Modificando un proceso Poner un proceso en background: & Ver los procesos: ps Matar un proceso: kill % sleep 1000 & [2] 2911 %jobs [1]- Running sleep 1000 & [2]+ Running sleep 1000 & %ps PID TTY TIME CMD 1927 pts/0 00:00:00 bash 2889 pts/0 00:00:00 sleep 2911 pts/0 00:00:00 sleep 2912 pts/0 00:00:00 ps %kill 2911 %jobs [1]- Running sleep 1000 & [2]+ Terminated sleep 1000 %ps PID TTY TIME CMD 1927 pts/0 00:00:00 bash 2889 pts/0 00:00:00 sleep 2913 pts/0 00:00:00 ps Resumen Las variables Variables de UNIX En unix/linux se controlan muchas cosas estableciendo el valor de distintas variables. set nombre de variable: asigna valor echo $nombredevariable muestra el valor de la v. Encontramos Variables de entorno (printenv | less) Variables del shell (set | less) Variables de entorno * USER (your login name) * HOME (the path name of your home directory) * HOST (the name of the computer you are using) * ARCH (the architecture of the computers processor) * DISPLAY (the name of the computer screen to display X windows) * PRINTER (the default printer to send print jobs) * PATH (the directories the shell should search to find a command) Variables del shell * cwd (your current working directory) * home (the path name of your home directory) * path (the directories the shell should search to find a command) * prompt (the text string used to prompt for interactive commands shell your login shell)