Cómo instalar Fish, un intérprete ‘inteligente’ de comandos para Gnu/Linux/Hurd y *BSD
Fish es un intérprete de línea de comandos (como bash y zsh), inteligente (en el sentido de que se retroalimenta del entorno y de los hábitos del usuario) e intuitivo. fish cuenta con potentes características como el resaltado de sintaxis, sugerencias automáticas, completado por tabulación más eficaz y sin tener nada que aprender ni nada que configurar.
Si quieres hacer que tu línea de comandos sea más productiva, más útil y más divertida sin tener que aprender un montón de sintaxis arcana u opciones de configuración, ¡puede que fish sea justo lo que estás buscando!
¿Por qué hay quien usa fish en lugar de otros intérpretes de comandos?
- Sugerencias automáticas. fish sugiere comandos según vas escribiéndolos basándose en el historial de comandos usados anteriormente, igual que un navegador web.
- Guiones coherentes. fish es totalmente guionizable, y su sintaxis es sencilla, clara y consistente. Nunca volverás a escribir
esac
. - Completado desde las páginas de _man*. Otros intérpretes permiten la programación de completado automático, pero sólo fish genera ese completado basándose en el contenido de las páginas de man instaladas en el sistema.
- Colores VGA. fish soporta de forma nativa term256, ¡tendrás disponibles 256 asombrosos colores para usarlos!
- Configuración basada en la _web*. Puedes configurar los colores y ver las funciones, las variables y todo el historial de uso a través de tu navegador web.
- Instalar y listo. Podrás disfrutar de todas las funcionalidades de fish como el completado por tabulación, las sugerencias basadas en el historial y en las instrucciones contenidas en las páginas de man, sin aprender nada nuevo ni nada que configurar.
Siguiendo las siguientes instrucciones podrás instalar fish en
- Debian y otras distribuciones ‘.deb’ ,
- Ubuntu y distribuciones derivadas ,
- Fedora ,
- CentOS ,
- RedHat ,
- openSUSE ,
- Arch, Manjaro y otras distribuciones ‘AUR’ ,
- Gentoo y
- FreeBSD
Éstas también contemplan una configuración básica y cómo volver al intérprete de comandos bash (temporalmente o permanentemente).
Instalando fish en Debian y otras distribuciones ‘.deb’
Añade el repositorio y descarga e instala el certificado de seguridad a apt:
~$ su -
Para Debian 8
~# echo 'deb http://download.opensuse.org/repositories/shells:/fish:/release:/2/Debian_8.0/ /' >> /etc/apt/sources.list.d/fish.list
~# wget http://download.opensuse.org/repositories/shells:fish:release:2/Debian_8.0/Release.key
~# apt-key add - < Release.key
Para Debian 7
~# echo 'deb http://download.opensuse.org/repositories/shells:/fish:/release:/2/Debian_7.0/ /' >> /etc/apt/sources.list.d/fish.list
~# wget http://download.opensuse.org/repositories/shells:fish:release:2/Debian_7.0/Release.key
~# apt-key add - < Release.key
Para Debian 6
~# echo 'deb http://download.opensuse.org/repositories/shells:/fish:/release:/2/Debian_6.0/ /' >> /etc/apt/sources.list.d/fish.list
~# wget http://download.opensuse.org/repositories/shells:fish:release:2/Debian_6.0/Release.key
~# apt-key add - < Release.key
Actualiza el sistema:
~# apt-get update
~# apt-get upgrade
Instala fish:
~# apt-get install fish
~# exit
Haz de fish tu intérprete de comandos por defecto:
~$ chsh -s /usr/bin/fish
Si quieres convertir a fish en el intérprete de comandos por defecto de otro/a usuario/a:
~$ su -c 'chsh -s /usr/bin/fish nombre-de-usuario'
Instalando fish en Ubuntu y distribuciones derivadas
Añade el repositorio PPT a apt:
~$ sudo apt-add-repository ppa:fish-shell/release-2
Actualiza el sistema:
~$ sudo apt-get update
~$ sudo apt-get upgrade
Instala fish:
~$ sudo apt-get install fish
Haz de fish tu intérprete de comandos por defecto:
~$ chsh -s /usr/bin/fish
Si quieres convertir a fish el intérprete de comandos de otro/a usuario/a:
~$ sudo chsh -s /usr/bin/fish nombre-de-usuario
Instalando fish en Fedora
Añade el repositorio a yum:
~$ su -
~# cd /etc/yum.repos.d/
Para Fedora 23
~# wget http://download.opensuse.org/repositories/shells:fish:release:2/Fedora_23/shells:fish:release:2.repo
Para Fedora 22
~# wget http://download.opensuse.org/repositories/shells:fish:release:2/Fedora_22/shells:fish:release:2.repo
Para Fedora 21
~# wget wget http://download.opensuse.org/repositories/shells:fish:release:2/Fedora_21/shells:fish:release:2.repo
Para Fedora 20
~# wget http://download.opensuse.org/repositories/shells:fish:release:2/Fedora_20/shells:fish:release:2.repo
Para Fedora 19
~# wget http://download.opensuse.org/repositories/shells:fish:release:2/Fedora_19/shells:fish:release:2.repo
Para Fedora 18
~# wget http://download.opensuse.org/repositories/shells:fish:release:2/Fedora_18/shells:fish:release:2.repo
Actualiza el sistema:
~# yum repolist
~# yum update
Instala fish:
~# yum install fish
~# exit
Haz de fish tu intérprete de comandos por defecto:
~$ chsh -s /usr/bin/fish
Si quieres convertir a fish en el intérprete de comandos por defecto de otro/a usuario/a:
~$ su -c 'chsh -s /usr/bin/fish nombre-de-usuario'
~$ su -
no funciona, prueba con ~$ sudo -i
. Si ~$ su -c 'comando'
no funciona, prueba con ~$ sudo comando
.
Instalando fish en CentOS
Añade el repositorio a yum:
~$ sudo -i
~# cd /etc/yum.repos.d/
Para CentOS 7
~# wget http://download.opensuse.org/repositories/shells:fish:release:2/CentOS_7/shells:fish:release:2.repo
Para CentOS 6
~# wget http://download.opensuse.org/repositories/shells:fish:release:2/CentOS_6/shells:fish:release:2.repo
Para CentOS 5
~# wget http://download.opensuse.org/repositories/shells:fish:release:2/CentOS_5/shells:fish:release:2.repo
Actualiza el sistema:
~# yum repolist
~# yum update
Instala fish:
~# yum install fish
~# exit
Haz de fish tu intérprete de comandos por defecto:
~$ chsh -s /usr/bin/fish
Si quiere convertir a fish intérprete de comandos por defecto de otro/a usuario/a:
~$ sudo chsh -s /usr/bin/fish nombre-de-usuario
~$ sudo -i
no funciona, prueba con ~$ su -
. Si ~$ sudo comando
no funciona, prueba con ~$ su -c 'comando'
.
Instalando fish en RedHat
Añande el repositorio yum:
~$ sudo -i
~# cd /etc/yum.repos.d/
Para RedHat 7
~# wget http://download.opensuse.org/repositories/shells:fish:release:2/RHEL_7/shells:fish:release:2.repo
Para RedHat 6
~# wget http://download.opensuse.org/repositories/shells:fish:release:2/RedHat_RHEL-6/shells:fish:release:2.repo
Para RedHat 5
~# wget http://download.opensuse.org/repositories/shells:fish:release:2/RedHat_RHEL-5/shells:fish:release:2.repo
Actualiza el sistema:
~# yum repolist
~# yum update
Instala fish:
~# yum install fish
~# exit
Haz de fish tu intérprete de comandos por defecto:
~$ chsh -s /usr/bin/fish
Si quiere convertir a fish en el intérprete de comandos por defecto de otro/a usuario/a:
~$ sudo chsh -s /usr/bin/fish nombre-de-usuario
~$ sudo -i
no funciona, prueba con ~$ su -
. Si ~$ sudo comando
no funciona, prueba con ~$ su -c 'comando'
.
Instalando fish en openSUSE
Instálalo usando One Click Install:
Haz de fish tu intérprete de comandos por defecto:
~$ chsh -s /usr/bin/fish
Si quieres convertir a fish en el intérprete de comandos por defecto de otro/a usuario/a:
~$ sudo chsh -s /usr/bin/fish nombre-de-usuario
~$ sudo -i
no funciona, prueba con ~$ su -
. Si ~$ sudo comando
no funciona, prueba con ~$ su -c 'comando'
.
Instalando fish en Arch, Manjaro y otras distribuciones ‘AUR’
Actualiza el sistema:
~$ su -
~# pacman -Syu
Instala fish:
~# pacman -S fish
~# exit
Haz de fish tu intérprete de comandos por defecto:
~$ chsh -s /usr/bin/fish
Si quieres convertir a fish en el intérprete de comandos por defecto de otro/a usuario/a:
~$ su -c 'chsh -s /usr/bin/fish nombre-de-usuario'
~$ su -
no funciona, prueba con ~$ sudo -i
. Si ~$ su -c 'comando'
no funcion, prueba con ~$ sudo comando
.
Instalando fish en Gentoo
Actualiza el sistema:
~$ su -
~# emerge --sync
~# emerge --update @world
Instala fish:
~# emerge app-shells/fish
~# exit
Haz de fish tu intérprete de comandos por defecto:
~$ chsh -s /usr/bin/fish
Si quieres convertir a fish en el intérprete de comandos por defecto de otro/a usuario/a:
~$ su -c 'chsh -s /usr/bin/fish nombre-de-usuario'
~$ su -
no funciona, prueba con ~$ sudo -i
. Si ~$ su -c 'comando'
no funciona, prueba con ~$ sudo comando
.
Instalando fish en FreeBSD
Actualiza el sistema:
~$ su -
~# freebsd-update fetch
~# freebsd-update install
Instala fish:
~# pkg install shells/fish
~# exit
Haz de fish tu intérprete de comandos por defecto:
~$ chsh -s /usr/bin/fish
Si quieres convertir a fish en el intérprete de comandos por defecto de otro/a usuario/a:
~$ su -c 'chsh -s /usr/bin/fish nombre-de-usuario'
Configuración básica (Opcional)
El intérprete de comandos fish estará ahora instalado y será totalmente funcional, pero unos pequeños retoques en la configuración mejorán nuestra productividad.
Crea el directorio de configuración de fish (puede que ya haya sido creado tras la instalación):
~$ mkdir -p ~/.config/fish
Crea el archivo de configuración:
~$ nano ~/.config/fish/config.fish
Añade la siguiente línea para añadir a /usr/local/bin
a la variable de entorno PATH:
if status --is-login
set PATH $PATH /usr/bin /usr/sbin /usr/local/bin /bin /sbin
end
Abre un nuevo terminal, que debería iniciarse con fish como intérprete de línea de comandos por primera vez:
Puedes escribir help
(seguido de la tecla Intro) para mostrar la documentación de usu en tu navegador web:
Puedes ver la configuración actual en tu navegador web con el comando fish_config
:
Fish puede procesar automáticamente las páginas man instaladas en tu sistema para mejorar la predicción y autocompretado de tus líneas de comandos. Puedes ejecutar periódicamente el comando fish_update_completions
para actualizar el completado automático que, por defecto, será guardado en ~/.local/share/fish/generated_completions/
.
Finalmente, si quieres eliminar el mensaje de bienvenida de fish que aparece por defecto:
Ejecuta el siguiente comando:
~$ echo "set -g -x fish_greeting ''" >> ~/.config/fish/config.fish
Si quieres añadir un mensaje de bienvenida personalizado en lugar de eliminar el mensaje por completo, inserta el texto de desees entre las comillas simples (''
):
~$ echo "set -g -x fish_greeting '¡Hola mundo!'" >> ~/.config/fish/config.fish
Recuperando bash
Si quieres alternar temporalmente con el intérprete de comandos bash durante una sesión, ejecuta:
~$ bash
exit
para volver a fish.
Si quieres reestablecer a bash como tu intérprete de comandos por defecto de forma permanente:
~$ chsh -s /bin/bash
Para reestablecer permanentemente a bash como intérprete de comandos de otro/a usuario/a:
~$ su -c 'chsh -s /bin/bash nombre-de-usuario'
~$ su -c 'comando'
no funciona, prueba con ~$ sudo comando
.