Los terminales o TTY permiten acceder a la capa de interfaz de línea de comandos (CLI) de un sistema operativo.
Recuerda que no es obligatorio que un sistema operativo tenga interfaz gráfica de usuario, muchos se pueden gestionar enteramente desde CLI.
Puedes invocarlo con CTRL+ALT+T o buscando en los menús de programas:
O bien: CTRL+ALT+F2, F3, F4... para abrirla a pantalla completa. Vuelve al escritorio con CTRL+ALT+F1
¿Qué es un shell? Es la aplicación de intérprete de comandos, un terminal de texto que te permite interactuar con la CLI de un sistema operativo.

Windows tiene un sistema de terminal heredado de MS-DOS (no se basa en UNIX). Se ejecuta escribiendo cmd en el menú “Ejecutar”. Los comandos MS-DOS son distintos a los de sistemas operativos basados en UNIX (Linux, Android, macOS…).
Recuerda que te puedes conectar a todo tipo de máquinas en red (routers, ordenadores, reproductores de vídeo…) en modo terminal CLI usando el protocolo SSH (Secure SHell), que es el que utiliza el programa Putty. Prueba a entrar en el router del aula con Putty: 192.168.48.254
Aspecto del símbolo del sistema:

Cambiar nombre del equipo: hostnamectl set-hostname ubuntumate y al reiniciar aparecerá cambiado:

Habría que cambiar el nombre de equipo también en
/etc/hosts. Lo cual me recuerda cosas malas.
Completar comandos con tabulador Tab ↹. Prueba a escribir hel y después pulsa tabulador. Aparecerá help
Repetir comandos anteriores: flechas del cursor “↑” y “↓”.
Limpiar pantalla: clear
Manual de cualquier comando: man. Ejemplo: man clear.
which ls devuelve la ruta del binario del programa “ls”, que es /bin/ls
Moverse de carpeta: cd (change to directory)
Reiniciar: reboot
Apagar ahora: sudo shutdown -h now
Apagar en 10 minutos: sudo shutdown -h +10
Apagar a las 22:30: sudo shutdown -h 22:30
Comprobar en qué modo arranca por defecto: systemctl get-default
Arranque desde GUI: systemctl set-default graphical.target
Arranque desde CLI: systemctl set-default multi-user.target
Puedes arrancar la GUI desde la CLI con startx
Rutas absolutas: Se deben especificar completamente, desde el punto de montaje del disco duro, “/“. Ejemplos:
cd / Te lleva a la carpeta raíz.cd /dev/sbin Va directamente a la carpeta /dev/sbinRutas relativas: Se referencian a una carpeta, normalmente la actual, que se representa por . Ejemplo, si tú estás en la carpeta /usr/bin:
cd .. Sube al directorio padre: /usrcd otro Te lleva al directorio /usr/bin/otrocd ~ Te lleva a la carpeta de tu usuario.cd - Te lleva a la última carpeta en la que has estado.Recuerda:
- “/“ raiz del disco duro.
- “.” carpeta actual.
- “..” carpeta madre de la actual.
- “
~” carpeta de usuario.
pwd te dice la carpeta en la que estás actualmente.
Carpeta /: Carpeta raiz (“root directory”) del sistema. Similar al C:\ de Windows. Linux no trabaja con letras para las unidades.
Carpeta /bin: Archivos binarios (programas) esenciales para que funcione la CLI (el terminal bash, cd, ls, cp…). Carpeta /sbin: Más archivos binarios (pero pueden estar en otra partición).
Firefox se encuentra en la carpeta
/usr/bin
Carpeta /boot: Archivos necesarios para el proceso de arranque.
Carpeta /dev: Dispositivos (“devices”). Por ejemplo: /dev/sda2 es un archivo que representa a la segunda partición del primer disco duro (sin montar).
Carpeta /etc: Archivos de configuración (normalmente visibles y editables).
Carpetas de usuarios /home. La de cada usuario (/home/tunombre). Es donde se encuentran las carpetas personales de Documentos, Descargas, Escritorio…

