📟Terminal

Quelques astuces pour configurer votre terrminal

Shell

Vérifier la version du shell

bash --version        # Check Bash version
zsh --version         # Check ZSH version
fish --version        # Check fish version
gnome-shell --version # Check GNOME version

Changer le shell par défaut

Pour changer de shell, un utilisateur doit exécuter la commande chsh et préciser où se trouve son nouveau shell.

sudo dnf install util-linux-user    # install chsh
cat /etc/shells			    # list all the shells from your system
chsh				    # change the shell for your user
/bin/zsh			    # Example: change the shell Bash to ZSH

Remplacer Bash par Zsh

Description

Zsh (abréviation de Z Shell) est un programme shell riche en fonctionnalités pour les systèmes d'exploitation de type Unix (dont Linux est un dérivé) avec de nombreuses fonctionnalités. Il s'agit d'une version étendue du Bourne Shell (sh). L'intérêt de Zsh par rapport à la plupart des autres commandes cd, l'extension de chemin récursif et la correction orthographique et la sélection interactive de fichiers et de répertoires.

Zsh se trouvat dans les référentiels Fedora et peut être installé avec la commande dnf suivante.

Installation de ZSH

sudo dnf install zsh

Oh-My-ZSH (OMZ)

Oh My Zsh est un framework pour ZSH, il fournit de nombreux thèmes et plugins (support de PHP, Python, PostgreSQL ...). Ci-dessous, sont présents ceux que j'utilise.

A découvrir, une liste de plugins pour OMZ réalisé par Unixorn : https://github.com/unixorn/awesome-zsh-plugins#oh-my-zsh

Pour l'installer, lancer la commande suivante :

curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh

Une fois "Oh My Zsh" d'installé, il suffit de redémarrer ZSH pour prendre en compte les changements. (CTRL + D puis "zsh")

Activer les mise à jour de Oh-My-ZSH

Il est possible de mettre à jour OMZ de deux façons, manuellement ou de façon automatique Mise à jour manuel

omz update

Mise à jour automatique

zstyle ':omz:update' mode auto	    # Activer mise à jour automatique
zstyle ':omz:update' mode disabled  # Désactiver mise à jour automatique

Thèmes OMZ

Il existe plusieurs thèmes pour OMZ, voici comme installer deux d'entre eux (agnoster et powerlevel10K)

La liste complète est thèmes est disponible ici.

Agnoster

1 - Ouvrir le fichier .zhrc

open ~/.zshrc

2 - Changer le thème par défaut

Parcourez votre fichier afin de trouver cette ligne ZSH_THEME et ajouter agnoster

ZSH_THEME="agnoster"

3 - Mettre à jour le fichier de config ZSH

source ~/.zshrc

Powerlevel10K

Avant de procéder à l'installation du thème Powerlevel10K, il est fortement reccomander d'installer la polices d'écriture Meslo Nerd Font pour une meilleur confort.

Pré-requis : Meslo Nerd Font

  1. Télécharger Meslo Nerd Font (fichiers ttf)

  1. Installer les fonts sur votre système

Double-cliquer sur chaque fichier, et cliquer "Install". Cela installera MesloLGS NF sur votre système.

  1. Définir la police d'écriture dans votre Terminal ou IDE

  • Visual Studio Code: Ouvrir Fichiers → Préférences → Paramètres (PC) ou Code → Préférences → Paramètres (Mac), et taper terminal.integrated.fontFamily dans la barre de recherche présente en haut de l'onglet Préférences et basculer la valeur sur MesloLGS NF. Vous pouvez consulter ce screenshot pour voir ce que cela doit donner.

  • GNOME Terminal / Tilix (le terminal par défaut de Fedora): Ouvrir le Terminal → Préférences et sélectionner un profil . Rechercher Custom font sous Text Appearance et sélectionnerMesloLGS NF Regular

Installation de Powerlevel10K

