21b - Comandos básicos en la terminal Linux

Volver ó curso

Abre la terminal de Windows, cmd:

Ejemplo:

ssh root@10.207.0.1

Donde:

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.

Si estás directamente en el ordenador, 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.

Shell de Ubuntu Mate
Shell de Ubuntu Mate

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.

Básico

Aspecto del símbolo del sistema:

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

Hay 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 “↓”.

Apagado y reinicio

Más info

Inicio de sesión en GUI o en CLI

¿CLI y GUI, qué es eso?

Rutas absolutas y relativas

Rutas absolutas: Se deben especificar completamente, desde el punto de montaje del disco duro, “/“. Ejemplos:

Rutas relativas: Se referencian a una carpeta, normalmente la actual, que se representa por . Ejemplo, si tú estás en la carpeta /usr/bin:

Recuerda:

pwd te dice la carpeta en la que estás actualmente.

Carpetas importantes en Linux (estándar FHS)

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 “virgulilla” (~) 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 ~. Ejemplo cd ~

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).

Sacado de aquí | Más info

Listar el contenido de una carpeta

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.

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

¿Dónde se alojan los comandos? En el PATH

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

Permisos

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

Crear y editar archivos y carpetas

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/

mv fichero /home/datos/ mueve el “fichero” a la carpeta /home/datos/

nano -l archivo  # muestra números de línea
nano -m archivo  # permite usar el ratón (ojo con el modo de selección)
tail -f archivo

Privilegios de administrador

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

Montar y desmontar unidades

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

Instalar programas de repositorios mediante APT

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.

Más info sobre APT

Instalar programas descargados con el navegador

Paquetes DEB usando DPKG, ficheros comprimidos .TAR, .GZ, .BZ2, .ZIP, .RAR... Instrucciones.