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?