0% encontró este documento útil (0 votos)
413 vistas14 páginas

Ejercicios del Módulo Shell 01

Este documento contiene el enunciado de 8 ejercicios del módulo Shell 01 de la C Piscine de 42. Los ejercicios van desde lo más básico como inscribirse en el examen y proyecto, hasta ejercicios más complejos como mostrar líneas específicas de un archivo ordenadas y modificadas de diferentes formas. Cada ejercicio indica el nombre del archivo a entregar y las funciones permitidas. Se da énfasis a seguir rigurosamente las instrucciones para evitar errores en la corrección.

Cargado por

Obiwan
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)
413 vistas14 páginas

Ejercicios del Módulo Shell 01

Este documento contiene el enunciado de 8 ejercicios del módulo Shell 01 de la C Piscine de 42. Los ejercicios van desde lo más básico como inscribirse en el examen y proyecto, hasta ejercicios más complejos como mostrar líneas específicas de un archivo ordenadas y modificadas de diferentes formas. Cada ejercicio indica el nombre del archivo a entregar y las funciones permitidas. Se da énfasis a seguir rigurosamente las instrucciones para evitar errores en la corrección.

Cargado por

Obiwan
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

C piscine

Shell 01

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


Piscine de 42.

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

II. Introducción 4

III. Ejercicio 00 : Exam machine 5

IV. Ejercicio 01 : print_groups 6

V. Ejercicio 02 : find_sh 7

VI. Ejercicio 03 : count_files 8

VII. Ejercicio 04 : MAC 9

VIII. Ejercicio 05 : Can you create it? 10

IX. Ejercicio 06 : Skip 11

X. Ejercicio 07 : r_dwssap 12

XI. Ejercicio 08 : add_chelou 13

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.

• 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.

• La Moulinette no tiene una mente muy abierta. No intenta comprender el código que
no respeta la Norma. La Moulinette utiliza el programa norminette para comprobar
La Norma en sus archivos. Entiende entonces que es estúpido entregar un código
que no pase la norminette.

• 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.

• El uso de una función prohibida se considera una trampa. Cualquier trampa será
sancionada con la nota -42.

• 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 / ...

• ¡No olvides participar en el slack de tu Piscina!

2
C piscine Shell 01

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

• Razona. ¡Te lo suplico, por Thor, por Odín! Maldita sea.

3
Capítulo II

Introducción

Esto es lo que dice la Wikipedia sobre la nutria:

La Nutria de Europa o Nutria europea (Lutra lutra), a menudo llamada


nutria común en los países de Europa donde se encuentra presente, es un mamífero
carnívoro semiacuático y principalmente nocturno, de la familia de los Mustélidos
(subfamilia Lutrinos). Es una de las tres especies de nutrias pertenecientes
al género Lutra. En España, solo se encuentra esta especie de nutria.

Su altura a la cruz es de aproximadamente 30 cm. Su pelaje, pardo oscuro, está


compuesto por dos capas: el pelo de borra, corto, muy fino, denso y lanoso;
y el pelo de jarre, largo, liso, brillante e impermeable.

Excelente nadadora, presenta una membrana interdigital entre sus dedos, un cuerpo
alargado (60 a 80 cm de media, al cual hay que añadir una cola aplanada en la base
y algo puntiaguda en su extremo de 30 a 40 cm de larga) y un peso que oscila entre
5 y 15 kg.

Vive cerca de los cursos de agua (arroyos, ríos e incluso grandes ríos), hasta
una altitud de 1300 m, en pantanos y a veces en la costa. Normalmente es
solitaria, ocupando un territorio de 5 a 15 km de ribera a lo largo de un curso
de agua (a veces más) o de 20 a 30 km2 en zona pantanosa.
En la orilla, suele utilizar los mismos accesos para meterse en el agua: los
"pasos". Cuando sale del agua, se revuelca en la hierba para limpiar su pelaje
sobre zonas que se pueden reconocer por la hierba aplastada llamadas
"lugares de secado".

Hace su madriguera entre las raíces de los árboles de las orillas de los
cursos de agua o en otras cavidades (cavidad rocosa, tronco hueco, madriguera
de otra especies). La madriguera dispone a menudo de una entrada más o menos
disimulada por debajo del nivel del agua y un conducto de ventilación.

Qué bonitas son las nutrias.

4
Capítulo III

Ejercicio 00 : Exam machine

Ejercicio: 00

Exam machine

• Durante esta semana, te podrás inscribir en la Agenda para el examen del viernes,
acuérdate de hacerlo.

• También te tienes que inscribir en el proyecto Exam00.

• Asegúrate de que estás inscrito en el exam machine del viernes (¡Tanto en el evento
COMO en el proyecto!).

• Asegúrate de estar seguro de que estás inscrito (¡en el evento Y en el proyecto! ¡Sí,
los dos!)

5
Capítulo IV

