Catégorie : Mémo

1 juillet 2015 /

Les modes d’édition de Vi

Vi est un programme un peu surprenant qui ne s’utilise pas comme la plupart des éditeurs de texte que vous connaissez. Il vous faudra un peu de temps pour vous y habituer, mais il devient indispensable par la suite.
Vi possède trois modes de travail différents: interactif, insertion et commande

Mode interactif : c’est le mode par défaut par lequel vous commencez. En lançant Vim, vous êtes en mode interactif.

Dans ce mode, vous ne peut pas écrire de texte. Le mode interactif est un mode qui permet de se déplacer dans le texte, de supprimer une ligne, copier-coller du texte, rejoindre une ligne précise, annuler ses actions, etc.

Mode insertion :Il vous permet taper du texte et ce dernier s’insère à l’endroit où se trouve le curseur.

Pour entrer dans ce mode, il existe plusieurs possibilités. L’une des plus courantes est d’appuyer sur la touche i(insertion). Pour en sortir, il faut appuyer sur la touche Echap.

Mode commande : ce mode permet de lancer des commandes telles que « quitter », « enregistrer », etc. Vous pouvez aussi l’utiliser pour activer des options de Vim (comme la coloration syntaxique, l’affichage du numéro des lignes…). Vous pouvez même envoyer des commandes au shell (la console) telles que ls, locate, cp, etc.

Pour activer ce mode, vous devez être en mode interactif et appuyer sur la touche deux points « : ». Vous validerez la commande avec la touche Entrée et reviendrez alors au mode interactif.

Le déplacement
h, j, k et l : se déplacer dans tous les sens

En mode interactif (appuyez sur la touche Echap si vous n’y êtes pas déjà):

h : aller à gauche ;
: aller en bas ;
k : aller en haut ;
: aller à droite.
0 et $: se déplacer en début et fin de ligne
w: se déplacer de mot en mot
:w : enregistrer le fichier
:q : quitter
:wq : enregistrer puis quitter
x : effacer des lettres
dd : effacer des lignes…
dw : supprimer un mot
d0 et d$ : supprimer le début ou la fin de la ligne
yy : copier une ligne en mémoire
p : coller
r : remplacer une lettre
u : annuler les modifications
/ : rechercher un mot, puis  » n  » pour aller vers le bas et  » N  » pour le haut.
:! : lancer une commande externen par exemple  :!ls, vous affichera le contenu du répertoire courant.
:s : rechercher et remplacer du texte

  • :s/ancien/nouveau : remplace la première occurrence de la ligne où se trouve le curseur ;
  • :s/ancien/nouveau/g : remplace toutes les occurrences de la ligne où se trouve le curseur ;
  • :#,#s/ancien/nouveau/g : remplace toutes les occurrences dans les lignes n° # à # du fichier ;
  • :%s/ancien/nouveau/g : remplace toutes les occurrences dans tout le fichier. C’est peut-être ce que vous utiliserez le plus fréquemment.

:sp : découper l’écran horizontalement
:vsp : découper l’écran verticalement

Les principaux raccourcis clavier en écran splitté

Chaque morceau de l’écran (correspondant à un fichier) est appelé viewport.

Ctrl + w puis Ctrl + w : navigue de viewport en viewport. Répétez l’opération plusieurs fois pour accéder au viewport désiré.
Ctrl + w puis j : déplace le curseur pour aller au viewport juste en dessous. La même chose fonctionne avec les touches h, k et l que l’on utilise traditionnellement pour se déplacer.
Ctrl + w puis + : agrandit le viewport actuel.
Ctrl + w puis – : réduit le viewport actuel.
Ctrl + w puis = : égalise à nouveau la taille des viewports.
Ctrl + w puis r : échange la position des viewports. Fonctionne aussi avec « R » majuscule pour échanger en sens inverse.
Ctrl + w puis q : ferme le viewport actuel.

 

 

30 juin 2015 /

PGP (Pretty Goog Privacy) offre une assez bonne confidentialité ce qui vous permet d’envoyer un message qui ne pourra être lu que par votre destinataire, et/ou de certifier à votre destinataire que vous êtes bien l’auteur du message.
Pour cela, vous chiffrez vos messages, c’est-à-dire que vous les rendez illisibles grâce à une clef de chiffrement, et vous les déchiffrez, c’est-à-dire que vous les rendez lisibles à nouveau (avec une clef là aussi).

