Primera versión completa

This commit is contained in:
Manuel Vergara 2022-10-23 12:30:21 +02:00
parent ab3e9f0d68
commit 4443890a9e

157
README.md
View File

@ -10,13 +10,13 @@ Configuración personal de la shell
- [Theme](#theme) - [Theme](#theme)
- [Plugins](#plugins) - [Plugins](#plugins)
- [Conclusiones](#conclusiones) - [Conclusiones](#conclusiones)
- [Agradecimientos ❤️](#agradecimientos-) - [Agradecimientos 🎁](#agradecimientos-)
# Descripción # 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. En este repo explicaré el terminal, la shell y las configuraciones que uso en el día a día. Intentaré tenerlo siempre actualizado.
Resumo las opciones que he barajado para elegir. Las opciones barajadas han sido:
- **Opciones UI:** - **Opciones UI:**
- Terminator - Terminator
@ -40,7 +40,7 @@ sudo apt install terminator
``` ```
Archivo de configuración en `${HOME}/.config/terminator/config`. Archivo de configuración en `${HOME}/.config/terminator/config`.
**Shortcurts que me resultan interesantes:** **Shortcuts que me resultan interesantes:**
Descripción | Atajo Descripción | Atajo
---|:---: ---|:---:
@ -68,22 +68,169 @@ Editar título terminal | Ctrl+Alt+X
Editar título ventana | Ctrl+Alt+W Editar título ventana | Ctrl+Alt+W
# zsh # zsh
En el archivo [zshrc](files/zshrc) está toda la configuración. [`ZSH`](https://www.zsh.org/) 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:
```shell
sudo apt update
sudo apt install zsh
```
Podemos comprobar su versión:
```shell
zsh --version
```
Podemos ver la shell predeterminada imprimiendo la variable en pantalla:
```shell
echo $SHELL
```
Para establecer zsh como la shell predeterminada podemos usar `chsh`:
```shell
chsh -s $(which zsh)
```
o
```shell
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:
```shell
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.
![](https://hazlolinux.com/wp-content/uploads/2021/08/1627178652_124_How-to-Install-and-Setup-Zsh-in-Ubuntu-2004.png)
b) El menú principal mostrará algunas opciones recomendadas para configurar.
![](https://hazlolinux.com/wp-content/uploads/2021/08/1627178652_946_How-to-Install-and-Setup-Zsh-in-Ubuntu-2004.png)
También podemos configurar directamente en el fichero `${HOME}/.zshrc`. Por ejemplo, el mío es este: [zshrc](files/zshrc).
En el caso que se quiera volver a `bash`, tan solo debemos cambiar la shell predeterminada con el comando:
```shell
chsh -s $(which bash)
```
o
```shell
chsh -s /usr/bin/bash
```
O directamente desinstalar zsh 😢
```shell
sudo apt --purge remove zsh
chsh -s $(which "SHELL NAME")
```
# Oh my zsh! # Oh my zsh!
[`Oh My Zsh`](https://github.com/ohmyzsh/ohmyzsh) 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](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins) y en la [wiki](https://github.com/ohmyzsh/ohmyzsh/wiki/Plugins).
- El directorio de **themes** con más de ciento cincuenta incluidos. La mayoría de ellos tienen [capturas de pantalla](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes) 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/`.
```shell
.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 ## Theme
El tema que he escogido es [`powerlevel10k/powerlevel10k`](https://github.com/romkatv/powerlevel10k) ❤️
![](https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/prompt-styles-high-contrast.png)
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:
```shell
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:
```shell
p10k configure
```
Cualquier duda sobre la instalación y configuración del tema, la [documentación oficial](https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-ZSH) es muy completa.
## Plugins ## Plugins
Los plugins que utilizo son los siguientes:
- [dirhistory](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/dirhistory)
- [docker](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/docker)
- [docker-compose](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/docker-compose)
- [encode64](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/encode64)
- [git](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/git)
- [history](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/history)
- [history-substring-search](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/history-substring-search)
- [jsontools](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/jsontools)
- [jump](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/jump)
- [kubectl](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/kubectl)
- [nmap](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/nmap)
- [sudo](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/sudo)
- [zsh-autosuggestions](https://github.com/zsh-users/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 # 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 ❤️ # Agradecimientos 🎁
A todos los que me habéis comentado como tenéis vuestra configuración: Miki, Sergio, Ruben, Javier, Alex, Victor, etc A todos los que me habéis comentado como tenéis vuestra configuración: Miki, Sergio, Ruben, Javier, Alex, Victor, etc