Utiliser Gio en ligne de commande
J’ai depuis quelques mois décidé de changer radicalement ma façon d’utiliser mon ordinateur : je veux aller au plus simple, rapide et sans fioritures. Fini l’environnement de bureau Gnome et bonjour utilisation plus intensive des applications en ligne de commande ou en version “terminal”.
J’ai aussi choisi de me passer des services d’un gestionnaire de fichiers et d’utiliser exclusivement mon émulateur de terminal pour gérer mon arborescence : pour l’instant j’en suis ravi. Il y a cependant un point qui peut très vite coincer : Un gestionnaire de fichiers moderne permet le montage automatique des périphériques USB ou encore le montage facile des ressources réseaux et enfin le montage par les utilisateurs non privilégiés du système.
Bien sûr je ne veux pas utiliser le montage automatique, mais pour tout le reste
il est possible d’utiliser gio
, la librairie issu du projet Gnome et utilisée
pour les montage de périphériques de stockage.
Commençons simple, un disque USB
Le premier cas que nous allons étudier, et le plus simple, est celui de la clé USB. Bien entendu il fait avoir installé Gio, sur Archlinux :
pacman -S gvfs
Une fois la clé branchée il suffira de trouver le périphérique représentant
notre support dans /dev/
et la partition que l’on veux monter avec lsblk
lsblk
sda 8:0 1 14,5G 0 disk
└─sda1 8:1 1 14,5G 0 part
nvme0n1 259:0 0 477G 0 disk
[...]
Dans l’exemple, je veux utiliser ma clé /dev/sda1
gio mount -d /dev/sda1
/dev/sda1 a été monté sur /run/media/ephase/MaCle
-d <device>
indique le périphérique de block à monter. La commande retourne le
dossier ou le périphérique est monté.
Pour démonter le périphérique, il suffira de faire
gio mount -u /run/media/ephase/MaCle
Attention, si la commande retourne le message
gio:file:///run/media/ephase/MaCle: Un ou plusieurs programmes empêchent
l’opération de démontage.
il se pourrait que dans un de vos émulateurs de
terminal lancés le répertoire courant soit celui de votre montage (ou de ses
sous répertoires).
Monter un dossier via ssh
La commande n’est pas très compliquée mais le point de montage est un peu moins
simple à trouver et cette fois la commande ne le retourne pas le point de
montage. Bonne nouvelle tout de même : gio
prend en compte les fichiers
~/.ssh/config
et sait utiliser les clefs.
gio mount ssh://myhost.com
Saisissez la phrase de passe de la clé SSH de myhost.com
Password:
Le point de montage est un sous-dossier de /run/users/<uid>/gvfs/
où <uid>
est celui de votre utilisateur, dans le cas ci-dessus :
tree
/run/user/1000/gvfs
└── sftp:host=myhost.com
└── mon_dossier
Le démontage est simple :
gio mount -u ssh://myhost.com
La commande s’applique pour toute ressource smb
, nfs
, afp
. Il faut tout de
même penser à installer les modules gio correspondant : gvfs-smb
,
gvfs-nfs
et gvfs-afp
.
Monter un périphérique MTP
Dernier cas étudié : le MTP, c’est le protocole de communication
utilisé notamment par les téléphones Android. Il faut là aussi installer un
paquet pour que tout fonctionne, sous Archlinux gvfs-mtp
. La commande est plus
complexe :
gio mount -li | awk -F= '{if(index($2,"mtp") == 1)system("gio mount "$2)}'
gio mount -li
donne des informations détaillées sur les périphériques
disponibles. Il suffit de passer le tout à awk
, d’utiliser le séparateur =
et de chercher la présence de mtp
dans la seconde colonne et si c’est le cas
d’exécuter gio mount
.
Cette commande réalisera un montage de tous les périphériques MTP disponibles sans distinction, il vous faudra l’adapter en fonction de vos besoins.
Comme pour les protocoles réseaux, la commande ne retourne rien et le point de
montage est un sous dossier de /run/users/<uid>/gvfs
.
Pour le démontage, soit nous connaissez l’URI du périphérique (du style
mtp://Android_ae45f6
) et il suffit de faire :
gio mount -u mtp://Android_ae45f6
Sinon il est possible de donner le point de montage à la commande gio
:
gio mount -u /run/users/1000/mtp:Android_ae45f6
En conclusion
Utiliser exclusivement l’émulateur de terminal pour gérer les fichiers est, de
mon point de vue, simple et bigrement efficace. Avec gio
c’est juste parfait :
peu de dépendances, rapide et facile à utiliser. Il est aussi possible
d’utiliser udevil, mais ce projet semble au point mort (pas de mise
à jour ou correction de bug depuis juillet 2017).