***Archivo latín***
Copiar el contenido en letra color naranja y guardarlo en un archivo llamado gpl-vi
Lorem ipsum ad his scripta blandit partiendo, eum fastidii accumsan euripidis in, eum liber hendrerit an.
Qui ut wisi vocibus suscipiantur, quo dicit ridens inciderint id.
The Corresponding source for a work in source code form is that same work.
Quo mundi lobortis reformidans eu, legimus senserit definiebas an eos.
Eu sit tincidunt incorrupte definitionem, vis mutat affert percipit cu, eirmod consectetuer signiferumque eu per.
In usu latine equidem dolores.
Quo no falli viris intellegam, ut fugit veritus placerat per.
Ius id vidit volumus mandamus, vide veritus democritum te nec, ei eos debet libris consulatu.
No mei ferri graeco dicunt, ad cum veri accommodare.
Sed at malis omnesque delicata, usu et iusto zzril meliore.
The Corresponding source need not include anything that users can regenerate automatically from other parts of the Corresponding source.
Dicunt maiorum eloquentiam cum cu, sit summo dolor essent te.
Ne quodsi nusquam legendos has, ea dicit voluptua eloquentiam pro, ad sit quas qualisque.
Eos vocibus deserunt quaestio ei.
Blandit incorrupte quaerendum in quo, nibh impedit id vis, vel no nullam semper audiam.
Ei populo graeci consulatu mei, has ea stet modus phaedrum.
Inani oblique ne has, duo et veritus detraxit.
Tota ludus oratio ea mel, offendit persequeris ei vim.
Eos dicat oratio partem ut, id cum ignota senserit intellegat.
Sit inani ubique graecis ad, quanThe “Corresponding source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities.
However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work.
do graecis liberavisse et cum, dicit option eruditi at duo.
Homero salutatus suscipiantur eum id, tamquam voluptaria expetendis ad sed, nobis feugiat similique usu ex.
Eum hinc argumentum te, no sit percipit adversarium, ne qui feugiat persecuti.
Odio omnes scripserit ad est, ut vidit lorem maiestatis his, putent mandamus gloriatur ne pro.
Oratio iriure rationibus ne his, ad est corrumpit splendide.
Ad duo appareat moderatius, ei falli tollit denique eos.
Dicant evertitur mei in, ne his deserun For example, Corresponding source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.
t perpetua sententiae, ea sea omnes similique vituperatoribus.
Ex mel errem intellegebat comprehensam, vel ad tantas antiopam delicatissimi, tota ferri affert eu nec.
Legere expetenda pertinacia ne pro, et pro impetus persius assueverit.
Ea mei nullam facete, omnis oratio offendit ius cu.
Doming takimata repudiandae usu an, mei dicant takimata id, pri eleifend inimicus euripidis at.
His vero singulis ea, quem euripidis abhorreant mei ut, et populo iriure vix.
Usu ludus affert voluptaria ei, vix ea error definitiones, movet fastidii signiferumque in qui.
Vis prodesset adolescens adipiscing te, usu mazim perfecto recteque at, assum putant erroribus mea in.
Vel facete imperdiet id, cum an libris luptatum perfecto, vel fabellas inciderint ut.
Veri facete debitis ea vis, ut eos oratio erroribus.
Sint facete perfecto no vel, vim id omnium insolens.
Vel dolores perfecto pertinacia ut,The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form.
A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.
te mel meis ullum dicam, eos assum facilis corpora in.
Mea te unum viderer dolores, nostrum detracto nec in, vis no partem definiebas constituam.
Dicant utinam philosophia has cu, hendrerit prodesset at nam, eos an bonorum dissentiet.
Has ad placerat intellegam consectetuer, no adipisci mandamus senserit pro, torquatos similique percipitur est ex.
Pro ex putant deleniti repudiare, vel an aperiam sensibus suavitate.
A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.
Ad vel epicurei convenire, ea soluta aliquid deserunt ius, pri in errem putant feugiat.
Sed iusto nihil populo an, ex pro novum homero cotidieque.
Te utamur civibus eleifend qui, nam ei brute doming concludaturque, modo aliquam facilisi nec no.
Vidisse maiestatis constituam eu his, esse pertinacia intellegam ius cu.
Eos ei odio veniam, eu sumo altera adipisci eam, mea audiam prodesset persequeris ea.
Ad vitae dictas vituperata sed, eum posse labore postulant id.
Te eligendi principes dignissim sit, te vel dicant officiis repudiandae.
Id vel sensibus honestatis omittantur, vel cu nobis commune patrioque.
In accusata definiebas qui, id tale malorum dolorem sed, solum clita phaedrum ne his.
Eos mutat ullum forensibus ex, wisi perfecto urbanitas cu eam, no vis dicunt impetus.
Assum novum in pri, vix an suavitate moderatius, id has reformidans referrentur.
Elit The “source code” for a work means the preferred form of the work for making modifications to it.
“Object code” means any non-source form of a work.
inciderint omittantur duo ut, dicit democritum signiferumque eu est, ad suscipit delectus mandamus duo.
An harum equidem maiestatis nec.
At has veri feugait placerat, in semper offendit praesent his.
Omnium impetus facilis sed at, ex viris tincidunt ius.
Unum eirmod dignissim id quo.
Sit te atomorum quaerendum neglegentur, his primis tamquam et.
Eu quo quot veri alienum, ea eos nullam luptatum accusamus.
Ea mel causae phaedrum reprimique, at vidisse dolores ocurreret nam.source1. source Code.
Utilizar el editor Vim para borrar el texto en latín y reacomodar el texto de manera que quede como en la imagen siguiente:
viernes, 16 de septiembre de 2011
Sesión 7 Ejercicio 6 Himno Nacional
***Archivo Ejercicio-himno***
Ejercicio Himno Nacional Mexicano
1. Abrir una terminal y crear un archivo llamado himno-mexico con el comando vi
2. Dividir la pantalla verticalmente y abrir el archivo himno situado en el home
3. Ejecutar el comando para numerar las lineas del archivo himno y el archivo himno-mexico
4.Situarse en la linea 9 del himno y con el modo inserción cambiarla por la linea
De la paz el arcángel divino,
5.De la línea 12 corregir la palabra Mássiosare con los espacios pertinentes de manera que quede Más si osare
6.Reemplazar la línea 15 por la línea: Un soldado en cada hijo te dio.
7.Copiar toda la estrofa uno y pegarla en el archivo himno-mexico
8.Moverse en el archivo con los comando de navegacion por parrafo hasta llegar a la estrofa 2, borrar todas las líneas
<Esta línea no va aquí> y borrar los espacios de línea que queden de mas.
9.Copiar todo el parrafo de la estrofa 2 y pegar en la otra pantalla
10.Moverse hasta la Estrofa 3 y corregir cada letra inicial de línea por su respectiva mayúscula, copiar la estrofa 3
en el archivo himno-mexico
11. Situar el cursor en el parrafo de la estrofa 4 y realizar las correcciones pertinentes de manera que las ultimas 4 líneas queden de la siguiente manera:
¡Para ti las guirnaldas de oliva!
¡Un recuerdo para ellos de gloria!
¡Un laurel para tí de victoria!
¡Un sepulcro para ellos de honor!
12. Copiar línea por línea la estrofa 4 y pegar en el archivo himno-mexico
13. Copiar el parrafo del coro y pegar al inicio, entre las estrofas y al final del archivo himno-mexico
14. Cerrar sin guardar el archivo himno
15. Situarse en la línea 72 y escribir: Escrito por Francisco González Bocanegra en 1853 y compuesto por Jaime Nuno en 1854
16. Guardar el archivo y salir del editor
***Archivo himno****
Copiar el contenido el letras color naranja y guardarlo en un archivo con el nombre himno
Coro
Mexicanos, al grito de Guerra
El acero, aprestad y el bridón,
y retiemble en sus centros la tierra.
Al sonoro rugir del cañón.
Estrofa I
Ciña ¡Oh patria tus sienes de oliva!
De la paz del arcángel de vino,
Que en el cielo tu eterno destino
Por el dedo de Dios escribió.
Mássiosare un extraño enemigo
Profanar con su planta tus suelos
Pienso ¡Oh patria querida! Que el cielo
Un soldado en cada hijo de dios.
Coro
Mexicanos, al grito de Guerra
El acero, aprestad y el bridón,
y retiemble en sus centros la tierra.
Al sonoro rugir del cañón.
Estrofa II
¡Guerra, guerra sin tregua al que intente
<Esta línea no va aquí>
De la patria manchar los blasones!
<Esta línea no va aquí>
¡Guerra, guerra! Los patrios pendones,
<Esta línea no va aquí>
En las olas de sangre empapad.
<Esta línea no va aquí>
¡Guerra, guerra! En el monte, en el valle
<Esta línea no va aquí>
Los cañones horrísonos truenen,
<Esta línea no va aquí>
<Esta línea no va aquí>
Y los ecos sonoros resuenen
Con las voces de ¡Unión! ¡Libertad!
Coro
Mexicanos, al grito de Guerra
El acero, aprestad y el bridón,
y retiemble en sus centros la tierra.
Al sonoro rugir del cañón.
Estrofa III
antes, patria, que inermes tu hijos
bajo el yugo su cuello dobleguen
tus campiñas con sangre se rieguen
sobre la sangre se estampe su pie.
y tus templos, palacios y torres
se derrumben con hórrido estruendo,
y sus ruinas existan diciendo:
de mil héroes la patria aquí fué.
Coro
Mexicanos, al grito de Guerra
El acero, aprestad y el bridón,
y retiemble en sus centros la tierra.
Al sonoro rugir del cañón.
Estrofa IV
¡Patria! ¡Patria! Tus hijos te juran
Exhalar en tus aras su aliento,
Si el clarín con su bélico acento
Los convoca a lidiar con valor.
¡Para ti las girnaldas de olivia!
Un recuerdo para ellos de gloria
¡Un laurel para tí de victorias!
n sepulcro para ellos de onor!
Coro
Mexicanos, al grito de Guerra
El acero, aprestad y el bridón,
y retiemble en sus centros la tierra.
Al sonoro rugir del cañón.
Ejercicio Himno Nacional Mexicano
1. Abrir una terminal y crear un archivo llamado himno-mexico con el comando vi
2. Dividir la pantalla verticalmente y abrir el archivo himno situado en el home
3. Ejecutar el comando para numerar las lineas del archivo himno y el archivo himno-mexico
4.Situarse en la linea 9 del himno y con el modo inserción cambiarla por la linea
De la paz el arcángel divino,
5.De la línea 12 corregir la palabra Mássiosare con los espacios pertinentes de manera que quede Más si osare
6.Reemplazar la línea 15 por la línea: Un soldado en cada hijo te dio.
7.Copiar toda la estrofa uno y pegarla en el archivo himno-mexico
8.Moverse en el archivo con los comando de navegacion por parrafo hasta llegar a la estrofa 2, borrar todas las líneas
<Esta línea no va aquí> y borrar los espacios de línea que queden de mas.
9.Copiar todo el parrafo de la estrofa 2 y pegar en la otra pantalla
10.Moverse hasta la Estrofa 3 y corregir cada letra inicial de línea por su respectiva mayúscula, copiar la estrofa 3
en el archivo himno-mexico
11. Situar el cursor en el parrafo de la estrofa 4 y realizar las correcciones pertinentes de manera que las ultimas 4 líneas queden de la siguiente manera:
¡Para ti las guirnaldas de oliva!
¡Un recuerdo para ellos de gloria!
¡Un laurel para tí de victoria!
¡Un sepulcro para ellos de honor!
12. Copiar línea por línea la estrofa 4 y pegar en el archivo himno-mexico
13. Copiar el parrafo del coro y pegar al inicio, entre las estrofas y al final del archivo himno-mexico
14. Cerrar sin guardar el archivo himno
15. Situarse en la línea 72 y escribir: Escrito por Francisco González Bocanegra en 1853 y compuesto por Jaime Nuno en 1854
16. Guardar el archivo y salir del editor
***Archivo himno****
Copiar el contenido el letras color naranja y guardarlo en un archivo con el nombre himno
Coro
Mexicanos, al grito de Guerra
El acero, aprestad y el bridón,
y retiemble en sus centros la tierra.
Al sonoro rugir del cañón.
Estrofa I
Ciña ¡Oh patria tus sienes de oliva!
De la paz del arcángel de vino,
Que en el cielo tu eterno destino
Por el dedo de Dios escribió.
Mássiosare un extraño enemigo
Profanar con su planta tus suelos
Pienso ¡Oh patria querida! Que el cielo
Un soldado en cada hijo de dios.
Coro
Mexicanos, al grito de Guerra
El acero, aprestad y el bridón,
y retiemble en sus centros la tierra.
Al sonoro rugir del cañón.
Estrofa II
¡Guerra, guerra sin tregua al que intente
<Esta línea no va aquí>
De la patria manchar los blasones!
<Esta línea no va aquí>
¡Guerra, guerra! Los patrios pendones,
<Esta línea no va aquí>
En las olas de sangre empapad.
<Esta línea no va aquí>
¡Guerra, guerra! En el monte, en el valle
<Esta línea no va aquí>
Los cañones horrísonos truenen,
<Esta línea no va aquí>
<Esta línea no va aquí>
Y los ecos sonoros resuenen
Con las voces de ¡Unión! ¡Libertad!
Coro
Mexicanos, al grito de Guerra
El acero, aprestad y el bridón,
y retiemble en sus centros la tierra.
Al sonoro rugir del cañón.
Estrofa III
antes, patria, que inermes tu hijos
bajo el yugo su cuello dobleguen
tus campiñas con sangre se rieguen
sobre la sangre se estampe su pie.
y tus templos, palacios y torres
se derrumben con hórrido estruendo,
y sus ruinas existan diciendo:
de mil héroes la patria aquí fué.
Coro
Mexicanos, al grito de Guerra
El acero, aprestad y el bridón,
y retiemble en sus centros la tierra.
Al sonoro rugir del cañón.
Estrofa IV
¡Patria! ¡Patria! Tus hijos te juran
Exhalar en tus aras su aliento,
Si el clarín con su bélico acento
Los convoca a lidiar con valor.
¡Para ti las girnaldas de olivia!
Un recuerdo para ellos de gloria
¡Un laurel para tí de victorias!
n sepulcro para ellos de onor!
Coro
Mexicanos, al grito de Guerra
El acero, aprestad y el bridón,
y retiemble en sus centros la tierra.
Al sonoro rugir del cañón.
Sesión 7 Editor de textos Vim
Vim es un editor de textos muy completo y muy útil, para iniciar el editor Vim tecleamos en una terminal el comando vi. Opcionalmente podemos agregar el nombre de un archivo, si el archivo existe se abre el archivo indicado, si no existe se crear el archivo para ser editado.
mi-usuario@maquina:~$ vi
Se abrirá la siguiente ventana:
Al abrirse la ventana del editor entramos por default en el modo normal, si quisieras escribir en el modo normal no lo podrías hacer, por lo cual tenemos el modo inserción, para entrar en este modo tecleamos la letra i o la tecla insert. Como su nombre lo dice el modo inserción es únicamente para insertar texto, por lo que si quisieras ocupar las flechas para moverte o la tecla backspace no funcionarán. Para poder moverte entre las líneas con las flechas debemos teclear la tecla Esc , al teclear esta tecla regresamos al modo normal.
Tenemos otro modo llamado comando, para acceder al modo comando tenemos que estar previamente en el nodo normal y después teclear el caracter : y a continuación en la parte inferior izquierda aparecerá el caracter : y cursor que parpadea, eso quiere decir que nos encontramos en el modo comando.
Tenemos 2 comando muy básicos en el modo comando para el uso del editor vim:
q - Sale del editor
w - Guarda los cambios del archivo editado
qw - Guarda los cambios y sale del editor
También tenemos el operador ! que forza cualquiera de los 2 comandos vistos arriba:
q! - Sale del editor, si es que existen cambios que no han sido guardados los ignora
w! - Forza el guardado de los cambios en el archivo
El editor vim, consta de muchos comandos, por lo que en esta entrada simplemente voy a poner los links con la documentación del proyecto.
http://www.vim.org/docs.php
http://vimdoc.sourceforge.net/
mi-usuario@maquina:~$ vi
Se abrirá la siguiente ventana:
Tenemos otro modo llamado comando, para acceder al modo comando tenemos que estar previamente en el nodo normal y después teclear el caracter : y a continuación en la parte inferior izquierda aparecerá el caracter : y cursor que parpadea, eso quiere decir que nos encontramos en el modo comando.
Tenemos 2 comando muy básicos en el modo comando para el uso del editor vim:
q - Sale del editor
w - Guarda los cambios del archivo editado
qw - Guarda los cambios y sale del editor
También tenemos el operador ! que forza cualquiera de los 2 comandos vistos arriba:
q! - Sale del editor, si es que existen cambios que no han sido guardados los ignora
w! - Forza el guardado de los cambios en el archivo
El editor vim, consta de muchos comandos, por lo que en esta entrada simplemente voy a poner los links con la documentación del proyecto.
http://www.vim.org/docs.php
http://vimdoc.sourceforge.net/
Sesión 7 Links Duros y Suaves
Un link es un archivo que hace referencia a un archivo original.
Existen 2 tipos de links:
Existen 2 tipos de links:
- Links Duros: Son enlaces a un archivo, ambos tienen el mismo valor de inodo y tamaño.
- Links Suaves (Simbólicos): Son accesos directos a un archivo original, tienen distinto inodo y tamaño, si se borra el archivo original el enlace suave pierde su contenido, si se restaura el archivo original, el link suave vuelve a tener contenido.
Ahora vamos a crear 2 enlaces, primero vamos a crear una carpeta en nuestro home llamada enlaces:
mi-usuario@maquina:~$ mkdir enlaces
mi-usuario@maquina:~$
Entramos a la carpeta enlaces y copiamos el archivo en la ruta /etc/passwd a nuestra carpeta enlaces, renombrandolo como passwd.backup
mi-usuario@maquina:~$ cd enlaces
mi-usuario@maquina:~/enlaces$ cp /etc/passwd passwd.backup
mi-usuario@maquina:~/enlaces$ ls
passwd.backup
Es importante copiar el archivo passwd, para trabajar con la copia y no con el original, recuerda que con los enlaces al realizar un cambio se ve reflejado en el archivo original.
Ahora vamos a hacer un enlace duro llamado passwd.hard haciendo tomando como referencia el archivo passwd.backup el cual esta dentro de nuestra carpeta enlaces.
mi-usuario@maquina:~/enlaces$ ln passwd.backup passwd.hard
mi-usuario@maquina:~/enlaces$
Vamos a listar el contenido de nuestra carpeta:
mi-usuario@maquina:~/enlaces$ ls -lih
total 8.0K
268975 -rw-r--r-- 2 mi-usuario mi-usuario 2.0K 2011-09-16 20:06 passwd.backup
268975 -rw-r--r-- 2 mi-usuario mi-usuario 2.0K 2011-09-16 20:06 passwd.hard
Como podrás observar ambos tienen el mismo peso (2.0K) y el mismo número de inodo (268975), se creo un archivo identico al original. Si realizaramos un cambio en cualquiera de los 2 archivos se vería reflejado automáticamente en el otro.
Ahora vamos a crear un enlace suave tomando como referencia el archivo passwd.backup
mi-usuario@maquina:~/enlaces$ ln -s passwd.backup passwd.soft
mi-usuario@maquina:~/enlaces$
Listamos el contenido de la carpeta enlaces
mi-usuario@maquina:~/enlaces$ ls -lih
total 8.0K
268975 -rw-r--r-- 2 mi-usuario mi-usuario 2.0K 2011-09-16 20:06 passwd.backup
268975 -rw-r--r-- 2 mi-usuario mi-usuario 2.0K 2011-09-16 20:06 passwd.hard
283727 lrwxrwxrwx 1 mi-usuario mi-usuario 13 2011-09-16 20:18 passwd.soft -> passwd.backup
Como puedes darte cuenta se creo un archivo que apunta al archivo passwd.backup, sin embargo, a difererencia de los enlaces duros, los enlaces suaves tienen distinto inodo y tamaño con respecto al archivo original.
Por último vamos a borrar el archivo passwd.backup.
mi-usuario@maquina:~/enlaces$ rm passwd.backup
mi-usuario@maquina:~/enlaces$
Listamos el contenido del achivo passwd.hard
mi-usuario@maquina:~/enlaces$ cat passwd.hard
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
- - El resto de la salida se omite - -
El contenido del enlace duro continua intacto, ahora vamos a listar el contenido del enlace passwd.soft
mi-usuario@maquina:~/enlaces$ cat passwd.soft
cat: passwd.soft: No existe el fichero o el directorio
mi-usuario@maquina:~/enlaces$ ls
passwd.hard passwd.soft
El intérprete nos dice que no existe el archivo aún cuando el link permanece ahí, sin embargo si volvemos a copiar el archivo a la carpeta, con el mismo nombre podrás ver que nuevamente el link suave tiene contenido.
mi-usuario@maquina:~/enlaces$ cp /etc/passwd passwd.backup
mi-usuario@maquina:~/enlaces$ cat passwd.soft
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
- - El resto de la salida se omite - -
viernes, 9 de septiembre de 2011
Sesión 5 Ejercicio 5
Ejercicio 5: Realizar un script que construya dentro de la carpeta /home/usuario la siguiente estructura de carpetas(nodos, leaf) y archivos (child)
tree-view/
├── node1
│ ├── childa
│ ├── childb
│ ├── childc
│ ├── childd
│ ├── childe
│ ├── childf
│ ├── childg
│ ├── childh
│ ├── leaf1
│ ├── leaf10
│ ├── leaf11
│ ├── leaf12
│ ├── leaf13
│ ├── leaf14
│ ├── leaf15
│ ├── leaf2
│ ├── leaf3
│ ├── leaf4
│ ├── leaf5
│ ├── leaf6
│ ├── leaf7
│ ├── leaf8
│ └── leaf9
├── node10
│ ├── childa
│ ├── childb
│ ├── childc
│ ├── childd
│ ├── childe
│ ├── childf
│ ├── childg
│ ├── childh
│ ├── leaf1
│ ├── leaf10
│ ├── leaf11
│ ├── leaf12
│ ├── leaf13
│ ├── leaf14
│ ├── leaf15
│ ├── leaf2
│ ├── leaf3
│ ├── leaf4
│ ├── leaf5
│ ├── leaf6
│ ├── leaf7
│ ├── leaf8
│ └── leaf9
├── node2
│ ├── childa
│ ├── childb
│ ├── childc
│ ├── childd
│ ├── childe
│ ├── childf
│ ├── childg
│ ├── childh
│ ├── leaf1
│ ├── leaf10
│ ├── leaf11
│ ├── leaf12
│ ├── leaf13
│ ├── leaf14
│ ├── leaf15
│ ├── leaf2
│ ├── leaf3
│ ├── leaf4
│ ├── leaf5
│ ├── leaf6
│ ├── leaf7
│ ├── leaf8
│ └── leaf9
├── node3
│ ├── childa
│ ├── childb
│ ├── childc
│ ├── childd
│ ├── childe
│ ├── childf
│ ├── childg
│ ├── childh
│ ├── leaf1
│ ├── leaf10
│ ├── leaf11
│ ├── leaf12
│ ├── leaf13
│ ├── leaf14
│ ├── leaf15
│ ├── leaf2
│ ├── leaf3
│ ├── leaf4
│ ├── leaf5
│ ├── leaf6
│ ├── leaf7
│ ├── leaf8
│ └── leaf9
├── node4
│ ├── childa
│ ├── childb
│ ├── childc
│ ├── childd
│ ├── childe
│ ├── childf
│ ├── childg
│ ├── childh
│ ├── leaf1
│ ├── leaf10
│ ├── leaf11
│ ├── leaf12
│ ├── leaf13
│ ├── leaf14
│ ├── leaf15
│ ├── leaf2
│ ├── leaf3
│ ├── leaf4
│ ├── leaf5
│ ├── leaf6
│ ├── leaf7
│ ├── leaf8
│ └── leaf9
├── node5
│ ├── childa
│ ├── childb
│ ├── childc
│ ├── childd
│ ├── childe
│ ├── childf
│ ├── childg
│ ├── childh
│ ├── leaf1
│ ├── leaf10
│ ├── leaf11
│ ├── leaf12
│ ├── leaf13
│ ├── leaf14
│ ├── leaf15
│ ├── leaf2
│ ├── leaf3
│ ├── leaf4
│ ├── leaf5
│ ├── leaf6
│ ├── leaf7
│ ├── leaf8
│ └── leaf9
├── node6
│ ├── childa
│ ├── childb
│ ├── childc
│ ├── childd
│ ├── childe
│ ├── childf
│ ├── childg
│ ├── childh
│ ├── leaf1
│ ├── leaf10
│ ├── leaf11
│ ├── leaf12
│ ├── leaf13
│ ├── leaf14
│ ├── leaf15
│ ├── leaf2
│ ├── leaf3
│ ├── leaf4
│ ├── leaf5
│ ├── leaf6
│ ├── leaf7
│ ├── leaf8
│ └── leaf9
├── node7
│ ├── childa
│ ├── childb
│ ├── childc
│ ├── childd
│ ├── childe
│ ├── childf
│ ├── childg
│ ├── childh
│ ├── leaf1
│ ├── leaf10
│ ├── leaf11
│ ├── leaf12
│ ├── leaf13
│ ├── leaf14
│ ├── leaf15
│ ├── leaf2
│ ├── leaf3
│ ├── leaf4
│ ├── leaf5
│ ├── leaf6
│ ├── leaf7
│ ├── leaf8
│ └── leaf9
├── node8
│ ├── childa
│ ├── childb
│ ├── childc
│ ├── childd
│ ├── childe
│ ├── childf
│ ├── childg
│ ├── childh
│ ├── leaf1
│ ├── leaf10
│ ├── leaf11
│ ├── leaf12
│ ├── leaf13
│ ├── leaf14
│ ├── leaf15
│ ├── leaf2
│ ├── leaf3
│ ├── leaf4
│ ├── leaf5
│ ├── leaf6
│ ├── leaf7
│ ├── leaf8
│ └── leaf9
└── node9
├── childa
├── childb
├── childc
├── childd
├── childe
├── childf
├── childg
├── childh
├── leaf1
├── leaf10
├── leaf11
├── leaf12
├── leaf13
├── leaf14
├── leaf15
├── leaf2
├── leaf3
├── leaf4
├── leaf5
├── leaf6
├── leaf7
├── leaf8
└── leaf9
160 directories, 80 files
tree-view/
├── node1
│ ├── childa
│ ├── childb
│ ├── childc
│ ├── childd
│ ├── childe
│ ├── childf
│ ├── childg
│ ├── childh
│ ├── leaf1
│ ├── leaf10
│ ├── leaf11
│ ├── leaf12
│ ├── leaf13
│ ├── leaf14
│ ├── leaf15
│ ├── leaf2
│ ├── leaf3
│ ├── leaf4
│ ├── leaf5
│ ├── leaf6
│ ├── leaf7
│ ├── leaf8
│ └── leaf9
├── node10
│ ├── childa
│ ├── childb
│ ├── childc
│ ├── childd
│ ├── childe
│ ├── childf
│ ├── childg
│ ├── childh
│ ├── leaf1
│ ├── leaf10
│ ├── leaf11
│ ├── leaf12
│ ├── leaf13
│ ├── leaf14
│ ├── leaf15
│ ├── leaf2
│ ├── leaf3
│ ├── leaf4
│ ├── leaf5
│ ├── leaf6
│ ├── leaf7
│ ├── leaf8
│ └── leaf9
├── node2
│ ├── childa
│ ├── childb
│ ├── childc
│ ├── childd
│ ├── childe
│ ├── childf
│ ├── childg
│ ├── childh
│ ├── leaf1
│ ├── leaf10
│ ├── leaf11
│ ├── leaf12
│ ├── leaf13
│ ├── leaf14
│ ├── leaf15
│ ├── leaf2
│ ├── leaf3
│ ├── leaf4
│ ├── leaf5
│ ├── leaf6
│ ├── leaf7
│ ├── leaf8
│ └── leaf9
├── node3
│ ├── childa
│ ├── childb
│ ├── childc
│ ├── childd
│ ├── childe
│ ├── childf
│ ├── childg
│ ├── childh
│ ├── leaf1
│ ├── leaf10
│ ├── leaf11
│ ├── leaf12
│ ├── leaf13
│ ├── leaf14
│ ├── leaf15
│ ├── leaf2
│ ├── leaf3
│ ├── leaf4
│ ├── leaf5
│ ├── leaf6
│ ├── leaf7
│ ├── leaf8
│ └── leaf9
├── node4
│ ├── childa
│ ├── childb
│ ├── childc
│ ├── childd
│ ├── childe
│ ├── childf
│ ├── childg
│ ├── childh
│ ├── leaf1
│ ├── leaf10
│ ├── leaf11
│ ├── leaf12
│ ├── leaf13
│ ├── leaf14
│ ├── leaf15
│ ├── leaf2
│ ├── leaf3
│ ├── leaf4
│ ├── leaf5
│ ├── leaf6
│ ├── leaf7
│ ├── leaf8
│ └── leaf9
├── node5
│ ├── childa
│ ├── childb
│ ├── childc
│ ├── childd
│ ├── childe
│ ├── childf
│ ├── childg
│ ├── childh
│ ├── leaf1
│ ├── leaf10
│ ├── leaf11
│ ├── leaf12
│ ├── leaf13
│ ├── leaf14
│ ├── leaf15
│ ├── leaf2
│ ├── leaf3
│ ├── leaf4
│ ├── leaf5
│ ├── leaf6
│ ├── leaf7
│ ├── leaf8
│ └── leaf9
├── node6
│ ├── childa
│ ├── childb
│ ├── childc
│ ├── childd
│ ├── childe
│ ├── childf
│ ├── childg
│ ├── childh
│ ├── leaf1
│ ├── leaf10
│ ├── leaf11
│ ├── leaf12
│ ├── leaf13
│ ├── leaf14
│ ├── leaf15
│ ├── leaf2
│ ├── leaf3
│ ├── leaf4
│ ├── leaf5
│ ├── leaf6
│ ├── leaf7
│ ├── leaf8
│ └── leaf9
├── node7
│ ├── childa
│ ├── childb
│ ├── childc
│ ├── childd
│ ├── childe
│ ├── childf
│ ├── childg
│ ├── childh
│ ├── leaf1
│ ├── leaf10
│ ├── leaf11
│ ├── leaf12
│ ├── leaf13
│ ├── leaf14
│ ├── leaf15
│ ├── leaf2
│ ├── leaf3
│ ├── leaf4
│ ├── leaf5
│ ├── leaf6
│ ├── leaf7
│ ├── leaf8
│ └── leaf9
├── node8
│ ├── childa
│ ├── childb
│ ├── childc
│ ├── childd
│ ├── childe
│ ├── childf
│ ├── childg
│ ├── childh
│ ├── leaf1
│ ├── leaf10
│ ├── leaf11
│ ├── leaf12
│ ├── leaf13
│ ├── leaf14
│ ├── leaf15
│ ├── leaf2
│ ├── leaf3
│ ├── leaf4
│ ├── leaf5
│ ├── leaf6
│ ├── leaf7
│ ├── leaf8
│ └── leaf9
└── node9
├── childa
├── childb
├── childc
├── childd
├── childe
├── childf
├── childg
├── childh
├── leaf1
├── leaf10
├── leaf11
├── leaf12
├── leaf13
├── leaf14
├── leaf15
├── leaf2
├── leaf3
├── leaf4
├── leaf5
├── leaf6
├── leaf7
├── leaf8
└── leaf9
160 directories, 80 files
Sesión 6 Comandos para procesar texto
grep
Filtra y resalta el texto de un archivo mediante palabras clave
Ejemplo:
mi-usuario@maquina:~$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
head
Muestra las primeras líneas de un archivo (si no se le indica el número de líneas por default imprime 10)
Ejemplo:
mi-usuario@maquina:~$ head ~/.bashrc
.bash_history .bash_logout .bashrc
carmeth@Toshiba-lap:~$ head .bashrc
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# don't put duplicate lines in the history. See bash(1) for more options
# ... or force ignoredups and ignorespace
HISTCONTROL=ignoredups:ignorespace
avahi-autoipd:x:103:108:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false
avahi:x:104:109:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
backup:x:34:34:backup:/var/backups:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
carmeth:x:1003:1004:carmeth,,,,:/home/carmeth:/bin/bash
couchdb:x:105:113:CouchDB Administrator,,,:/var/lib/couchdb:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
Este es el contenido de archivo-repetido
esta línea se repite
esta línea se repite
esta línea ya no se repite
otra línea
otra línea
línea de contenido
línea de contenido
Este es el contenido de archivo-repetido
esta línea se repite
esta línea ya no se repite
otra línea
línea de contenido
Filtra y resalta el texto de un archivo mediante palabras clave
Ejemplo:
mi-usuario@maquina:~$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
head
Muestra las primeras líneas de un archivo (si no se le indica el número de líneas por default imprime 10)
Ejemplo:
mi-usuario@maquina:~$ head ~/.bashrc
.bash_history .bash_logout .bashrc
carmeth@Toshiba-lap:~$ head .bashrc
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# don't put duplicate lines in the history. See bash(1) for more options
# ... or force ignoredups and ignorespace
HISTCONTROL=ignoredups:ignorespace
mi-usuario@maquina:~$
tail
Muestra las últimas líneas de un archivo (si no se le indica el número de líneas por default imprime 10)
Ejemplo:
mi-usuario@maquina:~$ tail -n 5 /etc/passwd
rtkit:x:110:117:RealtimeKit,,,:/proc:/bin/false
haldaemon:x:114:124:Hardware abstraction layer,,,:/var/run/hald:/bin/false
mysql:x:115:125:MySQL Server,,,:/nonexistent:/bin/false
sshd:x:116:65534::/var/run/sshd:/usr/sbin/nologin
carmeth:x:1003:1004:carmeth,,,,:/home/carmeth:/bin/bash
mi-usuario@maquina:~$
wc
Cuenta el número de líneas, palabras y bytes de un archivo
Ejemplo:
mi-usuario@maquina:~$ wc /etc/passwd
38 61 1969 /etc/passwd
sort
Ordena alfabéticamente las líneas de un archivo
Ejemplo:
mi-usuario@maquina:~$ sort /etc/passwd
avahi-autoipd:x:103:108:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false
avahi:x:104:109:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
backup:x:34:34:backup:/var/backups:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
carmeth:x:1003:1004:carmeth,,,,:/home/carmeth:/bin/bash
couchdb:x:105:113:CouchDB Administrator,,,:/var/lib/couchdb:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
- - Se omite el resto de la salida de este comando - -
uniq
Omite las líneas repetidas de un archivo
Omite las líneas repetidas de un archivo
Ejemplo:
mi-usuario@maquina:~$ cat archivo-repetido
Este es el contenido de archivo-repetido
esta línea se repite
esta línea se repite
esta línea ya no se repite
otra línea
otra línea
línea de contenido
línea de contenido
Ahora ejecutamos el comando uniq sobre este archivo para que omita las líneas repetidas
mi-usuario@maquina:~$ uniq archivo-repetido
Este es el contenido de archivo-repetido
esta línea se repite
esta línea ya no se repite
otra línea
línea de contenido
diff
Imprime las líneas que sean distintas entre 2 archivos
Ejemplo:
mi-usuario@maquina:~$ cat archivo-repetido
Este es el contenido de archivo-repetido
esta línea se repite
esta línea se repite
esta línea ya no se repite
otra línea
otra línea
línea de contenido
línea de contenido
mi-usuario@maquina:~$ cat archivo-repetido.backup
Este es el contenido de archivo-repetido.backup
esta línea se repite
esta línea se repite
esta línea ya no se repite
otra línea **distinta**
otra línea
línea de contenido **cambiada**
línea de contenido
mi-usuario@maquina:~$ diff archivo-repetido archivo-repetido.backup
1c1
< Este es el contenido de archivo-repetido
---
> Este es el contenido de archivo-repetido.backup
4a5
> otra línea **distinta**
6,7c7
< otra línea
< línea de contenido
---
> línea de contenido **cambiada**
cut
"Corta" dependiendo los campos y delimitadores que se le especifiquen
Ejemplo:
Para este ejemplo vamos a utilizar el archivo passwd, el cual esta separado por columnas, demitadas por el caracter : ahora veamos como se utiliza el comando cut
mi-usuario@maquina:~$ cut -d: -f 1 /etc/passwd
root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
proxy
www-data
- - El resto de la salida se omite - -
Ahora prueba utilizando otros delimitadores y otros campos
Sesión 6 Redireccionamiento de Entrada/Salida
-Entrada estándar (STDIN) : Teclado
-Salida estándar (STDOUT) : Pantalla
-Error estándar (STDERR) : Pantalla
A continuación se muestra una tabla con los operadores de redirección:
-Salida estándar (STDOUT) : Pantalla
-Error estándar (STDERR) : Pantalla
A continuación se muestra una tabla con los operadores de redirección:
Operador | Acción |
> | Redirecciona la salida a un archivo |
>> | Agrega la salida a un archivo |
2> | Redirecciona la salida de error estándar a un archivo |
2>> | Agrega a un archivo la salida de error estándar |
< | Envia un archivo como entrada de un comando |
Veamos algunos ejemplos:
En este ejemplo la salida del comando cat se redireccionará al archivo passwd-backup (si el archivo no existe lo crea).
mi-usuario@maquina:~$ cat /etc/passwd > passwd-backup
mi-usuario@maquina:~$
Ahora vamos a ver el contenido del archivo passwd-backup
mi-usuario@maquina:~$ cat passwd-backup
cat passwd-backup
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
- - El resto de la salida de este comando se omite - -
Vamos a agregar contenido al archivo passwd-backup
mi-usuario@maquina:~$ cat /etc/hosts >> passwd-backup
mi-usuario@maquina:~$
Si vuelves a leer el contenido del archivo passwd-backup encontrarás que se agregó el contenido del archivo /etc/hosts, hay que fijarnos que el operador que utizamos fue el de agregar la salida (>>), si hubieramos ocupado el operador de redirección de la salida (>) el contenido del archivo passwd-backup se hubiera sobrescrito, es decir el contenido actual (del archivo /etc/passwd) se borraría y se reemplazaría por el contenido del archivo nuevo (/etc/hosts).
Ahora vamos a producir a propósito un error, vamos a utilizar el comando touch sin argumentos, por lo cual nos debería salir un error en pantalla (STDERR), pero lo vamos a redireccionar a un archivo.
mi-usuario@maquina:~$ touch 2> archivo-errores
mi-usuario@maquina:~$ A continuación vamos a abrir el contenido del archivo archivo-errores:
mi-usuario@maquina:~$ cat archivo-errores
touch: falta un archivo como argumento
Pruebe `touch --help' para más información.
Como te puedes dar cuenta el contenido de archivo-errores es el error producido por el comando touch, solo que se ha redireccionado a un archivo. Ahora prueba agregando (2>>) el error estandar que produce el comando mkdir al archivo archivo-errores.
Ahora vamos a ver como pasar un archivo como entrada estándar a un comando:
Primero vamos a crear un archivo con el mensaje "Texto dentro del archivo mensaje ":
mi-usuario@maquina:~$ echo "Texto dentro del archivo mensaje" > mensaje
mi-usuario@maquina:~$
Leemos el contenido de ese archivo para checar que el contenido se haya guardado correctamente:
mi-usuario@maquina:~$ cat mensaje
Texto dentro del archivo mensaje
Ahora vamos a pasarle el archivo mensaje como entrada estándar al comando cat, el cual leera el contenido de ese archivo:
mi-usuario@maquina:~$ cat < mensaje
Texto dentro del archivo mensaje
Como te darás cuenta leímos el contenido del archivo mensaje, ahora prueba el comando anterior con los comandos less y echo.
Piping
El piping es redireccionar la salida de un comando como entrada de otro comando, estos comandos se redireccionan mediante la tecla pipe ( | ), yo la escribo prsionando la tecla ALTGR+2 pero puede variar dependiendo de la distriución de cada teclado:
comando-1 | comando-2
Veamos unos ejemplos:
En este ejemplo la salida del comando echo (pantalla) la vamos a redirecionar como entrada del comando cat
mi-usuario@maquina:~$ echo "este mensaje se redirecciona al comando cat" | cateste mensaje se redirecciona al comando cat
El siguiente ejemplo la salida del comando cat (pantalla) la vamos a redireccionar como entrada del comando less
mi-usuario@maquina:~$ cat /etc/passwd | less- - Inicio de salida omitida - -
pulse:x:109:114:PulseAudio daemon,,,:/var/run/pulse:/bin/false
rtkit:x:110:117:RealtimeKit,,,:/proc:/bin/false
saned:x:111:118::/home/saned:/bin/false
hplip:x:112:7:HPLIP system user,,,:/var/run/hplip:/bin/false
gdm:x:113:120:Gnome Display Manager:/var/lib/gdm:/bin/false
eddye:x:1000:1000:eddye,,,:/home/eddye:/bin/bash
haldaemon:x:114:124:Hardware abstraction layer,,,:/var/run/hald:/bin/false
zend:x:1001:1001::/home/eddye/Escritorio/ZendServer-5.1.0_Tarball_B7-php5.3.5-linux-glibc23-x86_64/usr/zend/gui/lighttpd:/sbin/nologin
mysql:x:115:125:MySQL Server,,,:/nonexistent:/bin/false
sshd:x:116:65534::/var/run/sshd:/usr/sbin/nologin
carmeth:x:1003:1004:carmeth,,,,:/home/carmeth:/bin/bash
(END)
Suscribirse a:
Entradas (Atom)


