LinuxFundamentos

Comandos básicos de Bash

Los comandos de terminal que más se usan en el día a día: moverse por carpetas, crear y borrar archivos, buscar contenido y combinar comandos entre sí.

Moverse por el sistema

pwd (print working directory) muestra en qué carpeta estás parado. ls (list) lista el contenido de una carpeta. cd (change directory) te mueve a otra carpeta.

pwd
# /home/claudio/proyectos/studies

ls
# Muestra los archivos y carpetas del directorio actual

ls -l
# Formato "largo": permisos, dueño, tamaño y fecha de cada archivo

ls -la
# Igual que -l, pero incluye los archivos ocultos (los que empiezan con .)

ls -lh
# Como -l, pero con tamaños legibles (KB, MB, GB) en vez de bytes

cd carpeta        # entra a "carpeta" (ruta relativa)
cd /home/claudio  # entra usando una ruta absoluta
cd ..              # sube un nivel, a la carpeta padre
cd ~                # va directo a tu carpeta personal
cd -                # vuelve a la última carpeta en la que estabas

Crear, copiar, mover y borrar

Estos son los comandos para manipular archivos y carpetas. El más peligroso de todos es rm: en Linux no hay papelera de reciclaje por defecto, así que lo que borrás con rm desaparece.

mkdir nueva-carpeta
# Crea una carpeta

mkdir -p ruta/con/varios/niveles
# Crea todas las carpetas intermedias que hagan falta, sin quejarse si ya existen

touch archivo.txt
# Crea un archivo vacío (o actualiza su fecha de modificación si ya existe)

cp origen.txt destino.txt
# Copia un archivo

cp -r carpeta-origen carpeta-destino
# Copia una carpeta completa (con -r, "recursivo")

mv archivo.txt otra-carpeta/
# Mueve un archivo (mv también sirve para renombrar)

mv nombre-viejo.txt nombre-nuevo.txt
# "Mover" un archivo al mismo lugar con otro nombre = renombrarlo

rm archivo.txt
# Borra un archivo (sin confirmación, sin papelera)

rm -r carpeta
# Borra una carpeta y todo su contenido

rm -rf carpeta
# Como -r, pero sin preguntar nada ni frenarse ante errores: usar con mucho cuidado
Cuidado con rm -rf: No hay "deshacer". Antes de correr rm -rf conviene correr el mismo comando cambiando rm por ls primero, para confirmar exactamente qué se va a borrar.

Ver contenido de archivos

cat archivo.txt
# Vuelca todo el contenido del archivo a la pantalla, de una

less archivo.txt
# Abre el archivo en un visor paginado (subís y bajás con las flechas, salís con "q")

head archivo.txt
# Muestra las primeras 10 líneas

head -n 20 archivo.txt
# Muestra las primeras 20 líneas

tail archivo.txt
# Muestra las últimas 10 líneas

tail -f archivo.log
# Muestra las últimas líneas y se queda "siguiendo" el archivo en vivo (ideal para logs)

Buscar archivos y texto

find busca archivos por nombre, tipo o fecha. grep busca texto dentro de archivos.

find . -name "*.astro"
# Busca, desde la carpeta actual (.), todos los archivos que terminen en .astro

find . -type d -name "topics"
# Busca carpetas (-type d) llamadas "topics"

grep "SOLID" archivo.txt
# Busca la palabra "SOLID" dentro de un archivo y muestra las líneas donde aparece

grep -r "SOLID" src/
# Busca "SOLID" en todos los archivos dentro de la carpeta src/, de forma recursiva

grep -rn "SOLID" src/
# Igual, pero mostrando el número de línea (-n) de cada coincidencia

Combinar comandos: pipes y redirección

La barra vertical | (pipe) conecta la salida de un comando con la entrada del siguiente. Los símbolos > y >> redirigen la salida de un comando hacia un archivo en vez de mostrarla en pantalla.

ls -la | grep ".astro"
# Lista todo y le pasa el resultado a grep, que se queda solo con lo que contenga ".astro"

cat archivo.txt | wc -l
# wc -l cuenta líneas: esto cuenta cuántas líneas tiene el archivo

echo "hola" > salida.txt
# Escribe "hola" en salida.txt, PISANDO el contenido anterior

echo "chau" >> salida.txt
# Agrega "chau" al final de salida.txt, sin borrar lo que ya había

Permisos y sudo

Cada archivo tiene permisos de lectura, escritura y ejecución para tres grupos: el dueño, el grupo, y el resto. chmod los cambia. sudo ejecuta un comando con permisos de administrador (equivalente a "Ejecutar como administrador" en Windows).

ls -l archivo.sh
# -rwxr-xr-- 1 claudio claudio 220 jul 15 10:00 archivo.sh
#  \__/\_/\_/
#   |   |  |
#   |   |  resto del mundo: puede leer (r), no escribir, no ejecutar
#   |   grupo: puede leer y ejecutar
#   dueño: puede leer, escribir y ejecutar

chmod +x archivo.sh
# Agrega permiso de ejecución para poder correrlo como ./archivo.sh

sudo apt update
# Corre "apt update" con permisos de administrador (te va a pedir tu contraseña)

Pedir ayuda sin salir de la terminal

man ls
# Abre el manual completo del comando ls

ls --help
# Muestra un resumen rápido de las opciones disponibles
A tener en cuenta: No hace falta memorizar todas las opciones de cada comando. En la práctica se aprenden con el uso, buscando comando --help cuando hace falta algo puntual.
terminalbashlínea de comandos