La “virulilla” (
~) se utiliza para representar la ruta a la carpeta de usuario, cuya ruta absoluta es/home/daniel/en mi caso, pero en el tuyo puede ser/home/superman, así que se representa universalmente como~. Ejemplocd ~
Carpeta /lib: Librerías esenciales a las que suelen acudir los programas alojados en /bin y /sbin. Una librería es un conjunto de recursos “precocinado” que puede usar cualquier programa. Por ejemplo: reproducción de mp3, multiplicación de números.
Carpetas /mnt y /media. Es donde se encuentran el las unidades de almacenamiento extraible (pendrives, otras particiones…).
Carpeta /usr: Programas del usuario, librerias y carpetas sólo de lectura. Carpeta /usr/bin: comandos instalados por el usuario. Carpeta /usr/sbin: comandos instalados por el usuario (no esenciales).
Carpeta /var: Archivos de datos con variables de información administrativa.
Carpeta /tmp: Archivos temporales (borrables).
ls muestra el contenido de la carpeta actual sin detalles.
ls -l muestra si es archivo o carpeta, tamaño, fecha y hora de modificación, propietario y permisos.
ls -lh lo mismo que el anterior pero el tamaño del archivo aparece en unidades kB, MB, GB. Ojo que las carpetas aparecen mal (4kB).
ls -lhF pone una barra “/“ al final de las carpetas.
ls -lhF | more pausa al llenar la pantalla
ls -a muestra archivos ocultos.
Para ocultar un archivo en un sistema Linux basta con que el nombre empiece por un punto “.”. Por ejempo, si renombramos el archivo hola.txt a .hola.txt, dejará de ser visible, a menos que utilicemos ls -a
Para renombrar se hace igual que para cortar y pegar: mv hola.txt .hola.txt
El terminal tiene una variable de entorno llamada PATH que contiene la lista de carpetas donde debe buscar los comandos que se escriben sin ruta absoluta. Puedes mostrarlo con echo $PATH
Para ejecutar un comando que no está en el PATH pero sí está en la carpeta actual, escribe antes ./. Ejemplo ./buildMyProject.sh
Para añadir carpetas al PATH: export PATH=$PATH:/ruta
Al hacer ls -l, al principio de cada fila, en la primera columna, veremos algo así:
Cada carpeta o fichero tiene 3 grupos de permisos con 3 permisos cada uno.
Más información: Explicación de permisos de ficheros y carpetas en Ubuntu | How To Use chmod and chown Command
mkdir carpeta crea la carpeta.
rm fichero borra un fichero.
rm -rf carpeta borra una carpeta y todo lo que tenga dentro.
cp fichero /home/datos/ copia el “fichero” en la carpeta /home/datos/
-r borra recursivamente, es decir lo que hay dentro de la carpeta.-f borra sin preguntar antes.mv fichero /home/datos/ mueve el “fichero” a la carpeta /home/datos/
touch archivo crea el archivo.
cat archivo muestra el contenido de un archivo.
nano archivo edita el contenido de un archivo. MUY ÚTIL.
Tu cuenta de usuario es de administrador, la mayoría de lo que haces no requiere privilegios, por lo que siempre se trabaja como un usuario sin privilegios hasta que se requiere “elevar” a nivel de administrador con la orden sudo → (super-user do: “hacer como superusuario”). Así, no es lo mismo rm fichero.txt que sudo rm fichero.txt. La primera se ejecuta como usuario, la segunda como administrador (pedirá contraseña).
No se recomienda, pero se puede hacer que todo lo que venga se ejecute como administrador con la orden sudo su
Tú metes un pendrive y éste aparece en el explorador de archivos, pero en Linux no tiene porqué ser así. Las unidades aparecen en la carpeta /dev pero para que sean accesibles las hay que “montar” en la carpeta /media
Podemos ver con detalle los discos con sudo fdisk -l
sudo mount /dev/sdb1 /media/usbstick
sudo umount /media/usbstick desmontar una unidad permite su extracción segura.
Más información: Cómo montar una unidad en Ubuntu Linux
APT (Advanced Packaging Tool) es un sistema de gestión de paquetes que simplifica la descarga e instalación de apps en ciertos sistemas Linux.
# apt-get update actualiza el listado de paquetes disponibles.
# apt-get upgrade actualiza los programas que tengas instalados.
En la práctica de instalar Ubuntu dejamos instalado un cliente de SSH para que te pudieses conectar a otros equipos: sudo apt install openssh-server. Para instalar otros programas, bastaría con cambiar la última palabra por el nombre del programa. Ejemplo: sudo apt-get install chrome-browser. Otros parámetros del comando apt-get:
apt-get remove paquete elimina el paquete que indiques.
apt-get --reinstall install reinstala el paquete que indiques.
Paquetes DEB usando DPKG, ficheros comprimidos .TAR, .GZ, .BZ2, .ZIP, .RAR... Instrucciones.
ifconfig muestra la configuración de las distintas interfaces de red.
sudo ifconfig eth1 up activa una interfaz de red. down la desactiva.
Y por supuesto, ping. Ping al router del aula: ping 192.168.48.254. Ping a Google: ping www.google.es. Más info sobre ifconfig
La configuración de red se hace en el fichero /etc/network/interfaces. Tutorial.
Más info: Comandos básicos para terminal de Ubuntu | Terminal Primer – Part 2 – Navigating the File System
~/Descargas y usando el comando wget "https://www.fosshub.com/Audacity.html/audacity-minsrc-2.2.2.tar.xz". Después descomprímelo con tar xf. Luego instálalo siguiendo los tres pasos indicados aquí. Entrega pantallazos del proceso por e-mail.tunombre.txt y escribe dentro de él tu dirección IP. Entrega pantallazos del proceso por e-mail.