# [Shell] ZSH

## Introduction

ZSH est un shell similaire à bash mais bénéficiant de l'ajout d'une multitude de thèmes et de plugins.

[![st,small,507x507-pad,600x600,f8f8f8.jpg](https://wiki.neopipe.fr/uploads/images/gallery/2023-09/scaled-1680-/stsmall507x507-pad600x600f8f8f8.jpg)](https://wiki.neopipe.fr/uploads/images/gallery/2023-09/stsmall507x507-pad600x600f8f8f8.jpg)

## Source

- [Vidéo de Processus Thief](https://www.youtube.com/watch?v=3KzIQFPWs2Y&ab_channel=ProcessusThief).

## Installation

Le processus d'installation est à peu près similaire sur chaque distribution. Pour l'exemple, Debian 12 sera utilisé.

Tout d'abord, installez le paquet **zsh** :

```bash
sudo apt install -y zsh
```

Ensuite, définissez le shell par défaut grâce à la commande suivante :

```bash
chsh
```

Puis indiquer le chemin de zsh soit **/bin/zsh** .

## Oh-my-zsh

**Oh-my-zsh** est un framework permettant l'ajout de fonctionnalités, de configurations et de thèmes sur ZSH.

Il va nous permettre d'installer les plugins et les thèmes.

Pour l'installer, une seule commande fournie sur le site officiel suffit :

```bash
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
```

Remarque : Les paquets **curl** et **git** doit être installé pour que la commande ci-dessus fonctionne correctement.

## Plugins oh-my-zsh

Toute une panoplie de plugins sont mis à disposition et développés par la communauté.

Les plus populaires sont répertoriés sur le github suivant :

- [https://github.com/zsh-users](https://github.com/zsh-users)

Mes 3 favoris sont les suivants :

- zsh-syntax-highlighting
- zsh-autosuggestions
- zsh-completions

Afin de les installer, nous devons cloner les dépôts de chacun de ces plugins directement dans le répertoire adéquat :

```bash
cd ~/.oh-my-zsh/plugins/ && git clone https://github.com/zsh-users/zsh-syntax-highlighting && git clone https://github.com/zsh-users/zsh-autosuggestions && git clone https://github.com/zsh-users/zsh-completions
```

Ensuite, il faut préciser les plugins à utiliser dans le fichier **.zshrc** :

![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2023-09/scaled-1680-/JITimage.png)Maintenant, il suffit de rafraîchir le zshrc pour pouvoir profiter des plugins :

```bash
source ~/.zshrc
```

## Thèmes oh-my-zsh

Une large gamme de thèmes sont fournis par la communauté.

Mon préféré est **PowerLevel10K** qui ajoute des icônes dans le terminal et un style personnalisable.

Pour l'installer, commencez par cloner le dépôts directement dans le répertoire des thèmes de oh-my-zsh :

```bash
cd ~/.oh-my-zsh/themes/ && git clone https://github.com/romkatv/powerlevel10k
```

Indiquez-le dans le zshrc en remplacant **robbyrussell** par **powerlevel10K/powerlevel10K**:

[![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2023-09/scaled-1680-/J01image.png)](https://wiki.neopipe.fr/uploads/images/gallery/2023-09/J01image.png)

 Rafraîchir le zshrc :

```bash
source ~/.zshrc
```

Il ne vous reste plus qu'à suivre l'installateur pour personnaliser votre shell à souhait.

Vous pouvez aussi vous amuser à afficher des informations systèmes dans votre prompt (à gauche ou à droite) en éditant le fichier **.p10k.zsh** .

<p class="callout warning">Si les icônes s'affichent mal, il se peut que ce soit votre police qui vous joue des tours. Dans ce cas, utiliser la police recommandé par p10k dans votre terminal : **Meslo Nerd Font** .</p>

#### Reconfigurer PowerLevel10K

```bash
p10k configure
```