diff --git a/README.md b/README.md index a46125e..2ccc187 100644 --- a/README.md +++ b/README.md @@ -10,13 +10,13 @@ Configuración personal de la shell - [Theme](#theme) - [Plugins](#plugins) - [Conclusiones](#conclusiones) -- [Agradecimientos ❤️](#agradecimientos-️) +- [Agradecimientos 🎁](#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. -Resumo las opciones que he barajado para elegir. +Las opciones barajadas han sido: - **Opciones UI:** - Terminator @@ -40,7 +40,7 @@ sudo apt install terminator ``` Archivo de configuración en `${HOME}/.config/terminator/config`. -**Shortcurts que me resultan interesantes:** +**Shortcuts que me resultan interesantes:** Descripción | Atajo ---|:---: @@ -68,22 +68,169 @@ Editar título terminal | Ctrl+Alt+X Editar título ventana | Ctrl+Alt+W # 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`](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 +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 +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 +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