Exile on Keyboard St. - Blog sur Linux et Debian

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

mercredi 17 mai 2017

Simplifier vos connexions ssh avec ssh_config

Pour se connecter à une machine, virtuelle ou non, en ssh, on a besoin de spécifier au moins:

  • le nom d'hôte
  • le nom d'utilisateur

et parfois aussi

  • le port d'écoute du serveur ssh
  • certaines variables d'environnement
  • ...

Et c'est parfois long.

C'est oublier que tous ces paramètres passés sur la ligne de commande peuvent aussi être définis dans un fichier pour chaque machine à laquelle on se connecte.

Ce fichier est .ssh/config et a le format suivant:

host@machine:~$ cat .ssh/config 

Host vm-test
    Hostname 192.168.0.1
    Port 2222
    User debian
    SendEnv LANG LC_* HOST_IP

Le mot clé Host définit les paramètres de connexion à l'hôte en question et chaque paramètre suit indenté par quatre espaces.

De cette façon, se connecter à cet hôte se limite à:

ssh vm-test

C'est quand même plus rapide comme cela. Et il faut admettre que la façon de déclarer les Host est simplissime.

ssh comprend énormément de paramètres dans ce fichier config, pour tous les lister:

man ssh_config

lundi 8 mai 2017

Télécharger des vidéos avec la commande ligne youtube-dl

Pour regarder tranquillement des vidéos, rien de tel que d'être façe à son téléviseur avec la vidéo déjà enregistrée. De cette façon, on évite d'utiliser les applications pénibles de Free avec le clavier virtuel et aussi les éventuels problèmes réseau. Si c'est une vdéo de musique et que le téléviseur est branché sur l'ampli, c'est encore plus fun ! Enfin, l'écran 15 pouces de l'odinateur portable, des fois ça va bien !

Sous Linux, il existe une commande ligne très simple à utiliser, c'est youtube-dl, comprendre un "Downloader" pour YouTube.

On peut soir l'installer depuis le dépot de son système Linux, soit aller sur la page d'installation de youtube-dl. En deux commandes, c'est fait.

Voyons maintenant l'utilisation de youtube-dl.

Pour télécharger la vidéo " Ask Keith Richards: Open G Tuning":

youtube-dl https://youtu.be/6S9AJAQ8PLA?list=PLATxmOOSq8eKufX6xVjiTLj9M-dfuIsmi

On obtient alors le fichier: Ask Keith Richards - Open G Tuning-6S9AJAQ8PLA.webm

Par défaut, il semble que youtube-dl télécharge la vidéo dans un format libre: .mkv, .ogv, .webm, ce qui n'est pas toujours pour plaire au player de la Freebox.

Mais on peut obliger la ligne de commande à récupérer la vidéo dans un autre format, par exemple .mp4 comme suit:

youtube-dl --format mp4 https://youtu.be/6S9AJAQ8PLA?list=PLATxmOOSq8eKufX6xVjiTLj9M-dfuIsmi

Pour voir les format possibles sans rien télécharger:

youtube-dl --list-formats https://youtu.be/6S9AJAQ8PLA?list=PLATxmOOSq8eKufX6xVjiTLj9M-dfuIsmi

qui affiche entre autres:

[info] Available formats for 6S9AJAQ8PLA:
format code  extension  resolution note
249          webm       audio only DASH audio   54k , opus @ 50k, 588.49KiB
250          webm       audio only DASH audio   72k , opus @ 70k, 787.90KiB
171          webm       audio only DASH audio  119k , vorbis@128k, 1.20MiB
140          m4a        audio only DASH audio  127k , m4a_dash container, mp4a.40.2@128k (44100Hz), 1.42MiB
251          webm       audio only DASH audio  142k , opus @160k, 1.51MiB
160          mp4        256x144    DASH video   68k , avc1.4d400c, 30fps, video only, 602.81KiB
278          webm       256x144    144p  102k , webm container, vp9, 30fps, video only, 1.01MiB
133          mp4        426x240    DASH video  210k , avc1.4d4015, 30fps, video only, 1.76MiB
242          webm       426x240    240p  223k , vp9, 30fps, video only, 1.80MiB
134          mp4        640x360    DASH video  286k , avc1.4d401e, 30fps, video only, 2.41MiB
243          webm       640x360    360p  401k , vp9, 30fps, video only, 3.24MiB
135          mp4        854x480    DASH video  521k , avc1.4d401f, 30fps, video only, 4.43MiB
244          webm       854x480    480p  643k , vp9, 30fps, video only, 5.21MiB
136          mp4        1280x720   DASH video  923k , avc1.4d401f, 30fps, video only, 7.93MiB
247          webm       1280x720   720p 1390k , vp9, 30fps, video only, 11.49MiB
137          mp4        1920x1080  DASH video 2082k , avc1.640028, 30fps, video only, 19.71MiB
248          webm       1920x1080  1080p 2780k , vp9, 30fps, video only, 25.71MiB
17           3gp        176x144    small , mp4v.20.3, mp4a.40.2@ 24k
36           3gp        320x180    small , mp4v.20.3, mp4a.40.2
43           webm       640x360    medium , vp8.0, vorbis@128k
18           mp4        640x360    medium , avc1.42001E, mp4a.40.2@ 96k
22           mp4        1280x720   hd720 , avc1.64001F, mp4a.40.2@192k (best)

