Gentoo Logo

Guía de Configuración e Instalación de zsh

Contenido:

1.  Instalación

Instalando zsh

Para instalar zsh en Gentoo necesitamos hacer emerge al paquete app-shells/zsh (el propio zsh) y app-shells/zsh-completion (los guiones de terminación de zsh).

Listado de Código 1.1: Haciendo emerge zsh

# emerge zsh zsh-completion

Ingresando a zsh

Al comenzar zsh por primera vez, verá el siguiente mensaje. Puede saltar este menu, ya que crearemos un archivo init más adelante en esta guía.

Listado de Código 1.2: Saltando la configuración inicial

$ zsh
This is the Z Shell configuration function for new users, zsh-newuser-install.
You are seeing this message because you have no zsh startup files
(the files .zshenv, .zprofile, .zshrc, .zlogin in the directory
~).  This function can help you with a few settings that should
make your use of the shell easier.

You can:

(q)  Quit and do nothing.  The function will be run again next time.

(0)  Exit, creating the file ~/.zshrc containing just a comment.
     That will prevent this function being run again.

(1)  Continue to the main menu.

--- Type one of the keys in parentheses --- q

2.  Configuración

Introducción

Para comenzar zsh para una sesión única, ejecute zsh, para una solución más permanente, por favor refiérase al capítulo sobre como Salvar su configuración. Después de la instalación, zsh pareciera ser algo sencillo y limitado en el área de funcionalidad. Para cambiar esto, hay que llevar a cabo varios cambios en la configuración.

Terminación avanzada por tabulador

Para activar el famoso sistema de terminación con el tabulador de zsh, hará falta ejecutar los siguientes comandos:

Listado de Código 2.1: Activando la terminación

% autoload -U compinit
% compinit

El estilo de terminación por defecto es bastante sencillo y hasta feo. Si desea mejorar su apariencia, ejecute los siguientes comandos:

Listado de Código 2.2: Mejoramiento de estilo de terminación

% zstyle ':completion:*:descriptions' format '%U%B%d%b%u'
% zstyle ':completion:*:warnings' format '%BSorry, no matches for: %d%b'

Corrección de Comandos

También es buena idea activar la auto-corrección de los comandos escritos:

Listado de Código 2.3: Activando la corrección

% setopt correctall

Indicadores

El indicador puede parecer bastante aburrido, pero lo podemos arreglar fácilmente en varios pasos. Primero necesitamos inicializar soporte avanzado para indicadores:

Listado de Código 2.4: Activando indicadores avanzados

% autoload -U promptinit
% promptinit

Los indicadores muestra disponibles pueden imprimirse mediante el comando prompt -p. Ahora podremos activar nuestro preferido:

Listado de Código 2.5: Escogiendo un indicador

(Reemplace gentoo con el indicador de su preferencia)
% prompt gentoo

Nota: Si está probando distintos indicadores y no quiere ver muestras de cada uno, puede usar el comando prompt -l para listar los indicadores disponibles.

Otra opción es la creación de un indicador propio. Para hacer esto necesitará configurar la variable de entorno PS1.

Listado de Código 2.6: Un indicador personalizado sencillo

% export PS1="[Indicador de Prueba] > "
[Test Prompt] >

Mientras que es bueno poder crear un indicador personalizado, zsh también permite diversas secuencias de escape que permiten la inclusión de información del sistema en el indicador. Algunas de las secuencias de escape disponibles son:

Secuencia Apariencia
%T Hora del sistema (HH:MM)
%* Hora del sistema (HH:MM:SS)
%D Fecha del sistema (YY-MM-DD)
%n Nombre del usuario
%B - %b Comenzar y terminar negritas
%U - %u Comenzar y terminar subrayado
%d Directorio actual de trabajo
%~ Directorio actual de trabajo, relativo a ~
%M Nombre del anfitrión
%m Nombre del anfitrión (truncado al primer punto)
%l tty actual

Estas secuencias de escape pueden ser sencillamente insertadas en la variable de entorno PS1 y zsh las interpretará automáticamente.

Listado de Código 2.7: Un indicador más complejo

% export PS1="[%* - %D] %d %% "
[08:44:23 - 06-02-18] /home/username %

Historial

Desafortunadamente la configuración por defecto de zsh en Gentoo no inclye soporte para el historial de comandos. Como trabajar con un interfaz sin soporte de historial es muy frustrante, podemos cambiar esto con los siguientes comandos:

Listado de Código 2.8: Configuración básica para el historial

% export HISTSIZE=2000
% export HISTFILE="$HOME/.history"

(El historial no será guardado sin el siguiente comando)
% export SAVEHIST=$HISTSIZE

Para evitar que el historial registre entradas por duplicado (como por ejemplo ls -l usado varias veces durante una misma sesión), puede activar la opción hist_ignore_all_dups:

Listado de Código 2.9: Activando duplicados en el historial

% setopt hist_ignore_all_dups

Un truco útil para evitar que entradas en particular sean registradas en el historial es precederlas con al menos un espacio en blanco.

Listado de Código 2.10: Evitando registro de entradas precedidas por espacio

% setopt hist_ignore_space

(Este comando no será registrado. Note el espacio que lo precede.)
%  cat /proc/cpuinfo

Configuración miscelánea

Puede activar la opción autocd si desea evitar el tener que escribir tediosamente el comando cd al cambiar de directorio (por ejemplo /etc en vez de cd /etc).

Listado de Código 2.11: Activando la opción autocd

% setopt autocd

Si el englobamiento al estilo de bash no le satisface, puede activar la opción extendedglob para permitir englobamiento extendido (similar a las expresiones regulares).

Listado de Código 2.12: Activando el englobamiento extendido

% setopt extendedglob

Cuando esté activada la opción anterior, podrá hacer uso de consultas con englobamiento extendido, tales como cp ^*.(tar|bz2|gz).

3.  Salvando la configuración

Salvando la configuración de zsh

Una vez que hemos personalizado zsh justo como nos gusta, es una buena idea conservar estas opciones como las por defecto de zsh. Una manera de hacer esto es escribir nuestra configuración en el archivo /etc/zsh/zshrc. Alternativamente, podremos convertirlas en las opciones por defecto para nuestra cuenta, únicamente modificando el archivo ~/.zshrc.

Listado de Código 3.1: Un zshrc como ejemplo

#!/bin/zsh

# completion
autoload -U compinit
compinit

# correction
setopt correctall

# prompt
autoload -U promptinit
promptinit
prompt gentoo

4.  Haciendo que zsh sea el shell por defecto

Opciones para usuarios con privilegios de superusuario

Podemos cambiar el intérprete de comandos (shell) con el comando usermod.

Listado de Código 4.1: Cambiando a zsh permanentemente con usermod

# usermod -s /bin/zsh userlogin

Alternativa para usuarios normales

Si su administrador de sistema (a pesar de los pedidos educados de su parte) se rehusa cambiar su shell a zsh, puede hacer que bash ejecute zsh al inicio, con una pequeña modificación al archivo ~/.bashrc.

Listado de Código 4.2: Archivo ~/.bashrc como ejemplo

(Agregue lo siguiente a su ~/.bashrc)
exec zsh

Otra manera de cambiar de shell es con el comando chsh (una herramienta usada para cambiar el shell del usuario). Un usuario normal solo puede cambiar el shell para su propia cuenta. Como superusuario, puede cambiar el shell de cualquier usuario.

Listado de Código 4.3: Cambiando permanentemente a zsh con chsh

(Reemplace "username" con su propio nombre de usuario)
$ chsh -s /bin/zsh username


Imprimir

Página actualizada 18 de octubre, 2006

Sumario: Esta guía enseña como instalar y configurar zsh rápidamente. Después de leer este documento podrá usar muchas de las características de zsh como el modo avanzado de terminación de comandos con el tabulador, corrección de comandos y manejo del indicador.

Henryk Konsek
Autor

Andrew Morritt
Autor

Chris White
Editor

Peter Weller
Editor

John Christian Stoddart
Traductor

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.