Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Redirección y tuberias en linux (II) - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
continuamos con el redireccionamiento recordamos que estoy en esta carpetita que habíamos creado
00:00:00
sábado 28 y que teníamos ahí f1 f fichero 1 fichero 2 fichero 3 voy a borrar el fichero 1
00:00:09
para partir por los que teníamos y tenemos esos tres ficheros vale fichero 1 fichero 2 y fichero
00:00:16
3 mal vimos en este caso que había reclamamiento de entrada de salida y de errores estuvimos viendo
00:00:27
el de salida y el de errores y estuvimos haciendo ejemplos como este diciendo oye quiero mostrar
00:00:35
fichero 1 y no existe y aquí el fichero 1 sí que me lo iba a mostrar y él no existe era un error
00:00:44
así que aquí teníamos los dos canales y hacíamos lo siguiente oye quiero que la salida vaya en este
00:00:54
caso a salida ok punto txt y quiero que los errores vayan a la salida mal punto txt vale
00:01:01
no sé si recordáis que hicimos eso esto de dejar aquí un espacio lo que queráis vale yo son manías
00:01:13
mías entonces qué es lo que ha pasado que me ha creado uno que se llama salida ok y otro que se
00:01:21
llama salida mal si esto lo que vimos antes pues aquí comentaros que tener cuidado con el orden
00:01:29
que pongáis me explico voy a partir de este primer ejemplo que ya lo tenemos hecho pero voy a decirle
00:01:38
que la salida vaya la salida correcta vaya este de aquí y le voy a decir que los errores vayan
00:01:47
al mismo sitio que la salida yo no sé si recordáis que hacía esto si yo le hago un
00:01:57
cut de salida ok pues me ponía tanto los errores vale como la salida correcta dentro del fichero
00:02:03
esto es lo que vimos antes si yo recuerdo pone primero todos los errores y luego en este caso
00:02:13
la salida correcta pero qué pasa si yo hago lo contrario digo mira vale pues voy a hacer lo
00:02:19
mismo pero voy a decirle primero este de aquí y luego la salida ok sí y qué ha pasado aquí
00:02:25
fijaros que me está mostrando la salida de errores porque porque influye el orden en el
00:02:38
que lo pongáis cuidado con eso por favor entonces qué es lo que le estamos diciendo aquí aquí le
00:02:48
estamos diciendo que la salida de errores se me vaya al mismo sitio que la salida estándar y la
00:02:54
salida estándar cuál es por la pantalla así que poner esto y no poner nada lo mismo le estoy
00:03:02
diciendo repito le estoy diciendo oye quiero que los errores los envíes al mismo sitio que
00:03:08
la salida estándar y cuál es la salida estándar ahora pues la salida estándar que nosotros tenemos
00:03:15
ahora en la pantalla vale en este caso como lo queréis llamar me da igual que sea pantalla
00:03:20
terminal me da igual sí por eso que es lo que me muestra aquí aquí lo que me está mostrando es el
00:03:28
error pues en pantalla y luego que le digo pues luego le estoy diciendo que la salida correcta
00:03:39
se me guarda en este fichero de forma que si yo le digo que me diga la salida ok pues solamente
00:03:49
me va a mostrar la salida correcta si entonces repito por favor cuidado lo he cerrado
00:03:59
cuidado con poner
00:04:06
como ponéis el orden
00:04:17
por favor
00:04:19
estábamos en IES Cañaveral
00:04:20
y en el sábado 28
00:04:25
estábamos aquí
00:04:26
y estamos viendo que lo que nos dice
00:04:27
la salida ok
00:04:31
¿de acuerdo?
00:04:32
vale
00:04:35
vamos a ver más cosas
00:04:35
ya hemos visto que podemos mandar por un lado
00:04:38
la salida y por otro los errores o que podemos enviar las dos cosas al mismo sitio sí vale
00:04:45
cuando yo especificó cosas como ésta en el que decíamos que la salida va a un sitio está de aquí
00:04:51
cuando yo le digo que la salida va a un sitio y el error va a otro como aquí estoy especificando
00:05:04
dónde va cada uno me da igual poner uno delante y otro después es decir aquí el orden sí que me da
00:05:09
pero cuidado cuando yo pongo que los dos van a un mismo sitio como hemos visto antes pero en
00:05:13
este caso cuando yo estoy indicando la salida normal la salida correcta y la salida de errores
00:05:19
me da igual poner este aquí que esté aquí de acuerdo porque estoy especificando los dos por
00:05:28
separado de acuerdo vale vamos a seguir viendo cuáles las opciones que nos quedan hemos visto
00:05:36
la salida y la salida de errores y qué pasa con la entrada pues para que entendáis cómo funciona
00:05:44
la entrada voy a hacer un kit kat aquí y vamos a ver un comando no lo voy a explicar completo pero
00:05:49
voy a ver un comando que se llama tr el comando tr se utiliza para sustituir un conjunto de
00:05:58
caracteres por otros vale por ejemplo el ejemplo más claro que tenéis imaginaros que yo pongo eco
00:06:05
o la caracola sí pues si yo pongo en este caso de coro caracolas si yo pongo el comando tr y
00:06:11
yo al comando tr le digo yo quiero cambiar la a por un 5 si eso lo que le estoy diciendo veis
00:06:27
que hay el tr se me queda ahí el cursor diciendo vale pues escríbeme lo que tú quieras dios vale
00:06:38
pues hola fernando pues quiero que veáis qué es lo que ha hecho me ha cogido la y me la ha
00:06:44
sustituido por en 5 me ha cogido la y me ha sustituido por en 5 si yo sigo poniendo me
00:06:56
dice venga introduce me otra línea porque él está esperando a que yo le dé como entrada a
00:07:02
través del teclado la información pues yo le digo hola caracola y qué es lo que ha hecho pues
00:07:08
volvemos a ver aquí que lo que ha hecho es cambiar la letra por un 5 la letra por un 5 la letra por
00:07:16
un 5 y la letra por un 5 si entonces este comando me permite sustituir no solamente un carácter sino
00:07:24
un conjunto de caracteres. ¿Cómo le puedo yo especificar un conjunto de caracteres?
00:07:33
Os hago otro ejemplo. Yo le digo, oye, quiero tr y le voy a poner entre corchetes un rango
00:07:38
de caracteres. Le digo, quiero que me cambies de la a y tiene que ser un rango que siempre
00:07:44
va de menor a mayor. No puedo poner z, tiene que ser de a a la z. Pues quiero que, esto
00:07:52
le estoy diciendo, quiero que me cambies todas las letras que vayan desde la a hasta la z
00:07:58
El guión quiere decir hasta y en este caso son minúsculas. Y ahora le voy a decir, quiero que me la cambies de la A a la Z mayúscula. Entonces, ¿qué le estoy diciendo aquí? Le estoy diciendo, esto es lo que quiero que me busques para cambiar y esto es por lo que quiero que me busques.
00:08:03
Entonces, como yo he puesto entre corchetes, para poner entre corchetes le pongo un conjunto de caracteres.
00:08:25
Si pongo el primer carácter, un guión y el último, va a ser todos los caracteres comprendidos entre el primero y el último.
00:08:33
¿Sí? Entonces, aquí lo que le estoy diciendo es que, oye, desde la A minúscula hasta la Z minúscula, es decir, A, B, C, D, E, E, bla, bla, bla, bla, bla, bla.
00:08:41
pues quiero que me lo sustituyas
00:08:53
por de la A mayúscula
00:08:56
a la Z mayúscula
00:08:58
¿vale? ¿entendéis que hace esto?
00:09:00
¿vale?
00:09:03
si yo le doy aquí al intro
00:09:04
uy, perdonadme
00:09:06
si no he salido, espérate, control C
00:09:08
control C porque estaba ejecutando
00:09:10
todavía el test anterior
00:09:12
así que
00:09:14
espérate que lo voy a copiar, que no tengo gana de
00:09:16
copiamos
00:09:18
y pegamos
00:09:23
¿vale?
00:09:25
se queda ahí esperando
00:09:26
le digo, vale, pues hola
00:09:27
Fernando
00:09:29
pues que es lo que ha hecho, fijaros que es lo que ha hecho
00:09:33
me está cambiando
00:09:36
pues todo la he ido por a ver
00:09:37
me dice, oye
00:09:39
la H por H mayúscula
00:09:42
la O minúscula por la O mayúscula
00:09:44
voy a cambiar el color
00:09:46
la L
00:09:47
joder, estoy cogiendo yo aquí
00:09:54
el blue
00:09:58
cojo la A
00:10:01
cojo la F minúscula por la F minúscula
00:10:05
Cojo la E por la E mayúscula, es decir, me está cambiando todas las minúsculas por mayúsculas.
00:10:08
¿Que yo quiero seguir escribiendo? Pues me va a convertir.
00:10:13
Pero repito, ¿de dónde me está esperando los datos? De la entrada estándar.
00:10:17
Y la entrada estándar, que es por defecto el numerito 0 y es el teclado.
00:10:21
¿Sí? Vale. Entonces, una última CTRL-C para salir de aquí y una última observación.
00:10:27
¿Qué pasa si yo quiero decir las vocales? Yo le pongo A, E, I, O.
00:10:34
y quiero que me lo cambie por 1, 2, 3, 4 y 5
00:10:38
entonces, ¿qué es lo que va a hacer?
00:10:43
me va a cambiar
00:10:47
me va a cambiar la SAS
00:10:48
por 1
00:10:55
la SES
00:10:57
por 2
00:10:59
la I por 3
00:11:00
la O por 4
00:11:02
y la U por 5
00:11:05
eso es lo que me va a hacer
00:11:07
entonces, si yo esto lo ejecuto
00:11:08
yo le pongo aquí
00:11:11
Antonio Cervantes Cuevas.
00:11:12
Pues, ¿qué es lo que me ha hecho?
00:11:22
Me lo estoy inventando, ¿eh?
00:11:23
¿Qué es lo que me ha hecho aquí?
00:11:26
Pues la A.
00:11:28
Uy, perdón.
00:11:29
La A por un 1.
00:11:31
La O por un 4.
00:11:34
La I por un 3.
00:11:36
La O por un 4.
00:11:38
Vais viendo que me está sustituyendo cada vocal por su correspondiente número en el orden en el que nosotros lo hemos puesto.
00:11:39
La U por un 5, la E por un 2 y la A por un 1.
00:11:47
¿Entendéis este comando?
00:11:52
Entonces, ¿cómo le podría yo decir?
00:11:55
Imaginaros que vamos a hacer un ficherito.
00:11:58
Le digo, oye, nano y vamos a crear un ficherito que sea nombres alumnos.
00:11:59
Y vamos a creer aquí, yo que sé, lo que me dé la gana. Antonio, Luis, Carol, Eva, Natalia, Carmen, Nuria, Alejandra, ¿vale?
00:12:11
yo que sé, esto es de aquí
00:12:40
otra vez Luis
00:12:41
¿de acuerdo?
00:12:43
pues imaginaos que tenemos esto, ya sabéis
00:12:48
que para salir, control x
00:12:50
quiere guardar los cambios, s de sí
00:12:52
nombre del ficherito
00:12:54
ese es el que tiene, intro
00:12:56
y ya lo tenemos guardado, de forma que si yo le
00:12:58
digo nombres alumnos
00:13:00
esto es lo que tengo, ¿sí?
00:13:03
¿qué pasa si yo quiero convertir
00:13:04
este fichero?
00:13:06
es decir, todo lo que hay en este fichero
00:13:08
quiero que me lo sustituya
00:13:10
todos los caracteres en minúscula por mayúsculas.
00:13:12
Yo le podría decir lo que teníamos aquí antes.
00:13:18
El tr, az, az mayúscula.
00:13:21
Pero, ¿y cómo le digo yo que en lugar de que los valores me lo coja del teclado,
00:13:25
quiero que me lo coja de un fichero?
00:13:31
Pues para eso tenemos aquí el que nos queda, el menor.
00:13:33
Yo con el menor le estoy diciendo,
00:13:37
oye, los datos de entrada con los que vas a trabajar no va a ser el teclado, o sea, no esperes los datos del teclado, sino que directamente te los voy a enviar de un ficherito, ¿vale?
00:13:39
Que se llama nombres.txt. Entonces, ¿qué es lo que estoy haciendo aquí? Aquí lo que estoy haciendo es que todo el contenido de este ficherito, que es nombre alumnos, que es este de aquí, ¿sí?
00:13:51
Lo que estoy haciendo es, se los voy a pasar como si yo los hubiese escrito, se los voy a pasar al comando tr.
00:14:09
Entonces, ¿qué es lo que va a hacer el comando tr?
00:14:21
Me va a coger como entrada todo el contenido de este ficherito y lo que va a hacer es, me va a sustituir todo lo que está en minúscula por mayúscula y me lo va a mostrar en pantalla.
00:14:23
¿Sí? Entonces si yo esto lo ejecuto, pues vamos a ver si efectivamente, fijaros que ya no me pide nada por pantalla, sino que automáticamente en lugar de obtener del teclado me lo ha cogido de ese ficherito.
00:14:36
Me ha convertido todo de minúscula a mayúscula y ha terminado. ¿Me seguís? ¿Sí? Pues ese es el que nos quedaba.
00:14:51
Que sepáis que yo le puedo decir, oye, quiero que eso, en lugar de que me lo muestres por pantalla, quiero que me lo guardes, nombres, mayúsculas, punto txt, pero bien escrito.
00:14:59
mayúsculas
00:15:18
si yo le doy
00:15:22
no me ha mostrado nada, ¿por qué?
00:15:24
porque le he dicho
00:15:27
que me coja
00:15:28
y que en lugar de mostrármelo en la salida
00:15:31
me lo guarde en este fichero
00:15:35
de forma que si yo hago un cat de ese fichero
00:15:37
pues fijaros que contiene
00:15:39
el ficherito en mayúsculas
00:15:44
¿de acuerdo?
00:15:47
¿De acuerdo? Entendemos para qué es el redireccionamiento de entrada, pero puedo juntar entrada con salida, como habéis visto. ¿De acuerdo? ¿Sí? Vale. Esto en cuanto a los redireccionamientos. Pues ahora vamos a pasar, en este caso, a las tuberías o a los pipes. ¿Y qué es eso de las tuberías o los pipes?
00:15:48
Voy a mostrar aquí, porque quiero que veáis el dibujito, y quiero que veáis aquí qué es lo que tenemos.
00:16:09
Me dice, primeramente, ¿qué es una tubería?
00:16:20
Me dice, una tubería es una secuencia de uno o más comandos separados por la barra vertical.
00:16:24
¿Sí?
00:16:32
Lo podéis ver en este caso, como bien dice, una tubería.
00:16:33
¿Qué quiere decir esto?
00:16:38
escribimos por aquí si yo tengo este comando de aquí este comando me va a
00:16:39
producir una salida si me va a mostrar la información de esta carpetita de
00:16:47
aquí si yo no digo nada donde se me va a mostrar la salida pues en pantalla
00:16:53
verdad sí pues en lugar de decirle que se mal que se me lo muestre porque
00:16:58
nosotros tendríamos aquí el monitor vale y aquí es donde se me mostraría
00:17:03
Pues en lugar de decirle que se me muestre por pantalla, le estoy diciendo, oye, espérate, que en lugar de que esto lo muestres por pantalla, no quiero que lo muestres por pantalla, sino que quiero que se lo envíes al siguiente comando.
00:17:09
Y esto es lo que está haciendo aquí la tubería. Este de aquí está haciendo esta tubería de aquí. Lo quito y lo vuelvo a dibujar. Es decir, este de aquí lo que está haciendo es hacer una tubería para decirle, oye, la salida de este comando se la vas a enviar como entrada a este comando.
00:17:23
Entonces veis que aquí la salida de este proceso, de este comando, se la voy a pasar mediante una tubería y se va a convertir en los datos de entrada para el siguiente comando.
00:17:50
Y el siguiente comando, en este caso es el less. Y el less ya vimos que me muestra el contenido de lo que yo le pase pantalla a pantalla, que es lo que utiliza la ayuda de Linux.
00:18:05
Y fijaros que aquí de nuevo está representado cada uno de los canales. El 0 la entrada, el 1 la salida y el 2 la de los errores.
00:18:22
¿De acuerdo? Entonces repito, cuando yo utilizo este pipe, esta tubería, estoy haciendo que la salida del comando que está a su mano izquierda se lo pase al comando que está a mano derecha como la entrada a ese comando, como la información a ese comando.
00:18:42
¿Sí? ¿De acuerdo?
00:19:01
Y aquí me dicen, porque quiero que lo veáis, ¿vale?
00:19:04
Quiero que leáis esto que me pone aquí abajo.
00:19:08
Me dice, oye, si el redireccionamiento de la salida se usa en el medio de una tubería,
00:19:11
la salida irá al fichero.
00:19:18
Me explico. Ahora lo vamos a hacer para que lo veáis.
00:19:22
Me voy a salir de aquí y me voy a ir...
00:19:25
Si yo hago esto, digo, oye, vamos a poner un ls menos l de lo que hay aquí, ¿vale?
00:19:32
Esto bien, ¿verdad?
00:19:44
Pero, ¿y qué pasa si yo esto hago una tubería y le digo, oye, en lugar de que lo muestres por pantalla, se lo quiero pasar a un comando?
00:19:45
Y, por ejemplo, ya que hemos visto muy, muy, muy por encima el comando tr, digo, quiero que se lo pases al comando tr
00:19:54
Y quiero que me cambies las letras minúsculas por las letras mayúsculas.
00:20:00
¿Qué es lo que hace esto?
00:20:08
Pues fijaros que lo que ha hecho es que me ha cogido la salida de este comando, que es esta de aquí.
00:20:12
Pero ¿y a quién se la ha pasado?
00:20:25
Se la ha pasado al comando TR.
00:20:27
No la ha mostrado en pantalla, sino que se la ha pasado el comando tr.
00:20:31
De forma que este comando tr, ¿qué es lo que hace?
00:20:36
Pues con todo esto que le llega, me coge todas las letras minúsculas y me las convierte en mayúsculas.
00:20:40
Pues esto es lo que me ha mostrado aquí.
00:20:46
¿De acuerdo?
00:20:49
¿Entendéis qué quiere decir esto?
00:20:51
¿Qué pasa si yo ahora, en lugar de hacer esto, voy a hacer esto de aquí?
00:20:54
es decir, esto sabemos que hace
00:20:59
pero en lugar de hacer esto
00:21:02
yo le voy a poner
00:21:03
ls y le pongo
00:21:05
aquí salida ok
00:21:08
y le pongo la tubería
00:21:09
¿qué estoy haciendo ahí?
00:21:11
¿veis que el tr no me ha
00:21:17
hecho nada? ¿por qué?
00:21:18
porque cuidado
00:21:19
porque yo aquí le he dicho, oye
00:21:20
cógeme el comando ls y me lo
00:21:23
guardas en este ficherito
00:21:26
¿sí? y el resultado
00:21:27
Pero es que aquí no hay resultado, ya la he guardado en un fichirito
00:21:29
Es decir, aquí ya no le va a pasar nada
00:21:32
Aquí, no hay nada que pasarle
00:21:35
¿Me explico?
00:21:36
Entonces, sí que puedo hacer
00:21:39
En lugar de esto
00:21:41
Sí que puedo decirle
00:21:42
Oye, y una vez que me has mostrado esto
00:21:45
Que me lo muestras en pantalla
00:21:47
Pues ahora lo quiero guardar
00:21:49
En salida, yo que sé, ok
00:21:50
Y entonces ahora sí
00:21:53
Si yo le hago un cat de salida ok
00:21:54
Pues tendré la información
00:21:57
en mayúscula
00:21:59
¿me entendéis?
00:22:01
¿sí?
00:22:03
vale, ¿qué es lo que podemos hacer?
00:22:05
yo no sé si os acordáis que vimos
00:22:07
el comando tri
00:22:09
creo recordar
00:22:13
¿qué pasa si yo le digo tri?
00:22:14
y le digo de
00:22:18
y es cañaveral
00:22:19
para decirle que solamente me muestre los directorios
00:22:22
¿vale?
00:22:25
Veis que me ha mostrado toda la estructura de directorios, ¿vale? Y estas son, pues fijaros que sigo subiendo, sigo subiendo porque hay muchas carpetas, ¿sí?
00:22:27
¿Vale? Pues yo esto se lo puedo pasar a una tubería. Y le digo, mira, quiero que esto, por ejemplo, que se lo pases al comando para que me lo pongas todo en mayúscula, ¿vale?
00:22:40
Y me lo muestra todo en mayúscula, ¿sí?
00:23:00
Pero es que además, esto se lo puedo seguir pasando a otro.
00:23:03
Digo, mira, ahora quiero que, pues yo qué sé, vuelvo a ejecutar un tr y le digo, oye, mira, quiero que me cambies, yo qué sé, los números del 0 al 9 y quiero que me lo cambies, pues yo qué sé.
00:23:08
por
00:23:28
todo me lo va a cambiar por un 1
00:23:32
yo que sé, este de aquí
00:23:35
¿vale? entonces veis que
00:23:40
aquí me ha cambiado 1, 1
00:23:42
1, 1, 1, es decir, me ha cambiado
00:23:44
todos los números
00:23:46
todos los 0 a 1 por 1, 1, 1
00:23:46
entonces quiero que veáis que yo puedo ir
00:23:50
poniendo y además yo le puedo poner
00:23:52
aquí, oye
00:23:54
muéstrame la información poquito a poco
00:23:54
de forma que me va
00:23:58
mostrando la información
00:24:00
poquito a poco
00:24:01
¿vale? estoy pulsando la barra espaciadora
00:24:03
para bajar de línea a línea
00:24:05
entonces, ¿qué quiero que veáis?
00:24:07
quiero que veáis que yo puedo juntar aquí
00:24:10
¿vale? todos los pipes
00:24:12
que a mí me dé la gana
00:24:14
es decir, ejecútame un comando
00:24:16
ejecutado, ¿vale?
00:24:18
otro comando
00:24:20
tercer comando
00:24:22
y cuarto comando
00:24:24
¿qué es lo que hace
00:24:27
este de aquí?
00:24:29
Lo ponemos. La salida de este comando se la voy a pasar a este otro como entrada.
00:24:31
Este comando, si yo no pusiese más, me mostraría la información por defecto en la pantalla.
00:24:46
Pero como yo tengo otro pipe, le digo, oye, quiero que la salida de este comando se la envíes a este otro como entrada.
00:24:51
como tengo otro más, le digo, oye, quiero que la salida de este comando
00:25:00
en lugar de que se la envíes a pantalla, se la envíes
00:25:06
a este comando de aquí, ¿sí? y como este
00:25:09
ya no tiene más a que enviar, ¿dónde lo envía por
00:25:14
defecto? al std out, es decir
00:25:18
a la pantalla, es decir, al terminal
00:25:22
¿de acuerdo? entonces yo puedo juntar tantos pipelines como a
00:25:25
me dé la gana entendemos esto esto me permite dentro de linux y dentro de
00:25:30
windows también aunque en windows menos a no ser que utilice powers el que me
00:25:37
ofrece un juego impresionante de acuerdo yo puedo juntar aquí y extraer toda la
00:25:42
información que yo quiera entendemos qué quiere decir esto
00:25:47
de acuerdo hago otro ejemplo yo le puedo decir
00:25:53
Por ejemplo, quiero que me muestres los nombres en mayúsculas.
00:25:59
¿Sí?
00:26:06
Y yo no sé si os acordáis de que esto...
00:26:08
Tengo este comando. No sé si os acordáis.
00:26:13
Digo, pues mira, ordenamelo aleatoriamente.
00:26:17
¿Me seguís?
00:26:20
Y este comando, ahora quiero, por ejemplo, pasárselo al gead.
00:26:22
Y quiero que me muestre los cinco primeros.
00:26:27
¿Sí?
00:26:31
Y me muestra los cinco primeros.
00:26:32
Y ahora, de estos cinco primeros, quiero que me muestres los dos últimos.
00:26:35
Y me muestra los dos últimos.
00:26:41
¿Me vais siguiendo?
00:26:44
¿Sí?
00:26:46
Y esto de aquí, quiero que me lo guardes en un ficherito que se llame f2.txt.
00:26:47
Y me lo guarda en f2.txt.
00:26:54
Entonces, quiero que veáis todo lo que puedo juntar aquí.
00:26:57
Yo puedo jugar aquí con todo lo que yo quiera.
00:27:02
Yo le puedo decir, oye, cógeme, uy, perdonadme, cógeme este ficherito.
00:27:07
Es un comando, segundo comando, tercer comando, cuarto comando y el redireccionamiento.
00:27:14
Entonces, repito que es lo que hace esto.
00:27:22
me está cogiendo el resultado del primer comando
00:27:25
perdonad, el resultado del primer comando
00:27:30
y se lo está pasando al segundo como entrada
00:27:33
¿qué es lo que va a hacer el suv?
00:27:36
coge lo que le pasa a este comando de aquí
00:27:38
y lo muestra de forma aleatoria
00:27:40
pero resulta que en lugar de mostrarlo por pantalla
00:27:43
se lo tiene que pasar al siguiente comando
00:27:46
el siguiente comando recibe
00:27:49
lo que ha hecho el suv
00:27:51
que es coger y desordenar de forma aleatoria las líneas de ese fichero
00:27:54
y me va a coger y me va a mostrar las cinco primeras.
00:28:02
Pero en lugar de mostrarlo por pantalla, esas cinco primeras líneas se las va a pasar al tail.
00:28:06
El tail recibe esas cinco primeras líneas y de esas cinco primeras líneas, ¿cuál me va a coger?
00:28:14
Pues las dos últimas.
00:28:20
Y esas dos últimas, en lugar de mostrarlo por pantalla, ¿qué es lo que va a hacer? Pues lo va a abordar en este ficherito. ¿Me entendéis? ¿De acuerdo?
00:28:21
Por ejemplo, vamos a suponer que yo tengo el ficherito nombres mayúsculas.
00:28:30
¿Cómo haríais para decir que esta es la línea 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 y 11?
00:28:50
Pues yo solamente quiero que me muestre de la línea 5, 6 y 7. Es decir, 1, 2, 3, 4, 5, 6 y 7. Es decir, ¿cómo hacéis para decirle que os muestre solo estas tres líneas? ¿Cómo sería?
00:29:01
Es decir, esto es pregunta, imaginaros que yo lo pregunto en el examen. Oye, quiero obtener de este ficherito de la línea 5 a la línea 7 con un solo comando, ¿vale? Una sola línea de instrucción. ¿Cómo lo haríamos? Pues imaginaros que yo puedo hacer lo siguiente.
00:29:21
Tenéis varias opciones, ¿eh? Pero primeramente voy a coger y le voy a decir que me muestre del fichero, por ejemplo, estas líneas.
00:29:41
¿Estas líneas cuáles son? 1, 2, 3, 4, 5, 6, 7. Las primeras 7 líneas. ¿Sí? Pues, ¿cómo se lo digo?
00:29:55
Digo, oye, muéstrame las siete primeras líneas del ficherito, nombre mayúsculas, ¿sí? Ya tengo aquí las primeras siete. Ahora, ¿cuáles quiero? Yo quiero estas tres, ¿verdad?
00:30:04
¿Y estas tres cuáles son? Las tres últimas, ¿verdad? Pues yo este resultado se lo puedo pasar a un comando que me muestra las tres últimas. ¿Qué comando me muestra las últimas líneas de lo que yo le diga? Pues yo le digo el tail menos tres.
00:30:26
y efectivamente tengo aquí el resultado
00:30:49
que yo os pido, oye, cógeme las líneas del 5 al 7
00:30:54
y guárdamelas en un fichero, ¿vale? pues 3 líneas
00:30:59
punto txt
00:31:02
¿me seguís como va funcionando esto?
00:31:05
¿sí? ¿lo veis?
00:31:09
vale, una aclaración
00:31:13
Cuando nosotros vimos el comando tail o cuando nosotros vimos el comando head, ¿lo veis?
00:31:16
Pues nosotros en el comando tail o en el comando head siempre le poníamos el nombre del ficherito que quiero que me muestre.
00:31:26
Pues quiero que veáis aquí.
00:31:33
Yo le he dicho, oye, quiero que me muestres las siete primeras líneas y obviamente le he dicho el nombre del fichero
00:31:39
Porque le tengo que decir un nombre de fichero
00:31:47
Pero resulta que aquí no le he dicho un nombre de fichero
00:31:49
¿Veis dónde estoy?
00:31:54
¿Por qué no le he dicho ahí un nombre de fichero?
00:31:56
Porque automáticamente la salida de este comando
00:31:58
Va a ser la entrada de este
00:32:03
Así que él automáticamente lo va a coger de la entrada estándar
00:32:06
¿Sí?
00:32:09
Por eso aquí no le pongo el nombre de fichero
00:32:12
Porque ya se lo está pasando el anterior
00:32:13
No obstante, quiero que veáis que este comando y este comando son exactamente igual.
00:32:15
Y quiero que veáis que es lo que he puesto.
00:32:31
Cuando yo tengo aquí este comando, le digo, oye, muéstrame las primeras siete líneas.
00:32:36
Y se la vas a pasar al comando tail.
00:32:55
Pues quiero que veáis que aquí en el comando tail he puesto esto de aquí. ¿Qué representa este guión? Este guión representa que va a coger la entrada de lo que le viene del comando anterior.
00:32:57
Es decir, que la salida de este es como si me crease un fichero temporal, ¿vale?
00:33:18
Y la salida de este comando, para indicar que este ficherito, o sea, que el ficherito lo va a coger de la salida anterior, le tengo que poner un guión.
00:33:30
Pero fijaros que si no pongo nada, él lo entiende perfectamente.
00:33:40
¿Por qué os explico esto?
00:33:45
Porque hay comandos que tú le vas a tener que indicar dos ficheritos.
00:33:47
Pues para decirle que uno de los ficheritos es el resultado del comando anterior, pues que sepáis que para decirle cada vez que pongáis un guión, le estáis diciendo que esa parte la coge de aquí, ¿vale?
00:33:51
Me explico. Imaginaros que esta salida me la guarda en un ficherito temporal que se llame temporal.txt, ¿sí? Pues este ficherito es como si lo pusiese aquí. Es como si yo estuviese escribiendo tail-3 temporal.txt, ¿de acuerdo?
00:34:03
Entonces, repito, esto y esto de aquí arriba es exactamente igual, ¿vale? Entonces, si lo veis más claro que para decirle un guión, el guión es para decirle, oye, coge el ficherito resultado de la salida anterior, salida anterior, guión, ¿de acuerdo?
00:34:29
Y una vez que me ha mostrado los tres primeros, lo guardamos en el tres líneas punto txt.
00:34:47
¿Sí? ¿Entendemos esto?
00:34:54
Vale.
00:34:57
Pues vamos a seguir un poquito para adelante.
00:34:59
Y vamos a ver que, cuidado con el orden, ¿vale?
00:35:04
En las transparencias pongo un ejemplo muy claro para que veáis que no es lo mismo dependiendo de cómo ponga yo los comandos en las tuberías,
00:35:11
tú verías, porque os comento, tenéis un comando, vamos a hacer el ejemplo con el nombres mayúsculas, ¿vale?
00:35:19
Si yo hago cat nombres mayúsculas, tengo este de aquí, ¿sí?
00:35:28
Yo no sé si recordáis que el cat tenía una opción que se llamaba guión n, que lo que me hace es numerar las líneas, ¿lo veis?
00:35:36
pues imaginaros que yo voy a hacer esto
00:35:44
por ejemplo
00:35:49
si yo le digo que me enumere las líneas
00:35:52
y que me muestre
00:36:05
las 5 últimas
00:36:07
me pone 8, 9, 10, 11, 12
00:36:11
¿lo veis?
00:36:17
pero no es lo mismo que si yo le digo
00:36:18
oye, muéstrame las cinco últimas líneas de nombres mayúsculas y le digo un cat menos n.
00:36:20
Quiero que veáis que el resultado sí que me dice Alejandra, Fernando, Luis y Pedro,
00:36:32
pero aquí influye en la manera en que ejecuto las tuberías, ¿de acuerdo?
00:36:38
Entonces, simplemente que tengáis en cuenta consideraciones como esta, ¿de acuerdo?
00:36:44
Entonces, me queda explicar una tontería. Bueno, sí, la voy a explicar aquí aunque se me vayan 10 minutos más. Me queda un comando que lo voy a mostrar aquí, que es el último que vamos a ver en cuanto a reaccionamiento a tuberías, que es el siguiente.
00:36:50
Este lo hemos visto, este lo hemos visto, este de aquí. ¿Cómo funciona este comando? Este comando, fijaros que me dice envía la salida de un comando a dos sitios a la vez, a un fichero y a pantalla.
00:37:08
¿Vale? Fijaros cómo funciona. Es ti, las opciones, que solamente os voy a pedir esta opción, guión a. Ahora vamos a ver dos ejemplos para que lo veáis. Fijaros este de aquí que yo tengo. Voy a quitar esto de su momento. Le digo, oye, quiero que me ejecutes el comando ls. Y se lo paso al comando ti. ¿Qué es lo que hace el comando ti?
00:37:30
El comando t lo envía a dos sitios, ¿sí? Lo envía a dos sitios. Lo envía a la salida estándar, que es esta de aquí, a la salida estándar, es decir, a pantalla.
00:37:51
y además lo guarda en el ficherito que le hemos puesto ahí, fich.txt, ¿sí? Hace las dos cosas en uno, ¿sí?
00:38:08
Si yo no le digo nada, si este ficherito de aquí existe, lo que hace es sobrescribirlo.
00:38:18
Pero si yo no quiero que sobrescriba, sino que lo añada, para eso tenemos esta opción, la opción guión a, ¿sí?
00:38:24
En la siguiente transparencia lo veis con un dibujito que para mí está muy claro de cómo funciona. Podéis ver el comando T como si fuese lo de la canalización que nosotros tenemos aquí. Lo pongo por aquí. Es decir, esta tubería. ¿Qué es lo que hace el comando T?
00:38:33
El comando ti, cuando yo pongo aquí el ti, me dice, vale, lo voy a mandar por un lado, ¿vale? A un ficherito que yo te diga. Y por otro, ¿vale? Lo voy a mandar a pantalla. Entonces, lo envía a dos sitios a la vez.
00:38:52
Entonces, fijaros aquí abajo que me dice, oye, quiero que me ejecutes el comando ls y se lo voy a pasar al comando ti. Entonces, el comando ti lo va a mostrar en dos sitios, por pantalla y además lo va a guardar en este ficherito.
00:39:09
Pero fijaros que además me dice
00:39:29
Oye, pues la parte que va a la pantalla
00:39:32
No la envíes a la pantalla
00:39:34
Sino que envíasela al comando less
00:39:35
¿Sí?
00:39:38
Entonces, el comando t
00:39:41
La verdad es que está chulísimo
00:39:43
Entonces vamos a ver un ejemplo de cómo funciona el comando t
00:39:44
Salgo de aquí
00:39:48
Imaginaros
00:39:54
Que yo le digo
00:39:59
Oye, quiero que me muestres
00:40:01
El ficherito
00:40:04
nombres mayúsculas
00:40:06
esto me muestra los nombres en mayúsculas
00:40:09
vamos a decirle que nos muestre los tres primeros
00:40:11
para que no sea tan grande
00:40:14
quiero que me muestre los tres primeros nombres
00:40:16
y ahora, mediante la tubería
00:40:21
se lo voy a pasar al comando ti
00:40:24
y al comando ti le voy a poner
00:40:26
salida1.txt
00:40:29
y quiero que veáis que hace esto
00:40:35
me lo sigue mostrando en pantalla
00:40:37
pero además me ha creado
00:40:40
un ficherito que se llama
00:40:42
salida1.txt
00:40:44
¿sí?
00:40:45
entonces, ¿qué es lo que ha hecho? me lo ha enviado
00:40:47
a dos sitios
00:40:50
¿vale? este comando
00:40:51
¿qué es lo que ha hecho?
00:40:54
por un lado, me lo envía
00:40:55
a la salida
00:40:58
hemos visto que me lo pone en pantalla
00:40:59
y por otro lado
00:41:02
me lo guarda en este ficherito
00:41:04
Es decir, me hace dos operaciones en una. ¿Lo veis? ¿Sí? Pero es que también puedo hacer cosas como esta. Le digo, oye, quiero que no me lo machaques, quiero que me lo añadas, quiero que me lo añadas ahora, ¿vale? La A es para que si existe el fichero me lo añadas.
00:41:06
Y además, quiero que lo que muestres en pantalla, pues quiero que me lo conviertas de mayúscula, por ejemplo, a minúsculas, ¿sí? Vamos a ver qué hace este comando.
00:41:25
¿Qué es lo que ha hecho este comando?
00:41:40
Primeramente, me ha mostrado las tres líneas del ficherito
00:41:45
Se la ha pasado al comando ti
00:41:50
Y el comando ti, ¿qué es lo que va a hacer?
00:41:54
Como le hemos dicho aquí, la opción guión a
00:41:57
Es decir, queremos añadir al ficherito salida.txt el resultado de este comando
00:42:00
Es decir, este comando se lo va a pasar aquí
00:42:06
Así que las tres primeras líneas de nombre mayúsculas, ¿a quién se le va a añadir? Al ficherito salida1.txt. El salida1.txt ya tenía tres líneas, así que ¿ahora cuántas va a tener? Pues otras tres.
00:42:09
¿Sí? Pero es que además, para decirle que, oye, además me vas a mostrar la salida en pantalla, pero además, ¿vale? Es decir, pero en lugar de mostrarlo en pantalla, se lo vas a pasar al siguiente comando.
00:42:22
¿Y qué es lo que hace el siguiente comando? Pues me convierte, en este caso, las mayúsculas a minúsculas.
00:42:40
Pero mi pregunta es, ¿en salida 1.txt qué ha metido? ¿Las mayúsculas o las minúsculas?
00:42:48
Porque esto lo ha convertido después. Así que si yo le digo que me haga un cat de salida 1, fijaros que están lo que teníamos antes.
00:42:55
esto es lo que había antes
00:43:05
y esto es lo que ha añadido ahora del comando ti
00:43:08
entonces teníamos
00:43:11
este comando
00:43:15
y hemos visto que teníamos lo de antes
00:43:18
y teníamos lo que ha añadido este comando
00:43:23
este comando que es lo que ha añadido
00:43:26
pues ha añadido esto de aquí
00:43:28
¿de acuerdo?
00:43:32
Y además, repito, como lo muestra en pantalla, no quiero que lo muestres en pantalla, sino que se lo pases a este comando y este comando lo que ha hecho es mostrarnos los tres primeros nombres en minúscula. ¿Entendéis esto? ¿Sí? Entonces, hay veces que está muy bien utilizar el comando t, porque me hace dos cosas en una. Es una tubería en forma de t, que lo envía a dos sitios diferentes, a pantalla y a un fichero. ¿De acuerdo? ¿Sí? Vale.
00:43:33
Pues solamente me queda un comando
00:44:03
Que lo he metido aquí, pero bueno
00:44:05
Que sepáis que tenéis un comando
00:44:06
Que lo he metido en estas transparencias
00:44:09
Pero no sé muy bien por qué
00:44:12
Pero en fin
00:44:13
Imaginaros que nosotros tenemos esto
00:44:13
Nano
00:44:16
Listado 1.txt
00:44:18
Y tenemos una serie de valores ordenados
00:44:23
Que tengo aquí
00:44:26
1
00:44:28
2
00:44:28
3
00:44:30
4, pero ordenados alfabéticamente
00:44:31
así que yo voy a tener aquí
00:44:35
Albacete, que no lo estoy poniendo ordenado
00:44:37
Cuenca
00:44:42
Barcelona
00:44:46
yo qué sé, me lo estoy inventando
00:44:51
yo tengo esos valores
00:44:59
pues imaginaros que yo Cuenca
00:45:06
Lo tengo tres veces repetidas
00:45:10
Galicia lo tengo cinco veces repetidas
00:45:13
¿Vale?
00:45:16
Porque imaginaros que yo tengo nombres de alumnos
00:45:18
O nombres de departamentos
00:45:20
Y yo quiero quitar los repetidos
00:45:22
Es decir, yo quiero que me muestre este ficherito
00:45:24
Pero que las líneas que están repetidas no me las repita
00:45:27
Porque yo solamente quiero ver cuántos departamentos hay, por ejemplo
00:45:30
O cuántos nombres diferentes tiene mi empresa
00:45:33
O yo qué sé
00:45:36
entonces si yo tengo este ficherito que tiene que estar ordenado
00:45:37
tenéis este comando que se llama unic
00:45:42
que si yo le digo el nombre del ficherito
00:45:45
pues fijaros que es lo que me hace
00:45:47
me muestra el contenido de ese ficherito
00:45:48
pero quitando las líneas repetidas
00:45:52
que única condición tenéis que tener
00:45:54
que ese ficherito tiene que estar ordenado
00:45:57
y lo único que hace este comando es quitar las líneas repetidas
00:46:00
¿de acuerdo?
00:46:04
¿sí?
00:46:06
Vale, pues con esto terminamos en este caso los redireccionamientos y ahora vamos a pasar a las segundas transparencias de comandos básicos de Linux.
00:46:07
Venga, un saludo.
00:46:16
- Idioma/s:
- Autor/es:
- Fernando Herrero Núñez
- Subido por:
- Fernando Jesús H.
- Licencia:
- Reconocimiento - No comercial - Compartir igual
- Visualizaciones:
- 13
- Fecha:
- 30 de diciembre de 2022 - 20:49
- Visibilidad:
- Público
- Centro:
- IES EL CAÑAVERAL
- Duración:
- 46′ 18″
- Relación de aspecto:
- 1.85:1
- Resolución:
- 1920x1040 píxeles
- Tamaño:
- 111.12 MBytes