Prefacio

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Este libro llevará tus habilidades con la línea de comandos de Linux al siguiente nivel, para que puedas trabajar de forma más rápida, inteligente y eficaz.

Si eres como la mayoría de los usuarios de Linux, aprendiste tus primeras habilidades con la línea de comandos en el trabajo, o leyendo un libro de introducción, o instalando Linux en casa y simplemente probando cosas. He escrito este libro para ayudarte a dar el siguiente paso: desarrollar habilidades intermedias y avanzadas en la línea de comandos de Linux. Está lleno de técnicas y conceptos que espero que transformen tu forma de interactuar con Linux y aumenten tu productividad. Piensa en él como un segundo libro sobre el uso de Linux que te lleva más allá de lo básico.

La línea de comandos es la más sencilla de las interfaces, pero también la más difícil. Es sencilla porque no se te presenta nada más que un prompt, que espera a que ejecutes cualquier comando que conozcas:1

$

Es un reto porque todo lo que hay más allá de la indicación es responsabilidad tuya. No hay iconos, botones ni menús amigables que te guíen. En su lugar, cada comando que escribes es un acto creativo. Esto es cierto para los comandos básicos, como listar tus archivos:

$ ls

y comandos más elaborados como éste:

$ paste <(echo {1..10}.jpg | sed 's/ /\n/g') \
        <(echo {0..9}.jpg  | sed 's/ /\n/g') \
  | sed 's/^/mv /' \
  | bash

Si te quedas mirando el comando anterior y piensas: "¿Qué demonios es eso?" o "Nunca necesitaría un comando tan complejo", este libro es para ti.2

Lo que aprenderás

Este libro te hará más rápido y eficaz en tres habilidades esenciales:

  • Elegir o construir comandos para resolver un problema empresarial planteado

  • Ejecutar esos comandos con eficacia

  • Navegar por el sistema de archivos de Linux con facilidad

Al final, entenderás lo que ocurre entre bastidores cuando ejecutas un comando, para poder predecir mejor los resultados (y no desarrollar supersticiones). Verás una docena de métodos diferentes para lanzar comandos y aprenderás cuándo utilizar cada uno de ellos para sacar el máximo partido. También aprenderás trucos y consejos prácticos para ser más productivo, como:

  • Construir comandos complejos a partir de otros más sencillos, paso a paso, para resolver problemas del mundo real, como gestionar contraseñas o generar diez mil archivos de prueba.

  • Ahorrar tiempo organizando tu directorio personal de forma inteligente para que no tengas que buscar archivos

  • Transformar archivos de texto y consultarlos como bases de datos para alcanzar objetivos empresariales

  • Controlar las funciones de apuntar y hacer clic de Linux desde la línea de comandos, como copiar y pegar con el portapapeles, y recuperar y procesar datos web, sin levantar las manos del teclado.

Sobre todo, aprenderás buenas prácticas generales para que, independientemente de los comandos que ejecutes, puedas tener más éxito en el uso cotidiano de Linux y ser más competitivo en el mercado laboral. Este es el libro que desearía haber tenido cuando aprendí Linux.

Lo que este libro no es

Este libro no optimiza tu ordenador Linux para que funcione de forma más eficiente. Te hace más eficiente a la hora de interactuar con Linux.

