0% encontró este documento útil (0 votos)
427 vistas19 páginas

Shell 00

El documento es el enunciado del módulo Shell 00 de la C Piscine de 42, que incluye instrucciones y una serie de ejercicios prácticos relacionados con el uso de la terminal y Git. Cada ejercicio tiene un directorio de entrega específico y requisitos detallados que los estudiantes deben cumplir para completar el módulo. Se enfatiza la importancia de seguir las instrucciones y utilizar recursos como Google para resolver dudas.

Cargado por

nifiky021
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
427 vistas19 páginas

Shell 00

El documento es el enunciado del módulo Shell 00 de la C Piscine de 42, que incluye instrucciones y una serie de ejercicios prácticos relacionados con el uso de la terminal y Git. Cada ejercicio tiene un directorio de entrega específico y requisitos detallados que los estudiantes deben cumplir para completar el módulo. Se enfatiza la importancia de seguir las instrucciones y utilizar recursos como Google para resolver dudas.

Cargado por

nifiky021
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 19

C Piscine

Shell 00

Resumen: Este documento corresponde al enunciado del módulo Shell 00 de la C


Piscine de 42.

Versión: 4.5
Índice general
I. Instrucciones 2

II. Introducción 3

III. Ejercicio 00: Z 5

IV. Ejercicio 01: testShell00 6

V. Ejercicio 02: Sí, quiero más... 8

VI. Ejercicio 03: ¡Conéctame por SSH! 10

VII. Ejercicio 04: midLS 11

VIII. Exercise 05: GiT commit 12

IX. Exercise 06: gitignore 14

X. Ejercicio 07: diff 15

XI. Ejercicio 08: clean 16

XII. Ejercicio 09: Illusions, not tricks, Michael... 17

XIII. Entrega y evaluación 18

1
Capítulo I

Instrucciones

• Esta página será la única referencia: no te fíes de los rumores.

• ¡Ten cuidado! Los enunciados pueden cambiar en cualquier momento.

• Los ejercicios han sido ordenados con mucha precisión, del más sencillo al más
complejo. En ningún caso se tendrá en cuenta un ejercicio complejo si no se ha
conseguido realizar perfectamente un ejercicio más sencillo.

• Asegúrate de que tus directorios y archivos tienen los permisos adecuados.

• Debes respetar el procedimiento de entrega para todos tus ejercicios.

• Tus compañeros de piscina se encargarán de corregir tus ejercicios.

• Además de por tus compañeros, también serán corregidos por un programa que se
llama la Moulinette.

• La Moulinette es muy estricta a la hora de evaluar. Está completamente automati-


zada. Es imposible discutir con ella sobre tu nota. Por lo tanto, se extremadamente
riguroso para evitar cualquier sorpresa.

• Los ejercicios shell se deben ejecutar con /bin/sh.

• No puedes dejar en tu directorio ningún archivo que no se haya indicado de forma


explícita en los enunciados de los ejercicios.

• ¿Tienes alguna pregunta? Pregunta a tu compañero de la derecha. Si no, prueba


con tu compañero de la izquierda.

• Tu manual de referencia se llama Google / man / Internet / ...

• Lee detenidamente los ejemplos. Podrían exigir cosas que no se especifican nece-
sariamente en los enunciados. . .

2
Capítulo II

Introducción

Aquí tienes la letra de la canción “Moonlight Shadow”, tema principal de City


Hunter:

The last time ever she saw him


Carried away by a moonlight shadow
He passed on worried and warning
Carried away by a moonlight shadow.
Lost in a riddle that Saturday night
Far away on the other side.
He was caught in the middle of a desperate fight
And she couldn’t find how to push through

The trees that whisper in the evening


Carried away by a moonlight shadow
Sing a song of sorrow and grieving
Carried away by a moonlight shadow
All she saw was a silhouette of a gun
Far away on the other side.
He was shot six times by a man on the run
And she couldn’t find how to push through

[Chorus]
I stay, I pray
See you in Heaven far away...
I stay, I pray
See you in Heaven one day.

Four A.M. in the morning


Carried away by a moonlight shadow
I watched your vision forming
Carried away by a moonlight shadow
A star was glowing in the silvery night
Far away on the other side
Will you come to talk to me this night
But she couldn’t find how to push through

3
C Piscine Shell 00

[Chorus]

Far away on the other side.


Caught in the middle of a hundred and five
The night was heavy and the air was alive
But she couldn’t find how to push through
Carried away by a moonlight shadow
Carried away by a moonlight shadow
Far away on the other side.