On voit notamment le dernier format, mp4, pour lequel est précisé le mot best, c'est le format pour avoir la meilleure qualité audio et vidéo. De manière générale utiliser ce format devrait vous donner une vidéo exploitable. Le format .mkv n'est par exemple apparemment pas compris par la Freebox.

youtube-dl peut aussi télécharger toute une playlist. Par exemple, j'ai utilisé la commande suivante pour la Playlist "Ask Keith":

youtube-dl --ignore-errors --format mp4 https://www.youtube.com/playlist?list=PLATxmOOSq8eKufX6xVjiTLj9M-dfuIsmi

l'option --ignore-errors étant présente à cause d'une erreur de signature qui entraine l'arrêt du téléchargement après la première vidéo.

youtube-dl dispose de nombreuses options permettant par exemple de continuer un téléchargerment commencé (--continue), d'extraire la piste audio de la vidéo (--extract-audio), et aussi des options pour obtenir des informations sur la vidéo: options commençant par --get-.

A vous de découvrir les options qui correspondent à vos besoins !

lundi 17 avril 2017

Un installeur d'archives pour Linux: liar

Quand on développe sous Linux, on est souvent amené à installer des logiciels sans être connecté en tant que root.

Ces logiciels livrés sous forme d'archive .zip ou .tar.gz la plupart du temps sont installés dans l'arborescence de l'utilisateur courant $HOME.

Cette façon d'installer un logiciel manuellement comprend les étapes suivantes:

  • Le téléchargement de l'archive
  • La création du répertoire d'installation
  • Le changement de répertoire
  • La décompression de l'archive

Toutes ces opérations manuelles, outre le fait qu'elles sont rébarbatives et conduisent trop souvent à des erreurs notamment sur les flags à utiliser pour décompresser l'archive.

De plus, il nous faut ensuite créer des liens symboliques vers les exécutables du logiciel, par exemple dans $HOME/bin, pour en faciliter son utilisation.

Le projet Linux Installer for ARchives ou liar comble ce vide en fournissant une ligne de commande permettant de réaliser toutes ces opérations en une seule fois.

liar permet donc d'installer, de lister et de supprimer tout logiciel livré sous forme d'archive dans le répertoire de votre choix, avec optionnellement la création des liens symboliques.

L'installation de liar est très simple puisqu'il suffit de copier un seul script Shell dans votre arbrorescence. La complétion bash peut également être utilisée à condition d'ajouter le fichier de complétion dans /etc/bash_completion.d/.

La documentation de Linux Installer for ARchives se trouve sur Framagit comme le reste du projet.

Cette documentation liste l'ensemble des fonctionnalités de liar et illustre de nombreux exemples d'utilisation. Elle n'est pour l'instant disponible qu'en Anglais.

liar est un logiciel libre, distribué selon les termes de la Licence Publique Générale GNU publiée par la Free Software Foundation, version 3 de la Licence (ou toute version ultérieure).

Pour en savoir plus sur le projet, vous pouvez consulter la vidéo d'introduction à liar:

vendredi 7 avril 2017

Bien utiliser les tableaux en bash

Le bash, Bourne Again Shell, offre une possibilité absente du Bourne Shell, à savoir la possibilité de déclarer facilement des tableaux.

On s'intéressera ici aux tableaux indexés uniquement.

Pour déclarer un tableau, rien de plus simple:

#!/bin/bash

colours=(black blue green white red yellow)

Maintenant pour afficher tous les éléments en une fois:

echo "colours_elements=${colours[@]}"

colours_elements=black blue green white red yellow

Pour afficher la troisième couleur, située à l'indice 2:

echo "green=${colours[2]}"
green=green

Le nombre d'élements du tableau:

echo "colours_count=${#colours[@]}"
colours_count=6

Pour boucler sur chaque valeur:

for colour in ${colours[@]}; do
    ...
done

Et pour afficher la troisième couleur en partant de la fin du tableau:

echo "${colours[-3]}"
white

Enfin bash permet aussi de lire un fichier dans un tableau avec la built-in mapfile.

- page 2 de 23 -