Estoy considerando pasar de bash a zsh ya que a menudo me encuentro con publicaciones que elogian a zsh. Soy un usuario experimentado de la línea de comandos y supongo que los conceptos básicos son más o menos los mismos, por lo que estoy buscando consejos para obtener los beneficios de la mudanza, y cualquier problema que tenga en cuenta.
Por favor, solo da un consejo por respuesta. Estoy buscando fragmentos del tamaño de un bocado donde pueda volver e integrar bits adicionales de información en mi uso de shell a un ritmo constante en lugar de tratar de aprenderlo todo de una vez.
bash
command-line
zsh
Hamish Downer
fuente
fuente
source /etc/zsh_command_not_found
a tu.zshrc
.Respuestas:
Como dices,
zsh
es similar en muchos aspectos abash
. Tiene algunas características que no encontrarábash
, y se puede ampliar de manera poderosa. No pienses en moverte como una especie de revolución, sino como una serie de pasos evolutivos que te ayudan en tu trabajo diario. Aquí hay algunos consejos de mi.zshrc
. Aunque diga que prefiere consejos únicos, esta publicación es una lista larga. Aún así, es una buena idea revisar los puntos uno por uno. Simplemente agregue los bits interesantes a su~/.zshrc
y vuelva a cargar consource ~/.zshrc
. Un último consejo: aprender las pulsaciones dezsh
'default s ( 'Emacs') atajos de teclado:^A ^E ^W Alt-F Alt-B Alt-P ^L ^R
. Puede reemplazarAlt
por dos pulsaciones de teclas separadas:Alt-P
es equivalente aESC
P
.Esto le brinda una finalización de pestañas más extensa.
Finalización de tabulación desde ambos extremos.
La finalización de la pestaña debe ser insensible a mayúsculas y minúsculas.
Mejor terminación para killall.
Cambia la definición de "palabra", por ejemplo, con ^ W.
Colores para ls.
Atajos para ls.
Una historia para todos los depósitos abiertos; almacenar 10,000 entradas. Esto lo convierte en una ayuda útil para la memoria para encontrar los comandos que usó la última vez,
./configure
etc. Utilice Alt-P (comando de búsqueda que comienza así) y ^ R (búsqueda en el historial) generosamente.Habilita todo tipo de globbing extendido, como ls ** / *. Txt (buscar todos los archivos de texto),
ls -d *(D)
(mostrar todos los archivos, incluidos los que comienzan con "."). Para obtener más información, vaya a laman zshexpn
sección "GENERACIÓN DE NOMBRES DE ARCHIVO".Esto es útil para recordar comandos en su historial sin ejecutarlos.
Escriba ".." en lugar de "cd ..", "/ usr / include" en lugar de "cd / usr / include".
Buen aviso.
Muestra las estadísticas de uso de la CPU para los comandos que toman más de 10 segundos
Algunos comandos que usa ampliamente en Ubuntu.
Enumera los paquetes ordenados por su tamaño, útil para decidir qué paquetes están ocupando su espacio en disco.
fuente
Recomendaría el libro De bash a Z Shell . Tiene todos los consejos que necesita para cambiar su shell. Explica las diferencias de ambos shells y hace que sea fácil para un nuevo zsher.
fuente
¡Aquí está mi .zshrc y eso es lo más importante! zsh tiene muchas opciones que puedes usar, así que mira algunos de los ejemplos en la red o lee la documentación en la página de inicio de Zsh .
Mi .zshrc no contiene cosas realmente geniales aparte de una marca de tiempo en el lado derecho de la línea de comando.
Por cierto, recuerde probar la compleción de tabulación en todos los ejemplos aquí:
mostrará algo como esto:
Y si usa ssh-keys sin contraseña o ssh-agent, puede resultarle útil tabular archivos remotos:
Después de obtener la lista, puede presionar la pestaña más veces para recorrer las diferentes posibilidades.
Pero ten cuidado, ¡este caparazón te hará perezoso y te hará sentir que un caparazón estándar es estúpido y molesto!
fuente
Un par de globos extendidos específicamente útiles:
1-
rmdir *(/^F)
- eliminar todos los directorios no vacíos en el directorio actual2-
grep traceback /srv/log/**/*(.m-2)
- busca esta expresión regular en archivos modificados en los últimos dos días3-
chmod g+w **/*(U^I)
- hacer que los archivos que poseo y que no sean de escritura grupal sean de escritura grupalSí, por supuesto, puede escribir esto,
find
pero es más fácil de quitar. Para ser justos, tiene dos inconvenientes, ambos tienen que ver con que todos se expandan en la línea de comando: si coincide con muchos miles de archivos, la línea de comando será demasiado larga y esto fallará, y en segundo lugar se encuentran todos los archivos antes de que el archivo comience a ejecutarse.(Necesitará
setopt extendedglob
si eso no está activado)fuente
No sé mucho sobre bash, así que no puedo comparar. Algunos fragmentos de mi archivo de configuración zsh.
Alguna config
Git en el aviso
Algunas teclas de acceso rápido, inserte un texto al principio de la línea.
Las funciones, las guardo en ~ / .zsh / functions
El git_info_for_prompt
Algunas opciones de github
fuente
Estoy en el mismo viaje :)
Hasta ahora he descubierto que la cosa es tener un buen archivo de configuración (.zshrc).
Tome este como ejemplo http://matt.blissett.me.uk/linux/zsh/zshrc , mire los comentarios y háblelo. Stackoverflow y severphault y buenos lugares para buscar también.
Todavía tengo que sumergirme en http://dotfiles.org/.zshrc , pero no tengo tanto tiempo que perder :)
fuente
Aprenda sobre el globbing extendido y los globos recursivos en zsh.
Aprenda un poco sobre zstyle y cómo varias cosas (especialmente la finalización) le permiten ajustar su configuración usando zstyle.
Mira en las matrices asociativas. También los arreglos estándar (¡cuidado con las diferencias de bash, para mejor!)
Si usa expresiones regulares, investigue
=~
(que bash también tiene) y considere:setopt rematch_pcre
Evite escribir guiones que dependan de más de un poco de la magia de zsh, porque si bien es fantástico de usar, zsh puede tender a ser de solo escritura. Si está usando mucho más, piense en cuándo cambiar a un lenguaje como Python.
Zsh es seductor. Es el lado oscuro. Bienvenidos.
fuente
Gran beneficio: excelente finalización de pestañas con scripts de finalización preempaquetados para muchos comandos. Aquí hay un ejemplo que muestra la salida de
apt-get<TAB>
:fuente
He dado un par de charlas y he convertido a varias personas a zsh. Mantengo un repositorio de github de mis (cuáles son las ventajas) notas junto con un iniciador y una copia de mi propia configuración de zsh en github aquí.
http://github.com/mitechie/zshrc
fuente
Otro gran recurso es la página de amantes de zsh (proviene del sitio grml zsh ).
fuente