Différences entre les versions de « Console »
(Une version intermédiaire par le même utilisateur non affichée) | |||
Ligne 88 : | Ligne 88 : | ||
</syntaxhighlight> | </syntaxhighlight> | ||
= | = Fichiers et répertoires = | ||
== Connaitre la taille d'un répertoire == | == Connaitre la taille d'un répertoire == | ||
Ligne 108 : | Ligne 108 : | ||
<syntaxhighlight lang="bash" gutter="false" toolbar="false"> | <syntaxhighlight lang="bash" gutter="false" toolbar="false"> | ||
ls | wc -l | ls | wc -l | ||
</syntaxhighlight> | |||
= Automatisation = | |||
== Expect == | |||
Le programme "expect" permet de répondre automatiquement à des questions posées par des programmes exécutés depuis la console. | |||
<syntaxhighlight lang="bash" gutter="false" toolbar="false"> | |||
sudo apt-get install expect | |||
autoexpect programme | |||
</syntaxhighlight> | |||
Répondre aux questions, un fichier "script.exp" sera alors créé et permettra de rejouer le programme de façon automatique : | |||
<syntaxhighlight lang="bash" gutter="false" toolbar="false"> | |||
expect script.exp | |||
</syntaxhighlight> | </syntaxhighlight> | ||
[[Catégorie:GNU/Linux]] | [[Catégorie:GNU/Linux]] |
Version actuelle datée du 27 avril 2021 à 09:19
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
7 Automatisation
7.1 Expect
Le programme "expect" permet de répondre automatiquement à des questions posées par des programmes exécutés depuis la console.
sudo apt-get install expect
autoexpect programme
Répondre aux questions, un fichier "script.exp" sera alors créé et permettra de rejouer le programme de façon automatique :
expect script.exp