Con Terminal en macOS, introducción a la shell zsh, comienzo una serie de artículos semanales en los que hablaré sobre el uso de linea de comando en la app Terminal.
En primer lugar, el interface de linea de comando (CLI) permite acceder a archivos y configuraciones no disponibles desde el Finder, desde el interface gráfico. Así como tener un mayor acceso al sistema de archivos, a configuraciones, a ordenadores remotos vía SSH, a usar herramientas específicas para el CLI y scripts para automatizar tareas.
Terminal en macOS
Empecemos definiendo qué es la app Terminal, qué es una shell y qué son los comandos.
¿Qué es la app Terminal?
Es una aplicación que permite escribir y confirmar comandos que la shell interpreta y ejecuta, mostrando la salida o resultado de los mismos.
De manera que la app Terminal siempre funciona junto con un programa shell definido en el sistema macOS.
¿Qué es una shell?
Una shell es el programa que interpreta y ejecuta los comandos introducidos en la app Terminal.
La mayoría de los sistemas UNIX utilizan las mismas shell y los mismos comandos de Terminal.
El sistema operativo macOS es un sistema UNIX, basado NeXTSTEP que a su vez estaba basado en las BSD de UNIX.
Tipos de shell
Existen muchos programas shell diferentes para ejecutar comandos de Terminal.
Las shells que pueden utilizarse en macOS Big Sur son:
bash, GNU Bash o Bourne-Again Shell es una implementación GNU de la shell bsh, desarrollada por Stephen Bourne en Laboratorios Bell de AT&T en 1978.
La shell bash fue desarrollada por GNU en 1989.
csh o C shell, desarrollada por Bill Joy en la Universidad de Berkeley.
Se distribuyó por primera vez en 1979 junto con las BSD.
dash o Debian Almquist shell es una implementación GNU de la shell Almquist Shell o ash de las BSD.
Desarrollada por Herbert Xu a principios de 1997, adoptando el nombre dash en 2002.
ksh o Korn shell, desarrollada por David Korn en en los Laboratorios Bell de AT&T en 1980.
sh, desarrollada por Ken Thompson en 1971 en los Laboratorios Bell de AT&T.
Es uno de las primeros desarrollos de shell que, 50 años después, continúa utilizándose.
tcsh o TENEX shell, desarrollada por Ken Greer entre finales de los años 70 y principios de los años 80.
Es una mejora de la shell csh y en 1984 reemplazo a esta en las FreeBSD.
zsh, desarrollada por Paul Falstad en 1990, cuando era estudiante en la Universidad de Princeton, como actualización y reemplazo de la shell bsh o Bourne Shell.
A lo largo de la vida del sistema operativo macOS (Mac OS X, OS X y macOS) se han utilizado las shells tcsh, bash y zsh.
Apple utiliza, en las últimas versiones del sistema operativo macOS (macOS 10.15 Catalina y macOS 11 Big Sur), la shell zsh que reemplaza a la shell bash.
¿Cómo cambiar la shell en macOS?
Se puede cambiar la shell en macOS desde las preferencias de la app Terminal, con el comando chsh
y desde las Opciones avanzadas de Preferencias del Sistema, Usuarios y grupos.
1 – Preferencias de la app Terminal:
En Preferencias de la app Terminal, se puede cambiar la opción «Las shell se abren con: Shell de inicio de sesión por omisión» por la opción «Las shell se abren con: Comando (ruta completa)» que cambiará la shell zsh, shell por defecto en macOS Big Sur, a la shell especificada en la ruta /bin/nombre_de_la_shell.
El directorio /bin es un directorio oculto en el interface gráfico de macOS y contiene binarios ejecutables, entre los que se encuentran todas las shell que se pueden utilizar en macOS Big Sur.
2 – Comando chsh
desde la app Terminal:
Desde la app Terminal se pueden listar todas las shells disponibles en macOS Big Sur con el comando cat /etc/shells
.
Para cambiar la shell desde la app Terminal se utiliza el comando chsh -s /bin/nombre_de_la_shell
.
3 – Opciones avanzadas de Preferencias del Sistema, Usuarios y grupos:
Preferencias del Sistema, Usuarios y grupos, hacer clic con el botón derecho del ratón sobre la cuenta del usuario activo y aparece el diálogo Opciones avanzadas…
Estas opciones avanzadas muestran datos de la «cabecera» del servicio de directorio local para la cuenta del usuario seleccionado, entre los que se encuentran la posibilidad de indicar la Shell de inicio de sesión para este usuario.
¿Qué son los Comandos de Terminal?
Los Comandos son conjunto de parámetros que se utilizan para administrar y configurar el sistema operativo, así como para ejecutar tareas específicas en entornos UNIX por medio de una shell (intérprete de comandos).
La ventana de la app Terminal
Lo primero que se puede observar, en la venta de la app Terminal, es el prompt que describe la información que Terminal imprimirá antes de que pueda introducir un comando.
Se llama prompt al carácter o conjunto de caracteres que se muestran en una línea de comandos para indicar que está a la espera de órdenes, de la ejecución de un comando.
En el caso de macOS (sistema UNIX) la ventana de Terminal y el prompt tienen el siguiente aspecto:
Last login: Tue May 4 17:08:50 on ttys000
Muestra la fecha y hora en la que se ha iniciado sesión en la app Terminal, así como el nombre que recibe esta Terminal.
En este caso, Terminal recibe el nombre de ttys000 (/dev/ttys000).
joaquinsanzboixader@iMac-de-Joaquin ~%
Muestra el nombre del usuario que ha iniciado sesión, el nombre del ordenador (host) en el que se ha ha iniciado sesión y en que directorio nos encontramos.
En este caso, se ha iniciado sesión con el usuario joaquinsanzboixader, en el ordenador iMac-de-Joaquin y nos encontramos el directorio del usuario joaquinsanzboixader, en su Home.
El símbolo ~ hace referencia a la Home del usuario que ha iniciado sesión en Terminal, a la ruta /Users/joaquinsanzboixader. Y el símbolo % es el final del prompt e indica que se está a la espera de un nuevo comando.
Si quieres saber mucho más sobre introducción a Terminal en macOS, y todos los temas técnicos relacionados con macOS y macOS Server, suscríbete a mis cursos.
Puedes consultar la metodología de los cursos aquí.
Además, mis cursos de formación técnica macOS te proporcionan el conocimiento necesario para superar las Certificaciones Oficiales de Apple.
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.