====== Guía de Linux ====== Práctica básica de los comandos más comunes de GNU/linux en bash. Para abrir un terminal, utilice el atajo de teclado [Ctrl+Alt+t] o busque en los menús de su distribución. ===== man: ===== Ejecute el siguiente comando. ¿Por qué falló? man Ejecute el siguiente comando y lea brevemente la descripción. ¿Qué hace //man//? man man Ejecute los siguientes comandos. ¿Son lo mismo? Como desarrolladores, ¿Cuál nos interesa más? man printf man 1 printf man 3 printf ===== ls: ===== Ejecute el siguiente comando y lea brevemente la descripción. ¿Qué hace //ls//? man ls Ejecute el siguiente comando y observe la salida. ¿Reconoce alguna carpeta? ls Ejecute el siguiente comando y observe la salida. ¿Qué son los archivos y carpetas con punto adelante? ls -a Ejecute el siguiente comando y observe la salida. ¿Qué representan las diversas columnas? ls -l Ejecute los siguientes comandos. ¿Son lo mismo? ls -a -l ls -al Ejecute los siguientes comandos. ¿Qué es lo que estamos haciendo? ls ~ ls / ls /home ===== pwd: ===== Ejecute el siguiente comando. ¿Qué hace //pwd//? man pwd Ejecute el siguiente comando. ¿En qué directorio estamos trabajando? pwd ===== cd: ===== Ejecute el siguiente comando. ¿Por qué falló? man cd Ejecute el siguiente comando. ¿Qué hace //cd//? ¿Por qué no está en el manual (usar google)? help cd Ejecute los siguientes comandos. ¿Qué hizo //cd//? ¿Qué carpeta lista //ls// cuando no tiene parámetros? ls cd / pwd ls Ejecute los siguientes comandos. ¿Qué representan . y .. en linux? cd / pwd ls cd /home pwd ls cd . pwd ls cd .. pwd ls Ejecute los siguientes comandos. ¿Qué es ~ en linux? ¿A qué directorio cambia //cd// cuando no tiene parámetros? cd ~ pwd cd pwd Ejecute el siguiente comando para iniciar una sesión de bash adentro de su sesión de bash, permitiendo guardar el flujo de salida en un archivo. //bash// es para ejecutar la shell, //|// es para redirigir la salida de un comando a la entrada de otro, y //tee// sirve para guardar una copia del flujo de salida en un archivo. No es necesario que lo aprendan ahora, ya lo van a ver en profundidad cuando vean Pipes, pero si les interesa está muy bueno y es útil. bash | tee log_clase_1.txt ===== mkdir: ===== Ejecute el siguiente comando. ¿Qué hace //mkdir//? man mkdir Ejecute los siguientes comandos para crear una carpeta en la cual trabajar. mkdir practicalinux cd practicalinux pwd A partir de aquí asumimos que ya sabe como detectar en qué directorio están trabajando, utilizando pwd o observando el directorio en el prompt de su terminal, por lo que no lo volveremos a mencionar. Ejecute el siguiente comando y observe la salida. mkdir dir0 ls Ejecute los siguientes comandos. ¿Por qué falló el primero? ¿Cómo lo solucionamos? mkdir dir1/dir2 mkdir -p dir1/dir2 ls Ejecute los siguientes comandos para crear un archivo con el que poder ejecutar los siguientes comandos. ls >> arch0.txt ls El comando de dirección de flujo //>>// redirige el flujo de salida y lo agrega al final de un archivo. Este tipos de comandos (de direccionamiento de flujo) son una herramienta muy poderosa que le da un gran poder a los usuarios avanzados de linux para diversas tareas cotidianas. Un ejemplo que puede servir para informática 1, es al hacer logging, emitir los logs por stderr y redirigir stderr a un archivo, utilizando el comando: ./a.out 2>>log.txt Ejecute (si quiere) el comando para instalar un paquete llamado //tree//, que permite mostrar de forma bonita carpetas y archivos de forma recursiva. sudo apt install tree En caso de no querer descargar el paquete, puede realizar una función similar ejecutando este comando en su lugar cuando sea necesario. find ===== cp ===== Ejecute el siguiente comando. ¿Qué hace //cp//? man cp Ejecute los siguientes comandos. ¿Por qué falló el primero? ¿Cómo lo solucionamos? Ejecutamos tanto //tree// como //find// para que los que instalaron //tree// puedan ver las diferencias entre ambos. cp dir1/dir2 dir_3 cp -r dir1/dir2 dir_3 tree find Ejecute los siguientes comandos. ¿Qué hizo el primero? ¿Qué hizo el segundo? cp -r dir1/dir2 . cp arch0.txt dir3/ tree ===== mv ===== Ejecute el siguiente comando. ¿Qué hace //mv//? man mv Ejecute los siguientes comandos. ¿Qué hizo cada uno? mv arch0.txt dir0/ tree mv dir0/arch0.txt arch1.txt tree mv dir0 dir4 tree ===== rm ===== Ejecute el siguiente comando. ¿Qué hace //rm//? man rm Ejecute cuidadosamente (//rm// no perdona) los siguientes comandos y observe sus efectos. rm arch1.txt tree Ejecute cuidadosamente los siguientes comandos. ¿Por qué falló el primero? ¿Cómo lo solucionamos? rm dir4 rm -d dir4 tree Ejecute cuidadosamente los siguientes comandos. ¿Por qué falló el primero? ¿Por qué la solución es distinta? rm -d dir3 rm -r dir3 tree ===== Finalización ===== Ejecute estos comandos para eliminar recursivamente todos los archivos creados, dejando su computadora como estaba al inicio de la práctica. cd .. rm -r practicalinux Ejecute los siguientes comandos. El primero sale de la sesión de bash interna. El segundo le muestra que existe un archivo llamado "log_clase_1.txt" que deberá enviar para la corrección del tp. exit ls -l | grep log_clase_1.txt Si decide que no quiere más el paquete //tree//, ejecute el siguiente comando para eliminarlo. sudo apt purge tree