User Tools

Site Tools


informatique:linux:commandes_linux

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
informatique:linux:commandes_linux [2025/01/06 10:09] – [find] pteuinformatique:linux:commandes_linux [2026/03/19 09:12] (current) – [sed] réorganisation pteu
Line 294: Line 294:
 Pour modifier la date d'expiration : Pour modifier la date d'expiration :
 <code bash> <code bash>
- chage -E YYYY-MM-DD <login_user>+chage -E YYYY-MM-DD <login_user>
 </code> </code>
  
 +ou lancer l'assistant interactif: 
 +<code bash> 
 +chage <login_user> 
 +</code>
 =====chattr/lsattr===== =====chattr/lsattr=====
  
Line 544: Line 547:
 =====diff===== =====diff=====
  
-diff permet d'afficher les différence entre 2 fichiers : +diff permet d'afficher les différences entre 2 fichiers : 
-<code>+<code bash>
 cd /tmp ; echo "toto" > toto ; echo "titi" > titi cd /tmp ; echo "toto" > toto ; echo "titi" > titi
 diff toto titi diff toto titi
Line 553: Line 556:
  > titi  > titi
 </code> </code>
 +
 +On peut ignorer des motifs avec l'option ''-I <motif>'', par exemple pour ignorer les commentaires : ''diff -I "^#" toto titi''.
  
 Un patchfile c'est un fichier qui contient la sortie d'un diff : Un patchfile c'est un fichier qui contient la sortie d'un diff :
-<code>+<code bash>
 diff -u toto titi > toto_titi.patch diff -u toto titi > toto_titi.patch
 </code> </code>
 Pour patcher toto avec les modifications de titi on utilise la commande **patch** avec le patchfile : Pour patcher toto avec les modifications de titi on utilise la commande **patch** avec le patchfile :
-<code>+<code bash>
 patch -b toto toto_titi.patch patch -b toto toto_titi.patch
  patching file toto  patching file toto
Line 843: Line 848:
 find . -regextype posix-egrep -iregex '.*.avi|.*.mkv|.*.mp4|.*.m4v|.*.m2ts' | sed 's/.*\///g' | sort find . -regextype posix-egrep -iregex '.*.avi|.*.mkv|.*.mp4|.*.m4v|.*.m2ts' | sed 's/.*\///g' | sort
  
-# supprimer toutes ces maudites miniatures Windows : +afficher puis supprimer supprimer toutes ces maudites miniatures Windows : 
-find . -name Thumbs.db -exec rm {} \;+find . -name Thumbs.db -exec echo {} \; -exec rm -f {} \;
  
 # 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 1649: Line 1654:
 Pour lister le hardware de la machine. Pour lister le hardware de la machine.
  
 +
 +=====lslogins=====
 +
 +**lslogins** affiche des informations sur les utilisateurs du système.
 +
 +<code bash>
 +lslogins -u dude
 +Nom d'utilisateur:                  dude
 +UID:                                1000
 +Champ gecos:
 +Répertoire personnel:              /home/dude
 +Interpréteur de commandes:         /bin/bash
 +Aucun identifiant:                  no
 +Groupe primaire:                    dude
 +GID:                                1000
 +Groupes supplémentaires:           users,adm
 +Identifiants de groupes supplémentaires:     100,200
 +Dernière connexion:                23:46
 +Dernier terminal:                   pts/0
 +Dernier nom d’hôte:              10.1.1.35
 +Silencieux:                         no
 +Processus en cours d'exécution:    11
 +
 +Dernières connexions :
 +09:18 sshd[417179]: Disconnected from user dude 10.1.1.35 port 40115
 +10:21 sshd[428104]: Received disconnect from 10.1.1.35 port 40150:11: disconnected by user
 +10:21 sshd[428104]: Disconnected from user dude 10.1.1.35 port 40150
 +</code>
  
 =====lsmod===== =====lsmod=====
Line 1911: Line 1944:
 =====NetworkManager===== =====NetworkManager=====
  
