18. Processus en avant/arrière plan

Ce thème de la gestion de la ligne de commande est quelque peu plus complexe que les autres. Il est déroutant, car les raisons pour lesquelles on devrait s’y intéresser ne sont pas évidentes et il peut sembler à priori qu’elles sont même contre productives. Car, même la ligne de commande suppose l’utilisation de fenêtres graphiques. Généralement, lancer un terminal consiste à ouvrir la fenêtre d’un environnement graphique lui correspondant. Par exemple, on lance Terminator à partir du bureau LXQT ou LXDE. Un terminal apparaît donc finalement comme un simple programme particulier, à l’instar d’un navigateur qu’on lance depuis son interface graphique. Pour visiter un site internet, il ne viendrait cependant plus aujourd’hui à l’idée de lancer une instance de Firefox par site visité. Si ce fut le cas au début du net, aujourd’hui on utilise des onglets. Un navigateur apparaît donc comme un programme capable de faire plusieurs choses en même temps et cela sans qu’il soit nécessaire de le quitter.

En un sens, la gestion des processus s’apparente à la gestion des onglets d’un navigateur. Quelles sont les raisons qui poussent à l’utilisation d’onglets dans un navigateur ? On peut en voir plusieurs :

  • on peut changer de site et donc de travail sans fermer celui qui est en cours,
  • on peut grouper des tâches selon des ensembles cohérents de travaux,
  • on peut faire communiquer certains onglets et bénéficier des réglages déjà prédéfini,
  • on peut mieux gérer les problèmes de place dan la fenêtre.

Pour justifier l’intérêt qu’on peut porter à l’étude de la gestion des processus, de la même manière on peut reprendre les points ci-dessus en y ajoutant le fait que celle-ci est très importante dans deux cadres différents :

  • l’utilisation de commandes distantes comme celle de ssh et
  • l’utilisation d’un ordinateur sans aucune interface graphique.

