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 [2018/03/09 09:06] – [sed] Afficher un fichier à partir de la 3ème ligne pteu | informatique:linux:commandes_linux [2025/09/15 14:10] (current) – [NetworkManager] 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 86: | Line 90: | ||
| Permet de programmer l' | Permet de programmer l' | ||
| - | Enfin, on peut spécifier l' | + | On peut spécifier l' | 
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| <code bash> | <code bash> | ||
| Line 112: | 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 146: | Line 174: | ||
| (voir '' | (voir '' | ||
| + | =====blkid===== | ||
| + | Affiche les attributs des disques/ | ||
| + | <code bash> | ||
| + | /dev/sda1: UUID=" | ||
| + | /dev/sda2: UUID=" | ||
| + | /dev/sdb1: UUID=" | ||
| + | /dev/sdb2: UUID=" | ||
| + | /dev/md0: LABEL=" | ||
| + | /dev/md1: UUID=" | ||
| + | </ | ||
| =====cal===== | =====cal===== | ||
| Line 256: | Line 294: | ||
| Pour modifier la date d' | Pour modifier la date d' | ||
| <code bash> | <code bash> | ||
| - | chage -E YYYY-MM-DD < | + | chage -E YYYY-MM-DD < | 
| </ | </ | ||
| + | ou lancer l' | ||
| + | <code bash> | ||
| + | chage < | ||
| + | </ | ||
| =====chattr/ | =====chattr/ | ||
| Line 268: | Line 309: | ||
| * effacement total : '' | * effacement total : '' | ||
| + | |||
| + | =====chkconfig===== | ||
| + | |||
| + | Commande pour configurer les services activer au démarrage du système. | ||
| + | <code bash> | ||
| + | # lister les états de tous les services | ||
| + | chkconfig --list | ||
| + | |||
| + | # activer le service toto (resp. désactiver avec " | ||
| + | # optionnel : préciser les runlevels concernés, par défaut 2345) | ||
| + | chkconfig toto on [--level 35] | ||
| + | |||
| + | # lister l' | ||
| + | chkconfig --list toto | ||
| + | toto        	0: | ||
| + | </ | ||
| =====chmod===== | =====chmod===== | ||
| Line 364: | Line 421: | ||
| * '' | * '' | ||
| + | =====command===== | ||
| + | Permet de lancer la commande fournie en paramètre en ne la recherchant que dans les commandes système ou dans le PATH. Invoquée avec '' | ||
| + | |||
| + | <code bash> | ||
| + | command -V cd | ||
| + | cd est une primitive du shell | ||
| + | </ | ||
| =====cp===== | =====cp===== | ||
| **c**o**p**y ; copier de fichier. | **c**o**p**y ; copier de fichier. | ||
| Line 396: | Line 460: | ||
| <code bash> | <code bash> | ||
| # Pour afficher la date au format YYYY/ | # Pour afficher la date au format YYYY/ | ||
| - | date +%Y/%m/%d-%H:%M:%S | + | date "+%Y/%m/%d %H:%M:%S" | 
| - | 2009/06/25-15:07:56 | + | 2009/06/25 15:07:56 | 
| # afficher le compteur (timestamp) de l' | # afficher le compteur (timestamp) de l' | ||
| - | date +%s | + | date "+%s" | 
| 1441816670 | 1441816670 | ||
| Line 412: | Line 476: | ||
| # 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 417: | Line 484: | ||
| </ | </ | ||
| + | Pour comparer des dates, on les convertit au format '' | ||
| + | <code bash> | ||
| + | date=$(date -d 2020-12-15 +%s) | ||
| + | now=$(date +%s) | ||
| + | |||
| + | if [ $date -lt $now ]; then | ||
| + | echo "date est dans le passé !" | ||
| + | fi | ||
| + | </ | ||
| =====dd===== | =====dd===== | ||
| Line 434: | Line 510: | ||
| <code bash> | <code bash> | ||
| pkill -USR1 dd | pkill -USR1 dd | ||
| + | </ | ||
| + | |||
| + | |||
| + | =====declare===== | ||
| + | |||
| + | Permet de déclarer des variables en bash et leur affecter des attributs ; il équivaut à la commande '' | ||
| + | |||
| + | Liste des attributs existants : | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Utiliser '' | ||
| + | |||
| + | <code bash> | ||
| + | # exemple d' | ||
| + | declare -i int=2 | ||
| + | echo "int vaut $int" | ||
| + | let "int += 1" | ||
| + | echo "int vaut $int" | ||
| + | unset int | ||
| + | |||
| + | # exemple d' | ||
| + | declare -r const=pierre | ||
| + | echo "const vaut $const" | ||
| + | const=sable | ||
| + | echo "const vaut $const" | ||
| </ | </ | ||
| =====diff===== | =====diff===== | ||
| - | diff permet d' | + | diff permet d' | 
| - | < | + | < | 
| cd /tmp ; echo " | cd /tmp ; echo " | ||
| diff toto titi | diff toto titi | ||
| Line 447: | Line 556: | ||
| > titi | > titi | ||
| </ | </ | ||
| + | |||
| + | On peut ignorer des motifs avec l' | ||
| 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 : | ||
| - | < | + | < | 
| diff -u toto titi > toto_titi.patch | diff -u toto titi > toto_titi.patch | ||
| </ | </ | ||
| 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 : | ||
| - | < | + | < | 
| patch -b toto toto_titi.patch | patch -b toto toto_titi.patch | ||
|  |  | ||
| Line 471: | Line 582: | ||
| dig +trace google.fr | dig +trace google.fr | ||
| + | |||
| + | dig txt pteu.fr | ||
| + | dig mx pteu.fr | ||
| + | dig pteu.fr @9.9.9.9 | ||
| + | dig pteu.fr @127.0.0.1 -p5353 | ||
| + | dig +noall +answer pteu.fr | ||
| </ | </ | ||
| + | Récupérer le numéro de série (serial number) d'une zone (enlever //+short// pour un résultat plus verbeux) : | ||
| + | <code bash> | ||
| + | dig +short SOA pteu.fr | ||
| + | dns105.ovh.net. tech.ovh.net. 2018110900 86400 3600 3600000 300 | ||
| + | </ | ||
| + | |||
| + | Interroger tous les serveurs faisant autorité d'une zone : | ||
| + | <code bash> | ||
| + | dig +nssearch pteu.fr | ||
| + | SOA dns105.ovh.net. tech.ovh.net. 2018110900 86400 3600 3600000 300 from server 213.251.188.149 in 0 ms. | ||
| + | SOA dns105.ovh.net. tech.ovh.net. 2018110900 86400 3600 3600000 300 from server 2001: | ||
| + | SOA dns105.ovh.net. tech.ovh.net. 2018110900 86400 3600 3600000 300 from server 2001: | ||
| + | SOA dns105.ovh.net. tech.ovh.net. 2018110900 86400 3600 3600000 300 from server 213.251.128.149 in 2 ms. | ||
| + | </ | ||
| =====dirname===== | =====dirname===== | ||
| Line 495: | Line 626: | ||
| =====dmesg===== | =====dmesg===== | ||
| - | Affiche les messages émis lors du boot (on y trouve aussi les messages lors du branchement d'un disque USB). | + | Affiche les messages émis par le noyau depuis le dernier démarrage. | 
| + | <code bash> | ||
| + | dmesg | head -1 | ||
| + | [    0.000000] Linux version 4.9.0-8-amd64 (debian-kernel@lists.debian.org) (gcc version 6.3.0 20170516 | ||
| + | (Debian 6.3.0-18+deb9u1) ) #1 SMP Debian 4.9.130-2 (2018-10-27) | ||
| + | [..] | ||
| + | # pour convertir les temps en date | ||
| + | dmesg -T | ||
| + | [mer. janv. 2 18:18:44 2019] Linux version 4.9.0-8-amd64 (debian-kernel@lists.debian.org) (gcc version | ||
| + | 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) ) #1 SMP Debian 4.9.130-2 (2018-10-27) | ||
| + | [..] | ||
| + | </ | ||
| =====df===== | =====df===== | ||
| Line 624: | Line 766: | ||
| ethtool -s eth0 speed 1000 duplex full autoneg on | ethtool -s eth0 speed 1000 duplex full autoneg on | ||
| + | Afficher les statistiques de la carte eth0: '' | ||
| =====exit===== | =====exit===== | ||
| Line 668: | Line 811: | ||
| </ | </ | ||
| - | Liste des options | + | Liste des options | 
| * '' | * '' | ||
| * '' | * '' | ||
| * '' | * '' | ||
| + | * '' | ||
| * '' | * '' | ||
| - | * '' | + | * '' | 
| * '' | * '' | ||
| * '' | * '' | ||
| Line 704: | Line 848: | ||
| 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 730: | Line 874: | ||
| # 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 820: | Line 966: | ||
| * '' | * '' | ||
| * '' | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| Il est possible d' | Il est possible d' | ||
| Line 911: | Line 1061: | ||
| =====history===== | =====history===== | ||
| - | Permet d' | + | Permet d' | 
| <code bash> | <code bash> | ||
| history | history | ||
| Line 921: | Line 1071: | ||
|  |  | ||
| </ | </ | ||
| + | |||
| + | Lors de la fermeture de session, cette liste est ajoutée au fichier indiqué dans la variable '' | ||
| + | * le format de timestamp de chaque commande avec la variable '' | ||
| + | * la taille de l' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | Exemple : | ||
| + | <file bash .bashrc> | ||
| + | HISTCONTROL=ignoredups: | ||
| + | HISTTIMEFORMAT=" | ||
| + | HISTSIZE=10000 | ||
| + | HISTFILESIZE=20000 | ||
| + | </ | ||
| On peut relancer une commande de l' | On peut relancer une commande de l' | ||
| Line 943: | Line 1107: | ||
| </ | </ | ||
| - | On efface l' | + | On efface l' | 
| On peut loguer (dans ''/ | On peut loguer (dans ''/ | ||
| Line 986: | Line 1150: | ||
| ymir | ymir | ||
| </ | </ | ||
| + | |||
| + | =====iconv===== | ||
| + | |||
| + | iconv est un utilitaire de conversion et d' | ||
| + | <code bash> | ||
| + | # Supprimer les caractères accentués: | ||
| + | echo " | ||
| + | eei | ||
| + | </ | ||
| + | |||
| =====id===== | =====id===== | ||
| Line 1113: | Line 1287: | ||
| =====ip===== | =====ip===== | ||
| - | Couteau suisse réseau, il permet de configurer les paramètres ip d'une interface réseau. | + | Couteau suisse réseau, il permet de configurer les paramètres ip d'une interface réseau. Dans de plus en plus de distributions, | 
| <code bash> | <code bash> | ||
| + | # afficher les interfaces | ||
| ip addr show | ip addr show | ||
| 1: lo: < | 1: lo: < | ||
| Line 1126: | Line 1301: | ||
| 3: eth1: < | 3: eth1: < | ||
|  |  | ||
| + | |||
| + | # afficher la table de routage | ||
| + | ip route | ||
| + | default via 10.10.22.249 dev ens3 onlink | ||
| + | 10.10.22.0/ | ||
| + | |||
| + | # affecter ou supprimer une adresse IP à une interface | ||
| + | ip addr add 10.0.0.1 255.255.255.0 dev eth0 | ||
| + | ip addr del 10.0.0.1 255.255.255.0 dev eth0 | ||
| + | |||
| + | # afficher les voisins | ||
| + | ip neigh | ||
| </ | </ | ||
| + | Équivalence anciennes/ | ||
| + | ^ anciennes commandes ^ équivalent ip ^ | ||
| + | | ifconfig -a | ip a | | ||
| + | | ifconfig enp6s0 down | ip link set enp6s0 down | | ||
| + | | ifconfig enp6s0 up | ip link set enp6s0 up | | ||
| + | | ifconfig enp6s0 10.0.0.24 netmask 255.255.255.0 dev enp6s0 | ip addr add 10.0.0.24/ | ||
| + | | ifconfig enp6s0 mtu 9000 | ip link set enp6s0 mtu 9000 | | ||
| + | | ifconfig enp6s0:0 10.0.0.25 | ip addr add 10.0.0.25/ | ||
| + | | netstat | ss | | ||
| + | | netstat -tulpn | ss -tulpn | | ||
| + | | netstat -neopa | ss -neopa | | ||
| + | | netstat -g | ip maddr | | ||
| + | | route | ip r | | ||
| + | | route add -net 10.0.0.0 netmask 255.255.255.0 dev enp6s0 | ip route add 10.0.0.0/24 dev enp6s0 | | ||
| + | | route add default gw 10.0.0.254 | ip route add default via 10.0.0.254 | | ||
| + | | arp -a | ip neigh | | ||
| + | | arp -v | ip -s neigh | | ||
| + | | arp -s 10.0.0.33 1:2:3:4:5:6 | ip neigh add 10.0.1.33 lladdr 1:2:3:4:5:6 dev enp6s0 | | ||
| + | | arp -i enp6s0 -d 10.0.0.254 | ip neigh del 10.0.0.254 dev wlp7s0 | | ||
| =====ipcs===== | =====ipcs===== | ||
| Line 1281: | Line 1487: | ||
| =====lastb===== | =====lastb===== | ||
| - | Comme '' | + | **lastb** (last bad logins) | 
| + | <code bash> | ||
| + | # lastb | ||
| + | toto | ||
| + | titi | ||
| + | toto | ||
| + | tata | ||
| + | tatoo    ssh: | ||
| + | </ | ||
| =====lastlog===== | =====lastlog===== | ||
| Line 1378: | Line 1591: | ||
| * '' | * '' | ||
| * '' | * '' | ||
| + | * '' | ||
| <code bash> | <code bash> | ||
| Line 1440: | 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' | ||
| + | UID: 1000 | ||
| + | Champ gecos: | ||
| + | Répertoire personnel: | ||
| + | Interpréteur de commandes: | ||
| + | Aucun identifiant: | ||
| + | Groupe primaire: | ||
| + | GID: 1000 | ||
| + | Groupes supplémentaires: | ||
| + | Identifiants de groupes supplémentaires: | ||
| + | Dernière connexion: | ||
| + | Dernier terminal: | ||
| + | Dernier nom d’hôte: | ||
| + | Silencieux: | ||
| + | Processus en cours d' | ||
| + | |||
| + | Dernières connexions : | ||
| + | 09:18 sshd[417179]: | ||
| + | 10:21 sshd[428104]: | ||
| + | 10:21 sshd[428104]: | ||
| + | </ | ||
| =====lsmod===== | =====lsmod===== | ||
| Line 1453: | Line 1695: | ||
| * '' | * '' | ||
| * '' | * '' | ||
| + | * '' | ||
| =====lspci===== | =====lspci===== | ||
| Line 1633: | Line 1875: | ||
| =====netcat===== | =====netcat===== | ||
| - | Permet | + | Netcat (nc) est un couteau-suisse réseau qui permet | 
| * '' | * '' | ||
| * '' | * '' | ||
| Line 1640: | Line 1882: | ||
| * '' | * '' | ||
| * '' | * '' | ||
| + | |||
| + | * pour tester si des ports sont ouverts sur une machine distante: | ||
| + | <code bash> | ||
| + | # -z = on n' | ||
| + | # -v = mode verbeux | ||
| + | # -t = TCP (-u pour UDP) | ||
| + | # 80: numéro de port à tester | ||
| + | $ nc -zvt 10.0.0.1 80 | ||
| + | Connection to 10.0.0.1 80 port [tcp/ssh] succeeded! | ||
| + | |||
| + | # On peut remplacer un port par une liste de port (séparés par des espaces : "80 443") | ||
| + | #   ou une plage de ports (" | ||
| + | # Par défaut on teste en TCP ; pour utiliser UDP, ajouter le paramètre -u | ||
| + | # (ex ici pour tester le DNS et le SYSLOG) : | ||
| + | $ nc -zv 10.0.0.1 -u 53 514 | ||
| + | </ | ||
| * Créer un automate qui renvoie au client tout ce que ce dernier envoie dans la socket : | * Créer un automate qui renvoie au client tout ce que ce dernier envoie dans la socket : | ||
| Line 1684: | Line 1942: | ||
| * '' | * '' | ||
| + | =====NetworkManager===== | ||
| + | |||
| + | 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' | ||
| + | * **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; | ||
| + | echo " | ||
| + | elif systemctl is-active --quiet systemd-networkd; | ||
| + | echo " | ||
| + | elif [ -d / | ||
| + | echo " | ||
| + | else | ||
| + | echo "Aucun apparemment!" | ||
| + | fi | ||
| + | </ | ||
| + | |||
| + | 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 | ||
| + | </ | ||
| + | |||
| + | Quelques commandes de diagnostique: | ||
| + | <code bash> | ||
| + | nmcli device status | ||
| + | DEVICE | ||
| + | br0          bridge | ||
| + | docker0 | ||
| + | lo | ||
| + | enp1s0 | ||
| + | enp2s0 | ||
| + | wlp3s0 | ||
| + | veth8881b47 | ||
| + | |||
| + | nmcli connection show | ||
| + | NAME        UUID                                  TYPE      DEVICE | ||
| + | br0 | ||
| + | docker0 | ||
| + | lo          edd7c96b-1336-44f4-8106-1caf773d1d91 | ||
| + | br0 port 1  7f58ed28-4a46-47d9-8ef7-e32cc5663b76 | ||
| + | br0 port 2  920763f3-3e3e-46db-9231-09b1b58deeef | ||
| + | |||
| + | nmcli device wifi list | ||
| + | IN-USE | ||
| + | |||
| + | nmcli device show | ||
| + | GENERAL.DEVICE: | ||
| + | GENERAL.TYPE: | ||
| + | GENERAL.HWADDR: | ||
| + | GENERAL.MTU: | ||
| + | GENERAL.STATE: | ||
| + | GENERAL.CONNECTION: | ||
| + | GENERAL.CON-PATH: | ||
| + | IP4.ADDRESS[1]: | ||
| + | IP4.GATEWAY: | ||
| + | IP4.ROUTE[1]: | ||
| + | IP4.ROUTE[2]: | ||
| + | IP4.DNS[1]: | ||
| + | IP4.DOMAIN[1]: | ||
| + | IP6.ADDRESS[1]: | ||
| + | IP6.ADDRESS[2]: | ||
| + | IP6.GATEWAY: | ||
| + | IP6.ROUTE[1]: | ||
| + | IP6.ROUTE[2]: | ||
| + | IP6.ROUTE[3]: | ||
| + | </ | ||
| + | |||
| + | Configurer une interface en IP statique sur le device " | ||
| + | <code bash> | ||
| + | nmcli con mod " | ||
| + | nmcli con mod " | ||
| + | nmcli con mod " | ||
| + | nmcli con mod " | ||
| + | </ | ||
| =====nslookup===== | =====nslookup===== | ||
| Permet d' | Permet d' | ||
| - |  | + | <code bash> | 
| - |  | + | nslookup google.fr | 
| - |  | + |  | 
| - | + |  | |
| - |  | + | |
| - |  | + | |
| - |  | + | |
| - |  | + | |
| - |  | + | |
| - |  | + | |
| - |  | + | |
| - | Cet outil est " | + |  | 
| + |  | ||
| + |  | ||
| + |  | ||
| + |  | ||
| + |  | ||
| + |  | ||
| + | # pour interroger un serveur (ici 10.1.1.24) en particulier : | ||
| + | nslookup google.fr 10.1.1.24 | ||
| + | # utiliser nslookup en mode interactif | ||
| + | nslookup | ||
| + | > server 10.1.1.24 | ||
| + | Default server: 10.1.1.24 | ||
| + | Address: 10.1.1.24# | ||
| + | > google.fr | ||
| + | Server: | ||
| + | Address: | ||
| + | |||
| + | Non-authoritative answer: | ||
| + | Name: | ||
| + | Address: 216.58.209.227 | ||
| + | </ | ||
| + | |||
| + | Cet outil est " | ||
| + | |||
| + | |||
| + | =====NTP===== | ||
| + | |||
| + | NTP est le protocole de synchronisation d' | ||
| + | |||
| + | / | ||
| + | <code bash> | ||
| + | # spécification des serveurs sur lesquels se synchroniser | ||
| + | pool 0.fr.pool.ntp.org iburst | ||
| + | pool 0.ch.pool.ntp.org iburst | ||
| + | pool 0.debian.pool.ntp.org iburst | ||
| + | pool 1.debian.pool.ntp.org iburst | ||
| + | pool 2.debian.pool.ntp.org iburst | ||
| + | pool 3.debian.pool.ntp.org iburst | ||
| + | |||
| + | # si besoin, préciser les clients qui peuvent se synchroniser sur nous | ||
| + | restrict 127.0.0.1 | ||
| + | restrict ::1 | ||
| + | </ | ||
| + | |||
| + | Forcer la mise à jour de la date sur un serveur en particulier : '' | ||
| + | |||
| + | Vérifier le bon fonctionnement : | ||
| + | <code bash> | ||
| + | ntpq -p | ||
| + |  | ||
| + | ============================================================================== | ||
| + |  | ||
| + |  | ||
| + |  | ||
| + |  | ||
| + |  | ||
| + |  | ||
| + | # | ||
| + | -178.249.167.0 ( 195.66.241.2 | ||
| + | *eudyptula.init7 162.23.41.10 | ||
| + | -smtp1.xipalia.c 193.190.230.65 | ||
| + | -bart.nexellent. 194.242.34.149 | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | -tick.ntp.infoma .GPS.            1 u | ||
| + | +sunflower.spide 145.238.203.14 | ||
| + | -ip139.ip-5-196- 145.238.203.14 | ||
| + | +cluster009.lino 193.190.230.66 | ||
| + | # | ||
| + | -2001: | ||
| + | +2001: | ||
| + | x78.192.0.158 (c .DCFa. | ||
| + | # | ||
| + | # | ||
| + | </ | ||
| =====passwd===== | =====passwd===== | ||
| Line 1744: | Line 2180: | ||
| * '' | * '' | ||
| + | ====fping==== | ||
| + | [[https:// | ||
| + | <code bash> | ||
| + | # va PINGer 5 fois (-c5) le réseau 10.1.2.200/ | ||
| + | # va faire une résolution DNS inversée des IPs (-n) et n' | ||
| + | fping -c5 -g 10.1.2.200/ | ||
| + | test201.local | ||
| + | test202.local | ||
| + | test203.local | ||
| + | test204.local | ||
| + | test205.local | ||
| + | test206.local | ||
| + | |||
| + | # ici les IPs .203, .204 et .206 ne répondent pas | ||
| + | </ | ||
| =====pmap===== | =====pmap===== | ||
| Line 1799: | Line 2250: | ||
| </ | </ | ||
| + | =====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 1823: | Line 2299: | ||
| </ | </ | ||
| + | Afficher les processus les plus consommateurs de mémoire/de CPU : | ||
| + | <code bash> | ||
| + | ps -eo pmem, | ||
| + | ps -eo pmem, | ||
| + | </ | ||
| =====pstree===== | =====pstree===== | ||
| **pstree** permet d' | **pstree** permet d' | ||
| + | |||
| + | =====pushd/ | ||
| + | |||
| + | **pushd**, **popd** et **dirs** sont des commandes spécifiques à bash ; elles permettent de contrôler une pile de noms de répertoires successifs, afin d'y revenir plus facilement (fonctionnement LIFO, Last In First Out) : | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Exemple d' | ||
| + | <code bash> | ||
| + | # état initial : on est dans notre home | ||
| + | # et la pile est vide (elle ne contient que le répertoire courant) | ||
| + | $ pwd | ||
| + | /home/toto | ||
| + | $ dirs | ||
| + | ~ | ||
| + | |||
| + | # on change de répertoire (et on l' | ||
| + | $ pushd /tmp | ||
| + | /tmp ~ | ||
| + | |||
| + | # on change encore de répertoire (et on l' | ||
| + | $ pushd /var/log | ||
| + | /var/log /tmp ~ | ||
| + | |||
| + | # on retourne dans le précédent répertoire, | ||
| + | $ popd | ||
| + | /tmp ~ | ||
| + | |||
| + | # on retourne à la case départ | ||
| + | $ popd | ||
| + | ~ | ||
| + | </ | ||
| =====pwck===== | =====pwck===== | ||
| **pwck** vérifie l´intégrité des fichiers de mots de passe. Il vaut mieux le lancer en root car il doit accéder notamment à ''/ | **pwck** vérifie l´intégrité des fichiers de mots de passe. Il vaut mieux le lancer en root car il doit accéder notamment à ''/ | ||
| + | |||
| + | =====readarray===== | ||
| + | |||
| + | Créer un tableau à partir d'un flux ou d'un fichier, d'une case par ligne. | ||
| + | <code bash> | ||
| + | readarray -t T_LINES < fichier.txt | ||
| + | |||
| + | cat fichier.txt | readarray -t T_LINES | ||
| + | </ | ||
| + | |||
| =====readlink===== | =====readlink===== | ||
| Line 1839: | Line 2363: | ||
| </ | </ | ||
| - | Dans un script, pour n'afficher que son chemin absolu, utiliser | + | C'est l'équivalent | 
| + | Dans un script, pour n' | ||
| =====reset===== | =====reset===== | ||
| Line 1866: | Line 2391: | ||
| * 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 1890: | Line 2415: | ||
| <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 1903: | Line 2438: | ||
| .. à 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 1920: | Line 2495: | ||
| =====sed===== | =====sed===== | ||
| - | **S**tream **ED**itor est une commande qui permet d' | + | **S**tream **ED**itor est une commande qui permet d' | 
| + | <code bash> | ||
| + | # afficher le contenu du fichier en remplaçant toto par titi | ||
| + | cat fichier.txt | sed ' | ||
| - | * Filtre pour remplacer une IP par X.X.X.X | + | # même chose en plus simple | 
| + | 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' | ||
| <code bash> | <code bash> | ||
| - | sed "s/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1, | + | # remplacer toto par titi dans le fichier (sans afficher le résultat) | 
| + | sed -i 's/toto/ | ||
| + | # idem, mais en sauvegardant le fichier original avec l' | ||
| + | # cela créra 2 fichiers : fichier.txt (modifié) et fichier.txt.bck (l' | ||
| + | sed -i".bck" | ||
| </ | </ | ||
| - |  | + | <WRAP center round important 60%> | 
| + | Les caractères suivants doivent être échappés (préfixés par un '' | ||
| + | </ | ||
| + | |||
| + | * Afficher la 3ème ligne d'un fichier | ||
| + | Afficher la 3ème ligne d'un fichier : | ||
| <code bash> | <code bash> | ||
| - | echo "La PhraSe avec Des LeTTres | + | sed -n '3p' < | 
| - | la phrase avec des lettres | + | sed '3!d' | 
| - | # et respectivement | + | sed ' | 
| + | </code> | ||
| + | |||
| + |  | ||
| + | <code bash> | ||
| + | sed -n ' | ||
| + | </code> | ||
| + | |||
| + | * Afficher les lignes de 2 à 5 d'un fichier ; alternative : afficher les lignes de 2 jusqu' | ||
| + | <code bash> | ||
| + | sed -n '2,5p' < | ||
| + | sed -n '2,/sys/p' | ||
| </ | </ | ||
| Line 1940: | Line 2543: | ||
| (il s'agit d'un " | (il s'agit d'un " | ||
| - | * Afficher | + | * Afficher | 
| <code bash> | <code bash> | ||
| - | sed -i" | + | sed '/ | 
| </ | </ | ||
| - | * Afficher un fichier à partir de la 3ème ligne : | + | * remplacer le motif " | 
| <code bash> | <code bash> | ||
| - | sed -n '3,$p' | + | sed '/ | 
| </ | </ | ||
| - | * Afficher les lignes de 2 à 5 d' | + | * Supprimer la 5eme ligne du fichier | 
| - | <code bash>sed -n '2,5p' | + | <code bash> | 
| - | <code bash>sed -n '2,/sys/p' <fichier></ | + | sed -i '5d' | 
| + | </ | ||
| + | |||
| + | * Supprimer les lignes contenant toto dans le fichier toto.txt | ||
| + | <code bash>sed -i '/toto/d' | ||
| + | |||
| + | * Supprimer les lignes __ne contenant pas__ toto dans le fichier toto.txt : | ||
| + | <code bash>sed -i '/toto/!d' | ||
| + | |||
| + | * Supprimer les lignes vides | ||
| + | <code bash>sed '/ | ||
| * supprimer ('' | * supprimer ('' | ||
| Line 1958: | Line 2571: | ||
| sed -e ' | sed -e ' | ||
| </ | </ | ||
| + | |||
| + | * Remplacer les adresses IP par X.X.X.X | ||
| + | <code bash> | ||
| + | sed " | ||
| + | </ | ||
| + | |||
| + | * Convertir les minuscules en majuscules (ou inversement) | ||
| + | <code bash> | ||
| + | echo "La PhraSe avec Des LeTTres n' | ||
| + | la phrase avec des lettres n' | ||
| + | # et respectivement ' | ||
| + | </ | ||
| + | (Le "&" | ||
| * On peut réutiliser des patterns entre () qui ont matchées avec \1, \2. Par exemple, pour inverser les 3 termes séparés par des virgules : | * On peut réutiliser des patterns entre () qui ont matchées avec \1, \2. Par exemple, pour inverser les 3 termes séparés par des virgules : | ||
| Line 2018: | Line 2644: | ||
| <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 2123: | Line 2784: | ||
| * '' | * '' | ||
| * '' | * '' | ||
| + | * '' | ||
| + | * '' | ||
| Exemple : | Exemple : | ||
| Line 2156: | Line 2819: | ||
| =====ss===== | =====ss===== | ||
| - | **ss** est un outil pour afficher les statistiques des sockets (connexions réseau) qui ressemble pas mal à netstat.[[informatique: | + | **ss** est un outil pour afficher les statistiques des sockets (connexions réseau) qui ressemble pas mal à [[informatique: | 
| <code bash> | <code bash> | ||
| Line 2171: | Line 2834: | ||
| FRAG      0 | FRAG      0 | ||
| </ | </ | ||
| + | |||
| + | Options : | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Exemples : | ||
| + | <code bash> | ||
| + | # afficher toutes les connexions HTTP ouvertes | ||
| + | ss -o state established '( dport = :http or sport = :http )' | ||
| + | |||
| + | # afficher toutes les connexions HTTP établies avec l'IP destination 10.0.0.1 | ||
| + | ss dst 10.0.0.1:80 | ||
| + | |||
| + | # afficher les connexions dont le port destination est supérieur à 1024 | ||
| + | ss dport \> 1024 | ||
| + | </ | ||
| + | =====stat===== | ||
| + | |||
| + | Commande permettant d' | ||
| + | |||
| + | <code bash> | ||
| + | # Affichage des informations du fichier toto.txt | ||
| + | $ stat toto.txt | ||
| + | Fichier : « toto.txt » | ||
| + |  | ||
| + | Périphérique : | ||
| + | Accès : (0644/ | ||
| + |  | ||
| + | Modif. : 2018-08-30 18: | ||
| + | Changt : 2018-08-30 17: | ||
| + | Créé : - | ||
| + | </ | ||
| + | |||
| + | On peut filtrer le résultat par type d' | ||
| + | <code bash> | ||
| + | #  N' | ||
| + | $ stat -c " | ||
| + | 2018-08-30 18: | ||
| + | |||
| + | # Afficher la taille du fichier (ici il est vide) | ||
| + | $ stat -c " | ||
| + | 0 | ||
| + | </ | ||
| + | |||
| + | |||
| + | =====strace===== | ||
| + | |||
| + | Permet de débugguer les appels système d'un processus. | ||
| + | |||
| + | Liens : | ||
| + | * [[https:// | ||
| =====strings===== | =====strings===== | ||
| Affiche les chaines de caractères imprimable dans le fichier spécifié (c'est donc peu utile sur les fichiers texte). | Affiche les chaines de caractères imprimable dans le fichier spécifié (c'est donc peu utile sur les fichiers texte). | ||
| - |  | + | <code bash> | 
| + | strings toto.exe | ||
| + | </ | ||
| =====su===== | =====su===== | ||
| Line 2224: | Line 2940: | ||
| =====tar===== | =====tar===== | ||
| - | Un outil d' | + | Un outil d' | 
| - | par exemple on veut archiver | + | |
| - | tar cvf toto.tar ./toto | + | |
| - | (// | + | |
| - | On peut archiver ET compresser le fichier grâce à gunzip (option | + | Options courantes de création d'archive: | 
| - |  | + | * ''-h / < | 
| + |  | ||
| + | * '' | ||
| + | * ''< | ||
| - | Plus tar__d__, | + | <code bash> | 
| - | tar zxf toto.tar | + | # pour archiver | 
| + | # (toto.tar désigne le nom de l' | ||
| + | tar cf toto.tar | ||
| + | # 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 de sortie | ||
| + | tar cvzf toto.tar.gz ./toto | ||
| + | |||
| + | # extraire (-x) le contenu d'une archive gunzip (-z) : | ||
| + | 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 | ||
| + | </ | ||
| + | =====tee===== | ||
| + | |||
| + | Permet de copier l' | ||
| + | <code bash> | ||
| + | $ echo toto | tee fic.log | ||
| + | toto | ||
| + | |||
| + | $ echo titi | tee -a fic.log | ||
| + | titi | ||
| + | |||
| + | $ cat fic.log | ||
| + | toto | ||
| + | titi | ||
| + | </ | ||
| =====telnet===== | =====telnet===== | ||
| Line 2243: | Line 2992: | ||
| Le port (ici 80) est facultatif (par défaut 23). | Le port (ici 80) est facultatif (par défaut 23). | ||
| + | ====Envoi d'un mail==== | ||
| + | |||
| + | Pour envoyer un mail en SMTP via l' | ||
| + | <code bash> | ||
| + | # lancer l' | ||
| + | $ telnet | ||
| + | |||
| + | telnet> open 10.1.1.55 25 | ||
| + | Trying 10.1.1.55... | ||
| + | Connected to 10.1.1.55. | ||
| + | Escape character is ' | ||
| + | 220 exemple.fr ESMTP Server Ready. Tue, 9 Apr 2019 14:39:14 +0200 | ||
| + | |||
| + | EHLO toto | ||
| + | 250-exemple.fr Hello client.exemple.fr [10.1.2.201], | ||
| + | 250-ENHANCEDSTATUSCODES | ||
| + | 250-PIPELINING | ||
| + | 250-EXPN | ||
| + | 250-VERB | ||
| + | 250-8BITMIME | ||
| + | 250-SIZE 25000000 | ||
| + | 250-DSN | ||
| + | 250-ETRN | ||
| + | 250-DELIVERBY | ||
| + | 250 HELP | ||
| + | |||
| + | MAIL from: | ||
| + | 250 2.1.0 toto@exemple.fr... Sender ok | ||
| + | |||
| + | RCPT to: | ||
| + | 250 2.1.5 dest@domaine.fr... Recipient ok | ||
| + | |||
| + | DATA | ||
| + | 354 Enter mail, end with " | ||
| + | |||
| + | Subject: Test de mail | ||
| + | Ceci est un test de msg | ||
| + | . | ||
| + | 250 2.0.0 x39CdEPw012136 Message accepted for delivery | ||
| + | |||
| + | QUIT | ||
| + | 221 2.0.0 exemple.fr closing connection | ||
| + | Connection closed by foreign host. | ||
| + | </ | ||
| + | |||
| + | Pour fermer une connexion telnet qui ne répond plus ou dont on n' | ||
| =====time===== | =====time===== | ||
| Permet de calculer le temps d' | Permet de calculer le temps d' | ||
| - |  | + | <code bash> | 
| - | + | time sleep 3 | |
| - | real 0m3.015s | + |  | 
| - |  | + |  | 
| - |  | + |  | 
| + | </ | ||
| La commande retourne le temps réel (//real//), le temps en mode utilisateur (//user//) et le temps en mode système (//sys//). | La commande retourne le temps réel (//real//), le temps en mode utilisateur (//user//) et le temps en mode système (//sys//). | ||
| + | Pour mesurer le temps de plusieurs commandes pipées (chainées avec un pipe '' | ||
| + | <code bash> | ||
| + | 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===== | ||
| Line 2260: | Line 3069: | ||
| 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 2277: | Line 3097: | ||
| </ | </ | ||
| =====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 2299: | Line 3120: | ||
| </ | </ | ||
| + | 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** 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 provoquant un EXIT, ainsi que la ligne qui la génère : | ||
| + | <code bash> | ||
| + | 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 indique comment chaque | + | **type** est une commande interne de bash qui permet de savoir à quoi correspond un "nom" | 
| - | * '' | ||
| <code bash> | <code bash> | ||
| - | # lister toutes les fonctions | + | type -t ls | 
| - | declare | + | builtin | 
| - | [..] | + | |
| - | declare | + | type -t l | 
| + | alias | ||
| + | |||
| + | type l | ||
| + | l is aliased to ' | ||
| + | |||
| + | type -t ssh | ||
| + |  | ||
| + | type ssh | ||
| + | ssh is hashed (/ | ||
| - | # afficher le code de celle-ci (équivalent de " | ||
| type -a titreterm | type -a titreterm | ||
| - | titreterm | + | titreterm | 
| - | titreterm () | + |  | 
| - | { | + | { | 
| if [[ $# -eq 1 && -n $1 ]]; then | if [[ $# -eq 1 && -n $1 ]]; then | ||
| echo -ne " | echo -ne " | ||
| fi | fi | ||
| - | } | + | } | 
| </ | </ | ||
| + | |||
| + | Voir aussi : [[informatique: | ||
| =====update-rc.d===== | =====update-rc.d===== | ||
| Line 2425: | Line 3287: | ||
| <code bash> | <code bash> | ||
| usermod -G "" | usermod -G "" | ||
| + | </ | ||
| + | |||
| + | Simplement ajouter un utilisateur dans un groupe existant : | ||
| + | <code bash> | ||
| + | usermod -aG GROUP USER | ||
| </ | </ | ||
| =====vi===== | =====vi===== | ||
| - | Un éditeur de texte en mode texte plus ou moins fourni | + | Vi (abréviation de **vi**sual) est un éditeur de texte en mode console présent | 
| - | =====vipw===== | + | =====vi*===== | 
| - | C'est la commande à utiliser pour éditer, avec vi, le fichier | + | Composés du préfixe **vi** (comme d'éditeur de texte) suivi de la commande à configurer, **vipw**, **vigr** ou **visudo** sont des " | 
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | Leur utilisation est vivement recommandée dans la mesure où, souvent, leur action ne se limite pas à l' | ||
| + | * de mettre à jour d' | ||
| + | * de vérifier la syntaxe pour ne pas bloquer le système en cas d' | ||
| + | L' | ||
| + | |||
| + | Au passage, pour configurer l' | ||
| + | * **update-alternatives --config editor** sous Debian | ||
| + | * **select-editor** (utilise la variable $SELECTED_EDITOR, | ||
| + | * éditer le fichier ~/.bashrc pour y ajouter l'une des lignes suivantes : | ||
| + | <code bash> | ||
| + | export VISUAL=vi | ||
| + | export EDITOR=vi | ||
| + | </ | ||
| =====vmstat===== | =====vmstat===== | ||
| Line 2536: | Line 3419: | ||
| 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 2556: | Line 3445: | ||
| 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===== | ||
| + | |||
| + | <code bash> | ||
| + | # lister les fichiers installés par un package : | ||
| + | # (cette cmd est installée par le package yum-utils) | ||
| + | repoquery -l package | ||
| + | |||
| + | # activer tous les repos pour une recherche : | ||
| + | yum --enablerepo=* search pdsh | ||
| + | |||
| + | # installer un rpm local : | ||
| + | yum localinstall pdsh-rcmd-rsh-2.31-1.el7.x86_64.rpm pdsh-rcmd-ssh-2.31-1.el7.x86_64.rpm pdsh-2.31-1.el7.x86_64.rpm | ||
| + | </ | ||
| ===== Liens externes ===== | ===== Liens externes ===== | ||
| * http:// | * http:// | ||
| * http:// | * http:// | ||
informatique/linux/commandes_linux.1520586388.txt.gz · Last modified: 2018/03/09 09:06 by pteu
                
                