La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

2008 Escuela de Informática y Telecomunicaciones, DuocUC Escuela de Informática y Telecomunicaciones Clase 5: Comandos de manipulación de Directorios y.

Presentaciones similares


Presentación del tema: "2008 Escuela de Informática y Telecomunicaciones, DuocUC Escuela de Informática y Telecomunicaciones Clase 5: Comandos de manipulación de Directorios y."— Transcripción de la presentación:

1 2008 Escuela de Informática y Telecomunicaciones, DuocUC Escuela de Informática y Telecomunicaciones Clase 5: Comandos de manipulación de Directorios y Redireccionamientos Nombre unidad de aprendizaje: Introducción al LINUX Programación Aplicada

2 2© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Objetivos  Objetivos de la clase  Identifica sistemas de archivos y comandos del sistema operativo para inclusión en programas realizados en el ambiente de programación del intérprete de comandos Bash.

3 3© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Comandos LINUX de manipulación de directorios  LS - Para desplegar información acerca del contenido de un directorio se utiliza el comando ls (que viene de LiSt). Descubrirá que es uno de los comandos de LINUX que se usan con mayor frecuencia, por lo tanto, existen muchas opciones para controlar su salida.  La función básica de ls es desplegar una lista alfabética de los nombres de archivos en un directorio.

4 4© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Comandos LINUX de manipulación de directorios  Por ejemplo, para listar los archivos del directorio /home, usar: ls /home.  Cualquier archivo cuyo nombre comience con un “.” se denomina ARCHIVO OCULTO. Los nombres de los archivos ocultos, por ejemplo,.bash_profile, no se enlistan cuando se usa el comando ls, a menos que se emplee la opción -a (all o todos).

5 5© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Comandos LINUX de manipulación de directorios  Para desplegar la mayor información posible acerca de un directorio o archivo, se usa el comando ls con la opción -l (larga). La salida consiste en un resumen del almacenamiento en disco seguido de una línea por archivo.  Por ejemplo, consideremos: [alumno@localhost ~]$ ls –l datos -rw-r--r-- 1 alumno alumno 2255 Aug 3 20:30 datos

6 6© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Comandos LINUX de manipulación de directorios  En el extremo izquierdo de cada línea, el primer caracter indica el tipo de archivo (existen varias posibilidades, pero las que por el momento interesan son “d”, que significa directorio, y “-”, que quiere decir archivo ordinario).  A continuación se especifican los PERMISOS que los distintos tipos de usuarios tiene sobre dicho archivo.

7 7© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Comandos LINUX de manipulación de directorios  A continuación, se muestra un número que indica cuántos enlaces existen para ese archivo, seguido del identificador de usuario del dueño del archivo y su grupo, el tamaño del archivo en bytes, la fecha y hora en que se modificó el archivo por última vez, y por último, el nombre del archivo.

8 8© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Comandos LINUX de manipulación de directorios  Si lo que se quiere es ver detalles de un directorio, y no de su contenido, se debe usar ls con la opción -d, por ejemplo, ls -ld /home.  Con ls es posible obtener un listado “recursivo” de los archivos del directorio y subdirectorios incluidos por medio de la opción -R, por ejemplo, ls -R /home.

9 9© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Comandos LINUX de manipulación de directorios  Otras opciones de ls son: -s para listar junto con los nombre de archivos su tamaño (size) en bloques, -i para listar junto con los nombre de archivos su número de i-node, -F para llevar a cabo una categorización de los archivos, etc.  La opción -F agrega a los nombres de archivos en el listado marcas como un “*” para los archivos ejecutables y “/” para los directorios.

10 10© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Comandos LINUX de manipulación de directorios  CD - Para cambiar su directorio de trabajo, utilice el comando cd (change directory o cambiar directorio).  Por ejemplo, para pasar al directorio /bin utilice: cd /bin.  Si emplea el comando cd sin un nombre de directorio, por defecto, lo lleva a su directorio propio (cd es equivalente a cd $HOME).

