add content
This commit is contained in:
parent
93c9f1e4df
commit
4ad900bcb0
81 changed files with 3170 additions and 0 deletions
143
content/articles/2019/gio-ligne-commande/index.md
Normal file
143
content/articles/2019/gio-ligne-commande/index.md
Normal file
|
@ -0,0 +1,143 @@
|
|||
Title: Utiliser Gio en ligne de commande
|
||||
Category: le blog
|
||||
Tags: pl-fr, GIO, fichiers, terminal
|
||||
Date: 2019-04-25 1:30
|
||||
Status: published
|
||||
|
||||
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][l_mtp_w], 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][l_udevil], mais ce projet semble au point mort (pas de mise
|
||||
à jour ou correction de bug depuis juillet 2017).
|
||||
|
||||
[l_mtp_w]:https://fr.wikipedia.org/wiki/Media_Transfer_Protocol
|
||||
[l_udevil]:https://github.com/IgnorantGuru/udevil/
|
Loading…
Add table
Add a link
Reference in a new issue