files | ||
README.md |
Configuración personal de la shell
Índice de contenidos:
- Configuración personal de la shell
- Descripción
- Terminator
- zsh
- Oh my zsh!
- Conclusiones
- Agradecimientos 🎁
Descripción
En este repo explicaré el terminal, la shell y las configuraciones que uso en el día a día. Intentaré tenerlo siempre actualizado.
Las opciones barajadas han sido:
- Opciones UI:
- Terminator
- gnome terminal
- Yakuake
- Opciones shell:
- zsh
- fish
- bash
Terminator
Terminator
es un emulador de terminal, proyecto de gnome, que proporciona funcionalidades como dividir horizontalmente o verticalmente, se puede dar un título personalizado a cada terminal, estructura multigrid, ahorro de diseños, etc.
En la barra de título hay un botón que abre el menú de agrupación desde donde se puede controlar múltiples terminales simultáneamente. Esto significa que se escribirán al mismo tiempo. Es útil si quieres mandar un comando de actualización de la ventana, un clear
o simplemente cerrarlas. Con la agrupación se activará el broadcast group, se puede desactivar (Broadcast off) o agrupar a todos los terminal aunque no sean del mismo grupo(Broadcast all).
El emulador Terminator
lo suelen tener los repositorios de paquetes de las distros más conocidas. Por ejemplo, instalación en Ubuntu:
sudo apt install terminator
Archivo de configuración en ${HOME}/.config/terminator/config
.
Shortcuts que me resultan interesantes:
Descripción | Atajo |
---|---|
Abrir terminal | Ctrl+mayús+T |
Mover al terminal inferior | Alt+Abajo |
Mover al terminal superior | Alt+Arriba |
Mover al terminal derecha | Alt+Derecha |
Mover al terminal izquierda | Alt+Izquierda |
Mover al siguiente terminal | Ctrl+tabulador |
Mover al anterior terminal | Maj+Ctrl+tabulador |
Rotar ventanas | Super+R |
Rotar ventanas a la inversa | Maj+Super+R |
Dividir horizontal | Maj+Ctrl+O |
Dividir vertical | Maj+Ctrl+E |
Cerrar terminal | Maj+Ctrl+W |
Cerrar ventana | Maj+Ctrl+Q |
Copiar | Maj+Ctrl+C |
Pegar | Maj+Ctrl+V |
Buscar | Maj+Ctrl+F |
Zoom | Maj+Ctrl+Z |
Ampliar fuente | Ctrl++ |
Disminuir fuente | Ctrl+- |
Editar título tab | Ctrl+Alt+A |
Editar título terminal | Ctrl+Alt+X |
Editar título ventana | Ctrl+Alt+W |
zsh
ZSH
son las siglas de Z Shell, que es un programa de shell para sistemas operativos similares a Unix. ZSH es una versión extendida de Bourne Shell que incorpora algunas características de BASH, KSH, TSH, etc.
Alguna de su funciones son:
- Finalización de la línea de comandos.
- La historia se puede compartir entre todas las conchas.
- Globbing extendido de archivos.
- Mejor manejo de variables y matrices.
- Compatibilidad con conchas como bourne shell.
- Corrección ortográfica y autocompletado de nombres de comandos.
- Directorios con nombre.
Su instalación en Ubuntu es muy sencilla, ya está incluído en los repositorios oficiales:
sudo apt update
sudo apt install zsh
Podemos comprobar su versión:
zsh --version
Podemos ver la shell predeterminada imprimiendo la variable en pantalla:
echo $SHELL
Para establecer zsh como la shell predeterminada podemos usar chsh
:
chsh -s $(which zsh)
o
chsh -s /usr/bin/zsh
Y ahora, para usar zsh predeterminado debemos lanzar de nuevo la terminal. Podemos cerrar y volver a abrir o utilizar el comando:
exec zsh
Cuando se inicie ZSH por primera vez, aparecerán algunas opciones para configurar. Por ejemplo:
a) Seleccione la opción “1”en la primera página que nos llevará al menú principal.
b) El menú principal mostrará algunas opciones recomendadas para configurar.
También podemos configurar directamente en el fichero ${HOME}/.zshrc
. Por ejemplo, el mío es este: zshrc.
En el caso que se quiera volver a bash
, tan solo debemos cambiar la shell predeterminada con el comando:
chsh -s $(which bash)
o
chsh -s /usr/bin/bash
O directamente desinstalar zsh 😢
sudo apt --purge remove zsh
chsh -s $(which "SHELL NAME")
Oh my zsh!
Oh My Zsh
es un framework de código abierto, impulsado por la comunidad para la gestión de su configuración de zsh. Las características principales son:
- El directorio de plugins que puedes ver en su repositorio Git y en la wiki.
- El directorio de themes con más de ciento cincuenta incluidos. La mayoría de ellos tienen capturas de pantalla en el wiki (¡Estamos trabajando en la actualización de esto!).
Para instalar Oh My Zsh
se puede ejecutar con uno de los siguientes comandos.
Método | Comando |
---|---|
curl | sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" |
wget | sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" |
fetch | sh -c "$(fetch -o - https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" |
Una vez instalado se puede ver toda la configuración en el árbol de directorios del directorio ${HOME}/.oh-my-zsh/
.
.oh-my-zsh/
├── cache
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── custom
├── lib
├── LICENSE.txt
├── log
├── oh-my-zsh.sh
├── plugins
├── README.md
├── SECURITY.md
├── templates
├── themes
└── tools
Theme
El tema que he escogido es powerlevel10k/powerlevel10k
❤️
Hace hincapié en la velocidad, la flexibilidad y la experiencia out-of-the-box. Es un tema muy llamativo para las terminales.
Para instalarlo empezamos descargando con git y ubicándolo en su sitio:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/.oh-my-zsh/custom/themes/powerlevel10k
echo 'source ~/.oh-my-zsh/custom/themes/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc
En el archivo de configuración de zsh .zshrc
tendremos que buscar la línea del tema, suele ser ZSH_THEME="robbyrussell"
, y reemplazarlo por ZSH_THEME="powerlevel10k/powerlevel10k"
.
Reiniciamos la terminal y nos aparecerá un asistente de configuración del tema powerlevel10k. También podemos acudir a este wizard con el comando:
p10k configure
Cualquier duda sobre la instalación y configuración del tema, la documentación oficial es muy completa.
Plugins
Los plugins que utilizo son los siguientes:
- dirhistory
- docker
- docker-compose
- encode64
- git
- history
- history-substring-search
- jsontools
- jump
- kubectl
- nmap
- sudo
- zsh-autosuggestions
La mayoría son de Oh my zsh
y la instalación es simple: Después de instalar Omz tan solo hay que incluirlos en los plugins del documento .zshrc
.
De todas formas, para sacar el máximo jugo, es interesante leer el README de cada uno de ellos.
Conclusiones
He empezado con este nuevo ambiente de trabajo a finales de octubre de 2022, el tiempo dirá si tengo los componentes más adecuados, pero desde luego tengo que destacar varios aspectos:
- La comunidades que respaldan cada unos de los elementos mencionados.
- Las posibilidades de gestión de terminales de terminator.
- La customización con los themes. De los colores, de las fuentes, de los tamaños, de las ubicaciones, etc
- El amplio abaníco de shortcuts personalizados de la terminal y de los plugins omz.
Agradecimientos 🎁
A todos los que me habéis comentado como tenéis vuestra configuración: Miki, Sergio, Ruben, Javier, Alex, Victor, etc