Prefacio a la Guía de aprendizaje rápido sobre secuencias de comandos de Shell
Cuando los usuarios y programadores que acaban de empezar a utilizar UNIX (Nota 1) se enfrentan de repente a una variedad de programas, tendrán muchas preguntas, como "¿Cuáles son sus funciones" y "¿Cómo uso?" ¿Usarlos?”
Este libro puede responder estas preguntas por usted. Le indicará cómo combinar herramientas UNIX y combinarlas con el Shell estándar para completar el trabajo. Escribir scripts de Shell es un arte. Requiere no sólo un conocimiento relevante del lenguaje Shell, sino también una comprensión básica de cada programa UNIX independiente: por qué existen estas herramientas, cómo usarlas simplemente y cómo combinarlas con otros programas. Aplicaciones combinadas.
¿Por qué necesita aprender a escribir comandos de Shell? Porque en la mayoría de los casos, los problemas medianos y grandes se pueden dividir en partes más pequeñas, y la mayoría de estas partes pequeñas pueden manejarse mediante UNIX ya preparado. herramientas. Un script de shell bien escrito a menudo puede resolver el mismo problema más rápido que un programa escrito en C o C++. Los scripts de Shell también se pueden crear para proporcionar portabilidad, es decir, se pueden utilizar en sistemas compatibles con UNIX y POSIX, a veces con sólo modificaciones menores, o incluso sin modificaciones. .
Cuando hablamos de programas UNIX, utilizamos la palabra herramienta. La solución de problemas con el enfoque de la caja de herramientas de UNIX se conoce desde hace mucho tiempo como la filosofía de las "herramientas de software" (Nota 2).
La navaja suiza es una buena ayuda en el bolsillo de muchas personas. Tiene herramientas como la hoja de un cuchillo, un destornillador, un abrelatas, un palillo y más. Para funciones más completas, existen otras herramientas como sacacorchos y lupas. Hay muchos usos para una navaja suiza y, si bien es excelente para recortar y tallar de forma sencilla, nunca la usarías para construir una casa para perros o crear un comedero para pájaros. En su lugar, buscará herramientas más especializadas para este tipo de trabajo, como martillos, sierras, abrazaderas o cepillos. Del mismo modo, cuando resuelves problemas programáticos, es mejor utilizar herramientas de software especializadas.
¿Para quién es este libro?
Este libro está escrito para usuarios de computadoras y desarrolladores de software que consideran necesario escribir algunos scripts Shell en un entorno UNIX para facilitar su trabajo. Por ejemplo, es posible que sea un estudiante de informática y la escuela le haya otorgado su primera cuenta del sistema UNIX. Desea saber más sobre UNIX, como aquellas tareas que su computadora personal con Windows no puede realizar (esto en este caso, normalmente tienes que escribir varios scripts para personalizar tu entorno). O bien, es posible que sea un principiante en la administración de sistemas y necesite escribir varios programas especiales para su empresa o escuela (tal vez para manejar archivos de registro de eventos, administración de cuentas y facturas, etc.). Puede que también seas un veterano en el desarrollo de Mac OS, pero al pasar al nuevo mundo de Mac OS X, su programa de instalación está escrito en scripts de Shell. No importa de dónde vengas, si quieres aprender a utilizar scripts de shell, este libro es para ti. En este libro podrá aprender:
Conceptos y principios de diseño de herramientas de software
Algunas reglas prácticas para un buen diseño de herramientas de software y ejemplos. Explicamos estos principios y los implementamos a lo largo de este libro.
¿Qué son las herramientas de UNIX?
El conjunto de herramientas principales de UNIX se reutilizará continuamente cuando escribimos scripts de Shell. Introduciremos los conceptos básicos de Shell y las expresiones regulares, y demostraremos el uso de varias herramientas básicas para resolver problemas específicos. Además de explicarte lo que puede hacer la herramienta, también te diremos por qué deberías usarla y por qué tiene estas opciones especiales.
El libro "Aprender UNIX" es una introducción al sistema UNIX, que le permitirá pasar de no tener experiencia con UNIX a ser un usuario que conoce las operaciones básicas. El libro "UNIX en pocas palabras" proporciona una introducción extensa al conjunto de herramientas de UNIX, con muy poca introducción sobre cuándo usarlo y cómo usar herramientas específicas. Nuestro propósito es cerrar la brecha entre estos dos libros: cómo utilizar de manera flexible estos kits de herramientas proporcionados por UNIX para hacer el trabajo más fluido, más eficiente y más tranquilo (nuestra expectativa).
Cómo combinar todas las herramientas para realizar el trabajo
Al escribir scripts de Shell, en realidad "el todo es más poderoso que la suma de sus partes".
El uso de Shell es como el pegamento que integra herramientas individuales, permitiéndote obtener resultados sorprendentes siempre que le dediques un poco de atención.
Varias extensiones comunes a herramientas estándar
Si ya eres usuario de sistemas GNU/Linux o BSD, es probable que tu herramienta cuente con otras funciones u opciones adicionales y útiles. También presentaremos esta parte.
Herramientas no estándar indispensables
Algunos programas no son "estándar" en la mayoría de los sistemas UNIX tradicionales, pero no podemos vivir sin ellos. Los presentaremos cuando corresponda y brindaremos información sobre cuándo usarlos.
Para los desarrolladores y administradores que han estado usando UNIX durante mucho tiempo, los principios de diseño de las herramientas de software no han cambiado mucho. Por lo tanto, aunque los libros promocionados todavía se pueden utilizar, no se han actualizado en 20 años, ¡e incluso más! El sistema UNIX ha sufrido muchos cambios desde que se escribieron estos libros. Por lo tanto, sentimos que era hora de actualizar estas ideas y demostrar ejemplos utilizando versiones actuales de estas herramientas y en los sistemas actuales. Estas son las partes que enfatizaremos:
Todas las presentaciones están basadas en POSIX. POSIX es una abreviatura de una serie de nombres oficiales estándar que describen entornos de sistemas operativos portátiles. El estándar POSIX es un desafío para los desarrolladores, quienes deben tener en cuenta la portabilidad de los programas y scripts de shell en varias plataformas proporcionadas por diferentes proveedores. Presentaremos el lenguaje Shell, varios programas de herramientas y sus opciones bajo el último estándar POSIX