Desgraciadamente, estos enunciados no tienen nada que ver con City Hunter.

4
Capítulo III

Ejercicio 00: Z

Ejercicio: 00

Solo los mejores saben mostrar la Z


Directorio de entrega: ex00/
Archivos a entregar: z
Funciones autorizadas: Ninguna

• Crea un archivo z que, cuando se ejecute un cat sobre él, muestre “Z” seguido de
un salto de línea.
?>cat z
Z
?>

Google es tu amigo

5
Capítulo IV

Ejercicio 01: testShell00

Ejercicio: 01

¿Qué son los atributos de todas formas?


Directorio de entrega: ex01/
Archivos a entregar: testShell00.tar
Funciones autorizadas: Ninguna

• Crea el archivo testShell00 en tu directorio de entrega.

• Encuentra la manera de que tu pantalla muestre lo siguiente (excepto por la línea


de “total 1”):
%> ls -l
total XX
-r--r-xr-x 1 XX XX 40 Jun 1 23:42 testShell00
%>

• Una vez completados los pasos anteriores, ejecuta el siguiente comando para crear
el archivo que debe ser entregado: tar -cf testShell00.tar testShell00.

No te preocupes por lo que aparece en lugar de “XX”

Se acepta un año como respuesta en lugar de la hora.

6
C Piscine Shell 00

Le has preguntado a tu compi de la derecha?

7
Capítulo V

Ejercicio 02: Sí, quiero más...

Ejercicio: 02

Sí, quiero más...


Directorio de entrega: ex02/
Archivos a entregar: exo2.tar
Funciones autorizadas: Ninguna

• Crea los siguientes archivos y directorios. Haz lo que sea necesario para que la
ejecución de un ls -l en tu directorio muestre algo que se parezca a esto:
%> ls -l
total XX
drwx--xr-x 2 XX XX XX Jun 1 20:47 test0
-rwx--xr-- 1 XX XX 4 Jun 1 21:46 test1
dr-x---r-- 2 XX XX XX Jun 1 22:45 test2
-r-----r-- 2 XX XX 1 Jun 1 23:44 test3
-rw-r----x 1 XX XX 2 Jun 1 23:43 test4
-r-----r-- 2 XX XX 1 Jun 1 23:44 test5
lrwxrwxrwx 1 XX XX 5 Jun 1 22:20 test6 -> test0
%>

• Una vez resuelto el ejercicio, ejecuta el comando tar -cf exo2.tar * para crear
el archivo que tendrás que entregar.

No te preocupes por lo que aparece en lugar de “XX”

Se acepta un año como respuesta en lugar de la hora.

8
C Piscine Shell 00

No dudes en preguntarle a cualquier persona del cluster.

9
Capítulo VI

Ejercicio 03: ¡Conéctame por SSH!

Ejercicio: 03

SSH Key
Directorio de entrega: ex03/
Archivos a entregar: id_rsa_pub
Funciones autorizadas: Ninguna

• Crea tu propia clave SSH. Cuando lo tengas:

◦ Añade tu clave pública a tu repositorio, en un archivo id_rsa_pub


◦ Actualiza tu clave ssh en la intranet. Esto te permitirá lanzar el repositorio a
nuestro servidor git.

El nombre del archivo no ha sido elegido de manera aleatoria.

Asegúrate de entender la diferencia entre clave pública y clave


privada.

Le has preguntado a tu compi de la izquierda?

10
Capítulo VII

Ejercicio 04: midLS

Ejercicio: 04

midLS
Directorio de entrega: ex04/
Archivos a entregar: midLS
Funciones autorizadas: Ninguna

• Crea en un archivo midLS que contenga el comando que hay que ejecutar para listar
los archivos y los directorios del directorio actual, pero no los archivos ocultos, ni
"."ni ".."(nada que empiece con un punto), separados por una coma y un espacio,
ordenados por fecha de modificación y de tal modo que los directorios vayan seguidos
por el carácter slash ("/").

¡No hay que hacer lo que no se ha pedido!

RTFM!

Git push con frecuencia

11
Capítulo VIII

Exercise 05: GiT commit

Ejercicio: 05

¿GiT commit?
Directorio de entrega: ex05/
Archivos a entregar: git_commit.sh
Funciones autorizadas: Ninguna

