Bash vs. Zsh.

Hola, despues de pasarme la vida en Bash por que es lo mas estandarizado y te lo encuentras en todas las maquinas tipo *nix. Ultimamente estoy probando Zsh y me esta encantando, de tal manera que tengo los dos shells preparados y configurados en mis maquinas. la razon es precisamente lo que he comentado antes, cuando voy a hacer una asistencia remota casi todo es Bash o sh, apenas veo Zsh salvo en ambientes de programacion (que es otro mundo).

Alguno usa Zsh??? o dejais el shell que viene por defecto?.
Aquí uno que usa zsh, por el tema del autocompletado y las sugerencias (dos scripts que se le puede instalar), me gusta mucho mas. La cantidad de scripts que existen y con oh-my-zsh lo configuras fácilmente a tu gusto, a mi modo de ver es mas flexible.

http://stackabuse.com/zsh-vs-bash/
Que me vas a contar, las posibilidades son tantas y tan potentes que poco a poco he ido ignorando a Bash en favor de Zsh.

Respecto a oh-my-zsh pues mira tu.

oh-my-zsh + Powerlevel9k + Tema personalizado + Colorls y aqui ando abriendo shells a manos llenas como si no hubiera un mañana.

ImagenMe parece increible que una shel pueda ser tan potente y versatil, lo de los autocompletados es sencillamente genial y los plugins que tiene que van aprendiendo sobre tu uso otra maravilla mas. Vamos que si, que tiene todos los numeros de quedarse fijo en mis maquinas.
Estuve usando zsh un tiempo y al final la dejé de lado. Lo único que me gustan son los temas y el autocompletado que casi nunca acabo usando.
Alecs7k escribió:Estuve usando zsh un tiempo y al final la dejé de lado. Lo único que me gustan son los temas y el autocompletado que casi nunca acabo usando.

Justo al contrario que yo, paso un 90% de tiempo en el ordenador ̶p̶r̶o̶c̶a̶s̶t̶i̶n̶a̶n̶d̶o̶ ̶p̶o̶r̶ ̶l̶a̶ ̶w̶e̶b̶ ̶ en el IDE de programacion o en la consola de comandos. Al principo mantuve Bash por precaucion y compatibilidad pero es que cada vez uso menos Bash y mas Zsh, es mas es que ya nunca uso Bash. Con Zsh hago lo mismo que con Bash y mas cosas de forma mas rapida y agil. La fuerza de Zsh no es tanto las diferencias positivas que trae con respecto a otros shells, son los plugins que te permiten modificar todo a tu gusto, con eso expandes sus capacidades tanto como quieras.

La parte mala para mi es que cuando has de loguear a una maquina que no tiene estas delicatessen sientes que has retrocedido en el tiempo y te sientes otra vez como un novato.

Ah! y se me olvidaba, el mejor plugin sin discusion alguna es Chuck Norris.
No lo había usado nunca, ¿puedes pasar tu .zshrc (o la configuración pertinente)? Ando un poco perdido, he instalado oh-my-zsh y un par de temas pero ni el prompt me lista los temas ni veo que hacer con oh-my-zsh.
josemurcia escribió:No lo había usado nunca, ¿puedes pasar tu .zshrc (o la configuración pertinente)? Ando un poco perdido, he instalado oh-my-zsh y un par de temas pero ni el prompt me lista los temas ni veo que hacer con oh-my-zsh.

Mi .zshrc no te funcionara ya que yo tengo mucha cosa metida aparte, ademas que no estoy usando Linux y las rutas diferiran.

Recuerda que para que se vea bien has de usar fuentes compatibles, en caso contrario se vera un amasijo ininteligible.

oh-my-zsh ya tiene un monton de temas por defecto:
Imagen
Para cambiar de tema has de modificar la entrada:
ZSH_THEME=""

de tu .zshrc

Prueba a poner el tipico que usa todo el mundo y es muy vistoso:
ZSH_THEME="agnoster"

