Outils de développement Linux (Partie 1) : Vim, gestion des privilèges sudo et GCC

Vim, l'éditeur de texte Linux

Vim est un éditeur de texte puissant et polyvalent, doté d'une haute personnalisation et de nombreuses fonctionnalités. Pour ouvrir un fichier : tapez vim nomdefichier dans le terminal. Vim supporte les chemins relatifs et absolus.

Les principaux modes de Vim :
  • Mode Normal : C'est le mode principal de Vim, où toutes les commandes sont exécutées. Au démarrage, Vim se trouve dans ce mode. Les entrées clavier sont interprétées comme des commandes, et non comme du texte. (Appuyez sur i pour entrer en mode Insertion, sur : pour entrer en mode Ligne de commande, et sur Esc pour revenir au mode Normal depuis d'autres modes)
  • Mode Insertion : En appuyant sur i, vous entrez dans ce mode où vous pouvez saisir du texte comme dans un éditeur standard. Appuyez sur Esc pour retourner au mode Normal.
  • Mode Ligne de commande : En appuyant sur Shift+; (ce qui donne :), vous accédez à ce mode qui permet des opérations complexes sur les fichiers. Par exemple, :wq enregistre et quitte Vim. Appuyez sur Esc pour revenir au mode Normal.
Commandes courantes en mode Normal :

Navigation

  • gg : Placer le curseur au début du fichier.
  • G : Placer le curseur à la fin du fichier.
  • nG : Aller à la ligne numéro n.
  • $ : Placer le curseur à la fin de la ligne actuelle.
  • ^ : Placer le curseur au début de la ligne actuelle.
  • w, b : Déplacer le curseur d'un mot en avant ou en arrière.
  • h, j, k, l : Déplacer le curseur à gauche, en bas, en haut, à droite.

Édition de texte

  • (n)yy : Copier la ligne actuelle ou n lignes.
  • (n)dd : Couper (supprimer) la ligne actuelle ou n lignes.
  • (n)p : Coller n lignes après le curseur.
  • u : Annuler la dernière action.
  • Ctrl+r : Rétablir l'action précédemment annulée.

Autres opérations

  • ~ : Changer la casse du caractère sous le curseur.
  • (n)r : Remplacer n caractères par un autre.
  • R : Entrer en mode remplacement.
  • (n)x : Supprimer n caractères après le curseur.
  • :w enregistrer, :w! forcer l'enregistrement, :q quitter, :q! quitter sans sauvegarder, :wq! quitter et forcer l'enregistrement
Édition multi-fenêtres dans Vim

Vim permet d'ouvrir plusieurs fichiers simultanément et d'utiliser des fenêtres divisées pour l'édition parallèle.

Ouvrir plusieurs fichiers - Division verticale (vs) :

  • Fonction : Ouvre une nouvelle fenêtre à droite de la fenêtre actuelle et charge le fichier spécifié.
  • Utilisation : :vs fichier2.c. Exemple : ouvrez d'abord fichier1.c, puis dans Vim tapez :vs fichier2.c pour créer une fenêtre à droite et ouvrir fichier2.c.

Changement de fenêtre Ctrl+w w :

  • Fonction : Permuter entre plusieurs fenêtres.
  • Utilisation : Appuyez sur Ctrl+w, puis sur w pour déplacer le curseur vers la fenêtre suivante.

Édition dans une fenêtre : L'édition (insertion, suppression, copie, etc.) ne se fait que dans la fenêtre active.

  • Division horizontale : :sp fichier2.c
  • Ajustement de taille : Ctrl+w + (augmenter la hauteur), Ctrl+w - (diminuer la hauteur).
Configuration simple de Vim

Vim utilise deux fichiers de configuration pricnipaux :

  1. Fichier de configuration global : /etc/vimrc, applicable à tous les utilisateurs.
  2. Fichier de configuration utilisateur : Chaque utilisateur peut créer un fichier .vimrc dans son répertoire personnel. Par exemple, /home/utilisateur/.vimrc.

