informatique:linux:commandes_linux
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
informatique:linux:commandes_linux [2021/01/31 15:17] – [ethtool] pteu | informatique:linux:commandes_linux [2025/01/06 10:10] (current) – [find: Exemples] pteu | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | {{tag> | ||
- | |||
====== Commandes Linux ====== | ====== Commandes Linux ====== | ||
Cet article présente des commandes système sous Linux. En général on obtient de l'aide sur une commande en tapant '' | Cet article présente des commandes système sous Linux. En général on obtient de l'aide sur une commande en tapant '' | ||
- | Les commandes réseaux sont décrites ici : [[linux | + | Les commandes réseaux sont décrites ici : [[informatique: |
Line 67: | Line 65: | ||
+ | =====arping===== | ||
+ | |||
+ | Détecter une adresse IP usurpée / duplicate : | ||
+ | <code bash> | ||
+ | arping -D -q -I eth0 -c 2 192.168.0.5 | ||
+ | </ | ||
=====aspell===== | =====aspell===== | ||
Vérificateur d' | Vérificateur d' | ||
Line 117: | Line 121: | ||
On peut utiliser les fichier ''/ | On peut utiliser les fichier ''/ | ||
+ | On peut consulter les journaux d' | ||
+ | <code bash> | ||
+ | Jul 19 02:30:00 bast2 atd[221981]: | ||
+ | </ | ||
+ | |||
+ | =====auditd===== | ||
+ | |||
+ | Permet d' | ||
+ | <code bash> | ||
+ | apt install auditd | ||
+ | |||
+ | # mise en place de l' | ||
+ | auditctl -a exit,always -F arch=b64 -F a0=2 -F a1\&=2 -S socket -k SOCKET | ||
+ | # lister les logs de l' | ||
+ | ausearch -i -ts today -k SOCKET | ||
+ | # supprimer l' | ||
+ | auditctl -d exit,always -F arch=b64 -F a0=2 -F a1\&=2 -S socket -k SOCKET | ||
+ | </ | ||
+ | src: [[https:// | ||
=====awk===== | =====awk===== | ||
Line 450: | Line 473: | ||
# afficher la date dans 5 mois et 4 jours (regarde, on peut même faire des fautes, c'est pris en compte !) : | # afficher la date dans 5 mois et 4 jours (regarde, on peut même faire des fautes, c'est pris en compte !) : | ||
date --date=' | date --date=' | ||
+ | # afficher la date, 89 jours après le 26 mai 2022 : | ||
+ | date -d "26 may 2022 +89 days" | ||
+ | Tue Aug 23 00:00:00 UTC 2022 | ||
# mettre à jour la date et l' | # mettre à jour la date et l' | ||
Line 555: | Line 581: | ||
dig mx pteu.fr | dig mx pteu.fr | ||
dig pteu.fr @9.9.9.9 | dig pteu.fr @9.9.9.9 | ||
+ | dig pteu.fr @127.0.0.1 -p5353 | ||
dig +noall +answer pteu.fr | dig +noall +answer pteu.fr | ||
</ | </ | ||
Line 779: | Line 806: | ||
</ | </ | ||
- | Liste des options | + | Liste des options |
* '' | * '' | ||
* '' | * '' | ||
* '' | * '' | ||
+ | * '' | ||
* '' | * '' | ||
- | * '' | + | * '' |
* '' | * '' | ||
* '' | * '' | ||
Line 815: | Line 843: | ||
find . -regextype posix-egrep -iregex ' | find . -regextype posix-egrep -iregex ' | ||
- | # supprimer toutes ces maudites miniatures Windows : | + | # afficher puis supprimer |
- | find . -name Thumbs.db -exec rm {} \; | + | find . -name Thumbs.db |
# attribuer des permissions à tous les sous-répertoires contenus dans le répertoire pics : | # attribuer des permissions à tous les sous-répertoires contenus dans le répertoire pics : | ||
Line 841: | Line 869: | ||
# on peut additionner les conditions de recherches avec -a (AND) et -o (OR) | # on peut additionner les conditions de recherches avec -a (AND) et -o (OR) | ||
find . \( -name ' | find . \( -name ' | ||
- | </ | ||
+ | Pour trier les résultats par date de modification : | ||
+ | find . \( -name ' | ||
+ | </ | ||
=====flock===== | =====flock===== | ||
Line 1824: | Line 1854: | ||
# -z = on n' | # -z = on n' | ||
# -v = mode verbeux | # -v = mode verbeux | ||
+ | # -t = TCP (-u pour UDP) | ||
# 80: numéro de port à tester | # 80: numéro de port à tester | ||
- | $ nc -zv 10.0.0.1 80 | + | $ nc -zvt 10.0.0.1 80 |
Connection to 10.0.0.1 80 port [tcp/ssh] succeeded! | Connection to 10.0.0.1 80 port [tcp/ssh] succeeded! | ||
Line 1878: | Line 1909: | ||
* '' | * '' | ||
+ | =====NetworkManager===== | ||
+ | |||
+ | Utilitaire de configuration réseau utilisé par défaut sous Redhat/ | ||
+ | |||
+ | src: https:// | ||
+ | <code bash> | ||
+ | # Etat du service | ||
+ | systemctl status NetworkManager | ||
+ | |||
+ | # Editer fichier de conf | ||
+ | vim / | ||
+ | TYPE=Ethernet | ||
+ | PROXY_METHOD=none | ||
+ | BROWSER_ONLY=no | ||
+ | BOOTPROTO=none | ||
+ | DEFROUTE=yes | ||
+ | IPV4_FAILURE_FATAL=no | ||
+ | IPV6INIT=no | ||
+ | NAME=ens18 | ||
+ | UUID=xxxx-xx | ||
+ | DEVICE=ens18 | ||
+ | ONBOOT=yes | ||
+ | IPADDR=192.168.0.1 | ||
+ | PREFIX=24 | ||
+ | GATEWAY=192.168.0.254 | ||
+ | DNS1=192.168.0.254 | ||
+ | DNS2=1.1.1.1 | ||
+ | IPV6_DISABLED=yes | ||
+ | |||
+ | # Appliquer la conf réseau | ||
+ | nmcli connection up ens18 | ||
+ | |||
+ | # Vérifier bonne application de la conf : | ||
+ | nmcli device show ens18 | ||
+ | ip a | ||
+ | ip route | ||
+ | </ | ||
=====nslookup===== | =====nslookup===== | ||
Line 2077: | Line 2145: | ||
</ | </ | ||
+ | =====printf===== | ||
+ | |||
+ | Comme [[informatique: | ||
+ | <code bash> | ||
+ | a=12; b=34; c=' | ||
+ | printf 'a=%i, b=%i, c=%s\n' | ||
+ | a=12, b=34, c=toto | ||
+ | </ | ||
+ | '' | ||
+ | |||
+ | Pour formater l' | ||
+ | <code bash> | ||
+ | a=12; b=34; c=' | ||
+ | # on aligne $a et $b à droite sur 5 colonnes, et $c à gauche sur 20 colonnes | ||
+ | printf ' | ||
+ | a= 12, b= 34, c=toto | ||
+ | </ | ||
+ | |||
+ | ====Afficher x fois le même caractère==== | ||
+ | |||
+ | Pour afficher 10 fois le caractère " | ||
+ | <code bash> | ||
+ | printf ' | ||
+ | ========== | ||
+ | </ | ||
=====ps===== | =====ps===== | ||
Line 2101: | Line 2194: | ||
</ | </ | ||
+ | Afficher les processus les plus consommateurs de mémoire/de CPU : | ||
+ | <code bash> | ||
+ | ps -eo pmem, | ||
+ | ps -eo pmem, | ||
+ | </ | ||
=====pstree===== | =====pstree===== | ||
Line 2188: | Line 2286: | ||
* Ajouter l' | * Ajouter l' | ||
<code bash> | <code bash> | ||
- | route add default gw 192.168.0.1 | + | route add default gw 192.168.0.1 |
</ | </ | ||
Line 2212: | Line 2310: | ||
<code bash> | <code bash> | ||
echo " | echo " | ||
+ | </ | ||
+ | |||
+ | Pour ajouter des routes persistantes, | ||
+ | * __sous Redhat/ | ||
+ | <code bash / | ||
+ | 10.0.211.0/ | ||
+ | </ | ||
+ | * sous Debian, il faut ajouter une ligne dans le fichier : | ||
+ | <code bash / | ||
+ | up route add -net 10.0.211.0/ | ||
</ | </ | ||
Line 2225: | Line 2333: | ||
.. à peu près similaire à la commande '' | .. à peu près similaire à la commande '' | ||
+ | |||
+ | =====scp===== | ||
+ | |||
+ | **Ssh CoPy** (SCP) est une commande qui permet de transférer des fichiers par une connexion SSH. | ||
+ | |||
+ | Sous Windows il existe les programmes '' | ||
+ | |||
+ | La syntaxe en CLI est la suivante : | ||
+ | <code bash> | ||
+ | scp fichier_local user@serveur.com:/ | ||
+ | </ | ||
+ | Il faut noter qu'un //path// relatif (sans le "/" | ||
+ | |||
+ | Exemples | ||
+ | <code bash> | ||
+ | # uploader le fichier local test.txt vers la home de l' | ||
+ | scp test.txt toto@serveur.com: | ||
+ | |||
+ | # télécharger dans le répertoire courant (.) test.txt, qui se trouve sur serveur.com | ||
+ | scp toto@serveur.com: | ||
+ | |||
+ | # uploader tout le dossier test vers le sous répertoire incoming : | ||
+ | scp -r test toto@serveur.com: | ||
+ | |||
+ | # 3 façon d' | ||
+ | scp 1.zip 2.zip serveur.com: | ||
+ | scp {1,2}.zip serveur.com: | ||
+ | scp *.zip serveur.com: | ||
+ | |||
+ | # télécharger plusieurs fichiers en une même commande SCP (ici 1.zip et 2.zip) | ||
+ | scp serveur.com:/ | ||
+ | |||
+ | # copier un fichier entre 2 serveurs distants (remote to remote) | ||
+ | scp toto@serveur1.com: | ||
+ | </ | ||
+ | |||
+ | Les paramètres possibles sont : | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
=====script===== | =====script===== | ||
Line 2245: | Line 2393: | ||
<code bash> | <code bash> | ||
# afficher le contenu du fichier en remplaçant toto par titi | # afficher le contenu du fichier en remplaçant toto par titi | ||
- | cat fichier.txt | sed ' | + | cat fichier.txt | sed ' |
# même chose en plus simple | # même chose en plus simple | ||
- | sed ' | + | sed ' |
</ | </ | ||
+ | A noter que le délimiteur ''/'' | ||
Par défaut le résultat est affiché dans le terminal ; si on précise un fichier on peut choisir d' | Par défaut le résultat est affiché dans le terminal ; si on précise un fichier on peut choisir d' | ||
Line 2292: | Line 2441: | ||
<code bash> | <code bash> | ||
sed '/ | sed '/ | ||
+ | </ | ||
+ | |||
+ | * remplacer le motif " | ||
+ | <code bash> | ||
+ | sed '/ | ||
</ | </ | ||
Line 2385: | Line 2539: | ||
<code bash> | <code bash> | ||
ls --color=y | sed ' | ls --color=y | sed ' | ||
+ | </ | ||
+ | |||
+ | ====Supprimer les lignes paires==== | ||
+ | |||
+ | <code bash> | ||
+ | sed ' | ||
+ | </ | ||
+ | (en commençant à la ligne 2, puis toutes les 2 lignes ('' | ||
+ | |||
+ | Équivalent : en partant de la première ligne, puis toutes les 2 lignes ('' | ||
+ | <code bash> | ||
+ | sed -n ' | ||
+ | </ | ||
+ | |||
+ | Autres équivalents : | ||
+ | <code bash> | ||
+ | sed -n ' | ||
+ | sed -n ' | ||
+ | </ | ||
+ | |||
+ | ====Remplacer un quote==== | ||
+ | |||
+ | Pour ne pas interpréter le quote il faut découper le sed pour qu'il concatène son contenu : | ||
+ | <code bash> | ||
+ | echo \' | ||
+ | ' | ||
+ | |||
+ | echo \' | ||
+ | " | ||
+ | </ | ||
+ | Ici sed va concaténer les 3 parts : | ||
+ | <code bash> | ||
+ | s/ | ||
+ | \' | ||
+ | /\"/g | ||
</ | </ | ||
====Liens utiles==== | ====Liens utiles==== | ||
Line 2585: | Line 2774: | ||
</ | </ | ||
+ | |||
+ | =====strace===== | ||
+ | |||
+ | Permet de débugguer les appels système d'un processus. | ||
+ | |||
+ | Liens : | ||
+ | * [[https:// | ||
=====strings===== | =====strings===== | ||
Line 2639: | Line 2835: | ||
=====tar===== | =====tar===== | ||
- | Un outil d' | + | Un outil d' |
<code bash> | <code bash> | ||
# pour archiver le répertoire ./toto/ et tout son contenu (répertoires et fichiers normaux). | # pour archiver le répertoire ./toto/ et tout son contenu (répertoires et fichiers normaux). | ||
# (toto.tar désigne le nom de l' | # (toto.tar désigne le nom de l' | ||
- | tar cvf toto.tar ./toto | + | tar cf toto.tar ./toto |
# archiver ET compresser le fichier grâce à gunzip (-z) ou bunzip (-y) : | # archiver ET compresser le fichier grâce à gunzip (-z) ou bunzip (-y) : | ||
- | # -c pour compresser, -v pour un affichage verbeux, -f pour préciser le fichier | + | # -c pour compresser, -v pour un affichage verbeux, -f pour préciser le fichier |
- | tar czvf toto.tar.gz ./toto | + | tar cvzf toto.tar.gz ./toto |
# extraire (-x) le contenu d'une archive gunzip (-z) : | # extraire (-x) le contenu d'une archive gunzip (-z) : | ||
tar zxf toto.tar | tar zxf toto.tar | ||
+ | |||
+ | # exclure le répertoire " | ||
+ | tar cfz toto.tar --exclude=./ | ||
+ | |||
+ | # équivalent en listant les fichiers à exclure dans un fichier externe | ||
+ | cat exclude-fic.txt | ||
+ | ./ | ||
+ | ./toto/dir | ||
+ | |||
+ | tar cfz toto.tar --exclude-from exclude-fic.txt ./toto | ||
</ | </ | ||
Line 2720: | Line 2926: | ||
Connection closed by foreign host. | Connection closed by foreign host. | ||
</ | </ | ||
+ | |||
+ | Pour fermer une connexion telnet qui ne répond plus ou dont on n' | ||
+ | |||
=====time===== | =====time===== | ||
Line 2735: | Line 2944: | ||
<code bash> | <code bash> | ||
time -f " | time -f " | ||
- | </ | + | </ |
+ | |||
+ | |||
+ | =====timeout===== | ||
+ | |||
+ | **timeout** permet de lancer une commande et de la killer si elle n'est pas terminée dans le laps de temps indiqué. Syntaxe : '' | ||
+ | |||
+ | <code bash> | ||
+ | timeout 10s ping google.fr | ||
+ | </ | ||
=====top===== | =====top===== | ||
Affiche la liste des processus et permet d' | Affiche la liste des processus et permet d' | ||
+ | =====touch===== | ||
+ | Permet de modifier les dates de dernier accès et de dernière modification d'un fichier. | ||
+ | |||
+ | <code bash> | ||
+ | # modifier les dates d' | ||
+ | touch toto.txt | ||
+ | # pour ne changer que l'une d' | ||
+ | |||
+ | # modifier avec la date spécifiée en option | ||
+ | touch -d " | ||
+ | </ | ||
=====tr===== | =====tr===== | ||
Line 2757: | Line 2987: | ||
</ | </ | ||
=====traceroute===== | =====traceroute===== | ||
- | [[http:// | ||
- | L' | ||
- | Certains routeurs ne communiquent pas d'informations | + | [[http:// |
+ | L' | ||
+ | |||
+ | Certains routeurs ne communiquent pas d'information | ||
<code bash> | <code bash> | ||
traceroute google.fr | traceroute google.fr | ||
Line 2779: | Line 3010: | ||
</ | </ | ||
+ | Par défaut le protocole UDP/33434-5 est utilisé mais il peut être filtré. On peut donc demander au traceroute de changer de port ('' | ||
=====trap===== | =====trap===== | ||
**trap** permet d' | **trap** permet d' | ||
- | * '' | + | * '' |
+ | <code bash> | ||
+ | 1) SIGHUP | ||
+ | 6) SIGABRT | ||
+ | 11) SIGSEGV | ||
+ | 16) SIGSTKFLT | ||
+ | 21) SIGTTIN | ||
+ | 26) SIGVTALRM | ||
+ | 31) SIGSYS | ||
+ | 38) SIGRTMIN+4 | ||
+ | 43) SIGRTMIN+9 | ||
+ | 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 | ||
+ | 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 | ||
+ | 58) SIGRTMAX-6 | ||
+ | 63) SIGRTMAX-1 | ||
+ | </ | ||
+ | Le code '' | ||
* '' | * '' | ||
- | Par exemple, pour afficher un message lors d'une erreur ainsi que la ligne qui la génère : | + | Par exemple, pour afficher un message lors d'une erreur |
<code bash> | <code bash> | ||
- | trap "echo Erreur à la ligne $LINENO" | + | trap "echo Erreur à la ligne $LINENO" |
</ | </ | ||
+ | C'est utile pour effacer les fichiers temporaires en cas d' | ||
+ | <code bash> | ||
+ | trap "rm -f $TMPFIC1 $TMPFIC2 $TMPFIC3" | ||
+ | </ | ||
=====type===== | =====type===== | ||
- | **type** est une commande interne de bash qui permet de savoir à quoi correspond un " | + | **type** est une commande interne de bash qui permet de savoir à quoi correspond un " |
<code bash> | <code bash> | ||
type -t ls | type -t ls | ||
| | ||
+ | |||
type -t l | type -t l | ||
alias | alias | ||
+ | |||
type l | type l | ||
l is aliased to 'ls -p --color' | l is aliased to 'ls -p --color' | ||
Line 2923: | Line 3177: | ||
<code bash> | <code bash> | ||
usermod -G "" | usermod -G "" | ||
+ | </ | ||
+ | |||
+ | Simplement ajouter un utilisateur dans un groupe existant : | ||
+ | <code bash> | ||
+ | usermod -aG GROUP USER | ||
</ | </ | ||
=====vi===== | =====vi===== | ||
Line 3050: | Line 3309: | ||
Affiche les utilisateurs connectés à la machine, et depuis quand. | Affiche les utilisateurs connectés à la machine, et depuis quand. | ||
- | | + | <code bash> |
- | | + | who |
- | + | | |
- | Permet aussi d' | + | dude |
- | | + | toto |
- | run-level 3 May 31 11:36 | + | |
+ | # afficher le runlevel précédent et courant (comme la commande '' | ||
+ | who -r | ||
+ | | ||
+ | # afficher uniquement l' | ||
+ | who -m | ||
+ | | ||
+ | </ | ||
=====xargs===== | =====xargs===== | ||
Line 3070: | Line 3335: | ||
permet de récupérer le pid de // | permet de récupérer le pid de // | ||
+ | Autre use case, en utilisant les paramètres '' | ||
+ | <code bash> | ||
+ | echo -ne ' | ||
+ | cat toto | xargs -L3 -P2 echo | ||
+ | 1 2 3 | ||
+ | 4 | ||
+ | </ | ||
+ | C'est utile pour des opérations plus CPUvore comme le calcul de hash MD5 par ex: | ||
+ | <code bash> | ||
+ | ls | ||
+ | tata toto | ||
+ | |||
+ | find . -maxdepth 1 -type f -print0 | xargs -L1 -P4 -0 md5sum >> md5sums | ||
+ | |||
+ | cat md5sums | ||
+ | b4af4c692f2a8c7dda9abc8ee657997d | ||
+ | 257cde944bf50d4fe05001bc33dd0ca4 | ||
+ | e5084550439c3c39e1b0e53b47018058 | ||
+ | </ | ||
=====yum===== | =====yum===== | ||
informatique/linux/commandes_linux.1612106267.txt.gz · Last modified: 2021/01/31 15:17 by pteu