11 11© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Comandos LINUX de manipulación de directorios  Un directorio que contiene otro directorio se denomina DIRECTORIO PRINCIPAL. Cuando se pasa de un directorio a un directorio principal, el último se designa con ".." en la mayoría de los sistemas.  Se debe escribir cd.. en LINUX para acceder a un directorio principal.  El directorio actual suele denotarse por “.”.

12 12© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Comandos LINUX de manipulación de directorios  PWD - Para desplegar el nombre de su directorio de trabajo, utilice el comando pwd (print working directory o imprimir el directorio de trabajo). [alumno@localhost ~]$ pwd /home/alumno [alumno@localhost ~]$ cd tarea [alumno@localhost ~]$ pwd /home/alumno/tarea

13 13© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Comandos LINUX de manipulación de directorios  MKDIR - Para crear un directorio utilice el comando mkdir (make directory o hacer directorio).  Por ejemplo, para crear un directorio llamado extra dentro de su directorio de trabajo use: mkdir extra.  La opción -m permite establecer los permisos de los directorios creados.

14 14© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Comandos LINUX de manipulación de directorios  La opción -p permite crear los directorios padre que falten para cada argumento del directorio.  RMDIR - Para borrar o remover un directorio emplee el comando rmdir (remove directory o remover directorio).  Por ejemplo, para borrar el directorio extra de su directorio de trabajo use: rmdir extra.

15 15© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Comandos LINUX de manipulación de directorios  Cuando borre un directorio, LINUX lo obliga a seguir dos reglas importantes. Primera: no puede borrarlo a menos que se encuentre vacío. Esta es una medida de seguridad.  La segunda regla para borrar directorios especifica que no puede borrar ningún directorio que se encuentre dentro de su directorio de trabajo y de su directorio raíz.

16 16© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Comandos LINUX de manipulación de directorios  Quizás haya ocasiones en que en realidad quiera borrar un directorio que no está vacío. Durante esa operación, puede emplear el comando rm con la opción –r.

17 17© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo ALIAS de comandos en LINUX  Los ALIAS permiten dar nombres alternativos (mas fáciles de recordar, más cortos,…) a los comandos LINUX.  En LINUX los ALIAS se definen por medio del comando alias, de acuerdo con la siguiente sintaxis: alias nombre_de_alias=“comando_LINUX”

18 18© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo ALIAS de comandos en LINUX  Por ejemplo, para definir un alias que permita listar solo los subdirectorios del directorio actual, usaremos: alias sd=“ls -l ¦ grep ^d”.  Ahora ejecutar sd será equivalente a ejecutar ls -l ¦ grep ^d.  Si queremos que el alias esté siempre disponible debemos agregarlo a un archivo que se ejecute al inicio de sesión, por ejemplo, al archivo.bash_profile.

19 19© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo ALIAS de comandos en LINUX  Para eliminar un alias previamente definido, se utiliza el comando unalias, así, por ejemplo, la orden unalias sd elimina el alias sd creado previamente.

20 20© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo E/S estándar y descriptores de archivos en LINUX  La ENTRADA Y SALIDA ESTÁNDAR es la capacidad del INTÉRPRETE DE COMANDOS o SHELL para controlar y dirigir la entrada de datos de los programas, la salida de información útil y la información de errores.  Cuando se ejecuta un programa en LINUX se abre automáticamente tres archivos de E/S para ellos. Estos son: la entrada estándar, la salida estándar y el error estándar.

21 21© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo E/S estándar y descriptores de archivos en LINUX

22 22© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo E/S estándar y descriptores de archivos en LINUX  ENTRADA ESTÁNDAR (STDIN) o DESCRIPTOR DE ARCHIVO 0 - El descriptor de archivo STDIN está asociado al dispositivo estándar de entrada de texto, que por defecto es el teclado.  La ENTRADA ESTÁNDAR se refiere al medio desde el cual el comando, archivo o proceso recibe la información.

23 23© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo E/S estándar y descriptores de archivos en LINUX  SALIDA ESTÁNDAR (STDOUT) o DESCRIPTOR DE ARCHIVO 1 - El descriptor de archivo STDOUT está asociado al dispositivo estándar de salida de texto normal de los programas, que por defecto es la pantalla.  La SALIDA ESTÁNDAR se refiere al lugar que el comando, archivo o proceso envía la salida.