Avant de se lancer dans les différentes méthodes de gestion des processus, remarquez qu’un terminal comme Terminator permet l’ouverture de plusieurs terminaux dans la même fenêtre et même le passage de chaqu’un d’eux en « avant plan », à l’aide de l’équivalent clavier Maj-Ctrl-X (voir l’article http://www.cvgg.org/wordpress/blog/4-terminator-pour-la-ligne-de-commande/). Plus, Terminator permet une gestion de groupement de terminaux, d’onglets, etc, qui est très puissante, mais n’est fonctionnel que dans le cadre de ce programme.


La première commande à connaître est la classique « esperluette ». Classiquement, lorsqu’on lance un programme en ligne de commande en invoquant son seul nom, on bloque le terminal qui attends l’affichage d’informations venant de celui-ci.

Pour rendre la main au terminal et faire passer la commande en arrière plan, il suffit de la terminer par une esperluette :

Texmaker &

Le terminal retourne alors entre crochets le numéro du processus en arrière plan de la console et le numéro d’identification du processus PID permettant de le tuer.

Deux problèmes persistent cependant :

  • les messages et les erreurs de la commande continuent à arriver dans la console dans laquelle on travaille sur de novelles commandes et
  • si on ferme le terminal, la commande en arrière plan est tuée.

Pour résoudre le premier problème, il suffit de rediriger les messages et les erreurs soit sur un fichier, soit à la poubelle :

Texmaker 1>/dev/null 2>/dev/null

Ci-dessus, on a redirigé la sortie standard (1>) et l’erreur standard (2>) vers la poubelle.

Pour résoudre le second problème, il faut abandonner l’esperluette.


La commande « nohup » résous automatiquement les deux problèmes ci-dessus. Elle envoie automatiquement la sortie de la commande dans un fichier nommé nohup.out et elle permet de fermer le terminal sans que la commande ne soit tuée. Attention, un Ctrl-C la tue.

Mais, malheureusement, on ne récupère pas le terminal. On peut donc fermer la fenêtre du terminal sans que l’application ne soit fermée, mais elle est alors complètement détachée du terminal.


Il est donc préférable d’avoir recours à des déplacements des processus en avant et arrière plan. Pour cela, il faut pouvoir arrêter et redémarrer les processus. En effet, il est nécessaire qu’un processus soit en mode pause pour pouvoir le déplacer.

Pour mettre un processus qui fonctionne déjà alors qu’il n’a pas été mis en arrière plan par l’action de l’esperluette, on a recours à :

Ctrl-Z

Par l’action de cet équivalent clavier, on stoppe le processus provisoirement et on rend la console à son utilisateur. Il peut alors passer le processus en arrière plan tout en le redémarrant par la commande :

bg

pour background. Le processus fonctionne alors en arrière plan, comme s’il avait été lancé directement en arrière plan par l’esperluette. Mais, il reste lié à la console et est tué si on la ferme.

Pour récupérer le processus en avant plan, il suffit d’utiliser la commande « fg » pour foreground ou si plusieurs commandes sont en arrière plan la commande suivie de son numéro dans la console :

fg %1

On voit qu’aucune de ces solutions ne sont totalement satisfaisantes, car soit on ne récupère pas la console, soit le processus se termine avec celle-ci.

Pour une solution plus complète, voyons maintenant « screen ».

Vidéo conférence – violation de domicile

J’écris ce petit billet pour faire part de mon immense étonnement face à la ruée du monde enseignant vers les vidéoconférences pour établir un travail d’enseignement à distance pendant le confinement dû au covid.

Jusqu’à présent, j’ai pensé que le domicile était pour chacun un lieu protégé du regard d’autrui, sauf en cas de circonstances si exceptionnelle qu’un juge devait statuer pour délivrer un mandat d’investigation à des policiers tenus de rendre des comptes quant à leurs fouilles.

À l’annonce de la nécessité d’un enseignement à distance, beaucoup d’enseignants ont décidé de donner des leçons en imposant clairement aux élèves le devoir d’utiliser la vidéo et cela, en période de confinement, dans leur domicile et plus particulièrement dans leur chambre. Certains on même demandé de photographier celle-ci. Tout cela avec la bénédiction implicite des départements de l’instruction publique.

Or, non seulement les outils utilisés, comme Zoom, Skype ou Team, sont des logiciels au code fermé dont aucune garantie de confidentialité n’est donnée, à part la parole de leur propres développeurs, mais leur utilisation étant faite sous l’autorité des enseignants, on peut se demander dans quelle mesure il est possible pour des enfants, des adolescents pour lesquels il est déjà difficile d’échapper à la participation à des réseaux sociaux utilisés par leur camarades, de s’opposer à une autorité scolaire qui s’introduit ainsi dans leur foyer.

Pour moi, la réponse est clairement qu’il ne leur est pas possible de refuser. Et non seulement l’élève ne peut le faire, mais sa famille non plus. Est-il normal qu’un enseignant puisse clairement écouter ce qui se passe dans une famille, se rendre compte des discussion qui s’y déroulent, des propos qui peuvent à tort ou à raison être tenu par chacun et plus encore, s’introduire dans l’intimité de la chambre d’un enfant ou d’un adolescent ?

Il est piquant de constater que des enseignants clamant haut et fort avant le covid la nécessité du respect de la vie privée, ne voient rien à redire à l’obligation qu’il donnent à leurs élèves d’utiliser la vidéo. Car, prétendre qu’ils ont le choix n’est pas honnête.

Pour moi, l’utilisation de logiciels de vidéo-conférence, libres et à plus forte raison propriétaires, est clairement une violation de domicile sans aucune justification.

Car il est totalement possible de réaliser un enseignement à distance sans utiliser la vidéo. De plus des logiciels respectueux des données de connexion ou des messages échangés par leur biais avec les élèves existent, le plus connu étant Moodle.

19. Calendrier en ligne de commande

Ce que je voulais c’est la possibilité de mettre/retirer ou voir des événements sur mes calendriers. La recherche d’applications ne fut pas très longue, car une solution s’est imposée d’elle-même : calendar-cli. En effet, est mentionné sur la page de calendar-cli une alternative (gcalendar-cli) dont le g ne me satisfaisait pas (g ne signifiant pas Gnome, mais Goo…). De plus, la philosophie du projet calendar-cli :

The philosophy behind calendar-cli is slightly different, calendar-cli is supposed to be a simple cli-based caldav+ical client. No synchronization, no local storage.

étant simplement parfaite et le fait que celui-ci soit programmé en python m’a définitivement convaincu.

J’ai donc décidé de l’installer.

Le premier problème rencontré a été du à l’utilisation de python3. En effet, selon :

https://static.cinay.xyz/2016/05/calendar-cli-ligne-de-commande.html

il est nécessaire d’installer icalendar, caldav et tzlocal. Or, il existe phython3-icalendar, python3-caldav et python3-tzlocal dans les dépôts. J’ai donc installé tout cela et au premier lancement de calendar-cli me suis vu retourner une erreur liée à l’absence d’une méthode de tzlocal. En inspectant le fichier source, la première chose qui m’a frappé était l’appel à python2 en première ligne. J’ai donc installé python-icalendar, python-caldav et python-tzlocal et cette erreur à disparu.

On verra plus tard que la migration à python3 est en cours.

L’installation ne se fait pas via les dépôts puisqu’il n’y existe pas. Mais sur le second site mentionné ci-dessus, les instructions sont claires :

cd ~/scripts git clone https://github.com/tobixen/calendar-cli

Création d’un lien nommé calendarcmd

sudo ln -s /home/yannick/scripts/calendar-cli/calendar-cli.py /usr/local/bin/calendarcmd

Le fichier de configuration ~/.config/calendar.conf au format json

nano ~/.config/calendar.conf
{ "default": 
  { "caldav_url": "http://foo.bar.example.com/caldav/", 
    "caldav_user": "luser",
    "caldav_pass": "insecure"
  }
}

Les droits sur le fichier de configuration

chmod 0600 ~/.config/calendar.conf

Claires, parfaitement fonctionnelles, mais on en trouve une critique sur le site du projet (premier lien ci-dessus), puisqu’il est conseillé d’utiliser calendar_url pour spécifier l’adresse du calendrier spécifique d’un utilisateur et n’utiliser caldav_url que pour l’adresse du site fournissant les calendriers. Pour Framasoft, par exemple, cela donne :

{ "default":
{ "caldav_url": "https://framagenda.org/remote.php/dav/calendars/",
"calendar_url": "machin@truc.chose/personnel/",
"caldav_user": "nom_utilisateur",
"caldav_pass": "mdp"
},
"professionnel":
{ "caldav_url": "https://framagenda.org/remote.php/dav/calendars/",
"calendar_url": "machin@truc.chose/professionnel/",
"caldav_user": "nom_utilisateur",
"caldav_pass": "mdp"
}
}

Vient ensuite la phase de tests. La commande à lancer est, on l’aura compris : calendarcmd. Mais, quelle est la structure des ses arguments ? Deux exemples sont donnés. Le premier pour ajouter un événement :

calendarcmd calendar add '2016-05-18 11:45:00+2h' 'Test calendrier en ligne de commande'

Tout s’est bien passé. L’événement ajouté, s’est retrouvé comme par miracle sur mon calendrier.

Le second pour voir les événements depuis une date donnée :

calendarcmd calendar agenda --from-time=2016-05-17 --agenda-days=14

Une erreur s’est alors produite :

Traceback (most recent call last):
File "/usr/local/bin/calendarcmd", line 945, in <module>
main()
File "/usr/local/bin/calendarcmd", line 942, in main
ret = args.func(caldav_conn, args)
File "/usr/local/bin/calendarcmd", line 480, in calendar_agenda
events_ = find_calendar(caldav_conn, args).date_search(dtstart, dtend, expand=True)
TypeError: date_search() got an unexpected keyword argument 'expand'

Ici, un digression est nécessaire. La simplicité de cette erreur permettant de ne pas trop s’allonger ici, je me permet de la mettre en valeur pour montrer que l’accès au code source est indéniablement un plus dans ce genre de cas.

La lecture du retour d’erreur est claire : ligne 480 dans le code de la commande calendarcmd se trouve une erreur liée à un argument inattendu : expand. Évidemment, il faut savoir lire et prendre le temps de le faire. De plus, il faut se rappeler que la commande calendarcmd est un lien vers calendar-cli.py (voir ci-dessus). C’est donc dans ce fichier qu’il faut chercher.

À la ligne 480 se trouve :

events_ = find_calendar(caldav_conn, args).date_search(dtstart, dtend, expand=True)

et le problème vient du dernier argument de la méthode date_search de l’objet find_calendar. Évidemment, il est facile de simplement le supprimer, vu que « got an unexpected keyword argument ‘expand’ » dit clairement que python ne comprends pas celui-ci. Le problème est qu’il est parfois risqué de lancer une méthode en lui retirant un argument qui pourrait alors être par défaut différent de celui qui était donné. Enfin, par prudence, avant de le supprimer j’ai tenté de trouver la signature de la méthode (c’est-à-dire la spécification de l’ensemble des arguments qu’il utilise). Mais encore fallait-il savoir où chercher en d’autres termes, à quel module appartenait la méthode date_search où l’objet find_calendar.

À force de recherches, je suis tombé sur la documentation de caldav :

https://pythonhosted.org/caldav/caldav/objects.html#caldav.objects.Calendar.date_search

et y ai trouvé la méthode :date_search(start, end=None, compfilter=’VEVENT’) avec la description des paramètres :

  • start = datetime.today().
  • end = same as above.
  • compfilter = defaults to events only. Set to None to fetch all calendar components.

Le dernier paramètre n’étant pas expand et la valeur par défaut de compfilter étant pour récupérer tous les éléments du calendrier, supprimer le dernier argument devait être possible. Je l’ai donc fait et tout a très bien fonctionné.


Ainsi, les deux commandes de base :

calendarcmd calendar add '2016-05-18 11:45:00+2h' 'Test calendrier en ligne de commande'
calendarcmd calendar agenda --from-time=2016-05-17 --agenda-days=14

s’utilisent maintenant sans difficultés. Attention, la première va fournir en retour d’un ajout réussi, un uid d’événement (un nombre unique) qui est nécessaire pour éventuellement le supprimer (voir ci-dessous).

Pour la gestion de multiples calendriers, il suffit d’ajouter –config-section=professionnel :

calendarcmd calendar --config-section=professionnel agenda --from-time=2016-05-17 --agenda-days=14

pour obtenir les événements du calendrier professionnel. Pour en retirer :

calendarcmd calendar delete --event-uid=l_uid_de_l_evenement

Malheureusement, le retrait d’évènements par date n’est pas encore implémenté.

Pour trouver des événements et les supprimer, il faut leur uid. La commande suivante permet de les obtenir :

calendarcmd calendar --config-section=professionnel agenda --event-template "{dtstart} {summary} {uid}"

Elle retourne les événements du calendrier spécifié avec leur date de départ, le texte de commentaire et l’uid.

0. Ligne de commande

Mis en avant

Suite à mon article sur la nécessité d’une autre informatique, beaucoup moins dépendante des interfaces graphiques et aux antipodes de la vidéo et suite aux nombreux autres articles que j’ai rédigés sur différents aspects d’une informatique en ligne de commande, voici un petit tour d’horizon de ce qu’il est possible de faire de cette manière :

  1. Pourquoi relever ses mails en ligne de commande
  2. Comment relever ses mails en ligne de commande 1
  3. Comment relever ses mails en ligne de commande 2
  4. Terminator pour la ligne de commande
  5. Gérer ses fichiers en ligne de commande
  6. Naviguer en ligne de comande
  7. Lynx, midnight commander et mutt transparents dans terminator
  8. Installer un shell particulier : zsh
  9. Gestion du temps et des tâches en ligne de commande
  10. Redimensionner en ligne de commande
  11. Flux RSS en ligne de commande
  12. De la musique en ligne de commande
  13. GNUpg en ligne de commande
  14. Images en ligne de commande : planche de contact
  15. Carnet d’adresse en ligne de commande
  16. Mutt avancé en ligne de commande
  17. Covid eo 19
  18. Processus en avant/arrière plan
  19. Calendrier en ligne de commande
  20. Suivi de poids en ligne de commande
  21. Météo en ligne de commande
  22. Éditer du texte en ligne de commande
  23. Email, mon amour

Écrire n’est pas un métier, c’est une envie

Covid eo 19

Cet article a pour but de souligner les conséquences informatiques démesurées de la crise sanitaire que nous vivons. En particulier dans l’enseignement.

Si quelques voix s’élèvent aujourd’hui pour en rendre la mesure plus juste, il me semble que le manque d’analyse et de retenue dans l’utilisation des technologies qui nous sont proposées va avoir de lourdes conséquences sur l’avenir.

Les raisons qui m’ont poussé l’abandon de la voiture étant les mêmes que celles qui me poussent à lancer cet appel, j’aimerais dire ici toute l’absurdité que je conçoit dans l’utilisation d’un tel moyen de transport inefficace. Dans un monde qui met le rendement presque au-dessus de toute valeur, comment comprendre en effet une immense majorité des déplacements dans un objet de plusieurs tonnes sur quelques kilomètres pour ramener du pain par exemple, généralement pour déplacer une unique personne de moins de cent kilogrammes. Comment comprendre l’utilisation d’un tel véhicule alors qu’on évoque plus depuis longtemps la pandémie de morts qui lui est liée, tant en raison de la pollution et des accidents qu’en raison de la diminution de l’activité physique qu’elle induit.

Comme avec l’automobile, la crise actuelle nous fait perdre tout sens de la mesure. Elle dirige nos actions vers des facilités qui cachent leurs coûts. Les immenses efforts consentis aujourd’hui pour généraliser la vidéo comme moyen de communication évident entre les gens ressemblent fortement à la publicité faite pour inscrire la voiture dans cette même perspective. Autour d’un feu, des amis se rencontrent grace à leur voiture en arrière plan. L’image est aujourd’hui incomplète ou désuète. Il y manque les smartphones connectés en 5G sur Microsoft Team.

Le streaming, la publicité, les traceurs constituent aujourd’hui l’immense majorité du trafic réseau et ainsi, l’immense majorité de la pollution qui lui est lié. Or, à l’instar des voitures, la question du rendement de ces pratiques se pose. Pour moi, déplacer une information par un canal vidéo, c’est comme déplacer du pain dans un 4×4. Dans les trois domaines que je connais, la physique, l’informatique et les mathématiques, la quasi totalité des vidéos disponibles présente une information qui tiendrait sur une page de texte et qui est clairement très en deçà de ce que peut fournir un texte. Par ailleurs, le travail nécessaire pour construire des vidéos de qualité est simplement hors de portée de la plupart des gens. On ne s’improvise pas scénariste, metteur en scène, cameraman et monteur facilement.

Ainsi, si l’information transmise par les vidéos est souvent très pauvre, son coût est très important.

En terme de stockage d’abord. Il est évident qu’à vingt-cinq images par seconde, la photographie est clairement disqualifiée. Et les prodiges accomplis par les ingénieurs pour obtenir toujours de plus grandes capacités, s’apparentent le plus souvent à un incitation à ne plus réfléchir à ce qu’on fait, exactement comme dans le cas de la taille des automobiles où le « au cas où » règne. Or, aujourd’hui ce stockage à des coûts énergétiques non négligeables.

En terme de flux ensuite, puisque le streaming de toute nature (vidéo on demand, visio conférence, …) est un énorme consommateur de bande passante qui sollicite tellement les infrastructures (serveurs, routeurs, clients, …) que notre environnement s’en trouve modifié. L’implantation d’antennes de grande capacité devient indispensable à l’acheminement de ce flux de données qui, je l’affirme ici, s’apparente plus à du bruit qu’à de l’information.

En terme de protection des données aussi, puisque non seulement l’arrivée des images dans la maison livre aux multinationales (les GAFAM, dont Microsoft fait partie) des informations sensibles sur nos modes de vie, sur les conversations de tiers non prévenus dans la maison, sur des éléments de mobilier sans aucun doute facilement reconnus par des programmes de reconnaissance d’objets. Comme l’ont montré l’espionnage par le logiciel Zoom détournant sans accord préalable des données au profit de Facebook et l’affaire Snowden, tous les acteurs fournissant des logiciels dont personne ne peut contrôler le code, ont des intérêts certains à récolter nos données. De plus, un élève n’est jamais en situation de refuser un entretien par visioconférence demandé par une autorité comme un enseignant. Comme souvent celui-ci se déroule dans la chambre même de l’élève, s’il utilise son ordinateur personnel ou son smartphone, tant le lieu de vie d’une personne est … personnel, c’est un regard totalement injustifié porté sur son intimité par quelqu’un qui le force à se montrer. Cela n’est pas admissible.

Enfin, de tous les points de vue, demander à des élèves d’utiliser des applications en vue de vidéo conférence, me paraît être une très mauvaise idée. Ces applications s’apparentent à des réseaux sociaux, avec tous leur défauts, auxquels on force les jeunes à adhérer. Microsoft l’a très bien compris et la promotion faite par les services techniques pour des applications comme Team, qui laisse supposer que Moodle, logiciel gratuit, libre et qui peut être autohébergé et donc parfaitement auditable par un préposé à la sécurité des données, tant du point de vue de ses conditions d’utilisation que du code source qu’il utilise, ne satisferait pas à ces même conditions, n’est simplement pas acceptable.

La nécessité d’un enseignement à distance ne doit pas se faire au détriment des intérêts des élèves. Leur demander d’installer des applications fermées, dont on ne peut assurer qu’elles ne contiennent pas de traceurs n’est pas admissible. Faire autrement signifie donc un retour aux standards : les navigateurs web, Firefox en particulier. C’est la seule manière, hors l’utilisation de logiciels totalement libres, de pouvoir tenter de s’assurer, en tant que client d’un service, qu’on n’est pas pisté. C’est la seule manière d’avertir les élèves du risque indéniable que ces applications font planer sur leurs vies et des moyens de s’en prémunir. Pour les enseignants, c’est la seule manière d’être honnête vis à vis de leurs élèves et de ce point de vue, mais de de plein d’autres aussi, Moodle est clairement un système d’enseignement à distance à privilégier.

Enfin, à l’instar des tenants des vidéos-conférences qui étudient à la loupe toutes les fonctionnalités de leur applications, comme le font les automobilistes pour leur machines polluantes, pour en réduire les « petits » inconvénients, il me semble nécessaire non seulement d’exprimer clairement l’inutilité du recours à la vidéo dans l’immense majorité des cas, mais la nécessité de faire la promotion du texte, moyen de transport de l’information par excellence du point de vue du rendement.

C’est la raison pour laquelle, je propose sur ce site, de l’information pour faire de l’informatique en ligne de commande. Informatique qui n’est certainement pas de moins bonne qualité pour cette raison, faut-il le préciser.

16. Mutt avancé en ligne de commande

Cet article va progressivement évoluer. Je vais y mettre tout ce que j’apprends au fur et à mesure sur l’utilisation de Mutt. La référence est évidemment la traduction en français de :

The Mutt E-mail client
by Michael Elkins

Mais cette documentation a besoin d’être exemplifiée, car si elle est très complète, elle n’est pas simple. Publiée sous GPL, en remerciant son auteur, il m’est permis de la mettre à votre disposition Mutt_manuel.

Déplacement de plusieurs mails dans un autre dossier

Pour cela, il est nécessaire de sélectionner l’ensemble des messages selon un motif. La méthode qui permet de faire cela est tag-pattern, qu’on obtient avec la touche « Shift-T ». Vous est alors demandé le motif à trouver. En tapant Enter, on les sélectionne. Ils sont alors marqués par une petite étoile. Attention, pour les dé-sélectionner, il faut se souvenir du motif et « Ctrl-T » qui dé-sélectionne selon un motif.

Pour marquer manuellement des messages, il faut utiliser la touche t ou w en indiquant * comme marqueur. Pour retirer la marque, il suffit de retaper t ou W en indiquant * comme marqueur.

Une fois les messages tagués, il faut les déplacer. Pour cela, il faut indiquer à mutt de réaliser une action sur les messages tagués par la pression de la touche point-virgule (;). Vous sera alors demandé l’action qui pour déplacer les messages est C (pour Copier les messages dans une autre boite aux lettres). En pressant Enter, il vous sera demandé de choisir la boite aux lettres et vous pourrez la choisir en pressant : ? Les messages seront alors copiés, mais ils resteront dans l’ancienne boite.

Comme ceux-ci reste tagués, il est facile de les effacer alors en utilisant la touche d’action ; suivie de d pour taguer les messages à supprimer (D). Ne reste plus qu’à  utiliser $ pour effectuer l’opération.

Sauvegarder un message

Une opération simple pour sauvegarder un message dans un boite au lettre. Il suffit de taper la touche s et ensuite le ? pour sélectionner la boite aux lettres.

Mais, si on veut sauvegarder le message sous la forme d’un fichier texte et pas dans une boite aux lettre ?

En fait, le problème ne se résous pas dans mutt, mais dans vi. Très simple, répondez au message avec la touche r et vous passerez sous vi (si c’est l’éditeur choisi par mutt). Là, il suffit de faire :

:W~/Desktop/mon_fichier.txt

pour sauvegarder le fichier sur le bureau.

Taille des messages

Pour faire de l’ordre dans vos messages, outre les changer de boites aux lettres, vous pouvez désirer effacer les plus gros. Pour cela, il va falloir les trier. Deux manières de faire un tri sont disponibles : la touche o et sa majuscule O. Avec o on va trier les messages dans l’ordre croissant, de date par exemple. Cela veut dire que si vous demandez un tri par date, les plus anciens se trouveront en premier. Ainsi, en tapant o, vous aurez les choix suivants :

Tri Date/Auteur/Reçu/Objet/deSt/dIscus/aucuN/Taille/sCore/sPam/Label ?

et le tri se fera par ordre croissant. Ainsi, en choisissant Taille, c’est-à-dire en pressant sur la touche t, vous verrez vos messages triés par nombre de lignes entre parenthèses. Pour avoir les plus gros en premier, il faut donc utiliser le tri inverse, soit O et appuyer sur t. Ensuite, pour voir la taille en octet, entrez dans le message en appuyant sur la touche Enter et appuyez sur v. Vous verrez ainsi la taille de chaque partie du message tout à droite.

Finalement, pour revenir à vos messages triés par date décroissantes, il faut donc appuyer sur O, puis sur d pour choisir la date.

Adresse E-mail de la boite

Lorsqu’on commence à écrire un mail, une chose importante pour ne pas perdre du temps est que l’adresse de réponse soit déjà positionnée en fonction du dossier depuis lequel on écrit. Par exemple, si j’écris depuis le répertoire nommé Linux, alors que mon adresse mail principale est truc@machin.org, j’aimerais que quand j’appelle l’éditeur de message par la touche m, au moment où je me retrouve dans vi, le champ from soit déjà positionné à linux@machin.org.

Pour cela, il faut utiliser une agrafe de dossier, c’est à dire un spécifier une règle du fichier de configuration qui va prendre sa valeur selon le dossier dans lequel on se trouve et reprendre sa valeur normale quand on le quitte. La structure est la suivante :

folder-hook Linux set from="linux@machin.org"

Comme en quittant le dossier la valeur de la propriété n’est pas conservée, si

set from="truc@machin.org"

est spécifié précédemment, en ressortant du dossier, on revient à cette valeur.

Visualisation des messages avant une date donnée

Attention, il ne s’agit ici ni de trier en fonction de la date (tous les messages seront présents et en scrollant, on peut voir tous les messages avant une certaine date), ni de sélectionner tous les messages avant une date (en fonction des options d’affichage, ils peuvent alors être répartis un peu partout), mais bien de ne plus disposer dans la liste des messages qu’on voit que de ceux qui sont avant une certaine date.

La commande à utiliser ici est une commande de limitation. On l’appelle avec la touche l, comme limit. Vous verrez alors : « Limiter les messages correspondant à : ». Pour ne sélectionner que ceux qui sont avant la date donnée, il faut utiliser l’opérateur de sélection de date : ~d et spécifier un intervalle de date à l’aide d’un tiret : -. Enfin, le séparateur des champs de date est le slash (/). Ainsi, il faut écrire :

~d -01/06/19

pour sélectionner voir tous les mails jusqu’à la date du premier juin 2019.

Enfin, pour revoir tout ses mails, il faut les limiter à « all », comme cela est indiqué par mutt.