1 - Cloner le répertoire suivant

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

2 - Ouvrir le fichier .zhrc

open ~/.zshrc

3 - Changer le thème par défaut

Parcourez votre fichier afin de trouver cette ligne ZSH_THEME et ajouter powerlevel10k

ZSH_THEME="powerlevel10k/powerlevel10k"

4 - Mettre à jour le fichier de config ZSH

source ~/.zshrc

Plugins

Voici deux plugins très utile pour OMZ que j'utilise au quotidien :

1 - Pour les installer, cloner ces répertoires dans le dossier plugins de oh-my-zsh. Par défaut celui-ci si trouve ici : ~/.oh-my-zsh/custom/plugins)

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting  # zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions              # zsh-autosuggestions

2 - Ouvrir le fichier .zhrc

open ~/.zshrc

3 - Ajouter vos plugins à ceux existant. Parcourez votre fichier afin de trouver cette ligne plugins=( et remplacer par :

plugins=(
   git
   zsh-syntax-highlighting
   zsh-autosuggestions
)

3 - Mettre à jour le fichier de config ZSH

source ~/.zshrc

Warp

Description

Warp est un émulateur de terminal écrit en Rust. Il se distingue par des fonctionnalités telles que Warp Drive pour le partage de commandes entre équipes, Warp AI pour les suggestions et l'assistance des commandes, ainsi qu'un IDE moderne avec une sélection de texte et un positionnement du curseur.

Installation

La manière la plus simple d'installer Warp est de télécharger et d'installer le paquet rpm. Après le téléchargement, vous pouvez installer le paquet avec :

sudo dnf install ./.rpm

L'installation du paquetage .rpm configurera automatiquement le dépôt yum de Warp. Lors de la première mise à jour, dnf récupérera la clé de signature nécessaire pour vérifier l'intégrité des paquets téléchargés.


TMUX

Description

tmux est un multiplexeur de terminaux libre en mode texte. Il permet d'utiliser plusieurs terminaux virtuels dans une seule fenêtre de terminal ou une session sur un terminal distant. tmux peut être détaché d'une session et continuer de fonctionner en arrière-plan, on peut également s'y rattacher plus tard. Wikipédia

Installation

sudo dnf -y install tmux

Liste de raccourcis

tmux ls : voir la liste liste des tmux actifs

tmux new -s mysession : démarrer une nouvelle session avec un nom

tmux a -t mysession : se connecter à votre dernière session qui porte un nom

Cheatsheet

Tmux Cheat Sheet : https://tmuxcheatsheet.com


Dog

Description

dog est un client DNS en ligne de commande comme dig. Il utilise une syntax colorée qui comprend la syntaxe normale des arguments en ligne de commande. Le client supporte les protocoles DNS-over-TLS et DNS-over-HTTPS, et peut émettre du JSON.

Installation

Sur Fedora, vous pouvez installer dog via Snapcraft ou manuellement

Installation via Snap

sudo dnf install snapd		      # Enable Snapd
sudo ln -s /var/lib/snapd/snap /snap  # Enable classic snap support, enter the following to create a symbolic link
sudo snap install dog		      # Install dog

Installation manuelle

Installer gcc, tar, et les librairies SSL nécéssaire : libssl or openssl.

sudo dnf install gcc tar openssl-devel

Note : You may need to update your system’s version of the GNU C library (glibc).

Installer maintenant Rust. Il vous sera utile pour complier le code source de dog :

curl --proto =https --tlsv1.2 -sSf https://sh.rustup.rs | sh

Lorsque le terminal vous le proposer, sélectionner 1 pour procéder à l'installation dans le dossier par défaut. Après avoir redémarrer votre terminal, taper la commande suivante :

source $HOME/.cargo/env

Naviguer dans la release page de dog, identifier la version la plus récente, et copier l'URL du ficher .tar.gz. Télécharger le fichier en remplacant par l'URL que vous venez de copier

curl -LO https://github.com/ogham/dog/archive/refs/tags/v0.1.0.tar.gz

Décompresser les fichers du l'archive .tar.gz file, et entrez dans le répertoire extrait. Remplacez le nom de fichier ci-dessous par celui du fichier que vous avez téléchargé. De même, remplacez le nom du répertoire par celui du fichier extrait :

tar -xvzf v0.1.0.tar.gz  # Extract the .tar.gz file
cd dog-0.1.0             # Open directory

Avant de lancer le build, lancer cette commande pour mettre à jour les dépendances de Cargo

cargo update # Update dependencies

Lancer le build avec Cargo pour générer le fichier binaire de dog:

cargo build --release  # Build project

Copier le fichier binaire dans le dossier bin de l'utilisateur :

sudo cp target/release/dog /usr/local/bin  # Copy the resulting binary into your current user’s PATH

Vérifier votre installation en identifiant la version de dog installer

dog --version # checking the installed version of dog

Cyberduck CLI

Description

Un outil de transfert de fichiers qui s'exécute dans votre shell sous Linux & OS X ou votre invite de ligne de commande Windows. Modifiez des fichiers sur des serveurs distants, téléchargez, chargez et copiez entre des serveurs avec FTP, SFTP ou WebDAV, ainsi que la prise en charge des déploiements de stockage dans le cloud Amazon S3 et OpenStack Swift.

Installation

echo -e "[duck-stable]\nname=duck-stable\nbaseurl=https://repo.cyberduck.io/stable/\$basearch/\nenabled=1\ngpgcheck=0" | sudo tee /etc/yum.repos.d/duck-stable.repo
sudo yum install duck

Source & Site web : https://duck.sh/


MTR (My Traceroute)

Description

Un outil de diagnostic de réseau en ligne de commande qui fournit les fonctions des commandes Ping et Traceroute.

Installation

sudo dnf install mtr

VIM

Description

VIM permets de lire et d'éditer des fichiers depuis votre terminal. Pas facile à prendre en main :D

Installation

sudo dnf install vim        # VIM CLI version
sudo dnf install vim-X11    # VIM vith GUI features

Liste de raccourcis

:q! or ZQ - quitter et abandonner les modifications non sauvegardée

Faire une modification sur un fichier

  1. Rechercher la valeur à modifier : /<value>

  2. Faire une insertion : i

  3. Changer la valeur

  4. Quitter la saisie vim : exit

  5. Sauvegarder et quitter vim : :wq

Mouvement du curseur

  • k - déplacer le curseur vers le haut ⬆️

  • j - déplacer le curseur vers le bas ⬇️

  • h - déplacer le curseur vers la gauche ⬅️

  • l - déplacer le curseur vers la droite ➡️

  • H - déplacement vers le haut de l'écran ⬆️

  • M - déplacement vers le milieu de l'écran

  • L - déplacement vers le bas de l'écran ⬇️

  • gg - aller à la première ligne du document ⏫

  • G - aller à la dernière ligne du document ⏬


GNU nano

Description

GNU nano permet de lire et d'éditer des fichiers depuis votre terminal mais de façon plus accessible que VIM.

Installation

sudo dnf install nano

Liste de raccourcis

Toutes les commandes sont préfixées avec soit ^ ou M.

  • Le symbole caret (^) représente la toucheCtrl de vote clavier.

  • La lettre Mreprésente la touche Alt de votre clavier.

Par exemple, pour ^Jles commandes signifient que l'appui sur Ctrlet J en même temps.

Sélectionner du texte

Pour sélectionner du texte, le copier et le coller :

  1. Se déplacer avec les flèches ↑ ↓ ← → pour se placer à l'endroit voulu,

  2. Faire Alt+A pour marquer le début de la sélection,

  3. Se déplacer avec les flèches ↑ ↓ ← → pour sélectionner la zone de texte à copier,

  4. Copier cette sélection avec Alt+^,

  5. Se déplacer à l'endroit voulu pour le collage,

  6. Coller avec Ctrl+U.

Raccourcis utiles

  • CTRL + A : Permet d’aller au début de la ligne

  • CTRL + E : Permet d’aller à la fin de la ligne

  • CTRL + Y : Permet de remonter de page en page

  • CTRL + V : Permet de descendre de page en page

  • CTRL + _ : Permet de se rendre au n° de ligne indiqué

  • CTRL + C : Permet de savoir à quel n° de ligne / colonne / caractère se trouve votre curseur

  • CTRL + W : Permet de faire une recherche

  • CTRL + D : Permet de supprimer un caractère

  • CTRL + K : Permet de supprimer une ligne complète (comme la commande dd sous Vi)

  • CTRL + O : Permet de sauvegarder votre fichier

  • CTRL + X : Permet de quitter nano

  • CTRL + G : Affiche l’aide


curl

Description

cURL (client URL request library) est une interface en ligne de commande, destinée à récupérer le contenu d'une ressource accessible sur internet. Il peut être utilisé en tant que client REST. cURL implémente l'interface utilisateur et repose sur la bibliothèque logicielle libcurl

Installation

sudo dnf install curl

Site web : https://curl.se/


Htop

Description

htop est un moniteur système pour les systèmes d’exploitation type Unix très similaire à top, qui fonctionne également en mode Terminal, mais qui dispose d'un environnement en mode texte plus convivial que ce dernier.

Installation

sudo dnf install htop

Btop++

Description

Une alternative plus graphique à top ou htop

Installation

sudo dnf install btop

Des thèmes sont également disponible : https://github.com/aristocratos/btop


GPing

Description

Une alternative graphique et plus complète (multipe hosts par exemple) à la commande ping

Après l'installation, lancer gping <domaine.tld>

Installation

sudo dnf copr enable atim/gping -y && sudo dnf install gping

EZA

Description

eza est une alternative moderne du programme de listage de fichiers ls. Il utilise des couleurs pour distinguer les types de fichiers et les métadonnées. Il connaît les liens symboliques, les attributs étendus et Git ! Enfin, il est petit, rapide et ne comporte qu'un seul binaire :)

Après l'installation, lancer eza à la place de commande ls.

Pour connaitre la liste complète des raccourcis, taper eza --help

Installation

sudo dnf install eza

Site internet : https://eza.rocks

Liste de raccourcis

# La Base
eza -l             # Vue liste
eza -l -T          # Vue liste avec arborescence

# Eléments
eza -l --grid      # Vue liste en colonnes
eza -l --icons     # Vue liste avec icones
eza -l --hyperlink # Vue liste avec hyperlien
eza -l --header    # Vue liste avec le header
eza -l --blocksize # Vue liste avec la taille des fichiers
eza -l --time-style "+%d/%m/%Y" # Vue liste avec la taille des fichiers

# Combinaisons (exemples)
eza -l --icons --hyperlink --header --blocksize --time-style "+%d/%m/%Y"    # Vue liste
eza -T -l --icons --hyperlink --header --blocksize --time-style "+%d/%m/%Y" # Vue liste avec avec arborescence

# GIT
eza -l --icons --hyperlink --header --time-style "+%d/%m/%Y" --git
eza -l --icons --hyperlink --header --time-style "+%d/%m/%Y" --git --git-repos-quotes'

Arsenal

Un outil pour créez un inventaire de vos commandes Linux favorites

# Installation avec pip
python3 -m pip install arsenal-cli

# Installation manuelle
git clone https://github.com/Orange-Cyberdefense/arsenal.git
cd arsenal
python3 -m pip install -r requirements.txt
./run

# Inside your .bashrc or .zshrc add the path to run to help you do that you could launch the addalias.sh script
./addalias.sh

# Lancer l'application
arsenal               

Dernière mise à jour