You are on page 1of 26

Física Computacional

Capítulo 1: Conceptos básicos sobre la

shell

de Linux

Autores:
Luis M. Molina e Iván Cabria

Universidad de Valladolid Octubre 2013

En este capítulo se presenta una introducción básica al manejo de la

shell

de Linux. La idea es conocer de forma general el uso de la

línea de comandos para ejecutar tareas básicas del sistema operativo como navegación por el árbol de directorios, operaciones con cheros, procesamiento de datos, etc... El conocimiento obtenido será extremadamente importante en fases posteriores, a la hora de utilizar diversos programas, de procesar los datos obtenidos al ejecutarlos, y de nalmente visualizarlos.

Sección 0

Índice
Índice

2

1. Introducción
1-A. Generalidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-B. Algunos comandos simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-C. Algunas utilidades interesantes del terminal . . . . . . . . . . . . . . . . . . . .

3
3 4 4

2. Navegación por el sistema de archivos
2-A. El árbol de directorios en Linux. Rutas . . . . . . . . . . . . . . . . . . . . . . . 2-B. Los comandos

5
5 6 9

cd

y

ls

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2-C. Nombres de chero. Tipos de archivo. Comodines. . . . . . . . . . . . . . . . . .

3. Manipulación de archivos y directorios
3-A. Creación de directorios con

11
11 11 13 13 . . . . . . . . . . . . . . . . . . . . . . .

mkdir

. . . . . . . . . . . . . . . . . . . . . . . . . .

3-B. Copia de archivos y directorios con 3-C. El comando

cp

mv:

mover y renombrar archivos . . . . . . . . . . . . . . . . . . . .

3-D. Borrado de archivos y directorios con

rm

. . . . . . . . . . . . . . . . . . . . . .

4. Miscelánea
4-A. Guía rápida de los directorios del sistema . . . . . . . . . . . . . . . . . . . . . 4-B. Variables de entorno. Rutas (paths) . . . . . . . . . . . . . . . . . . . . . . . . . 4-C. Alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-D. Manuales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14
14 15 16 17

5. Visualización y edición de archivos
5-A. Visualización rápida con

17
17 18 19

less

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

5-B. Consulta rápida de contenidos con 5-C. Edición de archivos de texto:

cat, head
y

y

tail

. . . . . . . . . . . . . . .

gedit

vi

. . . . . . . . . . . . . . . . . . . . . .

6. Redirecciones y tuberías
6-A. Los operador de redirección 6-B. El comando

19
>
y

<

. . . . . . . . . . . . . . . . . . . . . . . . . .

19 20 21

cat .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6-C. Tuberías . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7. Control de procesos
7-A. Los comandos

21
y

top

ps

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21 22

7-B. Interrupción de procesos. El comando

kill

. . . . . . . . . . . . . . . . . . . .