Ejercicio 01 : print_groups

Ejercicio: 01

print_groups.sh
Directorio de entrega: ex01/
Archivos a entregar: print_groups.sh
Funciones autorizadas: Ninguna

• Escribe una línea de comandos que muestre, separados por comas y sin espacios, la
lista de grupos a la que el login, contenido en la variable de entorno FT_USER, es
miembro.

• Ejemplos:

◦ con FT_USER=nours, el resultado es "god,root,admin,master,nours,bocal"(sin


las comillas)
$>./print_groups.sh
god,root,admin,master,nours,bocal$>

◦ con FT_USER=daemon, el resultado es "daemon,bin"(sin las comillas)


$>./print_groups.sh
daemon,bin$>

man id

6
Capítulo V

Ejercicio 02 : find_sh

Ejercicio: 02

find_sh.sh
Directorio de entrega: ex02/
Archivos a entregar: find_sh.sh
Funciones autorizadas: Ninguna

• Escribe una línea de comandos que busque en el directorio en curso y en todos sus
subdirectorios todos los archivos cuyo nombre se termine por ".sh"(sin las comillas)
y no muestre nada más que sus nombres, sin el .sh.

• Ejemplo de salida:
$>./find_sh.sh | cat -e
find_sh$
file1$
file2$
file3$
$>

7
Capítulo VI

Ejercicio 03 : count_files

Ejercicio: 03

count_files.sh
Directorio de entrega: ex03/
Archivos a entregar: count_files.sh
Funciones autorizadas: Ninguna

• Escribe una línea de comandos que muestre el número de archivos y de directorios


del directorio actual y de todos sus subdirectorios, incluido el "."del directorio inicial.

• Ejemplo de salida:
$>./count_files.sh | cat -e
42$
$>

8
Capítulo VII

Ejercicio 04 : MAC

Ejercicio: 04

[Link]
Directorio de entrega: ex04/
Archivos a entregar: [Link]
Funciones autorizadas: Ninguna

• Escribe una línea de comandos que muestre las direcciones MAC de su equipo. Cada
dirección irá seguida de un salto de línea.

man ifconfig

9
Capítulo VIII

Ejercicio 05 : Can you create it?

Ejercicio: 05

Can you create it?


Directorio de entrega: ex05/
Archivos a entregar: "\?$*’MaRViN’*$?\"
Funciones autorizadas: Ninguna

• Crea un archivo que contenga únicamente ’42’ y NADA más.

• Se llamará:
"\?$*'MaRViN'*$?\"

• Ejemplo:

$>ls -lRa *MaRV* | cat -e


-rw---xr-- 1 75355 32015 2 Oct 2 12:21 "\?$*'MaRViN'*$?\"$
$>

10
Capítulo IX

Ejercicio 06 : Skip

Ejercicio: 06

[Link]
Directorio de entrega: ex06/
Archivos a entregar: [Link]
Funciones autorizadas: Ninguna

• Escribe una línea de comandos que muestre un ls -l cada dos líneas, a partir de
la primera.

11
Capítulo X

Ejercicio 07 : r_dwssap

Ejercicio: 07

r_dwssap.sh
Directorio de entrega: ex07/
Archivos a entregar: r_dwssap.sh
Funciones autorizadas: Ninguna

• Escribe una línea de comandos que muestre el resultado del comando cat /etc/passwd,
quitando los comentarios, mostrando una de cada dos líneas empezando por la se-
gunda, invirtiendo cada nombre de usuario y ordenándola por orden alfabético
inverso, conservando solo los nombres de usuario comprendidos entre FT_LINE1 y
FT_LINE2, ambos incluidos, separados por ", "(sin las comillas) y que se terminen
con un ".".

• Ejemplo: Entre las líneas 7 y 15, el resultado será algo parecido a esto:
$> ./r_dwssap.sh
sstq_, sorebrek_brk_, soibten_, sergtsop_, scodved_, rlaxcm_, rgmecived_, revreswodniw_, revressta_
.$>

Sige rigurosamente el orden del enunciado.

12
Capítulo XI

Ejercicio 08 : add_chelou

Ejercicio: 08

add_chelou.sh
Directorio de entrega: ex08/
Archivos a entregar: add_chelou.sh
Funciones autorizadas: Ninguna

• Escribe una línea de comandos que recupere los números incluidos en las variables
FT_NBR1 en base ’\”?! y FT_NBR2 en base mrdoc y que muestre la suma de los dos
en base gtaio luSnemf

◦ Ejemplo 1:
FT_NBR1=\'?"\"'\
FT_NBR2=rcrdmddd

◦ La suma es:
Salut

◦ Ejemplo 2 :
FT_NBR1=\"\"!\"\"!\"\"!\"\"!\"\"!\"\"
FT_NBR2=dcrcmcmooododmrrrmorcmcrmomo

◦ La suma es:
Segmentation fault

13

También podría gustarte