Una introducción a la concha de pescado
Llevo usando el Fish Shell durante meses y creo que es el mejor que he usado nunca. Por muchas razones.
La gente parece preferir Bash, que es el valor predeterminado en muchos sistemas (actualización: ahora el valor predeterminado de macOS es Zsh) o usar Zsh, con una gran herramienta como Oh My Zsh para hacerlo aún más sorprendente.
Bash, aunque es genial, es un shell muy básico, con un conjunto limitado de opciones configurables. Suelo usarlo principalmente para ejecutar scripts de Bash (que son otro tema) en lugar de como un shell interactivo. Zsh ofrece muchas funciones, pero requiere un poco de configuración para su instalación, lo que puede asustar a los principiantes. Además, demasiadas opciones y libertad significa que puedes quedar paralizado por la configuración con bastante facilidad y terminas cambiando las opciones 20 veces en una semana para asegurarte de que no te estás perdiendo nada.
No quiero criticar esos proyectos, que son increíbles y que utilicé durante mucho tiempo y, a veces, todavía utilizo. Esta descripción es mi intento de destacar los beneficios de Fish
¡Fish Shell al rescate! Este shell ofrece un entorno asombroso y una configuración completa desde el primer momento.
Mis características favoritas de Fish son:
- Tiene mejores funciones de autocompletar para comandos ya ejecutados y esto por sí solo realmente hace que mi día a día sea más rápido y menos estresante.
- Comienza a escribir un comando y presiona la
up
tecla para ver todas las veces en el historial del shell donde usaste ese comando anteriormente. - Puedes instalar Fish en cualquier sistema y funciona de la misma manera en todas partes, sin tener que personalizar demasiado para obtener cosas sofisticadas.
En lo que respecta a la creación de scripts, es bastante diferente de los scripts de Bash (en un mejor sentido, en mi humilde opinión), pero puedes ejecutar cualquier script de Bash siempre que tenga el prefijo #!/bin/bash
.
Inmediatamente después de la instalación obtendrás estas cosas interesantes:
- resaltado de sintaxis
- Un buen mensaje
- autocompletado
- Sugerencia de parámetros con sugerencias de páginas de manual
- configuración basada en web
y en mi opinión es el shell más amigable para principiantes.
Una de las cosas más curiosas que recuerdo fue la página de inicio. Al principio no podía entender si se trataba de una especie de reliquia del pasado:
Para aquellos pocos afortunados que disponen de una computadora gráfica, pueden configurar sus colores y ver funciones, variables e historial, todo desde una página web.
Entonces me di cuenta de que era humor de programador y me hizo reír. La tecnología siempre debería ser divertida, ¿no?
Primero lo primero: ¿qué es un shell?
Un shell es una interfaz con el sistema operativo subyacente. Permite ejecutar operaciones mediante texto y comandos, y ofrece a los usuarios funciones avanzadas como la posibilidad de crear scripts.
Instalación
Instalar Fish ejecutándolo brew install fish
en macOS.
Consulta mi guía de terminal macOS
fish
está instalado en /usr/local/bin/fish
.
Dado que es probable que esto ya esté en tu camino, corre fish
para iniciar el shell Fish (escribe exit
para volver a tu shell predeterminado)
Configuración
Una de las ventajas de Fish es que se puede configurar desde la web. Ejecútalo fish_config
para iniciar el cliente web.
Desde aquí puedes
- Elija un esquema de colores de una lista de esquemas predefinidos
- Elija una indicación de una lista de indicaciones predefinidas
- Inspeccionar las funciones y variables de Fish configuradas
- ver el historial de comandos
La configuración se almacena en la ~/.config/fish
carpeta, y allí es donde puedes editarla sin tener que usar la configuración basada en web (opcional).
Características de Fish: resaltado de sintaxis, autocompletado y sugerencia de parámetros con sugerencias en páginas de manual
Fish le permite ejecutar los comandos Unix habituales disponibles en su sistema. Operaciones del sistema de archivos, por ejemplo:
ls
para listar archivoscd
para cambiar de carpetarm
para eliminar un archivo o carpetamv
para mover un archivo a otra carpeta o cambiar el nombre de un archivocp
copiar un archivo
Si ejecutas uno de esos comandos (o any
comando, en realidad) comenzarás a ver que las palabras que escribes adquieren diferentes colores. Esto hace que sea muy fácil leer y comprender los comandos.Te recomendamos Mejores Alfombras de Hidromasajes
Fish también agrega la función de autocompletar. Si ejecutó el programa cd ~/.config/fish/
anteriormente y ahora escribe cd
, Fish le sugerirá comandos que podría querer escribir y solo tendrá que presionar la flecha derecha para aceptar la sugerencia (o puede continuar escribiendo para cambiar el comando). Esta sugerencia se basa en el historial de comandos y las rutas de archivo.
Las sugerencias basadas en el autocompletado también funcionan para los comandos. Aquí escribí c
y presioné la tecla tabulador:
Fish también sugiere parámetros y cómo utilizarlos. Escribe ls -
y pulsa tab
. A continuación se muestra una lista de los parámetros que puedes utilizar y su significado:
Esta ayuda en línea se genera a partir de páginas de manual y la útil ayuda del shell (intente ejecutar man ls
para obtener la ayuda completa).
Establecer Fish como el shell predeterminado
Si te gusta Fish una vez que lo pruebas y quieres convertirlo en tu shell predeterminado, abre el archivo /etc/shells
. Yo suelo pico
hacer esas pequeñas ediciones de archivos con pico /etc/shells
, pero puedes usar cualquier editor que prefieras, incluso VS Code con code /etc/shells
.
Debería contener algo similar a lo siguiente:
# List of acceptable shells for chpass(1).# Ftpd will not allow users to connect who are not using# one of these shells./bin/bash/bin/csh/bin/ksh/bin/sh/bin/tcsh/bin/zsh
Agregue esta línea al final para agregar la carcasa de pescado:
/usr/local/bin/fish
A continuación, corre
chsh -s /usr/local/bin/fish
Ingrese su contraseña y el shell cambiará para su usuario.
Complementos
Puedes instalar complementos de Fish.
Fisher es un popular administrador de paquetes de Fish.
Instalarlo usando
curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish
y está disponible con el fisher
comando.
Ahora se puede instalar un paquete usando fisher add github-repository-path
y eliminarlo usando fisher rm github-repository-path
.
Enumere todos los complementos instalados mediante fisher ls
.
Ejecutar fisher
para actualizar todos los paquetes que instalaste.
Los complementos populares son
edc/bass
Hacer que las utilidades de Bash sean utilizables en Fishjorgebucaran/fnm
Administrador de versiones de Node.js
Aquí hay una lista de paquetes que puedes instalar.
Cumplimiento de POSIX
Varios shells cumplen con el estándar de comando de shell POSIX.
POSIX significa
- Portátil
- Operante
- Sistema
- Interfaz
- X (para Unix)
y es un estándar que pretende unificar los distintos entornos Unix que se han creado a lo largo del tiempo. Existe un subconjunto estándar de comandos de shell, que pretende ser una forma de unificar el funcionamiento de los shells de Unix.
Unix es una especificación o estándar para una familia de sistemas operativos. Linux y macOS se basan en Unix (Windows no ).
bash
y ksh
otros son compatibles con POSIX. La compatibilidad con POSIX hace que los scripts escritos con compatibilidad con POSIX funcionen en todos los shells compatibles con POSIX.
Fish (como sh
por csh
ejemplo) no es compatible, por lo que no es un shell POSIX, y esto significa que escribir comandos y scripts para Fish es diferente . Los scripts escritos para Fish no funcionarán fuera de Fish. Al igual que csh
los scripts solo funcionan en csh (y derivados).
¿Por qué es diferente? Hay varias razones, pero imagino que tener que soportar POSIX significa que el shell debe adherirse a un lenguaje común que podría interferir con la filosofía y la forma de trabajar del shell. No todos quieren tener ese bagaje de tecnología que soportar para siempre.
Muy raramente esto será un problema al ejecutar comandos, pero debes tenerlo en cuenta cuando se trata de crear scripts y programar.
Tips de línea de comandos de Linux
Tal vez te puede interesar:
- Introducción a React
- Agregar evento de clic a los elementos DOM devueltos desde querySelectorAll
- Cómo cambiar el valor de un nodo DOM
- Cómo comprobar si un elemento DOM tiene una clase
La concha de pescado
Primero lo primero: ¿qué es un shell?InstalaciónConfiguraciónCaracterísticas de Fish: resaltado de sintaxis, autocompletado y sugerencia de parámetros co
programar
es
2025-01-17
Si crees que alguno de los contenidos (texto, imagenes o multimedia) en esta página infringe tus derechos relativos a propiedad intelectual, marcas registradas o cualquier otro de tus derechos, por favor ponte en contacto con nosotros en el mail [email protected] y retiraremos este contenido inmediatamente