Conchas Unix / Linux 101

Autor: Eugene Taylor
Fecha De Creación: 11 Agosto 2021
Fecha De Actualización: 22 Junio 2024
Anonim
Introduction to UNIX | UNIX Tutorial for Beginners | UNIX Training | Edureka
Video: Introduction to UNIX | UNIX Tutorial for Beginners | UNIX Training | Edureka

Contenido



Fuente: Tomasz Bidermann / Dreamstime.com

Para llevar:

Los shells de Unix y Linux son muy potentes y extremadamente personalizables.

La línea de comando en los sistemas Unix y Linux ya es muy poderosa, pero los shells son una herramienta aún más poderosa de lo que parece. Puede personalizarlos y cambiarlos al contenido de su corazón, siempre que sepa cómo hacerlo.

¿Qué es un caparazón?

Casi todos los manuales de Unix y Linux tienen el diagrama estándar de un shell que envuelve el sistema operativo, parecido a una especie de barra de chocolate. El shell realmente no es más que una interfaz entre el sistema operativo, incluido el núcleo, el sistema de archivos y las diversas llamadas del sistema y el usuario. Durante muchos años, fue la única interfaz de usuario interactiva antes de que las interfaces gráficas de usuario se volvieran comunes en la década de 1980. Las interfaces gráficas de usuario también podrían considerarse un tipo de shell, ya que cumplen muchas de las mismas funciones: iniciar programas, configurar el sistema y administrar archivos.

Estas interfaces de base humilde tienen una sorprendente potencia. Por un lado, son lenguajes de programación completos. Antes de la aparición de lenguajes de script aún más potentes como Python, los scripts de shell eran ideales para escribir programas que no necesitaban necesariamente el poder de C. Todavía son útiles para automatizar las tareas del sistema y para la creación rápida de prototipos.

También tienen una serie de características que facilitan el trabajo y la búsqueda de archivos. Uno de los más utilizados es "wildcarding" o "globbing". Casi todos los usuarios de Unix y Linux están familiarizados con el comodín "*" para que coincida con cualquier carácter. Este es en realidad el trabajo del shell. Diferentes proyectiles tienen opciones aún más poderosas.

Una de las características distintivas de Unix es la capacidad de redirigir la entrada y salida del programa. El shell implementa esta funcionalidad.

El shell es solo otro programa, por lo que es posible que cualquier programador con las habilidades adecuadas pueda crear uno. Ha habido varios proyectiles importantes que han surgido a lo largo de los años.

Historia y un resumen de proyectiles

Aunque hubo varios shells Unix en los primeros días del sistema operativo, el primero en obtener un reconocimiento importante fuera de Bell Labs fue Bourne Shell, llamado así por Stephen R. Bourne. La principal innovación de los shells fue que admitía funciones para la programación estructurada, lo que hacía posible por primera vez usar el shell como un lenguaje de programación real. Es tan indispensable que todas las versiones modernas de Unix y Linux todavía lo usan, aunque generalmente es uno de los shells más nuevos que emulan el shell Bourne.

El siguiente caparazón principal fue el C Shell, comúnmente abreviado como "csh". Este shell fue desarrollado en UC Berkeley, convirtiéndose en un componente importante del sabor BSD de Unix. Como su nombre indica, su sintaxis está diseñada para parecerse al lenguaje de programación C, pero en realidad fue diseñada para uso interactivo.

Incluía un mecanismo de historial que permitía a los usuarios regresar y repetir cualquier comando que emitieran antes sin tener que volver a escribir una línea completa y mejorar el control del trabajo, lo que facilitaba la ejecución de múltiples tareas. (Recuerde, este era un momento en que la mayoría de la gente todavía usaba terminales basadas en).

El siguiente caparazón importante fue el Korn Shell, que también salió de los Laboratorios Bell. La concha lleva el nombre de David Korn, no la banda, por cierto. La principal innovación del shell Korn es la introducción de la edición de línea de comandos, que amplía aún más la funcionalidad del historial. Los usuarios pueden regresar y editar los comandos que han escrito usando comandos similares a los editores vi o Emacs.

De los principales shells, el Bourne Again Shell, o bash, es el más popular desde su introducción a finales de los 80. Este shell, desarrollado como parte del proyecto GNU, incorpora las innovaciones de los shells C y Korn, manteniendo la compatibilidad con el shell Bourne, de ahí su nombre. Es el shell "estándar" en la mayoría de las distribuciones de Linux.

El Z Shell (zsh), lanzado por primera vez en 1990, es el sueño de un usuario de línea de comandos. No solo tiene la mayoría de las otras características principales que tienen los otros shells, sino que es increíblemente personalizable con muchas características potentes. Uno de los más potentes es el globbing recursivo, que permite a los usuarios hacer coincidir los nombres de archivo en subdirectorios al emitir comandos en lugar de archivos en el directorio de trabajo actual. Los usuarios realmente avanzados también pueden personalizar las opciones de finalización, haciendo coincidir los archivos sin tener que escribirlos completamente. Y para los mecanógrafos de dedos gordos, también puede corregir su ortografía. Este shell es tan avanzado que su página de manual se ha dividido en varias secciones muy largas.

Scripting

Como se mencionó anteriormente, los shells no son solo interfaces de línea de comandos, sino potentes lenguajes de programación. La belleza de las secuencias de comandos de shell es que puede usar el mismo lenguaje tanto en el uso interactivo regular como en las secuencias de comandos, lo que hace que la curva de aprendizaje sea mucho más plana. Los shells modernos incluyen todas las características habituales del lenguaje de programación, incluido el control de flujo, funciones y variables. Algunos de ellos incluso tienen estructuras de datos avanzadas como matrices asociativas.

A pesar de su poder, la programación en shells tiene algunos inconvenientes. El mayor problema es que es demasiado fácil escribir scripts que dependen de algún programa que puede no estar en otro sistema, o que depende de un sabor particular de Unix o Linux. Es por eso que los scripts de shell son más adecuados para los programas que sabe que solo se ejecutarán en un sistema. Si está intentando construir algo portátil y no quiere escribir un programa en C, su mejor opción es escribir en otro lenguaje de script como Perl o Python.

Un vistazo bajo el capó de la línea de comandos de Unix / Linux

Hay más poder al acecho debajo de la superficie de su línea de comando Unix / Linux. Este artículo puede inspirarte a echar un vistazo debajo del capó de tu caparazón favorito para ver lo que realmente puedes hacer. Si desea entrar en el script de shell, puede consultar los libros Unix Power Tools y Learning the Bash Shell. El artículo original de Stephen R. Bournes sobre su shell también sirve como una buena introducción al mundo de los scripts de shell, incluso si es antiguo.