navegando por los archivos del sistema operativo a través del programa Nautilus. . . . que permite con frecuencia ejecutar ciertas acciones de forma más rápida. . es una buena idea abrir dos o tres de estas ventanas. además de un menú de comandos básicos en la parte superior. . . . A la hora de trabajar. . . Búsquedas: los comandos find y grep 8-A. . . se abre una ventana igual a la de la gura de la primera página. . . etc. . molina representa el nombre de usuario. . para realizar diversas tareas con el sistema operativo existen habitualmente dos posibilidades. . . . esparta el nombre de la máquina. .Sección 1 find grep Introducción 3 23 23 24 8. . . . . . y que es considerablemente más potente. cd. . . awk. La otra. la shell es un programa que permite al sistema operativo interpretar comandos introducidos a través del teclado. terminal. . . . El comando . éste puede emulador de terminal. la bash shell). . La utilidad de este modo de trabajo es la posibilidad de acceder a innumerables utilidades básicas del sistema operativo. . . cat. y el símbolo $ indica que la shell está lista para aceptar instrucciones.. En la ventana del terminal de la shell. . tenemos un área de trabajo en cuya primera línea podemos leer algo similar a lo siguiente: molina@esparta:∼$ Donde. . . . . . y ejecutando programas a través de un menú de aplicaciones situado en la barra de tareas. /home/molina). . . una de ellas es utilizar la interfaz gráca (en inglés: Graphical User Interface. para poder ejecutar simultáneamente varias tareas. . . . . Se encuentra fácilmente en el menú de aplicaciones. . . . . . o gnome-terminal. .. . . . . que se presentan como pequeños programas (ls. . . . 9. . . . . o GUI) y el ratón. . . Dado que habitualmente trabajamos en Linux desde una interfaz gráca. la til- de indica que nos encontramos en el directorio principal del usuario molina (habitualmente. El comando 8-B. Nociones básicas de awk 24 Sección 1 Introducción Apartado 1-A: Generalidades A la hora de trabajar en Linux. Básicamente. . . . Dependiendo de la llamarse konsole. . . consiste en utilizar el intérprete de línea de comandos para ejecutar programas de la shell de Linux (habitualmente. .). Una vez lanzado. . para interaccionar con la shell necesitamos abrir un programa llamado distribución de Linux instalada.

Apartado 1-C: Algunas utilidades interesantes del terminal Tras haber introducido unos cuantos comandos.ficheros 1K-bloques /dev/sda2 15115452 /dev/sda5 59631908 /dev/sda1 147764 Usado 5012392 26545424 17370 Disponible 9949716 30008432 122765 Uso % 34 % 47 % 13 % Montado en / /home /boot Este comando imprime una lista con el espacio total y libre de cada uno de los sistemas de cheros con los que trabaja Linux. obtendremos un error. debe ser escrito con sus mayúsculas o minúsculas apropiadamente colocadas. que Linux sólo reconoce el comando etc. Al presionar las echas de cursores arriba ↑ y abajo ↓ 1 Aviso esencial: A la hora de trabajar en Linux. podemos ver la cantidad (en kilobytes. por defecto) de espacio libre molina@esparta:∼$ df S. Para comprobar la cantidad de memoria RAM libre. cal sá 3 10 17 24 31 obtenemos el calendario del mes actual: molina@esparta:∼$ Agosto 2013 do lu ma mi ju vi 1 2 4 5 6 7 8 9 11 12 13 14 15 16 18 19 20 21 22 23 25 26 27 28 29 30 Mediante el comando en el disco duro: df. por ejemplo.Sección 1 Introducción 4 Apartado 1-B: Algunos comandos simples Probemos a continuación algunos comandos sencillos de la shell.. debemos tener en cuenta que Linux es un sistema operativo case-sensitive (esto es. . date.. que distingue entre mayúsculas y minúsculas). nombre de directorio o de archivo.. Tecleando la fecha actual: date 1 obtenemos molina@esparta:∼$ date mar ago 20 13:41:17 CEST 2013 Mediante la instrucción cal. etc. al teclear DATE.. a todos los niveles. Cualquier comando. se utiliza el comando free: molina@esparta:∼$ free total Mem: 8095436 -/+ buffers/cache: Swap: 8221692 used 1791872 784192 0 free 6303564 7311244 8221692 shared 0 buffers 132536 cached 875144 Finalmente. Date... Esto quiere decir. podemos probar un complemento muy útil del programa gnome-terminal. para cerrar una terminal tecleamos exit.

Todos los directorios en Linux se organizan a partir de un directorio principal llamado directorio root. Linux organiza sus archivos en una estructura de tipo árbol de Los directorios (carpetas en Windows) pueden contener archivos y directorios. Al teclear comandos. nom- bre de chero. basada en los comandos Crtl+C y Crtl+V.. una memoria USB) ésta será incorporada (en terminología Linux. Por ejemplo. En el caso de haber trabajado durante un tiempo en la misma terminal. y arrastrando. OpenOce. La dirección a este directorio se especica mediante el carácter / . Copiar y pegar La forma de copiar y pegar texto en el terminal de la shell diere de la habitual en Windows. o directorio. podemos hacer scrolling (esto es. podemos teclear solamente los primeros caracteres y. cuyo directorio principal es / . raíz o Al igual que Windows...) Sección 2 Navegación por el sistema de archivos Apartado 2-A: El árbol de directorios en Linux. Linux tratará de completar el comando. Imagenes. al teclear la tecla de tabulación → − − − − → . podemos recuperar automáticamente los últimos comandos tecleados en nuestra terminal. Si incorporamos un dispositivo de almacenamien- to extra (por ejemplo. Otra herramienta interesante es la función de autocompletado. En Linux. Esto nos puede ser de utilidad para reducir el uso intensivo del teclado. donde cada dispositivo de almacenamiento tiene asignado un sistema de cheros diferente (C:. basta mover el puntero del ratón a la ventana donde se quiera copiar el texto. visualizar hacia arriba y abajo el texto ya escrito) colocando el ratón en la parte derecha de la ventana del terminal. montada) en algún punto determinado del árbol de directorios (en Ubuntu. sino tam- bién en casi cualquier aplicación corriendo en Linux (Firefox.). Rutas directorios. etc. Una vez seleccionado un texto. el camino: /home/molina/Imagenes especica que estamos en el directorio a su vez se encuentra en el directorio principal /. . F:. el cual es a su vez un subdirectorio del directorio A diferencia de Windows. usualmente en .. y presionar el botón central del ratón a a Este método de copiado y pegado no sólo funciona en los terminales. el cual es parte del directorio molina. La notación para especicar la dirección de un archivo o directorio determinado se basa en leer de izquierda a derecha los nombres de los distintos directorios que aparecen en el camino o path. nombres de archivo. en Linux siempre se tiene un único sistema de cheros. D:.Sección 2 Navegación por el sistema de archivos 5 . Si existen varias posibilidades compatibles para el autocompletado. o direcciones en el árbol de directorios. presionando una segunda vez la tecla de tabulación se mostrarán las distintas posibilidades. que home. debemos seleccionar el texto haciendo click en el botón derecho del ratón.

. Al directorio donde Linux coloca el sistema de archivos de cualquier dispositivo de almacenamiento se le denomina En un momento dado. nos encontraremos en un directorio determinado. Apartado 2-B: Los comandos cd y ls Para navegar desde la línea de comandos por el sistema de archivos. si vemos en la línea de comandos lo siguiente: molina@esparta:∼/Dropbox/Photos$ Signica que nos encontramos en el directorio /home/molina/Dropbox/Photos. si estamos en representa el directorio /home/molina /home/molina/Imagenes. cp signica copy. por ejemplo. Para facilitar la tarea de saber en todo momento en qué directorio estamos trabajando. Linux imprime en cada momento el mismo en la línea de comandos. . Así. justo antes del signo $ (llamado prompt). seguido de la ruta al directorio objetivo... cd signica change directory. Caminos relativos Linux utiliza varios símbolos especiales para especicar rutas en el sistema de directorios: ∼ Sirve como abreviatura del directorio home del usuario en cuestión. Usualmente. esto es. es interesante comentar que el programa gnome-terminal también imprime el directorio actual de trabajo en la pestaña superior de la ventana del terminal. Este directorio (re- emplazando molina por el nombre de usuario que utiliza el sistema Linux) se denomina directorio home. se emplea el comando 2 pwd: molina@esparta:∼$ pwd /home/molina Lo cual muestra que nos encontramos en el directorio /home/molina. Para ver el directorio el directorio de trabajo actual. si estamos en un subdirectorio del directorio home.. se utiliza la abreviatura ∼ . /home/molina. 6 /media/nombre_de_dispositivo). es muy útil darse cuenta de que los mismos suelen ser abreviaturas (en inglés) de la acción que realiza el comando. y es el que por defecto establece el sistema cada vez que iniciamos una sesión de trabajo. Finalmente.. durante una sesión de trabajo en el terminal de la shell. . se utiliza el comando cd 2 . (doble punto) de trabajo (por ejemplo. Así por ejemplo: Para recordar los nombres de comando en Linux. etc. (punto) Representa el directorio actual de trabajo. por ejemplo. pwd signica print working directory. Representa el directorio padre del directorio actual .Sección 2 Navegación por el sistema de archivos punto de montaje.

gz .gz molina@esparta:∼$ Este comando nos muestra los archivos y directorios incluidos en el directorio actual de trabajo.tar.1 molina molina 97419 2012-03-12 molina@esparta:∼$ 17:20 17:20 17:20 17:20 18:15 08:10 22:33 02:33 Desktop Documents Music Pictures Videos informe.. sólo nos queda conocer cómo visualizar los contenidos del mismo. fotografías y vídeos en violeta.jpg programa. archivos comprimidos en verde. etc.txt retrato. molina@esparta:∼/Dropbox$ pwd /home/molina/Dropbox molina@esparta:∼/Dropbox$ cd ∼ molina@esparta:∼$ pwd /home/molina molina@esparta:∼$ cd /usr/bin molina@esparta:/usr/bin$ cd molina@esparta:∼$ pwd /home/molina Ahora que sabemos movernos por el árbol de directorios. molina@esparta:∼$ ls Desktop Documents Music Pictures Videos informe. Si utilizamos la opción -l del comando llada: ls. (sin argumentos) Linux nos devuelve al directorio molina@esparta:∼$ cd .1 molina molina 37419 2012-03-14 -rw-rw-r-.. Así.txt retrato.. En las instalaciones estándar de Ubuntu. suele mostrarse un código de colores para distinguir los distintos elementos en la lista.jpg programa./Dropbox/Photos molina@esparta:∼/Dropbox/Photos$ pwd /home/molina/Dropbox/Photos molina@esparta:∼/Dropbox/Photos$ cd . cd cd.1 molina molina 7419 2013-07-04 -rw-rw-r-. se ilustra el uso de los caminos relativos junto con el comando Es interesante hacer notar que tecleando home (/home/molina en este caso). los directorios se muestran en azul.tar.Sección 2 Navegación por el sistema de archivos 7 molina@esparta:∼$ cd Dropbox molina@esparta:∼/Dropbox$ cd Photos molina@esparta:∼/Dropbox/Photos$ pwd /home/molina/Dropbox/Photos molina@esparta:∼/Dropbox/Photos$ cd /usr/local/bin molina@esparta:/usr/local/bin$ En el siguiente ejemplo. obtendremos una lista de elementos más deta- molina@esparta:∼$ ls -l drwxrwxr-x 2 molina molina 4096 2012-10-26 drwxrwxr-x 2 molina molina 4096 2012-10-26 drwxrwxr-x 2 molina molina 4096 2012-10-26 drwxrwxr-x 2 molina molina 4096 2012-10-26 drwxrwxr-x 2 molina molina 4096 2012-11-24 -rw-rw-r-. Para ello utilizamos el comando Por ejemplo: ls (abreviatura de list).

el segundo los del grupo. precedidas generalmente por el signo -.(chero estándar). Lista los resultados en orden inverso. Para más información. Los tipos más habituales son . Por orden. El símbolo  r modicar. y l (link simbólico). y viendo en último lugar los más recientes. podemos añadir una o varias opciones que modican el comportamiento del comando. d (directorio). Los siguientes nueve caracteres especican. y el símbolo  x denota que el archivo es ejecutable. por ejemplo. denota que se puede leer el archivo. Ordena los archivos por orden de tamaño Ordena los archivos por fecha (la de última modicación) ls lista los archivos Así. consultar el libro The Linux Command Line 1 molina molina 7419 2013-07-04 08:10 informe. o megabytes. Nombre del chero Otras opciones del comando ls permiten modicar la forma en que se presenta el listado de Opción -a -h -r -S -t Descripción Lista TODOS los archivos. No trataremos este tema aquí. Nombre del grupo asignado al chero. Para obtener documentación sobre el uso de un comando determinado. en la siguiente tabla se describe el signicado de cada uno de los Campo -rw-rw-r-- Descripción Tipo de archivo y permisos de acceso. Tamaño del chero en bytes. A continuación. ordenando los archivos por tiempo de modicación. en grupos de tres.txt contenidos del directorio: Nombre del usuario propietario del chero. kylobytes. el símbolo  w que se puede Número de enlaces duros (hard links) del chero. El primer grupo indica los permisos del usuario. podemos probar el comando: . (punto) Si se utiliza junto con la opción  l. Normalmente. los permisos para interactuar con el archivo. podemos teclear man comando. Fecha y hora de la última modicación del chero. veamos un poco en detalle la información proporcionada por el comando campos: ls con la opción -l. por orden alfabético. pone los tamaños de chero en bytes.Sección 2 Navegación por el sistema de archivos Comandos y argumento 8 Los comandos de la shell en Linux tienen como estructura básica: comando -opciones argumento donde por argumento entendemos el objeto sobre el que actúa el comando. El primer carácter indica el tipo de archivo. y el tercero los del resto. según su tamaño. si queremos obtener un listado detallado de los contenido de un directorio. incluyendo aquellos ocultos (Linux oculta en los listados todos los archivos cuyo nombre empieza por .

numerosos programas en Ubuntu también hacen uso de las extensiones.Sección 2 Navegación por el sistema de archivos 9 molina@esparta:∼$ ls -ltr Apartado 2-C: Nombres de chero.jpg foto. evitando tal tipo de caracteres. obtenemos detalles adicionales acerca del mismo. copiarlos. es útil tener en cuenta algunos hechos fundamentales: Como ya se ha mencionado anteriormente.mp4. guiones y el símbolo underscore (_). etc. que identica los tipos de archivo a través de su extensión (. se recomienda nombrar los archivos. Así por ejemplo.. son ocultados en los listados normales de la shell (al igual que en la vista en ventanas proporcionada por el navegador de archivos Nautilus).jpg.txt.). .01 y por consiguiente. son archivos auxiliares o de conguración de diversos programas. De todos modos. archivo. al directorio Movies. caracteres especiales como (.avi.. Además. números. etc. es decir. . se puede utilizar el comando  ls Normalmente. sin extensión..TXT representan archivos diferentes. A la hora de trabajar con archivos en Linux.mp4 Movies Para una mayor facilidad de manejo de archivos desde la línea de comandos. Para determinar el tipo de archivo. A diferencia de Windows. Para visualizarlos. Linux puede manejar nombres de archivo que contengan espacios.. Linux determina el contenido de un archivo por otros medios. es crucial tener en cuenta que. puntos. Linux distingue mayúsculas y minúsculas. Comodines A la hora de manipular archivos (para listarlos. Sin. siempre que sea posible. De manera que Archivo. ?. o de otros tipos. además de comprobar que se trata de un archivo tipo JPEG. etc. conviene mantener las extensiones de archivos . Su misión es poder rápidamente seleccionar un grupo especíco de archivos. JFIF standard 1. &. embargo. cp) el archivo Star Wars (Versión en Español?). podemos utilizar el comando file de la siguiente manera: molina@esparta:∼$ file foto. La siguiente tabla lista los distintos tipos de comodines disponibles y lo que selecciona cada uno: . seleccionarlos.txt y ARCHIVO. deberemos ejecutar: molina@esparta:∼$ cp Star Wars (Versión en Español?).. se deben emplear comillas al principio y al nal del nombre del archivo. para copiar (veremos a continuación el comando -a. Por lo tanto.. cuando manejemos un archivo de este tipo en la línea de comandos. Archivos y directorios que comienzan por un punto . ).jpg. etc. en casos en los que no estemos seguros de su origen.txt.txt. Tipos de archivo. empleando sólo letras.. para mantener la compatibilidad con el universo Windows. podemos nombrar archivos de texto. Comodines. ñ.) Linux proporciona una serie de herramientas muy potentes llamadas comodines (wildcards en inglés).jpg: JPEG image data. ..

dentro de los corchetes..txt Datos??? [abc]* BACKUP. dentro de una carpeta podemos seleccionar archivos de forma selectiva cliqueando en la pestaña Editar. y. b o c Archivos que comiencen por BACKUP.. letras o números) Selecciona cualquier carácter alfabético (sólo letras) Selecciona cualquier dígito Selecciona cualquier letra minúscula Selecciona cualquier letra mayúscula Veamos ahora unos cuantos ejemplos del uso de los comodines para seleccionar nombres de archivo. Es importante tener en cuenta que. dentro de ella. si usamos el escritorio GNOME y el navegador de archivos Nautilus. Cualquier archivo que no comience por un dígito numérico Cualquier archivo que termine en una letra minúscula o en los números 1. para especicar un número arbitrario. .. Por ejemplo.[0-9][0-9][0-9] [[:upper:]]* [![:digit:]]* *[[:lower:]123] Selección Todos los archivos Cualquier archivo que comience por g Archivos que comiencen por b y terminen en .txt Archivos que comiencen por Datos y contengan después exactamente tres caracteres arbitrarios Cualquier archivo que comience por a. Código * g* b*. 2 ó 3 Podemos utilizar comodines con cualquier comando de la shell que acepte nombres de chero como argumentos. es interesante comentar que podemos utilizar también estos comodines dentro del entorno gráco de Linux.. como por ejemplo los comandos para copiar. para especicar una letra minúscula arbitraria).Sección 2 Comodín * ? [caracteres] [!caracteres] [[:clase:]] Navegación por el sistema de archivos Descripción Selecciona cualquier carácter (uno o varios) Selecciona un solo carácter arbitrario 10 Selecciona cualquier carácter miembro de la lista de caracteres especicada Selecciona cualquier carácter que no pertenezca a la lista de caracteres especicada Selecciona cualquier carácter que sea miembro de la clase de caracteres especicada (ver siguiente tabla) Tenemos a nuestra disposición las siguientes clases de caracteres: Comodín [:alnum:] [:alpha:] [:digit:] [:lower:] [:upper:] Descripción Selecciona cualquier carácter alfanumérico (esto es. mover o borrar cheros. podemos especicar rangos ([0-9]. en la opción Seleccionar lo que coincida con. o [a-z]. seguidos de exactamente tres números Cualquier archivo que comience por una letra mayúscula. Finalmente.

se emplea el comando (dir-prueba). por home. que crea automáticamente el árbol de directorios hasta Apartado 3-B: Copia de archivos y directorios con cp Para copiar archivos o directorios. hemos creado un /home/molina. lo hacemos escribiendo: ejemplo. /home/molina. Por ejemplo. Si. En caso de que queramos crear un directorio en otro lugar. debemos especicar la ruta completa. subdirectorio dir1 dentro del en prueba desde ese directorio Supongamos que deseamos crear un directorio dentro de otro directorio superior que no existe.txt . y. molina@esparta:∼$ mkdir prueba/dir1 mkdir: no se puede crear el directorio prueba/dir: No existe el archivo o el directorio Obtenemos un error. llamados dir1.txt dir-prueba molina@esparta:∼$ cd dir-prueba molina@esparta:∼/dir-prueba$ ls ejemplo. se crearán por defecto en el directorio donde estemos trabajando. utilizamos el comando por la lista de uno o varios directorios a crear: mkdir (abreviatura de make directory). queremos copiar el archivo  ejemplo. a otro directorio molina@esparta:∼$ mkdir dir-prueba molina@esparta:∼$ cp ejemplo. seguido molina@esparta:∼$ mkdir dir1 dir2 dir3 lo cual creará 3 directorios. mkdir.Sección 3 Sección 3 Manipulación de archivos y directorios 11 Manipulación de archivos y directorios Apartado 3-A: Creación de directorios con mkdir Para crear directorios.txt. Podemos solucionar este problema empleando la opción  -p del comando la ruta especicada (probar). Por ejemplo: molina@esparta:∼$ mkdir prueba molina@esparta:∼$ mkdir /home/molina/prueba/dir1 molina@esparta:∼$ cd prueba/dir1 molina@esparta:∼/prueba/dir$ pwd /home/molina/prueba/dir1 y de este modo hemos primero creado el directorio mismo directorio prueba. intentemos crear en nuestro directorio el subdirectorio dir1 dentro del directorio prueba: home la ruta prueba/dir1 (es decir. en nuestro directorio cp (abreviatura de copy). dado que prueba no existe. dir2 y dir3 respectivamente. Si especicamos solamente el nombre de los directorios a crear.

Escribe en pantalla información sobre el proceso de copia. el cual es copia /home/molina. Asimismo.. cp sobreescribirá archivos sin avisar.txt molina@esparta:∼/test$ cd . copiamos todos los cheros del directorio test como test. o bien que sean más recientes que los archivos correspondientes en la carpeta de destino. se utiliza esta opción. Si. cp borrará los contenidos previos de este Si el archivo de destino existe. Primeramente. si especicamos varios) al directorio especicado.txt. el nombre especicado como cp creará una copia idéntica del archivo de origen. el comando archivo. sin embargo. pueden ocurrir dos cosas: cp copiará el archivo (o archivos. Veamos en un ejemplo un par de situaciones que nos encontraremos frecuentemente. e incluyendo todo su contenido. Si no Al copiar archivos de un directorio a otro. . con destino. sólo se copian archivos que no existen.Sección 3 Manipulación de archivos y directorios 12 Lo cual crea en el directorio la forma: exacta del que contiene el directorio dir-prueba un nuevo archivo ejemplo. Veamos ahora algunas de las opciones principales del comando cp: Opción -i -r -u -v Descripción Antes de sobreescribir un archivo.txt file2. creando una copia idén- tica del mismo con otro nombre dentro del directorio contiene dos archivos de texto y tanto Seguidamente. copiamos el directorio prueba de forma recursiva. molina@esparta:∼$ cp prueba/* test-2 molina@esparta:∼$ ls test-2 file1. molina@esparta:∼$ ls molina@esparta:∼$ prueba test test-2 molina@esparta:∼$ cp -r prueba test molina@esparta:∼$ cd test molina@esparta:∼/test$ ls prueba molina@esparta:∼/test$ ls prueba file1. La sintaxis general del comando cp tiene cp archivo(s) destino Si como destino especicamos un directorio.txt Como resultado. Copia directorios y sus contenidos de forma recursiva. ahora test-2 test contiene un subdirectorio copia exacta de contiene todos los archivos que contenía prueba. por defecto archivo y los reemplazará por el contenido del archivo de origen.txt file2. prueba. especicamos un nombre de Si el archivo de destino no existe. se pide la conrmación del usuario. prueba al directorio test-2 (prueba test-2 están inicialmente vacíos).

Ignora problemas con archivos no existentes. Igual que en el caso anterior. es creado con los contenidos de archivo1. En el caso de que movamos un archivo sobre otro (mv tener en cuenta que. mv: por defecto sobreescribe archivos sin avisar. Su sintaxis mv origen destino donde origen y destino pueden ser archivos o directorios. es esencial archivo2 es un archivo ya existente. se renombra existe. archivo1 desaparece. mueve directorio de dir1 (con todo su contenido) a un subdir2 dir1 a Si Apartado 3-D: Borrado de archivos y directorios con rm El comando rm (abreviatura de remove) se utiliza para borrar archivos o directorios. salvo que si archivo2 existe. se pide conrmación al usuario. Si es sobreescrito con el contenido de mv -i archivo1 archivo2 mv archivo1 archivo2 dir1 mv dir1 dir2 archivo2 no existe. trasladándolo al directorio de destino. archivo1. Mueve los archivos 1 y 2 al directorio mente varios archivos. Esta opción anula el efecto de  -i. En el caso de que el destino sea mv renombrará el archivo o directorio de origen. dir1 debe dir2. En ambos casos. Es útil usar comodines para mover selectiva- dir2 no existe. un nombre de archivo o directorio inexistente. Si archivo2 existe. pide conrmación. Si no se utiliza. Debemos especicar esta opción para borrar directorios. La sintaxis básica es: rm objeto(s) donde objeto es uno o más archivos o directorios. su contenido se borrará y será archivo1 (a menos que usemos la opción  -i). dir2 existir. Las opciones básicas del comando rm son: -i -r -f Antes de borrar un archivo. Si el directorio especicado tiene subdirectorios. Si dir1. los borra y así sucesivamente. rm borrará archivos sin aviso. si reemplazado por mv archivo1 archivo2).Sección 3 Manipulación de archivos y directorios 13 Apartado 3-C: El comando mv: mover y renombrar archivos El comando general es: mv (abreviatura de move) se utiliza para dos propósitos diferentes. En el caso de que el destino sea un directorio existente. mv cambiará la ubicación del archivo o directorio de origen. La siguiente tabla resume las diferentes posibilidades de Comando mv archivo1 archivo2 Mueve Resultado archivo1 a archivo2. . Al igual que ocurre con cp. Borra directorios recursivamente.

. cdrom. junto con los archivos contenidos en él): molina@esparta:∼$ molina@esparta:∼$ molina@esparta:∼$ molina@esparta:∼$ prueba test-2 ls prueba test rm -r test ls test-2 Para borrar todos los archivos contenidos en test-2 (manteniendo el directorio).). Directorio donde aparecen los sistemas de directorios asociados a dispositivos /media de almacenamiento externo (cdrom. podemos utilizar las herramientas del escritorio gráco de Linux para enviar documentos a la Papelera. el directorio prueba. less. O bien comprobamos previamente lo que deseamos borrar o. Librerías usadas por los programas básicos del sistema Linux. etc. siguiendo el ejemplo mostrado en el apartado sobre el comando cp. los datos de cada usuario de Linux se almacenan en el directorio A partir del directorio raíz (o /) /home/usuario.. debemos tener mucho cuidado al borrar recursivamente (opción El comando rm -f -r * -r) o al utilizar comodines.Sección 4 Miscelánea 14 Supongamos. En particular. debido a que en los sistemas Linux.. el borrado de datos con el mismo es absolutamente irrecu- perable. USB's. con todos sus contenidos (es decir.... etc. Sección 4 Miscelánea Apartado 4-A: Guía rápida de los directorios del sistema Por defecto. usaríamos: molina@esparta:∼$ rm test-2/* molina@esparta:∼$ cd test-2 molina@esparta:∼/test-2$ ls molina@esparta:∼/test-2$ Los diamantes y rm son para siempre El comando rm debe manejarse con extremada precaución. USB. chmod.). si no estamos seguros.). existe una serie de directorios de sistema que tienen diversas utilidades en el entorno Linux. que queremos borrar el directorio test. / /bin /dev /lib El directorio raíz (y padre de todos los demás) Contiene los programas básicos de la shell de Linux (cp. ls.. Contiene archivos que controlan el funcionamiento de diversos dispositivos (disco duro. ejecutado desde el directorio principal del usuario borraría todos los datos del mismo.

/var/log Contiene archivos de registros (logs).). PATH. Rutas (paths) Durante una sesión de trabajo.. Contiene todos los paque- tes y programas instalados (es el análogo en Linux al directorio Archivos de Programa de Windows). seguido del nombre de la variable de entorno precedida por el símbolo $: . Diversos programas lo usan como almacenamiento temporal de información.Sección 4 /root /sbin /tmp /usr Miscelánea Directorio raíz de la cuenta de administrador (o superusuario). Lista de directorios (separadas por el /home/alumno). Es el directorio más extenso de una instalación Linux. datos extra). mensajes de error. El directorio actual de trabajo El directorio principal del usuario (p. /usr/bin/dx (Opendx).. Directorio donde debería instalarse todo el software extra que el administrador decida añadir al sistema. para evitar cualquier tipo de borrado de software esencial. No deberían ser tocados. que almacenan la actividad reciente del sistema operativo (programas ejecutados. Diversos datos compartidos y utilizados por los programas instalados • /usr/share/doc Este directorio suele contener toda la documentación de los programas instalados. etc. PWD.. Para examinar el contenido de una variable de entorno.). Ejemplo: (Grace). etc... sólo son accesibles por el superusua- rio (o administrador) del sistema. podemos utilizar el comando echo.. • /usr/share en /usr/bin.ej.. la shell de Linux guarda datos de información claves en los que se conoce como Variables de Entorno (environment variables). /usr/bin/xmgrace • /usr/lib • /usr/local Librerías comunes utilizadas por el software instalado (que viene a ser el equivalente Linux de las librerías . Todos estos directorios (a excepción de /home/usuario). share (manuales. Variable USER PWD HOME PATH Descripción El nombre del usuario actualmente trabajando en el sistema. 15 Programas básicos de Linux utilizados exclusivamente por el administrador. símbolo  : donde Linux busca por defecto los programas ejecutables. y que no se instale como un paquete estándar de Linux.dll de Windows). Contiene varios subdirectorios importantes que enumeraremos brevemente: • /usr/bin Ficheros ejecutables necesarios para lanzar los diversos programas ins- talados en nuestra máquina. etc. excepto en circunstancias especiales. Suelen tener nombres en mayúsculas (USER.. Apartado 4-B: Variables de entorno. /bin (ejecutables). Contiene subdirectorios lib (librerías).

que se encuentra en el directorio principal de cada y que se discuten en el siguiente apartado. utilizamos la sintaxis: alias NombreAlias='comando' comando representa un conjunto de instrucciones de la shell. Así por ejemplo. imaginemos que creamos un directorio Programas/bin . para añadir nuevos directorios donde instalemos archivos ejecutables asociados a nuevos programas. tecleando ll obtenemos un listado de cheros entendido. habitualmente la distribución Ubuntu predene la abreviatura  ll para el comando ls -alF. porque determina dónde busca Linux los directorios donde existen archivos ejecutables. Apartado 4-C: Alias Si utilizamos con frecuencia un comando con una larga serie de opciones. Si queremos que. Si queremos que cualquier cambio en la conguración de la shell (como por ejemplo una modicación de las variables de entorno) tenga carácter permanente. debemos incluir tales cambios en un chero oculto llamado usuario (/home/usuario). En ocasiones puede ser necesario modicarla. También podemos usar este archivo para guardar las deniciones de nuevos comandos o atajos (llamados . alias). Linux encuentre su archivo ejecutable en el directorio la siguiente forma: Programas/bin. PATH antigua El comando se encarga de hacer saber a la shell del cambio en la denición de la variable PATH. es una buena idea denir una abreviatura o  alias para ese comando. Para denir un nuevo alias. para guardar los ejecutables de programas creados por nosotros mismos. se puede modicar el contenido de una variable de entorno mediante la sintaxis general: export VARIABLE=NUEVO-VALOR En el caso concreto de la variable PATH. el de añadir a la variable ($PATH) el directorio export $HOME/Programas/bin (/home/usuario/Programas/bin). con independencia del directorio donde ejecutemos un programa.bashrc. Un ejemplo útil de este procedimiento puede ser el asignar el alias  pu al comando  ps -fu molina (molina representa donde el nombre de un usuario cualquiera): .Sección 4 Miscelánea 16 molina@esparta:∼$ cd Movies molina@esparta:∼/Movies$ echo $PWD /home/molina/Movies molina@esparta:∼/Movies$ echo $USER molina molina@esparta:∼/Movies$ echo $PATH /home/molina/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbi n:/bin:/usr/games La variable de entorno PATH es especialmente importante. de molina@esparta:∼$ export PATH=$PATH:$HOME/Programas/bin El signicado del comando anterior es. básicamente. debemos añadirlo a la variable de entorno PATH. De esta manera. Para hacer esto.

. etc. molina 2828 2807 0 molina 4451 2294 0 molina@esparta:∼$ El efecto del nuevo comando  pu es mostrar los procesos en el sistema asociados al usuario molina (trataremos el control de procesos en una sección posterior).. si queremos que los nuevos alias sean permanentes. Sección 5 Visualización y edición de archivos A la hora de visualizar y editar archivos de texto... debemos añadirlos al chero  .Sección 5 Visualización y edición de archivos pu='ps -fu molina' 12:50 12:50 13:13 17:41 ? ? pts/4 pts/3 00:00:00 00:00:00 00:00:00 00:00:00 /usr/bin/gnome gnome-session /bin/bash ps -fu molina 17 molina@esparta:∼$ alias molina@esparta:∼$ pu molina 1780 1 0 molina 1791 1690 0 .. Apartado 4-D: Manuales Cada comando de la shell viene acompañado de documentación. En cada página del manual.. Linux proporciona una amplia variedad de herramientas que a continuación mencionaremos brevemente: Apartado 5-A: Visualización rápida con less Desde la línea de comandos. llamada las distribuciones Linux. en la forma de páginas de manual o man pages. Se recomienda usar less more. podemos visualizar rápidamente el contenido de un archivo con el comando less3 : less archivo.txt 3 Existe una versión antigua de este comando. menos potente. Para visualizarlas empleamos el comando: man comando donde comando es el nombre del comando del cual requerimos la información.bashrc. también disponible en todas .. Al igual que hemos comentado para las redeniciones de variables de entorno. podemos obtener información sobre cómo se utiliza un comando. las posibles opciones del mismo. Podemos movernos arriba y abajo por las páginas del manual empleando los cursores.

Debemos mencionar que el potente comando cat.Sección 5 Visualización y edición de archivos 18 Podemos movernos a lo largo del archivo con los siguientes comandos: Comando Av.gz README molina@esparta:/usr/share/doc/wget$ less README molina@esparta:/usr/share/doc/wget$ less NEWS. en el ejemplo anterior y aplicar estos comandos al archivo /usr/share/doc/wget en el que MAILING-LIST.txt Imprime por pantalla TODO el contenido de un archivo de texto.txt Imprime por pantalla sólo las primeras líneas de un archivo de texto.txt Imprime por pantalla sólo las últimas líneas de un archivo de texto. tenemos 3 opciones para imprimir el contenido de un archivo de texto en pantalla. head y tail Si en vez de querer abrir un programa como rrar less less para examinar un archivo (debemos ce- después de usarlo con la consecuente pérdida de tiempo). vuelven automáticamente a la shell de Linux.Debian.gz copyright MAILING-LIST NEWS. podemos volver al directorio efecto. Pag (o space) Flecha abajo g n q Acción Página hacia abajo Línea hacia abajo Principio de archivo Sigue buscando Sale de palabra palabra Pantalla de ayuda less Podemos probar a usar este comando. cat archivo. tail archivo. tiene muchos otros muy interesantes que discutiremos más adelante. para trabajábamos comprobar su .gz Vemos como less es capaz incluso de mostrar cheros comprimidos con gzip (un programa estándar de compresión en Linux). además de este uso. head archivo. tras nalizar la salida de texto. por ejemplo. Como ejemplo. Este comando resulta muy útil para monitorizar rápidamente lo que cualquier programa escribe en los cheros de salida mientras está ejecutándose. Apartado 5-B: Consulta rápida de contenidos con cat. Pag (o b) Flecha arriba G /palabra h Acción Página hacia arriba Línea hacia arriba Final de archivo Busca Comando Re. Todas ellas. de la siguiente forma: molina@esparta:∼$ cd /usr/share/doc/wget molina@esparta:/usr/share/doc/wget$ ls AUTHORS changelog.

que solamente mencionaremos sin entrar en detalles. Por contra. Para abrirlo desde la línea de comandos.txt. es usar el programa  vi. un archivo (todo en Linux son archivos). Tiene como ventaja principal que no debemos movernos de la ventana del terminal para editar los archivos. Apartado 6-A: Los operador de redirección > y < Para redireccionar la salida de un comando o programa desde la pantalla a un chero. mientras trabajamos editando el chero archivo. la sintaxis para su uso general es: comando > archivo. En esta sección exploraremos una de las propiedades más útiles de la línea de comandos. Otra alternativa. cuando ejecutamos comanotros programas. La más sencilla es utilizar un editor gráco como recomendamos utilizar la sintaxis: gedit. Los mensajes de error durante la ejecución del comando se derivan a `standard error stderr). ¾Por qué añadimos el símbolo & al nal del comando? La idea es que. en la que podemos editar el archivo y guardarlo. través de standard input (o stdin). de un modo similar a cómo se trabaja con el wordpad de Windows. Del mismo modo. por defecto la salida va a un dispositivo de Linux llamado standard output (o la entrada se lee a (o stdout). El lector interesado puede encontrar una muy buena y breve introducción a este programa en el capítulo 12 del libro The Linux Command Line. la dos. Sección 6 Redirecciones y tuberías redirección de entrada/salida. que por defecto está conectado al teclado. Básicamente esto signica que. Este programa es un potente editor de texto en línea de comandos (esto es.Sección 6 Redirecciones y tuberías 19 Apartado 5-C: Edición de archivos de texto: gedit y vi En el caso de querer modicar el contenido de un archivo de texto. el terminal no aceptaría más comandos hasta que cerrásemos el programa gedit). formalmente.txt . o a la entrada/salida de Cuando ejecutamos un comando.txt & Lo cual abre el archivo de texto en una ventana aparte. gedit archivo. que usualmente está conectado a la pantalla. se trabaja en el mismo terminal). Cada uno de estos dispositivos es. se utiliza el operador de redirección > . descargable en la página de moodle de la asignatura. tenemos dos opciones. requiere un cierto aprendizaje el memorizar los comandos fundamentales de edición de texto. podemos redireccionar su entrada y/o salida a/desde cheros. La redirección de entrada/salida nos permite cambiar a dónde van las salidas y de dónde vienen las entradas. podemos tener libre la ventana del terminal para seguir ejecutando comandos (de otra manera. A este procedimiento se le llama correr procesos en segundo plano o en el background.

txt de esta forma se envía.net < texto.txt añadiría el listado de cheros en /usr/lib al listado de /usr/bin ya presente en ls-output.txt > salida. es almacenado en el archivo salida.txt contiene el listado de todos los archivos del directorio El operador de dirección. en el caso de que apunte a un chero ya existente. con el operador de redirección  <. mediante el programa de correo electrónico mail.txt. el archivo texto.txt Se observa que el chero /usr/bin. En el segundo ejemplo.txt molina@esparta:∼$ less ls-output. Ya hemos comentado que podemos usarlo para visualizar en el terminal el contenido de un archivo: cat archivo.txt texto3. pruébese el siguiente comando: molina@esparta:∼$ ls -l /usr/bin > ls-output. Por ejemplo: añadidos molina@esparta:∼$ ls -l /usr/lib >> ls-output.txt.txt aquí. el comando sort toma como entrada el archivo archivo lista-ordenada. Como ejemplo práctico..txt text2.txt. El comando cat tiene un par de opciones de interés: . por defecto borra sus contenidos y crea un chero nuevo con el mismo nombre. de modo que la entrada se lea desde un archivo. utilizamos el comando texto por orden alfabético: sort para ordenar las líneas de un archivo de molina@esparta:∼$ sort < lista.txt molina@esparta:∼$ less ls-output. podemos redireccionarla.txt de esta manera.. podemos usar el comando cat texto1.txt En el caso de que especiquemos varios nombres de archivo tras todos los archivos.txt > lista-ordenada. debemos utilizar el operador  >>. texto2. Si queremos que.txt y redirecciona su salida al Apartado 6-B: El comando cat El comando cat lee uno o varios cheros. lista. Veamos un par de ejemplos: molina@esparta:∼$ mail usuario@correoweb. en vez de ocurrir esto. ls-output. Si utilizamos entonces el operador de redirección cat para encadenar archivos: cat. los datos de salida de nuestro programa o comando sean simplemente al chero de salida. se enviarán a stdout >. etc. y los envía a la salida estándar (pantalla).txt En el caso de que un comando determinado nos pida entrada por teclado.Sección 6 Redirecciones y tuberías 20 lo cual redirecciona todos los mensajes que comando saque por pantalla al chero archivo. el contenido de todos los archivos texto1.txt..

La forma de hacerlo es. En esta sección examinaremos cómo tener control sobre los procesos que se ejecutan en nuestra máquina. observamos que a cada proceso se le asigna un número. La información proporcionada se actualiza cada pocos segundos. molina@esparta:∼$ ls /bin /usr/bin | sort | less aquí. leemos el contenido de dos directorios. Para observar de forma estática los procesos de un usuario determinado. existen multitud de procesos ejecutándose a la vez. unos son ejecutados por el usuario. llamado PID (siglas de Process Identication Number). así como observar los procesos activos. podemos usar el comando top.. Sección 7 Control de procesos Cada vez que se ejecuta un programa en Linux. control de sonido. Apartado 7-A: Los comandos top y ps Si en momento dado queremos monitorizar el uso de la memoria RAM del ordenador.Sección 7 -n -s Control de procesos 21 Numera las líneas en la salida Elimina las líneas en blanco en la salida Apartado 6-C: Tuberías El operador de tubería (pipeline). con la sintaxis  |. etc. podemos utilizar el comando ps. En un momento dado. el sistema asocia un proceso al mismo. Al probarlo. la mayoría asociada a diversas tareas imprescindibles del sistema operativo (escritorio gráco. y lo visualizamos con less.). También vemos que se indica el usuario que ejecuta cada proceso (normalmente.. es una de las características más útiles de la shell de Linux. ordenamos el resultado. como ya se ha visto en un ejemplo anterior: . y otros por el root o administrador). y la memoria y porcentaje de uso de CPU empleada por cada proceso. Se utiliza para redireccionar la salida de un comando a la entrada de otro: comando1 | comando2 Un ejemplo muy popular de uso de tuberías es el siguiente: molina@esparta:∼$ ls -l /usr/bin | less lo cual hace que podamos visualizar el listado del directorio /usr/bin con el comando less.

En casos en los que un proceso ejecuta por su cuenta otros procesos. pero ahora en segundo plano: La segunda opción.. Crtl-c. STIME TTY TIME CMD Hora a la que comenzó a ejecutarse el proceso..... ocurren errores del tipo bucle innito (u otros errores diversos) que requieren que terminemos abruptamente con la ejecución del programa.. este número nos permite identicar qué proceso ha ejecutado (es decir.. con frecuencia. Al teclear desaparece y volvemos a la línea de comandos. El comando kill La utilidad de todo lo explicado anteriormente sobre los procesos reside en que. pts/4 pts/3 TIME 00:00:00 00:00:00 ..... tenemos dos opciones. al hacer cálculos en nuestra máquina necesitaremos controlar la ejecución de nuestros programas. simplemente se añade  & al nal del comando.Sección 7 Control de procesos TTY ? ? . .. . En un ejemplo anterior se mencionó que. Para ver esto de forma práctica.. . Es asignado por el sistema al comenzar su ejecución y es UID PID PPID único para cada proceso. Para interrumpir procesos. al ejecutar un programa en C escrito por nosotros mismos.. ejecutemos el molina@esparta:∼$ xlogo ¢C molina@esparta:∼$ Se observa como aparece una nueva ventana con el logo del sistema de ventanas X (el motor gráco que hace funcionar las ventanas de nuestro escritorio). para hacer esto.. Ejecutemos de nuevo xlogo. es el padre) un proceso dado. Comando ejecutado para iniciar el proceso.. Apartado 7-B: Interrupción de procesos. Imaginemos que. en el mismo terminal en el que se está ejecutando el proceso... una es. Tiempo de CPU consumido por el proceso hasta el instante actual.. . molina 2828 2807 0 13:13 molina 4451 2294 0 17:41 molina@esparta:∼$ Expliquemos brevemente el signicado de los datos más relevantes proporcionados por el comando ps: Usuario que ejecuta el proceso Número del proceso. Número del proceso padre. Terminal en la que se ejecuta el proceso. es útil cuando ejecutamos programas en segundo plano. pararlo con comando xlogo en el terminal: Crtl-c. el logo kill. utilizar el comando . 00:00:00 00:00:00 CMD /usr/bin/gnome gnome-session . /bin/bash ps -fu molina 22 molina@esparta:∼$ ps -fu molina UID PID PPID C STIME molina 1780 1 0 12:50 molina 1791 1690 0 12:50 .

a continuación. basta con usar  .. Supongamos que queremos buscar todos los archivos de vídeo mp4 en el directorio Movies... la shell nos devuelve un número (4059 en este caso particular) que resulta ser el PID asociado al proceso de xlogo.Sección 8 Búsquedas: los comandos find y grep 23 molina@esparta:∼$ xlogo & [1] 4059 molina@esparta:∼$ Al ejecutar xlogo en segundo plano. molina 4059 2202 0 13:13 molina 4062 2178 0 17:41 Para terminar inmediatamente este proceso. basta con usar el comodín  * dentro del nombre de los archivos a buscar: molina@esparta:∼$ find Movies -name *...) y.mp4 dentro del directorio Movies: molina@esparta:∼$ find Movies -name StarWars-Episodio-I. ... seguido del número del proceso que queremos eliminar: molina@esparta:∼$ kill 4059 [1]+ Terminated xlogo Observamos cómo la ventana del programa xlogo desaparece. especicamos el directorio desde dónde queremos buscar (si es el actual.... Sección 8 Búsquedas: los comandos find y grep Apartado 8-A: El comando find Utilizamos el comando find para encontrar uno o varios archivos dentro de un árbol de directorios.. aquí sólo ilustraremos con un ejemplo sencillo cómo realizar búsquedas de archivos por nombre.. Podemos comprobar esto tecleando  ps -fu molina: .mp4 Movies/Scifi/Star-Wars/StarWars-Episodio-I. pts/0 pts/0 .....mp4 . 00:00:00 00:00:00 . .. xlogo ps -fu molina molina@esparta:∼$ ps -fu molina . Supongamos que queremos encontrar el archivo de vídeo de nombre StarWars-Episodio-I.. El resultado es la ruta completa (desde nuestro directorio actual) al archivo buscado..mp4 Para usar el comando nd. el nombre del archivo precedido por la opción  -name. Para ello. podemos utilizar el comando kill. Aunque nd es un comando complejo con multitud de opciones (ver capítulo 17 del libro The Linux Command Line. . .

expondremos unos pequeños ejemplos de su uso para manipular datos obtenidos al ejecutar un hipotético programa de cálculos físico-cuánticos. ya sean cheros o ujos de datos. llamado guiente aspecto: datos. Lo tenemos disponible en la shell de Linux y. Supongamos que ejecutamos un programa que hace cálculos complejos.txt.txt > data-stresstensor.0831 0.0789 molina@esparta:∼$ Es interesante mencionar que no sólo podemos buscar cadenas en un único archivo. al programarlo.4153 0. Por ejemplo.4231 0.txt.0524 STRESSTENSOR: 0.6567 STRESSTENSOR: 0. podemos buscar la aparición de una cierta cadena de texto en.Sección 9 Nociones básicas de awk 24 Apartado 8-B: El comando grep El comando es: grep se utiliza para buscar palabras clave dentro de archivos. sino que.0233 0.txt tras lo cual el archivo data-stresstensor. por ejemplo.txt que contengan la palabra clave STRESSTENSOR: molina@esparta:∼$ cat data-stresstensor. empleando comodines. supongamos que queremos buscar todos los archivos en /usr/bin que contengan las letras zip: molina@esparta:∼$ ls -l /usr/bin | grep zip obteniendo como resultado todas las líneas de la lista  ls la cadena de caracteres zip. diseñado para procesar datos basados en texto. de hacer que cada tipo de dato venga precedido de la palabra clave adecuada.txt de un directorio dado: grep cadena-de. todos los archivos terminados en  .1504 0. y que.txt Sección 9 Nociones básicas de awk awk es un lenguaje de programación muy potente. podemos usar -l /usr/bin en las que aparezca grep de la siguiente manera: molina@esparta:∼$ grep STRESSTENSOR output. Si hemos tenido cuidado.texto *. tiene el si- . queremos extraer las líneas que contienen los datos relacionados con el tensor de esfuerzo (STRESSTENSOR). La principal utilidad de este comando está en extraer datos especícos de los cheros de salida de nuestros programas. de los numerosos datos en el chero de salida output.txt STRESSTENSOR: 0. en esta sección. Supongamos que el chero de salida de nuestro programa. Su sintaxis básica grep cadena archivos(s) Lo cual busca la palabra clave  cadena dentro de una lista de archivos.2014 0.txt contendrá solamente las líneas de output.

... para representarlos en función de la distancia con un programa de grácos x-y (xmgrace..... mediante el operador de redirección s-orb... Finalmente.539 .543 0....02 0..245 0..03 0..543 1.... 'print $2..237 0...003 DENSIDAD ELECTRONICA 1........ Supongamos que necesitamos representar grácamente no los datos de la variable s en función de r.546 1.212 ORBITALES 1..541 0. r s Px Py Pz ORBITALES 1......007 ...436 0.txt.541 1....01 0... sino los de la variable hacerlo de la siguiente manera: s2 ..451 0..431 0. hagamos algo aún más entretenido.02 0. datos.442 0.00 0....... Mandamos el resultado con una tubería al programa 3. A continuación. lo cual se debe interpretar como: 1..546 0.....256 0...... guardamos los datos en el archivo (que corresponden... molina@esparta:∼$ y que queremos extraer los datos correspondientes a los orbitales de tipo s..txt | awk 'print $2..00 0...02 0.... con el 2....01 0.dat molina@esparta:∼$ cat s-orb. Para ello utilizaríamos el siguiente comando: molina@esparta:∼$ grep ORBITALES datos..231 0.....Sección 9 Nociones básicas de awk 25 molina@esparta:∼$ cat datos...539 0. 4. $3' > s-orb.03 0.dat....001 DENSIDAD ELECTRONICA 1.. a la distancia radial r y al valor del orbital s). Mediante awk.txt  Calculo terminado satisfactoriamente Tiempo: 3.211 ORBITALES 1...125 segundos r rho DENSIDAD ELECTRONICA 1.....00 0. Podríamos . por ejemplo). Extraemos las líneas que comienzan por  ORBITALES del archivo comando grep.210 ORBITALES 1. respectivamente..213 .dat 1.01 0.. $3' extraemos la segunda ($2) y la tercera ($3) columnas de datos >.

(P x)2 . se puede encontrar una discusión mucho mas amplia de las utilidades de la shell de Linux en el libro The Linux Command Line de William E.292681 1.298116 1. en función de r. grep ORBITALES datos. puede descargarse de la página moodle de la asignatura...txt | awk 'print $2. aunque extenso.. supongamos que necesitamos representar la suma de los datos con el comando: s2 .txt | awk 'print $2. $3*$3' > s2-orb.290521 . Podemos hacerlo de forma similar..dat 1. (P y )2 2 y (P z ) (que representa la variable dens). .dat Bibliografía Como se ha mencionado en el texto en varias ocasiones. Shotts.03 0. de dominio público... Este libro..00 0.dat molina@esparta:∼$ cat s2-orb. $3*$3+$4*$4+$5*$5+$6*$6' > dens.01 0..294849 1. El libro..Sección 9 Nociones básicas de awk 26 molina@esparta:∼$ grep ORBITALES datos. mantiene un nivel relativamente sencillo y asequible a usuarios de Linux inexpertos.02 0. Finalmente. Jr.