Pour générer ses clefs:

gpg2 --gen-key

Choisissez le 1 (RSA) pour le type de clef

GnuPG vous demande le type de clef que vous voulez, puis sa longueur. En général, les valeurs par défaut devraient convenir.
Vous devez ensuite choisir une date d’expiration pour la clef,  choisissez jamais.
Entrez ensuite votre nom (sous la forme Prénom Nom). L’adresse mail et le commentaire sont facultatifs, vous pouvez les laisser vides (il est préférable de toujours donner une adresse mail). Il vous demandera plusieurs informations personnels,  mais seul le nom est obligatoire.

Ensuite,  vous devez choisir une phrase de passe afin de protéger votre clef. C’est un choix important.
Vous devez choisir une phrase à la fois difficile à trouver (pas de mots existants, de noms ou de dates de naissance), parce que à quoi bon utiliser Pgp si c’est pour y mettre une phrase de passe crackable en quelques minutes.

Notez cette phrase sur un papier  (ou sur n’importe quoi qui sera facile à détruire complètement).

Lors de la génération de votre clef, de nombreux octets aléatoires doivent être générés.
Pour cela, taper au clavier, déplacer la souris ou encore utiliser vos disques.
Cette opération peut être longue mais la sécurité du chiffrage en dépend.

GnuPG génère alors votre clef privée, et la clef publique qui va avec.
Et voilà,  nous avons enfin une paire de clefs.

pub   2048R/223D44A1 2015-04-18
      Empreinte de la clef = CF58 9EC6 9A8E C633 DAFA  1C6D 9D93 24C6 223D 44A1
uid                  R***** **** <******@********.***>
sub   2048R/4E3BCB9B 2015-04-18

Notez l’identifiant de la clef (ici l’ID de la clef est 223D44A1), que vous retrouvez aussi à la fin de l’empreinte de la clef.
Lorsque vous voudrez utiliser votre paire de clefs, vous la désignerez par cet identifiant.

Si vous veniez à perdre votre phrase de passe, ou à ne plus avoir accès à votre clef pour n’importe quelle raison. il faudra révoquer la clef (la rendre inutilisable et sans valeur).
En prévision, on va générer un certificat de révocation.

Pour générer un certificat de révocation:

gpg2 --output revoke.asc --gen-revoke id_clef

Cette commande va générer un fichier « revoke.asc » qu’il faudra garder cacher, l’idéal serait de l’imprimer et de stocker le certificat dans un endroit sur.

Si vous deviez utiliser votre certificat de révocation, tapez:

gpg2 --import revoke.asc

Votre clé est maintenant révoquée.

Exporter sa clef publique

Pour chiffrer un message vous devez utiliser la clef publique de la personne qui est destinataire du message.
Pour donner sa clef publique il suffit d’utiliser cette commande:

gpg2 --output clef_public.asc --armor --export id_clef

Vous obtenez  un fichier cle_public.asc qu’il faudra copier  partout où il vous semble bon, votre page personnelle, ainsi que sur les serveurs de clefs (des sites comme Keyserver qui stockent des clefs publiques). Chacun pourra alors accéder à votre clef publique et l’utiliser.

Exporter sa clef privée

Pour faire une sauvegarde de sa clef privée:

gpg2 --export-secret-keys --armor ID_clef > clef_privee.asc

Importer une clef publique

Une fois que vous avez obtenu la clef publique de votre destinataire, vous devez l’ajouter à votre trousseau de clef:

gpg2 --import clef_public.asc

Vous pouvez maintenant utiliser cette clef publique autant que vous voulez sans avoir à l’importer à nouveau.

Pour supprimer une clef publique:

gpg2 --delete-keys ID_clef

Pour supprimer une clef privée:

gpg2 --delete-secret-keys ID_clef

Restauré sa clef privée

gpg2 --allow-secret-key-import --import clef_privee.asc

Pour lister les clef publiques que vous possédez:

gpg2 --list-key

Pour chiffrer un message au propriétaire de la clef:

gpg2 --recipient Id_clef_destinataire --encrypt message

