Catégorie : Ligne de commande

10 juin 2015 /

Il peut-être utile de compter le nombre de fichier dans un répertoire.

Pour compter récursivement le nombre de fichiers du répertoire /home/starmate:

find /home/starmate -type f | wc -l

Ça marche aussi pour les dossiers :

find /home/starmate -type d | wc -l

Ou encore par propriétaire:

find /home/starmate -user starmate | wc -l

Voici les autres options:

-name Recherche par nom de fichier.
-type Recherche par type de fichier.
-user Recherche par propriétaire.
-group Recherche par appartenance à un groupe.
-size Recherche par taille de fichier.
-atime Recherche par date de dernier accès.
-mtime Recherche par date de dernière modification.
-ctime Recherche par date de création.
-perm Recherche par autorisations d'accès.
-links Recherche par nombre de liens au fichier.

9 juin 2015 /

Pour lancer une commande après l’autre.
Si vous avez trois fichiers, la ligne de commande va être exécuter trois fois.

-exec ... \; 

Sinon pour les commandes qui peuvent prendre en argument plus d’un fichier à la fois (exemple : cat, stat, ls) on utilise « {} + ».
Les fichiers trouvés par find seront chaînés ensemble comme avec la commande xargs .

-exec ... {} +  
9 juin 2015 /

Envoyer des courriels avec pièce-jointe en ligne de commande

J’ai corrompu bêtement mon fichier /etc/sudoers en l’ouvrant avec vi au lieu de visudo.
Pour m’en sortir j’ai dû rapatrier un autre fichier /etc/sudoers issue d’une même version d’install que la mienne via un courriel.
Du coup voici ce que j’ai fait, plus quelques bonus:

Voici quelques méthodes pour envoyer des mails en ligne de commande.

Prérequis : pour envoyer des courriels vers une adresse Internet, vous devez avoir installé et configuré un serveur de messagerie, comme Postfix par exemple.
Exemples : test@test.fr est l’adresse courriel utilisée pour les exemples ci-dessous. Remplacez-la par la votre adresse courriel.


Envoi de courriels simples


Envoi rapide d’un courriel

Ouvrez un Terminal et tapez :

echo "Bienvenue sur starmate.fr." | mail -s "Bienvenue" test@test.fr

L’option « -s » permet d’indiquer le sujet du message.


Envoi du contenu d’un fichier texte par courriel

mail -s "Contenu du fichier starmate.txt" test@test.fr < starmate.txt


Envoi de courriels avec pièces jointes

Le premier réflexe serait de taper une commande de ce type :

mail -s "sudoers" test@test.fr < /etc/sudoers

Mais ceci ne fonctionnera pas. L’envoi de fichiers binaires (donc autres que des fichiers textes) en pièce jointe nécessite un encodage, par exemple de type MIME.

Mutt est un client courriel en mode texte qui utilise ce type d’encodage.


Envoi d’un courriel avec pièce jointe

echo "Ci-joint le fichier /etc/sudoers" | mutt -s "sudoers" -a /etc/sudoers -- test@test.fr

La même chose sans texte d’explication :

echo | mutt -s "Sudoers" -a /etc/sudoers -- test@test.fr

ou

mutt -s "Sudoers" -a /etc/sudoers -- test@test.fr < /dev/null

Envoi d’un courriel avec plusieurs pièces jointes :

echo | mutt -s "sudoers et passwd" -a /etc/sudoers /etc/passwd -- test@test.fr

Envoyer tous les fichiers jpg de mon répertoire courant par courriel :

echo | mutt -s "Mes Photos" -a *.jpg -- test@test.fr

Envoyer tous les fichiers jpg par courriel avec le contenu d’un fichier texte en corps de message :

mutt -s "Ma voiture" -a *.jpg -- test@test.fr < message.txt

8 juin 2015 /

Pour connaître l’espace utilisé par la Swap:

swapon -s

Puis en tant que root dans un terminal pour vider la Swap:

swapoff -a && swapon -a

7 juin 2015 /

Pour trier les fichiers/répertoires par taille:

du -Sk * | sort -rn

Pour trier les fichiers par taille:

ls -lSrh

Pour trier les répertoires par taille:

du -kx | egrep -v "\./.+/" | sort -n