-Utilitaire de configuration réseau utilisé par défaut sous Redhat/RockyLinux/feu CentOS.+Utilitaire de configuration réseau utilisé par défaut sous certaines distribution Linux comme Debian 12 actuellement (2025), mais ça évolue. 
 + 
 +Il existe plusieurs interfaces pour amnipuler cet outil: 
 +  * **nmcli** en ligne de commande  
 +  * **nmtui** interface semi-graphique (s'affiche dans un terminal également) 
 +  * **NetworkManager** sous Gnome, KDE ou tout autre Windows Manager  
 + 
 +Pour voir quel service réseau gère la conf réseau sur votre Linux: 
 +<code bash> 
 +echo "Quel service gère le réseau sur cette machine ?" 
 +if systemctl is-active --quiet NetworkManager; then 
 +  echo "NetworkManager" 
 +elif systemctl is-active --quiet systemd-networkd; then 
 +  echo "systemd-networkd" 
 +elif [ -d /etc/netplan ]; then 
 +  echo "Netplan, probablement" 
 +else 
 +  echo "Aucun apparemment!" 
 +fi 
 +</code>
  
 src: https://docs.rockylinux.org/fr/guides/network/basic_network_configuration/ src: https://docs.rockylinux.org/fr/guides/network/basic_network_configuration/
Line 1918: Line 1970:
 systemctl status NetworkManager systemctl status NetworkManager
  
-# Editer fichier de conf+# Editer fichier de conf /etc/NetworkManager/NetworkManager.conf
 vim /etc/sysconfig/network-scripts/ifcfg-ens18 vim /etc/sysconfig/network-scripts/ifcfg-ens18
 TYPE=Ethernet TYPE=Ethernet
Line 1945: Line 1997:
 ip a ip a
 ip route ip route
 +</code>
 +
 +Quelques commandes de diagnostique:
 +<code bash>
 +nmcli device status
 +DEVICE       TYPE      STATE                  CONNECTION 
 +br0          bridge    connecté               br0        
 +docker0      bridge    connecté (en externe)  docker0    
 +lo           loopback  connecté (en externe)  lo         
 +enp1s0       ethernet  connecté               br0 port 1 
 +enp2s0       ethernet  connecté               br0 port 2 
 +wlp3s0       wifi      indisponible           --         
 +veth8881b47  ethernet  non-géré               -- 
 +
 +nmcli connection show 
 +NAME        UUID                                  TYPE      DEVICE  
 +br0         d8da2279-d55a-458e-b675-425b61873ba3  bridge    br0     
 +docker0     f6e2af03-1bb0-4376-9eb1-0d4079c5a6bf  bridge    docker0 
 +lo          edd7c96b-1336-44f4-8106-1caf773d1d91  loopback  lo      
 +br0 port 1  7f58ed28-4a46-47d9-8ef7-e32cc5663b76  ethernet  enp1s0  
 +br0 port 2  920763f3-3e3e-46db-9231-09b1b58deeef  ethernet  enp2s0
 +
 +nmcli device wifi list 
 +IN-USE  BSSID  SSID  MODE  CHAN  RATE  SIGNAL  BARS  SECURITY
 +
 +nmcli device show 
 +GENERAL.DEVICE:                         br0
 +GENERAL.TYPE:                           bridge
 +GENERAL.HWADDR:                         56:F0:DF:29:F3:D9
 +GENERAL.MTU:                            1500
 +GENERAL.STATE:                          100 (connecté)
 +GENERAL.CONNECTION:                     br0
 +GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/2
 +IP4.ADDRESS[1]:                         192.168.1.24/24
 +IP4.GATEWAY:                            192.168.1.254
 +IP4.ROUTE[1]:                           dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 425
 +IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.1.254, mt = 425
 +IP4.DNS[1]:                             192.168.1.254
 +IP4.DOMAIN[1]:                          pteu.local
 +IP6.ADDRESS[1]:                         fd5c:9b35:5081:f709:93d8:c88b:8f62:b224/64
 +IP6.ADDRESS[2]:                         fe80::3f63:6806:4211:9213/64
 +IP6.GATEWAY:                            --
 +IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 1024
 +IP6.ROUTE[2]:                           dst = fd5c:9b35:5081:f709::/64, nh = ::, mt = 425
 +IP6.ROUTE[3]:                           dst = fda9:88ed:8e91:1::/64, nh = fe80::9e52:1e0e:8719:cdb8, mt = 425
 +</code>
 +
 +Configurer une interface en IP statique sur le device "Connexion filaire 1", l'activer et ajouter une route :
 +<code bash>
 +nmcli con mod "Connexion filaire 1" ipv4.addresses "10.0.8.19/29"
 +nmcli con mod "Connexion filaire 1" ipv4.method manual
 +nmcli con mod "Connexion filaire 1" connection.autoconnect yes
 +nmcli con mod "Connexion filaire 1" +ipv4.routes "10.0.0.24/29 10.0.8.17"
 </code> </code>
 =====nslookup===== =====nslookup=====
Line 2413: Line 2518:
 </WRAP> </WRAP>
  
-  * Afficher la 3ème ligne d'un fichier (plusieurs méthodes) : +  * Afficher des lignes d'un fichier :
-Afficher la 3ème ligne d'un fichier :+
 <code bash> <code bash>
-sed -n '3p' <fichier> +# afficher la 3e ligne (plusieurs méthodes) 
-sed '3!d'   <fichier>+sed -n '3p' <fichier>   # preserve 
 +sed '3!d'   <fichier>   # not delete
 sed '52q;d' <fichier>   # arrête la lecture dès qu'elle a matché, pour la performance sed '52q;d' <fichier>   # arrête la lecture dès qu'elle a matché, pour la performance
 +
 +# afficher le fichier à partir de la 3e ligne :
 +sed -n '3,$p' <fichier>
 +
 +# afficher les lignes entre 2 et 5 :
 +sed -n '2,5p' <fichier>
 +
 +# Afficher les lignes entre les motifs "begin" et "end" :
 +sed -n '/begin/,/end/p' <fichier>
 </code> </code>
  
-  * Afficher un fichier à partir de la 3ème ligne :+  * supprimer des lignes d'un fichier : mêmes opérations que ci-dessus, mais avec les flags ''-i'' (pour modifier le fichier, et non son affichage sur le terminal) et la commande ''d'' (delete) à la place de ''p'' (preserve) :
 <code bash> <code bash>
-sed -'3,$p' <fichier>+# Supprimer la 3eme ligne du fichier 
 +<code bash> 
 +sed -'3d' <fichier>  # delete 
 + 
 +# Supprimer les lignes contenant toto dans le fichier : 
 +sed -i '/toto/d' <fichier> 
 +# la mêmecase insensitive = en ne tenant pas compte de la casse (minuscule ou majuscule) 
 +sed -i '/toto/Id' <fichier> 
 + 
 +# Supprimer les lignes __ne contenant pas__ toto dans le fichier toto.txt : 
 +sed -i '/toto/!d' toto.txt 
 + 
 +# Supprimer les lignes vides 
 +sed '/^$/d' toto.txt 
 + 
 +# Supprimer les lignes vides et les commentaires (commençant ("^") par "#" ou "$"
 +sed -iE '/^($|#)/d' toto.txt
 </code> </code>
  
-  * Afficher les lignes de 2 à 5 d'un fichier ; alternative : afficher les lignes de 2 jusqu'à ce qu'une expression régulière matche (dans cet exemple : /sys/)+  * afficher la 2ème ligne et les suivantes jusqu'à ce qu'une expression régulière matche (dans cet exemple : /sys/)
 <code bash> <code bash>
-sed -n '2,5p' <fichier> 
 sed -n '2,/sys/p' <fichier> sed -n '2,/sys/p' <fichier>
 </code> </code>
  
-  * Ajouter une ligne en début de fichier :+  * Ajouter une ligne (''i'' insert) en début de fichier :
 <code bash> <code bash>
 sed -i '1iPremièreLigne' toto.txt sed -i '1iPremièreLigne' toto.txt
Line 2438: Line 2567:
 (il s'agit d'un "un" i suivi du texte à insérer) (il s'agit d'un "un" i suivi du texte à insérer)
  
-  * Afficher les lignes sauf celles situées entre "toto" et "titi" :+  * Afficher les lignes sauf celles situées entre "toto" et "titi" (= supprimer les lignes contenant "toto" ou "titi"):
 <code bash> <code bash>
 sed '/toto/,/titi/d' sed '/toto/,/titi/d'
 </code> </code>
  
-  * remplacer le motif "MOTIF" par "REPLACE" uniquement sur les ligne matchant le motif "SELECT"+  * remplacer le motif "MOTIF" par "REPLACE" uniquement sur les lignes matchant le motif "SELECT"
 <code bash> <code bash>
 sed '/SELECT/s/MOTIF/REPLACE/' toto.txt sed '/SELECT/s/MOTIF/REPLACE/' toto.txt
 </code> </code>
- 
-  * Supprimer la 5eme ligne du fichier toto.txt 
-<code bash> 
-sed -i '5d' toto.txt 
-</code> 
- 
-  * Supprimer les lignes contenant toto dans le fichier toto.txt : 
-<code bash>sed -i '/toto/d' toto.txt</code> 
- 
-  * Supprimer les lignes __ne contenant pas__ toto dans le fichier toto.txt : 
-<code bash>sed -i '/toto/!d' toto.txt</code> 
- 
-  * Supprimer les lignes vides 
-<code bash>sed '/^$/d' toto.txt</code> 
  
   * supprimer (''d'') les première lignes du début d'un fichier (''0,'') jusqu'à un motif (''^begin'' dans cet exemple), et supprimer les dernières lignes depuis un motif (''/^end/'') jusqu'à la fin du fichier ('',$'') :   * supprimer (''d'') les première lignes du début d'un fichier (''0,'') jusqu'à un motif (''^begin'' dans cet exemple), et supprimer les dernières lignes depuis un motif (''/^end/'') jusqu'à la fin du fichier ('',$'') :
Line 2467: Line 2582:
 </code> </code>
  
-  * Remplacer les adresses IP par X.X.X.X+  * Remplacer les adresses IP par X.X.X.X (il s'agit d'une expression régulière simplifiée)
 <code bash> <code bash>
 sed "s/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/X.X.X.X/g" sed "s/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/X.X.X.X/g"
Line 2521: Line 2636:
 toto toto
 test test
-</code> 
  
-# Dans certains cas, on est obligé de conserver les quotes qui entourent l'expression sed ; dans ce cas on procèdera de la sorte : +# Dans certains cas, on est obligé de conserver les quotes qui entourent l'expression sed ; il faudra alors  procèder de la sorte :
-<code bash>+
 echo -e "toto\ntiti" | sed 's/titi/'"$VAR"'/' echo -e "toto\ntiti" | sed 's/titi/'"$VAR"'/'
 </code> </code>
Line 2836: Line 2949:
  
 Un outil d'archivage de données qui permet de créer une archive à partir de fichiers/arborescence. On peut utiliser le flag ''-v'' (verbose) pour afficher les fichiers/dossier ajoutés à l'archive. Un outil d'archivage de données qui permet de créer une archive à partir de fichiers/arborescence. On peut utiliser le flag ''-v'' (verbose) pour afficher les fichiers/dossier ajoutés à l'archive.
 +
 +Options courantes de création d'archive:
 +  * ''-h / <nowiki>--dereference</nowiki>'': Enregistrer les cibles des liens symboliques
 +  * ''-v'': verbose (liste les fichiers/dossier ajoutés à l'archive)
 +  * ''-z / -y'' compression l'archive (resp. avec gunzip ou bunzip
 +  * ''<nowiki>--exclude=<FICHIER></nowiki>'': exclure un fichier/répertoire de l'archive
  
 <code bash> <code bash>
Line 2859: Line 2978:
 tar cfz toto.tar --exclude-from exclude-fic.txt ./toto tar cfz toto.tar --exclude-from exclude-fic.txt ./toto
 </code> </code>
- 
 =====tee===== =====tee=====
  
informatique/linux/commandes_linux.1736158140.txt.gz · Last modified: 2025/01/06 10:09 by pteu