Forum Astuces.divers Astuces en vrac

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
3
6
avr.
2015

Transfert du contenu d'une page wiki vers le forum Astuces.divers plus approprié (page initialement créée suite à la dépêche Échanger des astuces sur Debian GNU/Linux)

Contributeurs : Lutin, JGO, openbar, jiehong, Vincent-Xavier JUMEL et Michaël.

Savoir la date selon le calendrier Discordient:

$ddate

Générer un mot de passe aléatoire de 8 caractères (un nouveau mot de passe pour chaque inscription sur un site internet) :

$ openssl rand -base64 6
ou bien, pour un mot de passe prononçable et plus facile à mémoriser :
apg

Concaténer une sélection de pages de deux fichiers pdf (page 1 du premier, pages 2,5- du second) :

$ pdfjam --outfile complet.pdf f.pdf '1' g.pdf '2,5-'

Afficher un fichier dans la console en coupant les lignes trop longues (« dog is better than cat ») :

$ dog -w fichier.txt # par défaut 80 colonnes, sinon utiliser p.ex. -w40 pour couper à 40 colonnes

Envoyer un mail depuis un script :

(sans fichier joint) $ echo "Contenu..." | mail -s "Titre..." adresse@example.com

(avec fichier joint) $ echo "Contenu..." | mutt -a fichier.tar.bz2 -s "Titre..." adresse@example.com

Processus

Lancement de processus

De manière générale, un processus est lancé en entrant son nom dans un terminal et en appuyant sur RET.

Cependant, il arrive qu'une commande doive être lancée sur plusieurs fichiers et ça peut s'avérer fastidieux à la main. Fort heureusement, pour ce genre de chose, une bouche for est là.

Voici comment exécuter la même commande command sur toute une série de fichiers *.txt d'un répertoire, quand la commande n'accepte qu'un seul argument à la fois.

$ for i in *.txt ; do command "$i" ; done

Si la commande command est plus gourmande en processeur, et si vous disposez d'une processeur multi-cœur, vous pouvez lancer les processus en parallèle comme suit :

$ ls *.txt | gparallel command

Manipulation des processus

Changer la priorité d'une tâche lancée avec sudo et ses descendants

On identifie le PID de la commande sudo en question, par exemple en scrutant la sortie de ps ax. Disons que ce PID vaut PID=2731. On fait ensuite
sh
ps -o tpgid,ppid | awk -v pid="$PID" '$1 ~ pid { print $2 }' | xargs renice

Ne pas installer les recommends

Package: *
APT::Install-Recommends False;
  • # mail avec pièces jointes sans mutt

    Posté par  . Évalué à 2.

    uuencode $1 $1 | mail -aFrom:truc@fai.tld -aReply-To:truc@fai.tld -s "Document joint " mailto@fai.tld

    • [^] # Re: mail avec pièces jointes sans mutt

      Posté par  . Évalué à 2.

      Peux-tu préciser l'origine (nom du paquet…) de ton exécutable "mail" ? (il y en a beaucoup qui sont différents…).

      • [^] # Re: mail avec pièces jointes sans mutt

        Posté par  . Évalué à 2.

        herve@DreamMachine:~$ ls -lar /usr/bin/mail
        lrwxrwxrwx 1 root root 22 déc. 21 2009 /usr/bin/mail -> /etc/alternatives/mail

        herve@DreamMachine:~$ ls -lar /etc/alternatives/mail
        lrwxrwxrwx 1 root root 18 déc. 21 2009 /etc/alternatives/mail -> /usr/bin/bsd-mailx

        herve@DreamMachine:~$ dpkg -l | grep bsd-mailx

        ii bsd-mailx 8.1.2-0.20090911cvs-2 simple mail user agent

        Voila :-) du coup j'ai encore appris un truc.

        • [^] # Re: mail avec pièces jointes sans mutt

          Posté par  . Évalué à 3. Dernière modification le 07 avril 2015 à 13:37.

          Merci !

          Au lieu de "dpkg -l | grep bsd-mailx", tu aurais dû faire :
          dpkg -S /usr/bin/bsd-mailx

          La commande complémentaire étant
          dpkg -L bsd-mailx

          J'ajoute souvent |grep bin pour savoir quels exécutables ont été installés avec un paquet.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.