Luego unos consejillos, instala zsh-autosuggestions y zsh-syntax-highligthning. Son muy utiles para agilizar.

Paginas utiles:
Tutos de oh-my-zsh.
Powerlevel9k.
Temas de Powerlevel9k. (El mio es una modificacion de uno de ahí).
Nerd Fonts.
Colorls.

Si necesitas mas ayuda pidela y conforme vaya pudiendo ire ayudandote.
Se que no me va a valer, es que hay algunas cosas que no se como tocar.

Para empezar tengo Arch.

He instalado oh-my-zsh y powerlevel9k, en principio con el .zshrc por defecto me lo carga bien, pero por ejemplo no me muestra las tildes, y hay algún que otro fallo gráfico que también deduzco que puede ser de la fuente. Tengo instaladas las powerline fonts.

Imagen
@josemurcia Si, eso es problema de la fuente. Prueba a usar la Hack-Font que es la que estoy usando yo.
En Arch se llama ttf-hack, si eso te falla no se que decirte. El ordenador grande lo tengo en ingles pero en el portatil esta en castellano y a mi me estan funcionando bien.

A malas tienes dos opciones, usar Colorls como yo o preguntarle a @coyote que tb esta usando Zsh y seguramentye ya se habra enfrentado a ese problema.
La tipografía que uso es inconsolata que no tiene problemas de tildes.
Pues sigue sin mostrarme las tildes, hmmmm.
En ese caso puede que tus 'locales' no estén en es_ES.
Las locales de las Xorg son las que cuentan en este caso. Comprueba que esten en Español de España.
Lo están:

Imagen

El icono de la casa me sale cortado, ¿alguna idea?

He instalado colorls pero me salta una excepción también por los caracteres UTF-8.

Imagen
@josemurcia algo tienes mal en las locales, coyote tambien usa arch y a el le va bien. algo tienes mal puesto en las locales del Xorg o de KDE, yo es que KDE no lo conozco mucho, siempre he sido mas de gtk. Todo el problema que tienes ya sea el home cortado las tildes y la excepcion de colorls vienen por lo mismo, alguna local no esta bien puesta o no esta bien declarada y no la pilla.
Me faltaba el LC_CTYPE, ahora si me pilla las tildes. Pero dos problemas.

- La casa sigue saliendo cortada.
- Tengo que exportar el LC_CTYPE manualmente porque no me lo lee del locale.conf, ¿por qué pasa esto?
josemurcia escribió:Me faltaba el LC_CTYPE, ahora si me pilla las tildes. Pero dos problemas.

- La casa sigue saliendo cortada.
- Tengo que exportar el LC_CTYPE manualmente porque no me lo lee del locale.conf, ¿por qué pasa esto?


Lo de la casa puede ser un error grafico, prueba a usar otra fuente pero que sea una fuente Nerd parcheada. Tambien puedes probar a subir el tamaño de la fuente, a veces el problema es ese.

Lo del locale.conf ya ni idea, yo hace mucho que no me peleo con Arch, para eso tienes por aqui a gente mucho mas capacitada que yo.

Pero de primeras locale.conf es para el sistema en general, KDE tiene su propia gestion de locales si no recuerdo mal y Xorg tiene tambien la suya propia. Yo empezaria a buscar por ahi.
Efectivamente, el problema es KDE Plasma. Me toca rebuscar.

Lo de la casa cortada he probado con la fuente que ha dicho Coyote y me pasa lo mismo.

EDIT: Ponga donde ponga el LC_CTYPE se me sobreescribe.
Veo en LC_TYPE=en_US.UTF-8, quizás ahí esté el problema.

$ locale               
LANG=es_ES.UTF-8
LC_CTYPE=es_ES.UTF-8
LC_NUMERIC="es_ES.UTF-8"
LC_TIME="es_ES.UTF-8"
LC_COLLATE=C
LC_MONETARY="es_ES.UTF-8"
LC_MESSAGES="es_ES.UTF-8"
LC_PAPER="es_ES.UTF-8"
LC_NAME="es_ES.UTF-8"
LC_ADDRESS="es_ES.UTF-8"
LC_TELEPHONE="es_ES.UTF-8"
LC_MEASUREMENT="es_ES.UTF-8"
LC_IDENTIFICATION="es_ES.UTF-8"
LC_ALL=