Este libro tampoco es una referencia exhaustiva de la línea de comandos: hay cientos de comandos y funciones que no menciono. Este libro trata de la pericia. Enseña un conjunto cuidadosamente seleccionado de conocimientos sobre la línea de comandos en un orden práctico para desarrollar tus habilidades. Si quieres una guía de referencia, prueba mi otro libro, Linux Pocket Guide (O'Reilly).

Público y requisitos previos

Este libro asume que tienes experiencia con Linux; no es una introducción. Es para usuarios que quieran mejorar sus habilidades con la línea de comandos, como estudiantes, administradores de sistemas, desarrolladores de software, ingenieros de fiabilidad de sitios, ingenieros de pruebas y entusiastas de Linux en general. Los usuarios avanzados de Linux también pueden encontrar material útil, sobre todo si aprendieron a ejecutar comandos por ensayo y error y quieren reforzar su comprensión conceptual.

Para sacar el máximo provecho de este libro, ya deberías estar familiarizado con los siguientes temas (si no lo estás, consulta el Apéndice A para un rápido repaso):

  • Crear y editar archivos de texto con un editor de texto como vim(vi), emacs, nano, o pico

  • Comandos básicos de gestión de archivos, como cp (copiar), mv (mover o renombrar),rm (eliminar o borrar), y chmod (cambiar permisos de archivos).

  • Comandos básicos de visualización de archivos como cat (ver un archivo entero) y less (ver una página cada vez).

  • Comandos básicos de directorio como cd (cambiar de directorio), ls (listar los archivos de un directorio), mkdir (crear directorio), rmdir (eliminar directorio) y pwd (mostrar el nombre del directorio actual).

  • Los fundamentos de los shell scripts: almacenar comandos Linux en un archivo, hacer ejecutable el archivo (con chmod 755 o chmod +x), y ejecutar el archivo

  • Visualización de la documentación incorporada de Linux, conocida como páginas de manual, con el comandoman (ejemplo: man cat muestra documentación sobre el comando cat)

  • Convertirte en superusuario con el comando sudo para tener acceso completo a tu sistema Linux (ejemplo: sudo nano /etc/hosts edita el archivo del sistema/etc/hosts, que está protegido de los usuarios normales).

Si también conoces las funciones habituales de la línea de comandos, como la concordancia de patrones para nombres de archivo (con los símbolos * y ? ), la redirección de entrada/salida (< y >) y las tuberías (|), habrás empezado con buen pie.

Tu caparazón

Supongo que tu shell de Linux es bash, que es el shell por defecto de la mayoría de las distribuciones de Linux. Siempre que escribo "el intérprete de comandos", me refiero abash. La mayoría de las ideas que presento se aplican también a otros shells, comozsh o dash ; consulta el Apéndice B para ayudarte a traducir los ejemplos de este libro para otros shells. Gran parte del material funcionará sin cambios también en el Terminal Apple Mac, que ejecuta zsh por defecto pero también puede ejecutar bash.3

Convenciones utilizadas en este libro

En este libro se utilizan las siguientes convenciones tipográficas:

Cursiva

Indica nuevos términos, URL, direcciones de correo electrónico, nombres de archivo y extensiones de archivo.

Constant width

Se utiliza en los listados de programas, así como dentro de los párrafos para referirse a elementos del programa como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, sentencias y palabras clave.

Constant width bold

Muestra comandos u otro texto que debe ser tecleado literalmente por el usuario. También se utiliza ocasionalmente en la salida de comandos para resaltar texto de interés.

Constant width italic

Muestra el texto que debe sustituirse por valores proporcionados por el usuario o por valores determinados por el contexto. También se utiliza para notas breves a la derecha de los listados de código.

Constant width highlighted

Se utiliza en listados de programas complejos para llamar la atención sobre un texto concreto.

Consejo

Este elemento significa un consejo o sugerencia.

Nota

Este elemento significa una nota general.

Advertencia

Este elemento indica una advertencia o precaución.

Utilizar ejemplos de código

El material complementario (ejemplos de código, ejercicios, etc.) se puede descargar en https://efficientlinux.com/examples.

Si tienes una pregunta técnica o un problema al utilizar los ejemplos de código, envía un correo electrónico a

Este libro está aquí para ayudarte a hacer tu trabajo. En general, si se ofrece código de ejemplo con este libro, puedes utilizarlo en tus programas y documentación. No es necesario que te pongas en contacto con nosotros para pedirnos permiso, a menos que estés reproduciendo una parte importante del código. Por ejemplo, escribir un programa que utilice varios trozos de código de este libro no requiere permiso. Vender o distribuir ejemplos de los libros de O'Reilly sí requiere permiso. Responder a una pregunta citando este libro y el código de ejemplo no requiere permiso. Incorporar una cantidad significativa de código de ejemplo de este libro en la documentación de tu producto sí requierepermiso.

Agradecemos la atribución, pero en general no la exigimos. Una atribución suele incluir el título, el autor, la editorial y el ISBN. Por ejemplo "Linux eficiente en la línea de comandos por Daniel J. Barrett (O'Reilly). Copyright 2022 Daniel Barrett, 978-1-098-11340-7".

Si crees que el uso que haces de los ejemplos de código no se ajusta al uso legítimo o al permiso concedido anteriormente, no dudes en ponerte en contacto con nosotros en

Aprendizaje en línea O'Reilly

Nota

Durante más de 40 años, O'Reilly Media ha proporcionado formación tecnológica y empresarial, conocimientos y perspectivas para ayudar a las empresas a alcanzar el éxito.

Nuestra red única de expertos e innovadores comparten sus conocimientos y experiencia a través de libros, artículos y nuestra plataforma de aprendizaje online. La plataforma de aprendizaje en línea de O'Reilly te ofrece acceso bajo demanda a cursos de formación en directo, rutas de aprendizaje en profundidad, entornos de codificación interactivos y una amplia colección de textos y vídeos de O'Reilly y de más de 200 editoriales. Para más información, visita https://oreilly.com.

Cómo contactar con nosotros

Dirige tus comentarios y preguntas sobre este libro a la editorial:

  • O'Reilly Media, Inc.
  • 1005 Gravenstein Highway Norte
  • Sebastopol, CA 95472
  • 800-998-9938 (en Estados Unidos o Canadá)
  • 707-829-0515 (internacional o local)
  • 707-829-0104 (fax)

Tenemos una página web para este libro, donde se enumeran erratas, ejemplos y cualquier información adicional. Puedes acceder a esta página en https://oreil.ly/efficient-linux.

Envía un correo electrónico para comentar o hacer preguntas técnicas sobre este libro.

Para obtener noticias e información sobre nuestros libros y cursos, visita https://oreilly.com.

Encuéntranos en Facebook: https://facebook.com/oreilly

Síguenos en Twitter: https://twitter.com/oreillymedia

Míranos en YouTube: https://www.youtube.com/oreillymedia

Agradecimientos

Ha sido un placer escribir este libro. Gracias a la increíble gente de O'Reilly, especialmente a los editores Virginia Wilson y John Devins, a los editores de producción Caitlin Ghegan y Gregory Hyman, a la gestora de contenidos Kristen Brown, a la correctora Kim Wimpsett, a la editora del índice Sue Klefstad y al siempre útil equipo de herramientas. También estoy muy agradecido a los revisores técnicos del libro, Paul Bayer, John Bonesio, Dan Ritter y Carla Schroder, por muchos comentarios y críticas perspicaces. Gracias también al Grupo de Usuarios Linux de Boston por sus sugerencias sobre el título. Un agradecimiento especial a Maggie Johnson de Google por su amable permiso para escribir el libro.

Me gustaría ofrecer mi más profundo agradecimiento a Chip Andrews, Matthew Diaz y Robert Strandh, que fueron compañeros de estudios en la Universidad Johns Hopkins hace 35 años. Se dieron cuenta de mi nuevo y creciente interés por Unix y, para mi total sorpresa, me recomendaron que el Departamento de Informática me contratara como su próximo administrador de sistemas. Su pequeño acto de fe cambió la trayectoria de mi vida. (Gracias también a los creadores y mantenedores de Linux, GNU Emacs, Git, AsciiDoc y muchas otrasherramientas de código abierto: sin estas personas inteligentes y generosas, mi carrera habría sido realmente muy distinta.

Como siempre, gracias a mi maravillosa familia, Lisa y Sophia, por su amor y paciencia.

1 Este libro muestra el prompt de Linux como un signo de dólar. Tu indicador puede ser diferente.

2 Conocerás la finalidad de este mandato misterioso en el capítulo 8.

3 La versión de bash en macOS es antigua y le faltan funciones importantes. Para actualizar bash, consulta el artículo "Actualizar Bash en macOS" de Daniel Weibel.

Get Linux eficiente en la línea de comandos now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.