Console
1 Flux de redirection
Les commandes renvoient leurs messages sur deux sorties différentes :
- la sortie standard : tous les messages sauf les erreurs.
- la sortie des erreurs : toutes les erreurs.
Dans la console, ces deux sorties sont renvoyées par défaut à l'écran. Mais si l'on souhaite rediriger les sorties vers un fichier texte, il faut prendre en compte ces deux sorties distinctes :
- > info.log : écrase "info.log" avec la sortie standard
- >> info.log : ajoute la sortie standard dans "info.log"
- 2> erreur.log : écrase "erreur.log" avec la sortie des erreurs
- 2>> erreur.log : ajoute la sortie des erreurs dans "erreur.log"
Il est possible de combiner les deux :
commande > info.log 2> erreur.log
commande >> info.log 2>> erreur.log
Pour rediriger la sortie des erreurs vers le même fichier que celui de la sortie standard, on utilise "2>&1" (littéralement "envoyer la sortie 2 dans celle définie pour la sortie 1") :
commande > info.log 2>&1
commande >> info.log 2>&1
2 Recherche
2.1 Rechercher dans les fichiers
Pour rechercher un texte dans tous les sous-répertoires :
grep -r 'texte' ./**/*
ou encore :
grep -rnw 'répertoire' -e 'texte'
Pour rechercher un texte dans des fichiers en particulier :
grep -r 'texte' ./**/*.log
2.2 Rechercher dans un fichier compressé
La commande 'zgrep' permet de rechercher un texte directement dans un fichier compressé.
zgrep -v "geonov" fichier.txt.gz
2.2.1 Paramètres
- -c : renvoie le nombre d’occurrences trouvées
- -i : ignore la casse
- -n : spécifie le numéro de la ligne trouvée
- -v : recherche inversée
- -l : cherche dans le nom des fichiers au lieu de leur contenu
2.3 Rechercher et remplacer dans les fichiers
On ajoute "-l" à la commande "grep" pour ne sortir que les noms des fichiers trouvés puis on fait le remplacement avec "sed".
Sensible à la casse (g) :
grep -rnw '.' -e 'Texte' -l | xargs sed -i 's/Texte/NouveauTexte/g'
Non sensible à la casse (gI) :
grep -rnw '.' -e 'Texte' -l | xargs sed -i 's/Texte/NouveauTexte/gI'
3 Réseau
3.1 Connaitre les ports ouverts
sudo apt-get install net-tools
sudo netstat -alntup
sudo netstat -alntup | egrep ':88|:464|:749'
4 Date et heure
4.1 Attendre jusqu'à une date précise
Il faut calculer la différence de temps en secondes entre maintenant et la date souhaitée, par exemple demain à 3H, et la fournir à la commande "sleep" :
now=$(date +%s)
tomorrow=$(date -d 'tomorrow 03:00' +%s)
diff=$(( $tomorrow - $now ))
sleep $diff
5 Système
5.1 Voir les erreurs système
sudo journalctl -xe
6 Fichiers et répertoires
6.1 Connaitre la taille d'un répertoire
du -sh /repertoire
6.2 Trouver les plus gros fichiers
du -a /repertoire/ | sort -n -r | head -n 20
6.3 Visualiser la fin d'un fichier en temps réel
Idéal pour visualiser un fichier de log :
tail -f fichier
6.4 Compter le nombre de fichiers
ls | wc -l