24 24© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo E/S estándar y descriptores de archivos en LINUX  ERROR ESTÁNDAR (STDERR) o DESCRIPTOR DE ARCHIVO 2 - El descriptor de archivo STDERR también es una salida de texto, pero se usa exclusivamente para mostrar los errores generados por los programas. Por defecto también está asociado al terminal de pantalla.

25 25© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Redireccionamientos en LINUX  Como ya se había mencionado anteriormente, por defecto la SALIDA ESTÁNDAR está conectada a la pantalla, la ENTRADA ESTÁNDAR al teclado, y el ERROR ESTÁNDAR a la pantalla.  Es posible reasignar estos destinos (y otros archivos abiertos) antes de ejecutar el programa, en lo que se conoce como REDIRECCIÓN DE E/S.

26 26© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Redireccionamientos en LINUX  El REDIRECCIONAMIENTO simplemente indica capturar salida desde un archivo, comando, programa, SCRIPT, o un bloque de código dentro de un SCRIPT y enviarlo como entrada a otro archivo, comando, programa o SCRIPT.  El símbolo para REDIRECCIONAR LA ENTRADA es “<“ y se utiliza como: comando < nombre_archivo

27 27© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Redireccionamientos en LINUX  Por ejemplo, la orden sort<listado ordena alfabéticamente el contenido del archivo listado y lo despliega en pantalla.  Por ejemplo, el comando cat, si no recibe argumentos, lee desde el teclado por la ENTRADA ESTÁNDAR y lo pasa a la SALIDA ESTÁNDAR: [alumno@localhost ~]$ cat Hola mundo!! ^D

28 28© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Redireccionamientos en LINUX  Otra facilidad para REDIRECCIONAR ENTRADA ESTÁNDAR es “<<“, que después de un comando, permite ingresar, por teclado, un texto que se constituirá en la ENTRADA ESTÁNDAR. A continuación de “<<“ debe ponerse una palabra, que indicará el fin de la entrada. La ENTRADA ESTÁNDAR constará de las líneas que se digiten a continuación hasta la primera que contenga sólo la palabra que indicaba el fin de la entrada.

29 29© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Redireccionamientos en LINUX  Por ejemplo: [alumno@localhost ~]$ sort<<END >Chile >Perú >Brasil >END Brasil Chile Perú

30 30© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Redireccionamientos en LINUX  Los tabuladores se eliminan de la entrada en el caso de usar la redirección “<<-” y se mantienen con “<<“.  El operador de REDIRECCIÓN DE SALIDA “>” permite cambiar la SALIDA ESTÁNDAR de un comando o programa.  Por ejemplo: [alumno@localhost ~]$ date +%D > fecha

31 31© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Redireccionamientos en LINUX  Envía la fecha actual al archivo fecha en vez de a pantalla.  También podemos cambiar a la vez entrada y salida estándar de un comando o programa usando ambos operadores de redirección.  Por ejemplo, sort listado_ordenado, permitirá que sort ordene el archivo listado y envíe dicho contenido ordenado al archivo listado_ordenado.

32 32© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Redireccionamientos en LINUX  Cuando se utiliza “>” hay que tener mucho cuidado de no borrar un archivo sobreescribiéndolo. Cuando se utilizan redirecciones, debido a su utilidad en los scripts, "no se realizan confirmaciones". Así, si el archivo a escribir ya existe desde antes, el redireccionador “>” lo sobreescribe con flujo de texto nuevo.

33 33© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Redireccionamientos en LINUX  En cambio el operador “>>” realiza un agregado de texto en el flujo existente.  También se podrá REDIRECCIONAR EL ERROR ESTÁNDAR para que no salga en pantalla. Si quisiéramos realizar un listado de un directorio y, en caso de producirse un error, este fuese redirigido a un archivo, usaremos la siguiente orden: ls /bin 2>/tmp/error.ls.

