Apéndice B — Línea de comandos Linux/macOS

Objetivo del apéndice

El mínimo de shell que necesitas para seguir el libro: navegación, ficheros, pipes, procesos y permisos.

Navegación

pwd                       # dónde estoy
ls                        # qué hay aquí
ls -la                    # con ocultos y detalles
cd /ruta                  # cambiar de directorio
cd -                      # volver al directorio anterior
cd ~                      # ir al home

Ficheros

mkdir -p dir/sub          # crear estructura
touch file.txt            # crear/actualizar archivo
cp a.txt b.txt            # copiar
mv a.txt dir/             # mover
rm file.txt               # borrar
rm -rf dir                # borrar recursivo (cuidado)
cat file.txt              # imprimir
less file.txt             # paginar
head -20 file.txt         # primeras 20 líneas
tail -f file.txt          # últimas líneas, sigue creciendo

Pipes y redirección

ls | grep .yaml           # filtrar
cat file | sort | uniq    # encadenar
echo "hola" > file.txt    # sobreescribir
echo "adicional" >> file.txt  # añadir
cmd 2>&1                  # stderr a stdout
cmd > out.log 2>&1        # todo a un archivo

Procesos

ps aux | grep node        # procesos de node
kill PID                  # terminar proceso (SIGTERM)
kill -9 PID               # forzar (SIGKILL)
nohup cmd &               # correr en background, inmune a hangup
jobs                      # trabajos del shell actual
fg %1                     # traer a foreground

Permisos

chmod +x script.sh        # hacer ejecutable
chmod 644 file            # rw-r--r--
chmod 600 key.pem         # rw------- (privado)
chown user:group file     # cambiar dueño

SSH y claves

ssh-keygen -t ed25519 -C "tu@email.com"   # crear clave
ssh-copy-id user@host                     # subir pública
ssh user@host                             # conectar
Atajos del shell
  • :code:`Ctrl+R` — buscar en el historial.

  • :code:`Ctrl+A/E` — inicio/fin de línea.

  • :code:`Ctrl+U/K` — borrar hasta inicio/fin de línea.

  • :code:`!!` — repetir último comando.

  • :code:`sudo !!` — repetir último comando con sudo.