Cuestionario comandos avanzados

Cuestionario comandos avanzados#

1. Redireccionamiento:

1. Queremos redireccionar el archivo hostname al archivo hostname.backup, ¿qué comando ejecutamos?

2. Queremos añadir una línea al final de login.dat sin borrar su contenido, ¿qué operador utilizamos?

3. El archivo test.dat no existe; queremos guardar el mensaje de error en new.dat, ¿qué comando ejecutamos?

4. ¿Qué operador redirige a la vez la salida estándar y la salida de errores?

5. ¿A dónde redirigimos la salida de un comando cuando queremos descartarla?

6. ¿Qué muestra echo $? si el comando que acabamos de ejecutar no ha dado problemas?

7. En orden1 && orden2, ¿cuándo se ejecuta la orden2?

8. En orden1 || orden2, ¿cuándo se ejecuta la orden2?

9. ¿Qué comando envía la salida a la vez a un fichero y a la pantalla?

2. Tenemos el archivo cal.dat:

$ cat cal.dat
enero 1 pintura
enero 15 cocina
enero 20 pintura
febrero 1 cocina
febrero 15 baile
febrero 20 pintura
marzo 1 baile
marzo 15 cocina
marzo 20 pintura

1. ¿Cómo obtendrías solo las líneas del fichero que contienen la cadena enero?

2. ¿Cómo obtendrías solo la segunda columna?

3. ¿Cómo obtendrías la primera y la tercera columna?

4. ¿Cómo obtendrías la tercera columna ordenada y sin líneas duplicadas?

3. Tenemos el archivo linea.dat:

$ cat linea.dat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

1. Utilizando el comando head, ¿cómo verías las 3 primeras líneas?

2. ¿Cómo verías solo la tercera línea, utilizando los comandos head y tail?

3. ¿Cómo verías la segunda y la tercera línea, utilizando el comando sed?

4. Tenemos el archivo hola.txt, con las columnas separadas por un número variable de espacios:

$ cat hola.txt
a1    a2  a3
e1 e2    e3
o1    o2         o3

1. ¿Cómo se puede obtener la segunda columna? (ayuda: usa el comando tr)

5. Tenemos el archivo phone.dat:

$ cat phone.dat
usuario1 304-293-3011 campus
usuario2 304-123-3122 libraries
usuario3 304-123-3123 libraries
usuario4 304-100-1112 administration
usuario5 304-100-1113 administration
usuario6 304-100-1114 administration

1. Cambia la palabra administration por administración y redirecciona la salida al archivo telefono.dat:

2. Lo mismo, pero sustituyendo todas las apariciones de cada línea:

3. ¿Cómo podríamos saber el número de líneas del archivo phone.dat que contienen 100?

4. Utiliza el comando grep para ver solo los teléfonos que terminan en 3 y escribirlos en un archivo llamado t3fono.dat:

6. Variables:

1. Tenemos una variable a=3 y otra b=4; si c=$a$b, ¿a qué es igual la variable c?

2. Si a=3, b=4 y c=$a ; c=$c:$a:$b, ¿a qué es igual la variable c?

3. Si a=3, b=4 y c=a+b, ¿a qué es igual la variable c?

4. Si a=3, b=4 y c=$((a+b)), ¿a qué es igual la variable c?

5. Tenemos a=foto.jpg y queremos que b valga foto.png (imagina que tienes fotos jpg y las quieres cambiar a png). ¿Cómo asignamos b?

6. ¿Cómo podemos ejecutar periódicamente el comando free -m para monitorizar el uso de la memoria?

7. Comillas y tratamiento de cadenas:

1. Ejecutamos a=5 y después echo a, ¿qué se muestra?

2. ¿Y con echo $a?

3. Ejecutamos a=5 y echo "a = $a" (comillas dobles), ¿qué se muestra?

4. Ejecutamos a=5 y echo 'a = $a' (comillas simples), ¿qué se muestra?

5. Con a=www.fsf.org, ¿qué muestra echo ${a::3}?

6. ¿Y echo ${a:1:3}?

7. ¿Y echo ${a:3}?

8. ¿Y echo ${#a}?

8. Operaciones aritméticas:

1. Ejecutamos a=3+4 y echo $a, ¿qué se muestra?

2. ¿Y con echo $((a))?

3. Con a=10 y b=4, ¿qué muestra echo $((a/b))? (recuerda que solo opera con enteros)

4. ¿Y echo $((a%b)) (módulo o resto)?

5. x=$((RANDOM % 10 + 1)) genera números...

6. ¿Qué muestra echo 4/5 | bc -l?

7. ¿Qué hace a=$(whoami)?

9. Filtros sobre login.dat:

$ cat login.dat
admin      : nombre1
gerente    : nombre2
supervisor : nombre3
empleado   : nombre4
empleado   : nombre5

1. ¿Qué muestra grep -c empleado login.dat?

2. ¿Qué opción de grep selecciona las líneas que NO coinciden?

3. ¿Cómo verías las líneas que contienen empleado o admin?

4. ¿Qué muestra grep empleado login.dat | grep 5?

5. wc login.dat muestra 5 15 110, ¿qué es el 5?

6. ¿Y el 110?

7. En grep emple login.dat | cut -d' ' -f1 | uniq -c, ¿qué hace la opción -c de uniq?

8. ¿Qué hace cat login.dat | tr 'a' 'A'?

10. Ordenar, editar y comparar. Tenemos el archivo test.dat:

$ cat test.dat
2 B
3 C
20 D
1 A

1. ¿Por qué sort test.dat coloca la línea "20 D" antes que "3 C"?

2. ¿Qué opción de sort ordena numéricamente?

3. ¿Y numéricamente en orden inverso?

4. ¿Qué hace la opción -i de sed (sed -i 's/admin/ADMIN/g' login.dat)?

5. ¿Qué hace sed '/^$/d' archivo.txt?

6. ¿Qué muestra echo "Hola" | sed 's/./_/g'?

7. ¿Qué comando une línea a línea el contenido de dos archivos, en columnas?

8. ¿Qué comando combina las líneas de dos archivos que comparten el primer campo?

9. ¿Qué comando muestra las diferencias entre dos archivos?

11. Un poco de todo:

1. Ejecutamos los siguientes comandos, ¿qué contendrá new_file.dat?

$ tunombre=dani
$ cat << EOF > new_file.dat
Mi nombre es $tunombre
hoy es $(date)
EOF

2. ¿Qué hace sed -n '3p' archivo?

3. ¿Qué hace sed -i 's/\t/ /g' archivo.txt?

4. ¿Qué hace tr -s ' '?

5. ¿Qué hace grep -n empleado login.dat?

6. ¿Qué opción de egrep no discrimina entre mayúsculas y minúsculas?

7. En un archivo con campos separados por dos puntos (campo1:campo2), ¿cómo sacarías el segundo campo?

12. paste, join y diff. Tenemos estos dos archivos:

$ cat login.dat
usuario1 u1
usuario2 u2
usuario3 u3
$ cat shell.dat
usuario1 bash
usuario2 cshell
usuario3 bash

1. ¿Qué muestra la primera línea de paste login.dat shell.dat?

2. ¿Y la primera línea de join login.dat shell.dat?

3. Ejecutamos sed 's/u3/U3/g' login.dat > login2.dat y después diff login.dat login2.dat, ¿qué señala diff?