34 34© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Redireccionamientos en LINUX  Esta simple redirección solo tendría efecto sobre el ERROR ESTÁNDAR (STDERR). Con esta redirección los posibles errores serían redirigidos al archivo /tmp/error.ls.  Si quisiéramos dividir tanto la salida por pantalla como el error en dos archivos separados podemos hacerlo de esta manera: ls /bin 1>/tmp/salida 2>/tmp/error.ls.

35 35© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Redireccionamientos en LINUX  Muchas veces no se quiere que un programa muestre mensajes en la consola del usuario, en este caso es muy común redirigir su SALIDA ESTÁNDAR y SALIDA DE ERRORES ESTÁNDAR al archivo /dev/null, por ejemplo: gcc *.cpp > /dev/null 2> /dev/null.  Otro operador útil es el OPERADOR DE REDIRECCIÓN 2>> el que se usa para almacenar los conocidos logs de errores.

36 36© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Entubamientos (piping) en LINUX  El sistema LINUX permite transferir datos entre diferentes procesos. Este proceso se llama "piping", pues "pipe" es el nombre que se le da al símbolo utilizado para transferir datos.  El símbolo para "piping" es “¦” y se utiliza de la siguiente manera: procesoA ¦ procesoB ¦ procesoC ¦ …

37 37© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Entubamientos (piping) en LINUX  Desde el punto de vista de un programa no hay diferencia entre leer texto guardado en un archivo o introducido mediante el teclado, escribir un texto en un archivo o en la pantalla del terminal, etc.  Extendiendo esta idea es también posible enlazar la salida de un programa con la entrada de otro. Esta operación se puede realizar mediante una tubería (pipe) que une dos (o más) comandos en uno solo.

38 38© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Entubamientos (piping) en LINUX  Un ejemplo clásico de piping es cuando se requiere listar un directorio que ocupa más de una pantalla. Se podrá entonces utilizar el comando para listar ls y enviar su salida a otro programa que lo muestre de a una página de pantalla por vez, por ejemplo el more.

39 39© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Entubamientos (piping) en LINUX  Así, podemos usar: ls -l ¦ more.  Si deseamos obtener el listado de archivos regulares desde mi directorio, podemos usar: ls -l ¦ grep “^-”.  El siguiente ejemplo muestra una orden compuesta que ordena todos los archivos con extensión ".txt", elimina las líneas duplicadas y guarda los datos en el archivo resultado.sal: cat *.txt ¦ sort ¦ uniq > resultado.sal.

40 40© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Desarrollo Entubamientos (piping) en LINUX  Para mostrar los nombres de todos los usuarios definidos en mi máquina ordenados alfabéticamente, podemos utilizar: cut –d \: -f 1 < /etc/passwd ¦ sort.

41 41© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Resumen  Resumen de la clase  Los comandos de manipulación de directorios de LINUX son: ls, mkdir, rmdir, cd y pwd.  Los ALIAS permiten dar nombres alternativos (mas fáciles de recordar, más cortos, más significativos…) a los comandos LINUX.  Cuando se ejecuta un programa en LINUX se abren automáticamente tres archivos de E/S para ellos. Estos son: la entrada estándar (STDIN), la salida estándar (STDOUT) y el error estándar (STDERR).  La ejecución normal (sin redireccionamiento) y correcta de un comando LINUX implicaría:

42 42© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public Escuela de Informática y Telecomunicaciones Resumen  Resumen de la clase  STDIN se asocia con el teclado, STDOUT y STDERR se asocian con la pantalla.  Algunos caracteres especiales permiten redireccionar la entrada estándar ( ) y el error estándar (2>).  Los sistemas UNIX/LINUX permiten transferir datos entre diferentes procesos. Este proceso se llama "piping", pues "pipe" (o tubo) es el nombre que se le da al símbolo utilizado para transferir datos.  La salida de un proceso es tomada como entrada para otro proceso, por medio del carácter “pipe” (¦).


Descargar ppt "2008 Escuela de Informática y Telecomunicaciones, DuocUC Escuela de Informática y Telecomunicaciones Clase 5: Comandos de manipulación de Directorios y."

Presentaciones similares


Anuncios Google