$ cat /etc/locale.conf         
LANG=es_ES.UTF-8
coyote escribió:Veo en LC_TYPE=en_US.UTF-8, quizás ahí esté el problema.

$ locale               
LANG=es_ES.UTF-8
LC_CTYPE=es_ES.UTF-8
LC_NUMERIC="es_ES.UTF-8"
LC_TIME="es_ES.UTF-8"
LC_COLLATE=C
LC_MONETARY="es_ES.UTF-8"
LC_MESSAGES="es_ES.UTF-8"
LC_PAPER="es_ES.UTF-8"
LC_NAME="es_ES.UTF-8"
LC_ADDRESS="es_ES.UTF-8"
LC_TELEPHONE="es_ES.UTF-8"
LC_MEASUREMENT="es_ES.UTF-8"
LC_IDENTIFICATION="es_ES.UTF-8"
LC_ALL=


$ cat /etc/locale.conf         
LANG=es_ES.UTF-8


Tengo así el locale.conf, pero algo me sobreescribe el LC_CTYPE, y no se que es. Aunque lo exporte en el .bashrc o .zshrc se me sigue sobreescribiendo.
Imagen

He probado en el Linux Mint que tengo virtualizado (benditos Snapshots) y me pasa exactamente lo mismo. Asi que va a ser mas complejo el tema de lo que parecia, esto es cosa mas seria.

Ahora no tengo demasiado tiempo pero luego mirare a ver por que falla de esta manera. A ver si encuentro alguna explicacion pero en principio @josemurcia no esta haciendo nada mal ni parece que tenga nada mal.


P.D. - A mi me da que es mas cosa de Ruby.
Es que ahora recuerdo un montón de problemas con las tildes y demás que tenía antes y seguramente era por esto, por ejemplo al imprimir strings con tildes con Python, que mágicamente se ha solucionado al modificar LC_CTYPE.

Por lo tanto no creo que sea de ruby, algo tiene que haber por ahí modificando esa variable y tiene que ser en un script tardío, porque ni añadiendolo en el .zshrc se mantiene.
@josemurcia Yo lo he podido corregir.

Imagen
He regenerado las locales al estilo Debian y ha funcionado:

sudo locale-gen es_ES.UTF-8 en_US.UTF-8
sudo dpkg-reconfigure locales

En Arch debe haber alguna forma tambien de regenerarlas.

Ahora solo me quedaria arreglar los iconos que no se ven bien pero eso es cosa de fuentes, es dar con la correcta. Y aparte arreglar las llamadas a los iconos que tengo mal, cosa de 10 minutos o varias horas.
cpn bash hasta la muerte XD , bonito diseño y todo pero la costumbre puede mas.
Imagen

Finiquitado, una vez corriges las locales y usas un tipo de letra adecuado todo va como la seda. Aunque... no es tan bonito como en OSX XD

kyo2009 escribió:cpn bash hasta la muerte XD , bonito diseño y todo pero la costumbre puede mas.


Yo tambien soy un animal de costumbres pero de vez en cuando encuentro algo diferente que me gusta y pienso por que no? si no fuera por eso aun seguiria en MS-DOS.
otro mas que se apunta, ya tengo entretenimiento mañana en el trabajo, xd
josemurcia escribió:Es que ahora recuerdo un montón de problemas con las tildes y demás que tenía antes y seguramente era por esto, por ejemplo al imprimir strings con tildes con Python, que mágicamente se ha solucionado al modificar LC_CTYPE.

Por lo tanto no creo que sea de ruby, algo tiene que haber por ahí modificando esa variable y tiene que ser en un script tardío, porque ni añadiendolo en el .zshrc se mantiene.


