Este tutorial te familiariza con bash, la línea de comandos de Linux. Aprenderás a:
- navegar por directorios
- manipular archivos
- ejecutar programas
En este tutorial, estarás buscando una palabra con 22 caracteres:
Todos los caracteres están ocultos en los ejercicios siguientes.
- descarga el código como un archivo ZIP
- entra a JSLinux y sube el código
- descomprime el archivo con
unzip - localiza la carpeta
exercises/
El primer carácter está oculto en un archivo en algún lugar del árbol de directorios exercise1. Usa los comandos
cd <nombre_directorio>(no escribas los corchetes, solo el nombre del directorio) y
lspara moverte de un directorio a otro. Revisa los subdirectorios hasta encontrar uno con el nombre solution_1.1 y lista su contenido.
Si entraste en un directorio equivocado, puedes retroceder un nivel escribiendo:
cd ..o volver a tu carpeta principal:
cdAlgunos archivos no son visibles de inmediato. Para verlos necesitas el comando
ls -aEl segundo carácter está en el mismo directorio que el primero, pero dentro de un archivo oculto.
Usa cd .. para volver al directorio exercise_1/directoryB/. Al listar su contenido deberías ver un archivo de script shell program.sh. Para encontrar el tercer carácter, debes ejecutar el programa. En bash, esto se hace escribiendo source seguido del nombre del programa:
source program.shVe a la carpeta exercise_1/directoryC/. Para encontrar el cuarto carácter, necesitas saber qué tamaño tiene el archivo de texto en el directorio. Esto se hace con el comando:
ls -lEn la tabla que produce este comando, encontrarás el tamaño del archivo en bytes, el propietario del archivo, los permisos para leer y modificarlo, y la fecha/hora de la última modificación.
Para obtener el cuarto carácter, busca el tamaño del archivo en la Tabla de caracteres ASCII imprimibles.
Cuando escribas nombres de directorios o archivos, presiona [TAB] después de las primeras letras. Unix intentará autocompletar lo que escribes.
Por favor usa cd .. para volver al directorio principal del material del tutorial. Luego, cambia al directorio exercise_2.
En el directorio exercise_2/ encontrarás un archivo de texto solution_2.1.txt. El quinto carácter está dentro de ese archivo. Para ver su contenido, usa el comando:
less <nombre_archivo>Para obtener el sexto carácter, deberás crear un archivo de texto en el directorio exercise_2. En Ubuntu, puedes usar el editor nano. Puedes iniciarlo escribiendo su nombre, o
nano <nombre_archivo>Para salir de nano, escribe Ctrl-X
Crea un archivo de texto con los caracteres que hayas encontrado hasta ahora.
El sexto carácter es la tecla que debes presionar para guardar un archivo en nano.
Si quieres saber más sobre un comando en particular, escribe:
man <comando>Se abrirá una página de ayuda que puedes cerrar presionando 'q'.
Por favor ve al directorio exercise_3.
Para encontrar los caracteres siete y ocho, debes crear un subdirectorio llamado solution en exercise_3/ y copiar los archivos de las carpetas part1/ y part2/ dentro de él.
Para crear directorios, usa el comando:
mkdir <nombre_directorio>Para copiar, puedes usar el comando:
cp <origen> <destino>Escribe ls -l solution/* después para ver la solución.
En el directorio data, todos los archivos que contengan una Y deben ser eliminados. Para hacerlo, usa el comando:
rm <nombre_archivo>También hay más archivos que eliminar en el directorio data. Para borrar más de un archivo a la vez, puedes usar * como comodín, por ejemplo:
rm ju*borrará todos: junk.txt, juniper.txt y june.docx.
Para obtener los caracteres nueve y diez, mira los archivos que quedan después de eliminar todos los que contienen una Y.
Para eliminar un directorio vacío, puedes usar:
rmdir <nombre_directorio>El comando:
rm -r <nombre_directorio>elimina un directorio y todo su contenido.
En Unix, no es posible recuperar archivos borrados.
Esto hace que eliminar archivos con el símbolo * sea muy peligroso, ya que podrías borrar todo de un directorio con un solo comando (por ejemplo, si escribes el directorio equivocado por accidente). Por eso, hacer respaldos se vuelve aún más importante después de aprender este comando.
Por favor ve al directorio exercise_4.
Hay dos versiones diferentes de una cita: ai.txt y artificial_intelligence.txt. Para saber en qué difieren, Unix proporciona el comando:
diff <archivo1> <archivo2>Por supuesto, puedes mirar el texto primero con less o nano. El carácter número 11 de la solución es el único carácter en el que difieren los dos archivos.
Unix tiene un pequeño programa para ordenar archivos de texto alfabéticamente. Se llama así:
less <nombre_archivo> | sort -fEl símbolo | se llama pipe y se usa a menudo para conectar programas Unix entre sí. El carácter número 12 de la solución es el primer carácter de la última palabra en el archivo elephant.txt ordenado alfabéticamente.
Para almacenar las líneas ordenadas en un nuevo archivo, puedes añadir un archivo de salida así:
less <nombre_archivo> | sort -f > resultado.txtPara buscar palabras específicas en un archivo de texto, usa el comando:
grep <palabra> <archivo>Produce todas las líneas del archivo que contengan la palabra dada. El comando grep es muy potente y puede manejar Expresiones Regulares.
Para encontrar el carácter número 13, busca la palabra fire en el archivo datascience.txt y toma el primer carácter de la salida.
Puedes buscar en muchos archivos a la vez incluyendo un * en el nombre de archivo.
Los dos últimos ejercicios pueden no funcionar en Git Bash.
Por favor ve al directorio exercise_5.
Descomprimir archivos es una tarea muy básica e importante. En Unix, a menudo encuentras archivos .zip, .tar y .gz. Para descomprimir un archivo zip, usa:
unzip <nombre_archivo>Para .tar y .tar.gz:
tar -xf <nombre_archivo>Y para .gz:
gunzip <nombre_archivo>Los caracteres 14 y 15 de la solución están dentro de un archivo comprimido varias veces en el directorio exercise_5.
Para comprimir un directorio y todo su contenido, puedes usar el comando:
tar -cf respaldo.tar <directorio>Para comprimirlo después, usa:
gzip respaldo.tarPor favor ve al directorio exercise_6.
Cada archivo en Unix tiene permisos separados para lectura r, escritura w y ejecución x. Se muestran con:
ls -lHay un triplete de permisos para el propietario, otro para un grupo de usuarios, y otro para todos los demás. El comando chmod permite cambiarlos, por ejemplo:
chmod a+x <archivo>otorga a todos los usuarios permiso para ejecutar un archivo, mientras que
chmod u-w <archivo>prohíbe al usuario actual escribir en el archivo (protegiéndolo de ser borrado accidentalmente).
Para ver los caracteres 16 y 17 de la solución, haz que el programa permissions.sh sea ejecutable y luego ejecútalo con:
./permissions.shPuedes otorgar permisos a un árbol de directorios completo usando:
chmod -R a+x <directorio>Para saber cuánto espacio libre tienes, puedes usar el comando:
dfdf lista todas las particiones de disco, CD-ROMs, memorias USB y algunas particiones lógicas que usa Unix. Todos los números se dan en kilobytes.
Para obtener el carácter número 18, revisa la versión del programa df. Descubre cómo hacerlo con:
df --versionLa solución es el último carácter del primer nombre de los autores.
Para instalar algunos programas, es necesario definir variables de entorno. Estas se pueden definir con el comando:
export <nombre_variable>=<valor>Puedes ver todas las variables con el comando:
envPara obtener el carácter número 19, debes usar export para asignar a la variable GIVEME el valor SOLUTION.
echo $GIVEMEEncuentra la posición del carácter en el alfabeto con:
echo $GIVEME | wc -cPor defecto, los cambios en las variables de entorno solo afectan a la terminal actual.
Si quieres que se definan automáticamente en cada ventana de consola, escribe el comando export en el archivo .bashrc en tu directorio personal (es un archivo oculto).
La manera más sencilla de comprobar si tienes conexión a internet desde la línea de comandos de Unix es enviar una solicitud a un servidor conocido (por ejemplo, www.google.com) con el comando:
ping <dirección_web>El comando informa cuánto tarda un mensaje en ir y volver del servidor. Para interrumpirlo, presiona Ctrl+C.
El carácter número 20 es la opción de ping que establece el número máximo de solicitudes enviadas. Revisa la documentación con:
man pingPara ver qué programas están corriendo en tu máquina, escribe:
topEsto muestra una lista de todos los programas activos. Shift+P los ordena por uso de CPU, Shift+M por consumo de memoria (si no ves ninguno con mucho consumo, abre un navegador). Cierra top presionando q.
Los dos últimos caracteres de la solución son las dos primeras letras de la segunda palabra en la línea que contiene las etiquetas de las columnas.
Si quieres cerrar un programa que iniciaste (por ejemplo, porque se bloqueó), puedes hacerlo escribiendo:
kill -s 9 <pid>El número pid está en la primera columna de la salida de top. Solo puedes cerrar tus propios programas, no los que pertenecen a root, el administrador del sistema.


