SO: LINUX comandos básicos(I)
La consola (interfaz de línea de comandos) es un programa informático que permite al usuario interactuar con el sistema, en los sistemas LINUX, la consola tiene una enorme capacidad de gestión, siempre dependiente de los derechos del usuario.
Los comandos son las instrucciones que le damos a la consola y que esta ejecuta para hacerlas efectivas.
La consola de LINUX tiene el siguiente aspecto:
En ella podemos ver la interfaz gráfica y la linea de comandos en la que podremos escribir nuestros comandos, vale la pena dedicar un minuto a comprender la salida: administrador@xubuntu01:
- administrador: hace referencia al usuario activo.
- xubuntu: se refiere al nombre del host, nuestro equipo.
Para solicitar estos datos tenemos los siguientes comandos:
#Devuelve el nombre del equipo
hostname
#Devuelve el nombre del usuario
whoami
Comandos de navegación
El sistema de ficheros de linux obedece a una estructura en árbol, cuyo elemento raíz es «/».
De este modo podemos deducir la ruta de los elementos hijos de la raíz (esto es las ramas de orden 1) es la siguiente: /nombreElemento
Y que a su vez, ese elemento puede tener hijos cuya ruta sea: /nombreElemento/hijoElemento.
Para navegar y posicionarnos por esta estructura de ficheros, disponemos de unos cuántos comandos útiles:
pwd #Muestra la ruta en la que nos encontramos
cd rutaDelArchivo #Nos permite movernos entre archivos
cd .. #Tambien se puede usar para retroceder en la estructura
cd / #Permite un salto directo a la carpeta raíz
cd #Salta a la carpeta del usuario
ls # Lista los elementos del directorio actual
ls -l # Lista en detalle
ls ruta # Lista los elementos dentro de la ruta especificada
Gestión de paquetes
Existen varios comandos que permiten gestionar diferentes facetas del sistema operativo o de la sesión.
Estas órdenes deben hacerse desde un usuario con permisos de root.
#Actualizar los datos de los paquetes disponibles, buscar, mostrar e instalar
apt update
apt search nombrePaquete
apt show nombrePaquete
apt install nombrePAquete
Comandos útiles varios
Una vez que sabemos navegar por el sistema y gestionar los paquetes de contenidos del mismo, podemos pasar a ramificar las posibles interacciones con el sistema, así encontramos comandos de muy diversa índole:
- Comandos de ayuda: permiten obtener ayuda sobre un comando, existen varias opciones.
whatis comando
comando --help
man comando
apropos conceptoNombre #Permite encontrar comandos relacionados con el elemento, ej: disk, partition...
- Comandos de final de sesión: permiten finalizar la sesión actual.
exit
logout
control + d
- Comandos de apagado del sistema: Permiten apagar o reiniciar el sistema.
reboot
shutdown
poweroff
- Comandos de gestión de elementos: Se utilizan para crear elementos.
mkdir nombreDirectorio #Utilizado para crear directorios.
mkdir -R dir1/dir2 #El parámetro -R permite la creación recursiva.
touch nombreArchivo #Permite crear un archivo vacío.
nano nombreArchivo #Crea un archivo y lo abre con el editor nano.
rm elemento # Borra los elementos seleccionados
rm -R directorioNombre # Borra el directorio de manera recursiva con todo el contenido interno
mv elemento ruta # Mueve un elemento a un nuevo lugar, es posible usarlo para cambiar el nombre del elemento
cp elemento ruta # Similar al mv, pero mantiene ambos elementos
- Búsquedas y filtrado
head # Permite visualizar un documento desde el comienzo, se puede definir un valor numérico para omitir lineas.
head -2 # Selecciona solo las dos primeras lineas.
tail # Visualiza el documento comenzando por el final.
tail -2 # Selecciona solo las dos últimas lineas.
find ruta -type f # Busca todos los elementos que coinciden con el patrón, f para archivos, en este caso.
find . -type d -maxdepth 2 # Busca todos los directorios con una profundidad de 2
grep patrón fichero1 # Busca el patrón en los ficheros definidos
grep hola fich1 fich2 # Busca "hola" en los dos ficheros definidos.
grep hola -v fich1 fich2 # El parámetro -v devuelve todas las coincidencias contrarias al patrón.
wc -l nombreArchivo # Devuelve el número de coincidencias (contador) param = tipo de unidad de filtrado.
cut -d : -f1-f3 nombrefichero # La orden cut permite separar por campos (delimitador) y seleccionar los deseados.
tr "a-z" "A-Z" texto.txt # Tr permite intercambiar coincidencias en base a dos patrones.
sort documentoNombre # Sort ordena el contenido de un documento
- Enlaces: Los enlaces permiten un mejor acceso a los datos almacenados, existen dos tipos, los enlaces rígidos y los simbólicos, la diferencia radica en que el simbólico es un puntero mientras que el rígido es una «copia» vinculada y dependiente.
ln ruta/archivo nombreEnlace # Esto creará un enlace rígido del archivo
ln -s ruta/archivo nombreEnlace # El enlace creado esta vez será simbólico
Compresión y agrupado
A menudo, al tratar con documentos, podemos desear agruparlos en paquetes, reducir su tamaño, etc…Las funciones que nos facilitarán el trabajo con grupos de archivos son las de empaquetado y compresión.
tar -cvf nombreAgrupado.tar fichero1 fichero2 # tar permite agrupar contenidos en un documento
tar -rf nombreAgrupado.tar ficgero3 # parametros rf permiten añadir documentos a un tar ya existente
tar -xcvf nombre.tar fich1 fich2 # Crea un agrupado comprimido (-x)
gzip -9 nombreComprimido.gz fich1 fich2 # Crea un comprimido, la compresión va de -1 a -9 (más alta)
zcat nombre.gz # Permite leer comprimidos
zmore nombre.gz # Permite leer comprimidos
zless nombre.gz # Permite leer comprimidos
Direccionamiento
Cuando utilizamos comandos, la consola nos muestra (a menudo) una salida, generalmente la salida puede ser utilizada como entrada para un segundo comando, por ejemplo
date > fecha.txt # Esto crea un documento llamado fecha, en el que incluye la salida del comando "date".
Existen varios tipos de salidas y direccionamientos:
echo "Hola" > texto.txt # Sobreescribe el documento con la entrada
echo "¿Como estás?" >> texto.txt # Introduce la entrada tras los contenidos del documento
echo "¿ERROR?" 2> errores.txt # 2> direcciona los posibles errores (a menudo a /dev/null)
history | grep "rm" # El pipeline (|) permite concatenar comandos y sus salidas de forma sintetizada.