Lo de locales prueba a meter esto en el bashrc
export LANG=es_ES.UTF-8
export LC_MESSAGES="C"


Abre otra vez el terminal y pon
locale-gen


A ver si con eso solucionas.
@yuku mal consejo.

1 - .bashrc no tiene efecto en Zsh, el archivo de configuracion es .zshrc
2 - Ya ha dicho unos post mas atras que eso ya lo hizo pero igualmente se desconfigura.

La solucion pasa por regenerar las locales, ignoro como se hace en Arch ya que hace mucho que no la uso pero seguro que alguna forma habra.

Yo lo hice asi en Linux Mint y lo tengo todo funcionando sin problema.
Wynztech escribió: ignoro como se hace en Arch ya que hace mucho que no la uso pero seguro que alguna forma habra.

# locale-gen

No obstante, en su wiki te lo explica todo
Wynztech escribió:@yuku mal consejo.

1 - .bashrc no tiene efecto en Zsh, el archivo de configuracion es .zshrc
2 - Ya ha dicho unos post mas atras que eso ya lo hizo pero igualmente se desconfigura.

La solucion pasa por regenerar las locales, ignoro como se hace en Arch ya que hace mucho que no la uso pero seguro que alguna forma habra.

Yo lo hice asi en Linux Mint y lo tengo todo funcionando sin problema.


1. Pues zshrc, es lo mismo. La cuestión es modificar las variables de entorno.
2. Yo ahí le pongo una variable más que es LC_MESSAGES.

Y le digo que regenere locales con locale-gen, que es lo que se usa en arch para regenerar.

Pero bueno, si te parece mal consejo que así sea.
yuku escribió:Pero bueno, si te parece mal consejo que así sea.

No hombre, que os pasa a todos ultimamente que teneis la piel tan fina?. Me refiero que mal consejo por lo del .bashrc y por que ya lo probo y al parecer no le funciona.

EDIT - @josemurcia manifiestate que te estamos dando alternativas y soluciones XD
Perdonad, estaba de parranda y ahora currando, luego os digo, pero lo de regenerar las locales ya lo hice y nada. Y aunque las asigne en el .zshrc se me resetea esa en concreto.(LC_CTYPE)

EDIT: Sigo flipando.

lordvulkan@LENOVO-JMG   ~  localectl set-locale LANG=es_ES.UTF-8                       ✔  289  14:39:47
lordvulkan@LENOVO-JMG   ~  locale                                                      ✔  290  14:39:58
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: No se puede establecer LC_ALL al local predeterminado: No existe el fichero o el directorio
LANG=es_ES.UTF-8
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="es_ES.UTF-8"
LC_TIME="es_ES.UTF-8"
LC_COLLATE="es_ES.UTF-8"
LC_MONETARY="es_ES.UTF-8"
LC_MESSAGES="es_ES.UTF-8"
LC_PAPER="es_ES.UTF-8"
LC_NAME="es_ES.UTF-8"
LC_ADDRESS="es_ES.UTF-8"
LC_TELEPHONE="es_ES.UTF-8"
LC_MEASUREMENT="es_ES.UTF-8"
LC_IDENTIFICATION="es_ES.UTF-8"
LC_ALL=
Hola. Sólo quería comentar que yo uso Fish shell con el tema bobthefish. Me gusta mucho el autocompletado continuo y algunos shortcuts. Lo malo es que en el trabajo tengo que usar Windows, así que no puedo dedicar mucho a aprender a usarlo al 100%.

Un saludo.
josemurcia escribió: Sigo flipando.

