Exile on Keyboard St. - Blog sur Linux et Debian

Aller au contenu | Aller au menu | Aller à la recherche

dimanche 30 décembre 2018

Des vidéos de vos sessions de Terminal avec asciinema !

Quand on souhaite partager une technique ou une commande en faisant une vidéo, on a souvent recours à un logicel comme RecordMyDesktop ou Camtasia.

Ces logiciels demandent un peu de discipline comme par exemple sélectionner la fenêtre d'enregistrement, régler le volume du micro et ne pas se tromper dans le commentaire !

Mais quand il s'agit d'illustrer des commandes faites dans un terminal, il y a une méthode beaucoup plus légère et simple qui se nomme Asciinema, un projet initié par Marcin Kulik.

En effet, Asciinema permet d'enregistrer la session de votre terminal directement depuis celui-ci, tout en conservant les couleurs du terminal et les informations de "timing", et tout cela dans un fichier texte puisqu'une vidéo Asciinema est un fichier .json !

Une fois votre "vidéo" terminée, vous pourrez la rejouer, la partager mais aussi l'enregistrer et la publier sur le site d'Asciinema.

Installer Asciinema

Le plus simple pour disposer de la version la plus récente d'Asciinema est de l'installer avec Python:

sudo pip3 install asciinema
Downloading/unpacking asciinema
  Downloading asciinema-2.0.1.tar.gz
  Running setup.py (path:/tmp/pip-build-s4u_o9a3/asciinema/setup.py) egg_info for package asciinema
    
Installing collected packages: asciinema
  Running setup.py install for asciinema
    
    Installing asciinema script to /usr/local/bin
Successfully installed asciinema
Cleaning up...

On a alors:

which asciinema 
/usr/local/bin/asciinema

Et:

asciinema --version
asciinema 2.0.1

Enregistrer votre première vidéo avec Asciinema

Pour enregistrer notre première vidéo, on va entrer la commande suivante dans le terminal:

asciinema rec -t "My first asciinema video"

Cliquez sur le lien suivant pour une démo de l'utilisation d'Asciinema.

On peut voir que les commandes passées sont rejouées à la même vitesse et que les couleurs du terminal sont conservées.

Pendant que la vidéo se joue, vous pouvez sélectionner du texte avec la souris et ainsi utiliser le copier/coller !

Publier ou enregistrer la vidéo

Pour arrêter l'enregistrement, il faut utiliser <ctrl-d>, on a alors le choix entre publier la vidéo sur asciinema.org ou l'enregistrer en local:

pyfourmond@charlie-watts:/tmp/new_project (master)$ exit
asciinema: recording finished
asciinema: press <enter> to upload to asciinema.org, <ctrl-c> to save locally

View the recording at:

    https://asciinema.org/a/3CgRsy57JdioG0bCXHhDbLBnw

vendredi 16 février 2018

Quelques flags utiles des commandes 'cp' et 'mv'

Que ce soit dans un terminal ou dans un script Shell, on utilise tous quotidiennement les commandes cp et mv.

Mais connaissons tous vraiment les options de ces commandes ? Pas si sûr ... Ces options sont précieuses dans un script Shell pour comprendre le flow d'exécution ou pour débugger celui-ci.

Première option intéressante, l'option -v ou --verbose:

user@machine:~ cp --verbose cleanup.log /tmp/
« cleanup.log » -> « /tmp/cleanup.log »

qui permet d'afficher ce qui est effectué. Cette option existe aussi sur la commande mv.

Deuxième option, l'option --u ou --update permet de ne copier ou déplacer le fichier que si celui-ci est plus récent que la cible:

user@machine:~$ cp --verbose --update cleanup.log /tmp/
user@machine:~$ touch cleanup.log 
user@machine:~$ cp --verbose --update cleanup.log /tmp/
« cleanup.log » -> « /tmp/cleanup.log »

La première commande cp n'a rien fait puisque les fichiers étaient identiques.

cp et mv ont aussi une option qui permet d'archiver les fichiers cibles déjà existant avant de faire la copie ou le déplacement:

user@machine:~$ cp --verbose --backup=numbered cleanup.log /tmp/
« cleanup.log » -> « /tmp/cleanup.log » (archive : « /tmp/cleanup.log.~1~ »)
user@machine:~$ cp --verbose --backup=numbered cleanup.log /tmp/
« cleanup.log » -> « /tmp/cleanup.log » (archive : « /tmp/cleanup.log.~2~ »)

Cela permet de garder les versions précédentes si l'on a besoin de revenir en arrière.

L'option --backup peut prendre les valeurs suivantes:

  • none
  • numbered
  • existing
  • simple

Autre option intéressante pour le mode interactif, l'option --interactive ou -i, qui en cas de fichier existant demande si on doit l'écraser:

user@machine:~$ cp --verbose --interactive cleanup.log /tmp/
cp : voulez-vous écraser « /tmp/cleanup.log » ? oui
« cleanup.log » -> « /tmp/cleanup.log »

Si l'on souhaite conserver les fichiers existants:

user@machine:~$ cp --verbose --no-clobber cleanup.log /tmp/

La copie n'a pas été effectuée.

Enfin pour finir citons le flag -r, -R ou --recursive qui permet de copier récursivement les répertoires.

lundi 16 octobre 2017

Mate: Raccourcis clavier prédéfinis et personnalisés - Gestion des fenêtres et autres

Dans un billet précédent, on a défini des raccourcis clavier un peu plus commodes que ceux définis par défaut pour le Bureau.

Les raccourcis pour la catégorie "Gestion des fenêtres" sont très nombreux et la plupart sont désactivés par défaut.

On en redéfinira qu'un de plus ici:

  • Alt+F11: Basculer en mode plein écran

afin d'être complet avec ceux déjà définis:

  • Alt+F5: Restaurer la fenêtre
  • Alt+F10: Basculer l'état d'agrandissement

Les autres raccourcis très utiles de la catégorie étant:

  • Ctrl+Tab: Se déplacer entre les fenêtres via une fenêtre de premier plan
  • Ctrl+Alt+Tab: Se déplacer entre les tableaux de bord et le bureau via une fenêtre de premier plan

Et:

  • Ctrl+Alt+Gauche: Passer à l'espace de travail à gauche de l'espace actuel
  • Ctrl+Alt+Droite: Passer à l'espace de travail à droite de l'espace actuel

Passons maintenant aux raccourcis personnalisés. On a déjà défini un raccourci pour le terminal, il serait assez pratique d'en avoir un pour le terminal administrateur.

Donc, dans les raccourcis personnalisés, on ajoutera:

  • Ctrl+Alt+X: Terminal Administrateur

dont la commande est:

gksu mate-terminal

Enfin j'ajoute également le raccourci suivant:

  • Ctrl+Impr: Prendre une capture d'écran de manière interactive

dont la commande est:

mate-screenshot -i

- page 1 de 4