Modifier .vimrc

  1. Allez dans votre répertoire personnel : cd ~
  2. Ouvrez le fichier .vimrc : vim .vimrc

Configurations Vim courantes

Ajoutez ces configurations dans .vimrc :

  • syntax on : Active la coloration syntaxique.
  • set nu : Affiche les numéros de ligne.
  • set shiftwidth=4 : Définit l'indentation à 4 espaces.

Tester la configuration

Après modification, rechargez la configuration avec :source ~/.vimrc dans Vim ou redémarrez l'éditeur.

Gestion des privilèges sudo

Pour accorder des privilèges sudo à un utilisateur :

  1. Ouvrez le fichier sudoers : sudo visudo (recommandé plutôt que vim /etc/sudoers)
  2. Ajoutez cette ligne (remplacez utilisateur par le nom du compte) :
utilisateur ALL=(ALL:ALL) ALL

  1. Enregistrez et quittez

Vérification :

su - utilisateur
sudo ls /root

GCC/G++ et le processus de compilation

Le processus de compilation C/C++ comporte quatre étapes : prétraitement → compilation → assemblage → édition de liens.

1. Prétraitement

Le prétraitement gère les macros, commentaires et fichiers d'en-tête.

Commande :

gcc -E source.c -o source.i

2. Compilation

La compilation transforme le code prétraité en code assembleur.

Commande :

gcc -S source.i -o source.s

3. Assemblage

L'assemblage convertit le code assembleur en code objet.

Commande :

gcc -c source.s -o source.o

4. Édition de liens

L'édition de liens combine les fichiers objets et bibliothèques pour créer un exécutable.

Commande :

gcc source.o -o programme

Bibliothèques statiques et dynamiques

Bibliothèques statiques (.a) :

  • Le code est intégré dans l'exécutable
  • Avantage : Exécutable autonome
  • Inconvénient : Fichiers plus volumineux

Bibliothèques dynamiques (.so) :

  • Chargées à l'exécution
  • Avantage : Partage entre programmes, économie d'espace
  • Inconvénient : Dépendances externes

Lien statique :

gcc -static programme.c -o programme_statique

Lien dynamique (par défaut) :

gcc programme.c -o programme_dynamique

Modes Debug et Release

Mode Debug :

  • Inclut les informations de débogage
  • Pas d'optimisation
  • Facilite le débogage avec gdb

Commande :

gcc -g programme.c -o programme_debug

Mode Release :

  • Optimisations pour la performance
  • Pas d'informations de débogage
  • Fichier exécutable plus compact

Commende :

gcc -O2 programme.c -o programme_release

Options courantes de GCC/G++

Option Fonction Exemple
-o <nom> Spécifie le nom du fichier de sortie gcc -o prog prog.c
-c Compilation seulement (crée .o) gcc -c prog.c
-g Informations de débogage gcc -g prog.c -o prog
-O0 Aucune optimisation gcc -O0 prog.c -o prog
-O2 Optimisation standard gcc -O2 prog.c -o prog
-Wall Active tous les avertissements gcc -Wall prog.c -o prog
-static Lien statique gcc -static prog.c -o prog
-shared Crée une bibliothèque partagée gcc -shared prog.c -o libprog.so
-L<chemin> Chemin de recherche des bibliothèques gcc -L/usr/local/lib prog.c -o prog
-I<chemin> Chemin de recherche des en-têtes gcc -I/usr/local/include prog.c -o prog
-l<nom> Lie avec la bibliothèque spécifiée gcc prog.c -lm -o prog

GCC vs G++

  • gcc : Compilateur C (peut aussi compiler du C++ mais sans liaison automatique des bibliothèques C++)
  • g++ : Compilateur C++ (lie automatiquement avec les bibliothèques C++ comme libstdc++)

Étiquettes: vim GCC G++ Linux developpement

Publié le 17 juin à 22h56