lordvulkan@LENOVO-JMG   ~  localectl set-locale LANG=es_ES.UTF-8                       ✔  289  14:39:47
lordvulkan@LENOVO-JMG   ~  locale                                                      ✔  290  14:39:58
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: No se puede establecer LC_ALL al local predeterminado: No existe el fichero o el directorio
LANG=es_ES.UTF-8
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="es_ES.UTF-8"
LC_TIME="es_ES.UTF-8"
LC_COLLATE="es_ES.UTF-8"
LC_MONETARY="es_ES.UTF-8"
LC_MESSAGES="es_ES.UTF-8"
LC_PAPER="es_ES.UTF-8"
LC_NAME="es_ES.UTF-8"
LC_ADDRESS="es_ES.UTF-8"
LC_TELEPHONE="es_ES.UTF-8"
LC_MEASUREMENT="es_ES.UTF-8"
LC_IDENTIFICATION="es_ES.UTF-8"
LC_ALL=

Prueba a poner tambien el ingles (es lo que hice yo). Mantengo los dos idiomas en la maquina para evitar ese tipo de problemas.

sudo locale-gen es_ES.UTF-8 en_US.UTF-8
sudo dpkg-reconfigure locales

Adapta eso a tu sintaxis en Arch, deberia funcionar macho.

Yo es que lo resolvi asi y me daba el mismo problema que a ti.
@Wynztech, tengo los 2 idiomas y nada. He probado con localectl que es el que viene en la wiki de Arch y nada. Reiniciando y nada.
josemurcia escribió:@Wynztech, tengo los 2 idiomas y nada. He probado con localectl que es el que viene en la wiki de Arch y nada. Reiniciando y nada.


Pues lo unico que se me ocurre es que Plasma tenga alguna configuracion particular suya y este deshaciendo todos los cambios que tu haces, no se me ocurre otra cosa.
Seguimos con la locura.

[lordvulkan@LENOVO-JMG ~]$ locale
LANG=es_ES.UTF-8
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="es_ES.UTF-8"
LC_TIME="es_ES.UTF-8"
LC_COLLATE="es_ES.UTF-8"
LC_MONETARY="es_ES.UTF-8"
LC_MESSAGES="es_ES.UTF-8"
LC_PAPER="es_ES.UTF-8"
LC_NAME="es_ES.UTF-8"
LC_ADDRESS="es_ES.UTF-8"
LC_TELEPHONE="es_ES.UTF-8"
LC_MEASUREMENT="es_ES.UTF-8"
LC_IDENTIFICATION="es_ES.UTF-8"
LC_ALL=
[lordvulkan@LENOVO-JMG ~]$ unset LANG
[lordvulkan@LENOVO-JMG ~]$ locale
LANG=
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
josemurcia escribió:Seguimos con la locura.


Te queria comentar que a mi tambien me sale igual que a ti, nobstante al regenerar las locales los defectos se arreglaron.

Imagen

Tendremos que llamar a Iker Jimenez [+risas]
Va me voy a unir a ver que tal va... necesito zsh y algo mas?
Brutico escribió:Va me voy a unir a ver que tal va... necesito zsh y algo mas?

oh-my-zsh
powerlevel9k
zsh-syntax-highlightning
zsh-autosuggestions
Una Hack Font
Solarized-Dark
Colorls

y paciencia, mucha paciencia.

AQUI pongo unas cuantas paginas utiles.
Pues ya está, todo arreglado.

- El locale sigue generándose mal, me sigue apareciendo en_US.UTF-8 en LC_CTYPE, pero parece que al generarlo se ha solucionado el problema de las tildes(no me había dado cuenta hasta ahora).
- Los iconos siguen saliendo cortados, he visto que es un problema de la terminal de KDE y los caracteres de doble anchura, se soluciona con un pequeño script que añade un espacio detrás de cada icono.

Ahora estoy trasteando a ver que plugins pueden resultar interesantes.

Gracias a todos.
Bueno me alegra que por fin hayas dado con el problema y lo hayas solventado. Ahora a disfrutar de tu nuevo terminal.
Mi plugin imprescindible es Chuk Norris.
Casi todos los demas que uso son para cosas de Mac (Xcode, brew, brew-cask y cosas de esas...).

Lo dicho, me alegra que lo hayas resuelto [oki]
41 respuestas