• Crea un script de shell que muestre en pantalla los id de los últimos 5 commits de
tu repositorio git.
%> bash git_commit.sh | cat -e
baa23b54f0adb7bf42623d6d0a6ed4587e11412a$
2f52d74b1387fa80eea844969e8dc5483b531ac1$
905f53d98656771334f53f59bb984fc29774701f$
5ddc8474f4f15b3fcb72d08fcb333e19c3a27078$
e94d0b448c03ec633f16d84d63beaef9ae7e7be8$
%>

Para probar tu script, utilizaremos nuestro propio entorno.

RTFM!

El primer retry es corto, no dudes en pedir una evaluación intermedia


para medir tu avance!

12
C Piscine Shell 00

Milestone conseguido, sigue así!


Has alcanzado el mínimo de ejercicios para validar este proyecto.
Tu decides si quieres continuar con el resto de ejercicios opcionales o saltar al siguiente
proyecto. Ambos caminos te serán útiles el día de mañana.
Para tomar una decisión informada, considera las sigientes razones:

• El primer examen es sobre programación en C. Puede que quieras probar con el


primer proyecto de C antes de hacerlo. Lo mismo para el primer rush hacia el final
de esta semana ( ya aprenderás lo que es un rush).

• Tu excelencia en esta piscina será evaluada en base a múltiples factores. Completar


cada proyecto es uno de ellos, pero el progreso a lo largo de toda la lista de proyectos
de la piscina es otro. Elige sabiamente para optimizar tus resultados.

• Siempre podrás intentar el mismo proyecto de nuevo en un par de días/semanas,


hasta el final de la piscina.

• Mantente sincronizado con tus compañeros para facilita una mejor colaboración.

13
Capítulo IX

Exercise 06: gitignore

Ejercicio: 06

GiT
Directorio de entrega: ex06/
Archivos a entregar: git_ignore.sh
Funciones autorizadas: Ninguna

• Crea un script de shell que muestre por pantalla la lista de archivos existentes
ignorados por tu repositorio git actualmente presentes en tu repositorio local.
Ejemplo:
%> bash git_ignore.sh | cat -e
.DS_Store$
mywork.c~$
%>

Para probar tu script, utilizaremos nuestro propio entorno.

RTFM!

Déja que los demás te inspiren, no que te hagan el trabajo

14
Capítulo X

Ejercicio 07: diff

Ejercicio: 07

Directorio de entrega: ex07/


Archivos a entregar: b
Funciones autorizadas: Ninguna

• Crea el archivo b de tal modo que:


%>cat -e a
STARWARS$
Episode IV, A NEW HOPE It is a period of civil war.$
$
Rebel spaceships, striking from a hidden base, have won their first victory against the evil
Galactic Empire.$
During the battle, Rebel spies managed to steal secret plans to the Empire's ultimate weapon, the
DEATH STAR,$
an armored space station with enough power to destroy an entire planet.$
$
Pursued by the Empire's sinister agents, Princess Leia races home aboard her starship, custodian of
the stolen plans that can save her people and restore freedom to the galaxy...$
$

%>diff a b > sw.diff

man patch

No te fíes de ninguna fuente de información: Haz siempre tus propios


test, controles y verificaciones.

15
Capítulo XI

Ejercicio 08: clean

Ejercicio: 08

Directorio de entrega: ex08/


Archivos a entregar: clean
Funciones autorizadas: Ninguna

• Escriba en un archivo clean una línea de comandos que busque, a partir del direc-
torio actual y en todos sus subdirectorios, los archivos cuyo nombre se termine por
~, o empiece y se termine por #.

• La línea de comandos mostrará y borrará los archivos encontrados.

• Solo se autoriza un comando: nada de ’;’ , ’&&’ ni otros trucos.

man find

La colaboración es la clave del éxito

16
Capítulo XII

Ejercicio 09: Illusions, not tricks,


Michael...

Ejercicio: 09

Ilusiones, no trucos, Michael...


Directorio de entrega: ex09/
Archivos a entregar: ft_magic
Funciones autorizadas: Ninguna

• Crea un archivo mágico que se llame ft_magic que tendrá que estar formateado
correctamente para detectar los archivos de tipo 42 file y constituidos por la
cadena "42" en el byte 42o .

man file

Fallar es parte de tu aprendizaje.

17
Capítulo XIII

Entrega y evaluación

Entrega tu proyecto en tu repositorio Git como de costumbre. Solo el trabajo entre-


gado en el repositorio será evaluado durante la defensa. No dudes en comprobar varias
veces los nombres de los archivos para verificar que sean correctos.

Sólo necesitas entregar los archivos requeridos por el ennciado de


este proyecto.

18

También podría gustarte