comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Fish Shell, la terminal interactiva y amigable

  • 5 Respuestas
  • 4440 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5401
  • Actividad:
    30%
  • Reputación 31
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« en: Agosto 05, 2014, 09:40:36 am »

No es un secreto para nadie que el uso de la terminal es algo que ha caído mucho con el paso de los años, hay que admitirlo hoy día son pocas las tareas que requieren de su uso. Yo mismo soy alguien que evita usarla en cierta medida, la verdad es que por mas que quiera, siempre termino dándole uso porque se me hace más rápido que gráficamente, y para desarrollar la cosa es aún mas necesaria (no se como hay gente que programa a pura interfaz).

En fin, si hay algo que no me gusta de ninguna distro es bash, y no porque sea malo sino porque me parece feo, y lo feo no es bonito (¡no me digas! D. La cosa es que Bash no me ayuda a agilizar nada, y cuando uso el shell lo hago precisamente para moverme rápido sin tener que hacerme la vida de cuadritos, cosa que con bash suele pasar, ¿Por qué? Pues porque el poder de bash radica en que puedes programarle todo lo que te da la gana siempre y cuando sepas hacerlo desde cero, por ende es poderosísima pero también jodidísima. Bash no tiene (por defecto, cabe destacar) predicción de comandos, ni coloreado, ni corrección, ni atajos, ni plugins ni nada, es un cuchillo de caza afilado; cómo lo uses es tu problema.

Por otro lado tenemos a Zsh, un shell tipo bash super vitaminado y con ciertos superpoderes, muy extensible y capaz, pero aún muy vainilla y dependiente del omnipresente OhMyZsh una buena colección de plugins que explota el poder de Zsh y que sin ella, es como tener una navaja suiza y un instructivo complejo de como usarla, no mucho más.

Ahora bien después de tanto hablar sobre las shell’s anteriores, es justo hablar de la estrella en el artículo, Fish.

Fish es simplemente hermosa

Desde el vamos no te tienes que complicar configurando absolutamente nada, por defecto ya viene coloreando tu terminal, auto completando tus comandos y permitiendo llevar todo esto de las configuraciones de manera muy simple e intuitiva mediante una interfaz web (local, claro está) en donde tendrás al alcance absolutamente todo lo que quieras modificar; desde el historial de comandos, hasta las funciones a ejecutarse por defecto, colores, autocompletado inteligente y/o personalizado, ¿Ya les dije que el auto completado es inteligente y simplemente aprende tus comandos? ¡No tienes que decirle que haga nada, el solito aprende!

Pero para que hacerme caso a mi cuando los desarrolladores te explican por qué usar fish:

Fish is a fully-equipped command line shell (like bash or zsh) that is smart and user-friendly. fish supports powerful features like syntax highlighting, autosuggestions, and tab completions that just work, with nothing to learn or configure.

If you want to make your command line more productive, more useful, and more fun, without learning a bunch of arcane syntax and configuration options, then fish might be just what you’re looking for!
En español sería mas o menos así:

Fish es un shell para la línea de comandos (como bash o zhs) full equipo, es inteligente y amigable. Fish posee poderosas propiedades como el resaltado de sintaxis, auto sugerencias y completado con la tecla tab, y todo esto simplemente funciona, sin nada que aprender ni configurar.

Si quieres hacer tu linea de comandos mas productiva, usable y divertida, sin tener que aprender un puñado de configuraciones en sintaxis arcana y fea, entonces fish puede ser justo lo que estabas buscando



¿Así o mas?

Soy power user, convénceme…

Que Fish venga con varias cosas por defecto y sea tan simple de usar no la hace menos poderosa, de hecho algo en lo que se enfocaron fue en el sane scripting, o scripting sano… ya saben, en vez de una sintaxis poco amigable a la lectura humana, se enfocaron en hacer una mucho mas simple de entender y no menos poderosa.

De hecho, Fish posee todas las posibilidades de bash o zsh, y todas significa todas, desde alias hasta funciones y demás, por lo que si quieres programar tus propias funciones del shell, crear scripts que hagan (o deshagan) algo puedes hacerlo igualito como lo harías en las anteriores mencionadas, vas al archivo de configuración, programas, guardas y ahí lo tienes… para muestra un botón:

Así iteras sobre un array o una lista en fish:

Código: Bash
  1. for file in *.txt
  2. cp $file $file.bak
  3. end

Así cometes estupideces con los bucles:

Código: Bash
  1. while true
  2. echo Soy un tonto y escribo loops infinitos
  3. end

Aquí, if termina con end (como la gente esperaría), y no con “fi”:

Código: Bash
  1. if grep fish /etc/shells
  2. echo Found fish
  3. else if grep bash /etc/shells
  4. echo Found bash
  5. else
  6. echo Got nothing
  7. end

Y solo porque si, un switch:

Código: Bash
  1. switch (uname)
  2. case Linux
  3. echo Hi Tux!
  4. case Darwin
  5. echo Hi Hexley!
  6. case FreeBSD NetBSD DragonFly
  7. echo Hi Beastie!
  8. case '*'
  9. echo Hi, stranger!
  10. end

Y la verdad es que todo es cuestión de creatividad, porque puedes hacer de todo con Fish.

¿Como la instalo y como la uso?

Tan simple como:

Código: Bash
  1. apt-get install fish
  2.  
  3. pacman -S fish
  4.  
  5. yum install fish
  6.  
  7. emerge fish

o te vas a la web oficial y te descargas tu paquete.

Usarla no tiene mayor ciencia, una vez instalada solo debes ponerla por defecto, juego de niños:

Código: Bash
  1. chsh -s /usr/bin/fish

Eso es todo para ponerla a funcionar, solo cierra y abre tu terminal, y sé feliz, no necesitas configurar nada.

Nano es cool y te da un extra, solo porque si

Ah, sí, antes de que lo olvide… Fish tiene su propio OhMyZsh, y se llama OhMyFish (¡dios mio que creativos!). Bueno, de hecho es una librería de plugins algo nueva que está fuertemente inspirada en OhMyZsh y su buena manera de hacer las cosas, de hecho es ridículamente simple de instalar, solo necesitas tener git instalado y luego hacer:

Código: Bash
  1. curl -L https://github.com/bpinto/oh-my-fish/raw/master/tools/install.fish | fish

Y tendrás tu librería de plugins lista para usar.. ¿Cómo la usas? tan simple como ir a

~/.config/fish/config.fish y ahí declarar que quieres usar, ejemplo, plugins y un theme:

Código: Bash
  1. # Path to your oh-my-fish.
  2. set fish_path $HOME/.oh-my-fish
  3.  
  4. # Theme
  5. set fish_theme toaster
  6.  
  7. # Which plugins would you like to load? (plugins can be found in ~/.oh-my-fish/plugins/*)
  8. # Custom plugins may be added to ~/.oh-my-fish/custom/plugins/
  9. # Example format: set fish_plugins autojump bundler
  10.  
  11. # Path to your custom folder (default path is $FISH/custom)
  12. #set fish_custom $HOME/dotfiles/oh-my-fish
  13.  
  14. # Load oh-my-fish configuration.
  15. . $fish_path/oh-my-fish.fish
  16.  
  17. # Plugins
  18. set fish_plugins git node sublime

En donde lo único que realmente ustedes ponen es set fish_theme y set fish_plugins, lo demás está puesto por OhMyFish y documentadito en sus comentarios.

La verdad es que no hay mucho más, si quieren buscar plugins vayan a la página de la librería (que ya puse arriba) y vean la carpeta de plugins, todos dicen que hacen… e igual con los temas. Realmente con todo esto dicho (que no es mucho), se tiene más que suficiente para hacer lo que se quiera en Fish y más.

Fuente: fishshell.com


Desconectado Chris

  • *
  • Underc0der
  • Mensajes: 8
  • Actividad:
    0%
  • Reputación 0
  • Surf n' Turf
    • Ver Perfil
« Respuesta #1 en: Agosto 06, 2014, 10:13:29 am »
Gracias por la info! Se ve interesante, voy a revisar que tal es fish.

Desconectado iMex

  • *
  • Underc0der
  • Mensajes: 7
  • Actividad:
    0%
  • Reputación 0
  • [sudo] password for imex:
    • Ver Perfil
« Respuesta #2 en: Noviembre 13, 2014, 08:15:02 pm »
Justo estaba buscando algo así

Desconectado Y3K

  • *
  • Underc0der
  • Mensajes: 173
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #3 en: Noviembre 14, 2014, 12:10:25 am »
Recuerdo que una vez me dieron ganas de probarla.

Pero ahorita estoy con zsh y no lo cambio, hahaha :P

Desconectado rotten_

  • *
  • Underc0der
  • Mensajes: 14
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #4 en: Junio 15, 2015, 07:19:05 pm »
uso habitualmente zsh, pero ahce rato que me dieron ganas de probar fish...con esto, creo que me decido a ver que tal...saludos

Desconectado zaphiel

  • *
  • Underc0der
  • Mensajes: 73
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #5 en: Septiembre 14, 2016, 12:31:46 pm »
Se ve interesante,  pero estoy encantado con zsh,  usabas zsh antes de fish? @ANTRAX

Desde mi OnePlus One


 

¿Te gustó el post? COMPARTILO!



Panel Docklet, un dock ligero y muy configurable para Gnome Shell

Iniciado por Stiuvert

Respuestas: 1
Vistas: 1894
Último mensaje Junio 22, 2012, 09:43:45 am
por Comandante Linux
Free Shell Accounts

Iniciado por Devilboy

Respuestas: 0
Vistas: 1410
Último mensaje Febrero 17, 2011, 05:49:51 pm
por Devilboy
Mps-Youtube [Reproducion de video o audio terminal youtube]

Iniciado por Baxtar

Respuestas: 0
Vistas: 1478
Último mensaje Mayo 04, 2015, 05:41:41 pm
por Baxtar
Crear pendrive booteable desde nuestra terminal en GNU/Linux

Iniciado por ice

Respuestas: 6
Vistas: 2769
Último mensaje Octubre 10, 2016, 12:37:45 am
por ice
tty-clock - Reloj digital para la terminal de Linux

Iniciado por ANTRAX

Respuestas: 0
Vistas: 2410
Último mensaje Octubre 27, 2014, 09:50:00 am
por ANTRAX