update bash shell zsh

bash - update - ¿Vale la pena cambiar a zsh para un uso ocasional?



zsh update (6)

Cambiar a zsh. Tendrás acceso a:

  1. zmv : puede hacer: zmv ''(*).mp3'' ''$1.wma'' para miles de archivos.
  2. zcalc : calculadora extremadamente cómoda, mejor que bc .
  3. zparseopts : One-liner para analizar opciones complejas arbitrarias dadas a su script.
  4. autopushd : siempre puede hacer popd después de cd para volver a su directorio anterior.
  5. Soporte de punto flotante. Es necesario de vez en cuando.
  6. Soporte hash. A veces son solo una característica clave.

El shell predeterminado en Mac OS X es bash , que generalmente me complace usar. Simplemente lo doy por hecho. Sin embargo, sería muy bueno si completara automáticamente más cosas , y he escuchado cosas buenas sobre zsh en este sentido. Pero realmente no tengo la inclinación de pasar horas jugueteando con la configuración para mejorar el uso de mi línea de comandos por una pequeña cantidad, ya que mi vida en la línea de comandos no es tan mala.

(Según tengo entendido, bash también se puede configurar para que se complete automáticamente de forma más inteligente. Es la configuración en la que no estoy tan interesado).

¿Cambiar a zsh , incluso en un pequeño número de casos, me facilitará la vida? ¿O solo es un caparazón mejor si te dedicas a aprender por qué es mejor? (Los ejemplos también serían agradables :) )

@ Rodney Amato y @ Vulcan Eager dan dos buenas razones para apegarse a bash y cambiar a zsh . ¡Parece que tendré que investigar ambos! Oh bien :)

¿Hay alguien con una opinión de ambos lados de la discusión?


Para un uso casual, es mejor que te quedes con bash y simplemente instales bash.

Instalarlo es bastante fácil, tomar el bash-completion-20060301.tar.gz de http://www.caliban.org/bash/index.shtml#completion y extraerlo con

tar -xzvf bash-completion-20060301.tar.gz

luego copie el archivo bash_completion / bash_completion a / etc con

sudo cp bash_completion/bash_completion /etc

que te pedirá tu contraseña. Es probable que desee crear un directorio /etc/bash_completion.d para cualquier script de finalización adicional (por ejemplo, tengo el script de finalización de git allí).

Una vez hecho esto, el último paso es asegurarse de que el archivo .bash_profile en su directorio de inicio tenga

if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi

para cargar el archivo de finalización cuando inicie sesión.

Para probarlo solo abra una nueva terminal e intente completar en cvs y le mostrará las opciones de cvs en la lista de terminaciones.


Personalmente, amo a zsh.

En general, probablemente no notarás la diferencia entre él y bash, hasta que quieras hacer rápidamente cosas como globbing recursivo:

  • **/*.c por ejemplo.

O use alias de sufijos para asociar progs específicos con diferentes sufijos, para que pueda "ejecutarlos" directamente. El alias siguiente le permite "ejecutar" un archivo fuente C en el aviso simplemente escribiendo ./my_program.c - que funcionará exactamente como si hubiera escrito vim ./my_program.c . (Tipo de equivalente a hacer doble clic en el icono de un archivo).

  • alias -sc=vim

O imprima los nombres de los archivos modificados hoy:

  • print *(e:age today now:)

Probablemente puedas hacer todas estas cosas en bash, pero mi experiencia con zsh es que si hay algo que quiero hacer, probablemente pueda encontrarlo en zsh-lovers . También creo que el libro '' De Bash a Z-Shell '' es realmente útil.

¡Jugar con la mente increíblemente gran número de opciones es muy divertido también!


Si todo lo que desea utilizar ZSH es una mejor finalización, la configuración es bastante fácil. Coloque esto en su ~ / .zshrc:

autoload -U zutil # [1] autoload -U compinit # [2] autoload -U complist # [3] compinit

Sin embargo, vale la pena echarle un vistazo a todas las otras excelentes funciones de ZSH. El ejemplo anterior le dará un mensaje bastante simple con buena finalización. Si no quiere jugar con las configuraciones, pero quiere ver lo que ZSH puede hacer por usted, busque "zshrc" en Google y obtendrá algunas configuraciones listas para usar para comenzar.


Staale está hablando de un asistente como programa (CUI) que se ejecuta automáticamente la primera vez que ejecuta zsh. Solo responda algunas preguntas, vea / cambie los valores predeterminados y está configurado para usted.

IBM developerWorks tiene excelentes recursos en zsh.

No he usado funciones muy avanzadas y hasta ahora no he encontrado diferencias serias que puedan obstaculizar a alguien que viene de bash.

Algunos ejemplos:

  • !? pattern <Tab> se autocompletará al último comando en el patrón de coincidencia de historial. Muy útil.

  • Puede configurar un aviso en el RHS. Un uso es mantener un indicador de ancho fijo en el lado izquierdo para que todos los comandos se alineen bien mientras se muestra el pwd (o cualquier elemento de ancho variable) como el indicador del lado derecho.

  • Puede redirigir la entrada de varios archivos (aún para intentar esto): cat <archivo1 <archivo2 <archivo3


zsh tiene una configuración de consola gui. Puede configurarlo rápida y fácilmente sin tener que jugar con los archivos de configuración. No creo que necesite mucho tiempo para configurarlo, probablemente 10 segundos con el uso de los valores predeterminados, así que adelante y pruébelo.