Comprender los diferentes Shell en Linux: Korn Shell

Por defecto, cuando hablamos de un shell en Linux, la mayoría de la gente piensa en Bash. Es cierto que es el caparazón más difundido y posiblemente uno de los más simples para empezar, pero también hay muchos otros caparazones que anhelan su atención. Hoy pasaremos por otra concha muy famosa: la Concha Korn (“ksh” para los íntimos).

Historia

En un principio, se consideró que Korn Shell era la alternativa comercial a Bash Shell. Desarrollado en 1983 por David G. Korn para AT&T Bell, el Korn Shell se inspiró en la interactividad del C shell y la eficacia del Bourne Shell. Se actualizó en 1986, luego en 1988 y finalmente se lanzó Open Source en 1993. Sin embargo, antes de eso, dado que Korn Shell era un producto comercial, se creó una alternativa gratuita en 1987, llamada Public Domain Korn Shell. Este pdksh que aún puede usar hoy en día se basa principalmente en el ksh de 1998 y 1993. Desde la perspectiva actual, Bash y Korn son bastante similares y compatibles. De hecho, ambos descienden del mismo antepasado. Sin embargo, la interacción es ligeramente diferente y algunas de las técnicas de secuencias de comandos deben revisarse al pasar de una a otra.

Instalación

Ahora que sabe más sobre ksh, vamos a instalarlo. Para Ubuntu, la instalación es bastante simple:

Si está utilizando otra distribución, puede consultar sus repositorios. En el peor de los casos, descargue el paquete de Página de descarga oficial de AT&T.

Una vez que se instala el paquete, puede iniciar un Korn Shell desde cualquier terminal mediante el comando:

Si realmente te gusta este caparazón y quieres que reemplace el actual, puedes hacerlo escribiendo

sudo usermod -s /bin/ksh [user name]

Uso

Como dije antes, el Korn Shell está cerca del Bash Shell. Pero antes de intentar nada, debes saber que ksh puede imitar el comportamiento de tu editor de texto favorito. Eso es lo primero que hará que te guste u odies a Korn. Para ser más claro, puede configurar su shell para que tenga los mismos accesos directos y funciones que un editor de texto no gráfico de su elección. Para ver una lista de los editores disponibles en su sistema, use este comando de ksh:

Por mi parte, prefiero usar Vi. Por lo tanto, hice

A partir de ese momento, ksh se comportará de la misma manera que vi. Y por supuesto, para aquellos de ustedes que saben todo acerca de Emacs, en su lugar

Por el bien de este artículo, continuemos con Vi. Ahora tiene acceso a cualquier acceso directo y comandos que normalmente usa con Vi. Solo recuerda usar la clásica tecla “Esc” antes. Por ejemplo,

  • Puedes borrar una línea con «dd»
  • Saltar a la siguiente palabra con “e”
  • Pegar con «p»
  • Borrar un caracter con «x»
  • Etc

Vamos a la parte interesante, el autocompletado y la ayuda interactiva.

Con Bash, puede completar automáticamente un comando presionando dos veces la tecla de tabulación. Esto no funcionará en todas las situaciones con ksh. En cambio, si configura Vi, puede hacer «Esc + \». Si tiene Emacs, haga «Esc + Esc». Y si desea ver todas las posibilidades para la situación actual, use “Esc + =» con Vi y Emacs. Esto mostrará una lista de elementos entre los que puede elegir.

finalización de ksh

Además, el historial de comandos sigue siendo accesible. Con la interfaz Vi, puede usar la tecla «k» para subir en el historial y «j» para bajar. Y mueve el cursor con la tradicional “h” para la izquierda y “l” para la derecha. Desde una perspectiva de Emacs, «Ctrl + p» para subir en el historial y «Ctrl + n» para bajar. Y para mover el cursor: “Ctrl + f” para la derecha, y “Ctrl + b” para la izquierda.

Ahora hablemos de secuencias de comandos. Para el usuario de lambda, Korn Shell se asemeja a Bash Shell. Sin embargo, existen más diferencias sobre la sintaxis al escribir scripts.

  • Reemplazar «#! /bin/bash” con “#! /bin/ksh” (esto es bastante obvio, lo sé)
  • La extensión de los scripts debe ser “.ksh”
  • Ya no hay comandos «habilitar» o «declarar»
  • Puede usar «imprimir» junto con «eco»

impresión ksh

  • Use “-eq” en lugar del tradicional “==” en las declaraciones if
  • Las condiciones para los bucles y las declaraciones if deben estar entre corchetes dobles «[[ condition]]”
  • Todas las apariciones de “$[expression]” debe ser reemplazado por “$((expresión))”
  • Las funciones se pueden declarar simplemente con «function_name ()»
  • Se puede crear una tabla a través de la sintaxis única
    set -A [table's name] [value 1] [value 2] … [value n]
  • El comando «leer» se puede usar de una manera nueva
    read [variable]?”[message to display]”

ksh-leer

Debe investigar un poco para evitar estas diferencias menores. Un gran recurso es el preguntas frecuentes oficiales página.

Conclusión

Como puede ver, Bash y Korn son bastante similares. Si bien la interfaz puede ser ligeramente diferente y los guiones deben adaptarse en algunos casos, el espíritu sigue siendo el mismo. No deberías tener ningún problema para ir de uno a otro. No obstante, si lo haces, te invito a consultar página del manual de ksh. Como desafío personal, puede probar pdksh que aún no he probado y publicar sus comentarios aquí.

Creo que eso es todo para el Korn Shell. La próxima vez exploraremos Zsh Shell, el shell con la función de finalización automática más impresionante que he visto hasta ahora.

¿Qué opinas del Korn Shell? ¿Has probado con otro? ¿Tiene alguna pregunta sobre las conchas? Por favor, háganos saber en los comentarios.

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *