Guía de Configuración e Instalación de zsh
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 |
% 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"
% 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
% 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 |
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 |
$ chsh -s /bin/zsh username
|
El contenido de este documento, a no ser que se especifique
expresamente, está registrado bajo los términos de la licencia
CC-BY-SA-2.5. Se aplican las
Pautas de
Utilización del logotipo y nombre de Gentoo.
|