Ue fichier message.gpg (ou autre si vous utilisez –output) contiendra le message chiffré avec la clef publique correspondant à l’ID du destinataire choisi, donc uniquement déchiffrable avec sa clef privée.

Pour lire un message chiffré avec votre clef publique:

gpg2 --decrypt message.gpg

 Signer un message

Pour prouver qu’un message vient bien de vous, vous pouvez le signer, ce qui prouvera deux choses:

  • le message vient de quelqu’un connaissant votre clef privée (normalement uniquement vous)
  • le message n’a pas été modifié depuis que vous l’avez signé.

Pour signer et compresser un message:

gpg2 --sign message

Pour signer un message en le laissant lisible:

gpg2 --clearsign message

Pour signer un message avec une signature dans un fichier séparé (si le fichier ne doit pas être modifié):

gpg2 --detach-sign message

Pour vérifier la signature d’un message signé:

gpg2 --verify message.asc

Pour vérifier la signature d’un message compressé:

gpg2 --verify message.gpg

Pour vérifier la signature et lire message:

gpg2 --decrypt message.gpg

Pour une signature séparée:

gpg2 --verify signature.sig message

Il y a une exception, si le message signé s’appelle message et la signature message.sig, on peut se contenter d’écrire:

gpg2 --verify message.sig

Pour signer et chiffrer un message en même temps, il suffit de combiner les options:

gpg2 --recipient 'ID_clef_destinataire' --sign --encrypt message

Réseau de confiance

PGP permet aux possesseurs de clefs de signer les clefs des autres, c’est-à-dire de certifier qu’elles appartiennent bien à leur propriétaire. Les preuves suffisantes sont en gros d’avoir vu la personne avec une preuve de son identité, l’empreinte et la taille de sa clef.

Toutes les clefs devraient être signées par d’autres, elles-mêmes signées par d’autres, et ainsi de suite jusqu’à arriver à quelques personnes fiables comme Phil Zimmermann (l’inventeur de PGP), Linus Torvalds (le créateur de Linux) ou encore Richard Stallman (le fondateur de GNU).

Ce réseau reliant les clefs entre elles est appelé Web of Trust (Réseau de confiance).
Malheureusement, dans la pratique, celaa ne se passe pas vraiment comme prévu, trop peu de gens ont une clef PGP, et les existantes sont souvent peu signées.

Pour signer une clef publique (que vous avez importée):

gpg2 --edit-key ID_clef

puis taper « sign »:

gpg> sign

GnuPG vous demande ensuite une confirmation, puis votre phrase de passe.
Vous devez maintenant spécifier à quel point vous faites confiance à cette clef, pour cela taper « trust« :

gpg>trust

Pour quitter, taper « q »:

gpg>q

Pour utiliser Gpg dans Thunderbird, il y a l’extension Enigmail.
SInon il y a le service de messagerie Protonmail qui se différencie des autres services courriel (Gmail, Hotmail…) par le chiffrement des courriers avant qu’ils ne soient envoyés aux serveurs. Protonmail échappe également à la législation américaine et européenne en hébergeant ses serveurs en Suisse.

29 juin 2015 /

La commande split permet de découper un gros fichier en un ensemble de petits fichiers.

Cette commande permet de découper un fichier video.mkv en plusieurs fichiers numérotés de 50 Mo:

split -b50m video.mkv partie

Pour les recoller:

cat partie01 partie02 partie03 ... > video.mkv

ou

cat partie0* > video.mkv

28 juin 2015 /

Quand vous tombez sur un fichier commençant  par un tiret, si vous vous voulez le déplacer, le renommer ou le supprimer, il vous est impossible de le faire car celui-ci sera considérer comme une option.

Voici trois façon de contourner le problème:

Avec — devant le fichier:

mv -- -fichier

Par le numéro d’inode:

ls -i

find  . -inum "n° d'inode'" -exec mv {} nouveau_nom \;

Avec ./ devant le fichier:

mv ./--help toto

27 juin 2015 /

Pour ouvrir le tiroir:

eject

Pour fermer le tiroir:

eject -t

Pour le fun, voici un script qui contient une boucle pour ouvrir et refermer le tiroir indéfiniment:

#!/bin/sh
while [ 1 = 1 ]
do
#ejecter le lecteur
eject
#le refermer
eject -t
done