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
Next revisionBoth sides next revision
informatique:linux:commandes_linux [2019/07/04 09:01] – ntp pteuinformatique:linux:commandes_linux [2020/10/28 17:41] – [sed] les caractères à échapper pteu
Line 146: Line 146:
 (voir ''jobs'') (voir ''jobs'')
  
 +=====blkid=====
  
 +Affiche les attributs des disques/partitions :
 +<code bash>
 +/dev/sda1: UUID="b0ab5b55-45e9-1cf9-3017-a5a8c86610be" TYPE="linux_raid_member" PARTUUID="5f04e8c2-ff94-4ab2-a129-3be865a326e1"
 +/dev/sda2: UUID="0a4130a8-429a-d46f-3017-a5a8c86610be" TYPE="linux_raid_member" PARTUUID="97ac67bb-ce66-475b-9e62-3e67fd0b1132"
 +/dev/sdb1: UUID="b0ab5b55-45e9-1cf9-3017-a5a8c86610be" TYPE="linux_raid_member" PARTUUID="bd37f026-6d63-4757-957d-d3eaef8666ea"
 +/dev/sdb2: UUID="0a4130a8-429a-d46f-3017-a5a8c86610be" TYPE="linux_raid_member" PARTUUID="8bc69d02-11a2-4616-9b2a-751f995076ea"
 +/dev/md0: LABEL="sys" UUID="381c49fe-1b04-47d4-8b0a-e55e1d68a4fb" TYPE="btrfs"
 +/dev/md1: UUID="58833cb6-9a9f-4991-a121-99e64bc8d3e5" TYPE="swap"
 +</code>
 =====cal===== =====cal=====
  
Line 268: Line 278:
   * effacement total : ''chattr +s fichier''   * effacement total : ''chattr +s fichier''
  
 +
 +=====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 "off")
 +# optionnel : préciser les runlevels concernés, par défaut 2345)
 +chkconfig toto on [--level 35]
 +
 +# lister l'état du service toto (pour chaque runlevel)
 +chkconfig --list toto
 +toto        0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt
 +</code>
  
 =====chmod===== =====chmod=====
Line 396: Line 422:
 <code bash> <code bash>
 # Pour afficher la date au format YYYY/MM/JJ-HH:MM:SS : # Pour afficher la date au format YYYY/MM/JJ-HH:MM:SS :
-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'heure actuelle : # afficher le compteur (timestamp) de l'heure actuelle :
-date +%s+date "+%s"
 1441816670 1441816670
  
Line 434: Line 460:
 <code bash> <code bash>
 pkill -USR1 dd pkill -USR1 dd
 +</code>
 +
 +
 +=====declare=====
 +
 +Permet de déclarer des variables en bash et leur affecter des attributs ; il équivaut à la commande ''typeset'' (les options sont les mêmes) à partir de bash v2+, alors que ''typeset'' est compatible ksh. Invoqué sans paramètre, ''declare'' affiche la liste des variables existantes dans l'environnement. Pour ne lister que les fonctions, utiliser le flag ''-f''.
 +
 +Liste des attributs existants :
 +  * ''-a'' : tableau indexé (//array//)
 +  * ''-A'' : tableau associatif
 +  * ''-i'' : entier (//integer//)
 +  * ''-l'' : la variable ne peut contenir que des caractères en minuscules ; les majuscules sont converties (//lowercase//)
 +  * ''-u'' : la variable ne peut contenir que des caractères en majuscules ; les minuscules sont converties (//uppercase//)
 +  * ''-r'' : constante (//readonly//)
 +  * ''-x'' : exporter la variable (//export//)
 +  * ''-p'' : affiche le contenu de la variable qui suit
 +  * ''-f'' : lister le contenu de la fonction qui suit
 +
 +Utiliser ''+'' à la place de ''-'' permet de désactiver l'attribut d'une variable (ne fonctionne pas pour l'attribut ''+a'' (tableaux indexés)).
 +
 +<code bash>
 +# exemple d'utilisation d'un entier
 +declare -i int=2
 +echo "int vaut $int"      # "int vaut 2"
 +let "int += 1"
 +echo "int vaut $int"      # "int vaut 3"
 +unset int
 +
 +# exemple d'utilisation d'une constante
 +declare -r const=pierre
 +echo "const vaut $const"  # "const vaut pierre"
 +const=sable               # "-bash: const : variable en lecture seule"
 +echo "const vaut $const"  # "const vaut pierre"
 </code> </code>
  
Line 475: Line 534:
 dig mx pteu.fr                # MX (serveur de mail) du domaine dig mx pteu.fr                # MX (serveur de mail) du domaine
 dig pteu.fr @9.9.9.9       # interroger le @serveurDNS spécifié dig pteu.fr @9.9.9.9       # interroger le @serveurDNS spécifié
 +dig +noall +answer pteu.fr    # permet de n'afficher que la ligne le résultat (ANSWER) de la requête
 </code> </code>
  
 +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
 +</code>
 +
 +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:41d0:1:4a95::1 in 0 ms.
 +SOA dns105.ovh.net. tech.ovh.net. 2018110900 86400 3600 3600000 300 from server 2001:41d0:1:1995::1 in 2 ms.
 +SOA dns105.ovh.net. tech.ovh.net. 2018110900 86400 3600 3600000 300 from server 213.251.128.149 in 2 ms.
 +</code>
 =====dirname===== =====dirname=====
  
Line 836: Line 910:
   * ''-q'' (**q**uiet) n'affiche rien, se contente de retourner le code d'erreur 0 s'il trouve le motif, 1 sinon   * ''-q'' (**q**uiet) n'affiche rien, se contente de retourner le code d'erreur 0 s'il trouve le motif, 1 sinon
   * ''-o'' (**o**nly-matching) : n'affiche que les résultats matchant le motif (et pas la ligne entière)   * ''-o'' (**o**nly-matching) : n'affiche que les résultats matchant le motif (et pas la ligne entière)
 +  * ''-f FILE'' : fournit à grep une liste de patterns listées une par ligne dans le fichier FILE
 +  * ''-H'' affiche le nom de fichier pour chaque ligne qui matche (option par défaut)
 +  * ''-h'' inverse de -H : supprime l'affichage des noms des fichiers
  
 Il est possible d'utiliser les expressions régulières dans le motif, par exemple : Il est possible d'utiliser les expressions régulières dans le motif, par exemple :
Line 927: Line 1004:
 =====history===== =====history=====
  
-Permet d'afficher l'historique des commandes saisies dans un terminal :+Permet d'afficher l'historique des commandes saisies lors de la session dans un terminal :
 <code bash> <code bash>
 history history
Line 937: Line 1014:
  69  history  69  history
 </code> </code>
 +
 +Lors de la fermeture de session, cette liste est ajoutée au fichier indiqué dans la variable ''$HISTFILE''. On peut contrôler :
 +  * le format de timestamp de chaque commande avec la variable ''HISTTIMEFORMAT'' (même format que la commande date)
 +  * la taille de l'historique, en nombre de ligne
 +    * ''HISTSIZE'' défini la taille de l'historique de la session courante (en mémoire)
 +    * ''HISTFILESIZE'' défini la taille du fichier d'historique (celui défini dans ''$HISTFILE'')
 +  * ''HISTCONTROL'' permet d'ignorer les doublons (ignoredups), les commandes précédées par un espace (ignorespace) ou les deux (ignoreboth)
 +Exemple :
 +<file bash .bashrc>
 +HISTCONTROL=ignoredups:ignorespace
 +HISTTIMEFORMAT="%Y%m%d_%H%M%S "
 +HISTSIZE=10000
 +HISTFILESIZE=20000
 +</file>
  
 On peut relancer une commande de l'historique en saisissant //!// suivi de son numéro : On peut relancer une commande de l'historique en saisissant //!// suivi de son numéro :
Line 959: Line 1050:
 </code> </code>
  
-On efface l'historique avec ''history -c''.+On efface l'historique de session : ''history -c'' ; forcer l'écriture du buffer dans le fichier ''history -a''.
  
 On peut loguer (dans ''/var/log/messages'') l'historique des commandes saisies par un utilisateur en ajoutant dans son .bashrc cette ligne : On peut loguer (dans ''/var/log/messages'') l'historique des commandes saisies par un utilisateur en ajoutant dans son .bashrc cette ligne :
Line 1131: Line 1222:
 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.
 <code bash> <code bash>
 +# afficher les interfaces
 ip addr show ip addr show
  1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue  1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue
Line 1142: Line 1234:
  3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast qlen 1000  3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast qlen 1000
      link/ether 00:0b:cd:0a:ad:30 brd ff:ff:ff:ff:ff:ff      link/ether 00:0b:cd:0a:ad:30 brd ff:ff:ff:ff:ff:ff
 +
 +# afficher la table de routage
 +ip route
 +default via 10.10.22.249 dev ens3 onlink
 +10.10.22.0/24 dev ens3 proto kernel scope link src 10.10.22.65
 +
 +# 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
 </code> </code>
  
Line 1401: Line 1505:
   * ''-t'' (//time//) classe les résultats par date de dernière modification   * ''-t'' (//time//) classe les résultats par date de dernière modification
   * ''-r'' (//reverse//) inverse le classement des résultats   * ''-r'' (//reverse//) inverse le classement des résultats
 +  * ''-1'' (tiret un, et non tiret L) pour formater le résultat sur une seule colonne
  
 <code bash> <code bash>
Line 1656: Line 1761:
 =====netcat===== =====netcat=====
  
-Permet de créer des sockets comme client (''netcat mon_serveur.fr 200'') ou comme serveur (''netcat -l -p 80'') :+Netcat (nc) est un couteau-suisse réseau qui permet de créer des sockets comme client (''netcat mon_serveur.fr 200'') ou comme serveur (''netcat -l -p 80'') :
   * ''netcat -t ns213.186.xx.xx 23'' Se comporte comme un client telnet   * ''netcat -t ns213.186.xx.xx 23'' Se comporte comme un client telnet
   * ''netcat -l -p 23 > espionne.log'' Ecoute sur le port 23 (telnet) et enregistre dans espionne.log tout ce qui est tapé par le client.   * ''netcat -l -p 23 > espionne.log'' Ecoute sur le port 23 (telnet) et enregistre dans espionne.log tout ce qui est tapé par le client.
Line 1663: Line 1768:
   * ''netcat -vv la_machine_a_scanner 1-100'' Permet de lancer un scan sur des machines distantes.   * ''netcat -vv la_machine_a_scanner 1-100'' Permet de lancer un scan sur des machines distantes.
   * ''netcat -vv -z -i 10000 -r 127.0.0.1 1-200'' Permet de scanner aléatoirement les ports de 1 à 100 avec un time out. On évite la détection.   * ''netcat -vv -z -i 10000 -r 127.0.0.1 1-200'' Permet de scanner aléatoirement les ports de 1 à 100 avec un time out. On évite la détection.
 +
 +  * pour tester si des ports sont ouverts sur une machine distante:
 +<code bash>
 +# -z = on n'envoie pas de données
 +# -v = mode verbeux
 +# 80: numéro de port à tester
 +$ nc -zv 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 ("80-89")
 +# 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
 +</code>
  
   * 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 2061: Line 2181:
 =====sed===== =====sed=====
  
-**S**tream **ED**itor est une commande qui permet d'appliquer différentes transformations prédéfinies à un flux séquentiel de données textuelles. +**S**tream **ED**itor est une commande qui permet d'appliquer différentes transformations prédéfinies à un flux séquentiel de données textuelles. Sed peut travailler sur un flux (pipé derrière une autre commande) ou à partir d'un fichier :
- +
-  * Filtre pour remplacer une IP par X.X.X.X+
 <code bash> <code bash>
-sed "s/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/X.X.X.X/g" +# afficher le contenu du fichier en remplaçant toto par titi 
-</code>+cat fichier.txt | sed 's/toto/titi'
  
-  * Convertir les minuscules en majuscules (ou inversement) +# même chose en plus simple 
-<code bash> +sed 's/toto/titifichier.txt
-echo "La PhraSe avec Des LeTTres n'iMpoRte comMEnt"sed 's/.*/\L&/' +
-la phrase avec des lettres n'importe comment +
-# et respectivement 's/.*/\U&/' pour convertir le texte en majuscules+
 </code> </code>
-(Le "&" représente le motif qui matche) 
  
-  * Ajouter une ligne en début de fichier :+Par défaut le résultat est affiché dans le terminal ; si on précise un fichier on peut choisir d'enregistrer les modifications dans celui-ci, en ajoutant l'option ''-i'' :
 <code bash> <code bash>
-sed -i '1iPremièreLigne' toto.txt+# remplacer toto par titi dans le fichier (sans afficher le résultat) 
 +sed -i 's/toto/titifichier.txt 
 +# idem, mais en sauvegardant le fichier original avec l'extension .bck 
 +# cela créra 2 fichiers : fichier.txt (modifié) et fichier.txt.bck (l'original) 
 +sed -i".bck" 's/toto/titi' fichier.txt
 </code> </code>
-(il s'agit d'un "un" i suivi du texte à insérer) 
  
-  * Afficher la 3ème ligne d'un fichier (et sauvegarder le fichier source avec le suffixe ".bck") :+<WRAP center round important 60%> 
 +Les caractères suivants doivent être échappés (préfixés par un ''\'') car ils ont une signification spéciales : ''$.*[\^'' sauf s'il sont entre [...] ; en revanche les autres (lettres, chiffres et ''(){}+?|'') ne doivent pas être échappés pour représenter le caractère. 
 +</WRAP> 
 + 
 +  * Afficher la 3ème ligne d'un fichier (plusieurs méthodes
 +Afficher la 3ème ligne d'un fichier :
 <code bash> <code bash>
-sed -i".bck" -n '3p' <fichier>+sed -n '3p' <fichier> 
 +sed '3!d'   <fichier> 
 +sed '52q;d' <fichier>   # arrête la lecture dès qu'elle a matché, pour la performance
 </code> </code>
  
Line 2096: Line 2220:
 sed -n '2,5p' <fichier> sed -n '2,5p' <fichier>
 sed -n '2,/sys/p' <fichier> sed -n '2,/sys/p' <fichier>
 +</code>
 +
 +  * Ajouter une ligne en début de fichier :
 +<code bash>
 +sed -i '1iPremièreLigne' toto.txt
 +</code>
 +(il s'agit d'un "un" i suivi du texte à insérer)
 +
 +  * Afficher les lignes sauf celles situées entre "toto" et "titi" :
 +<code bash>
 +sed '/toto/,/titi/d'
 +</code>
 +
 +  * Supprimer la 5eme ligne du fichier toto.txt
 +<code bash>
 +sed -i '5d' toto.txt
 </code> </code>
  
   * Supprimer les lignes contenant toto dans le fichier toto.txt :   * Supprimer les lignes contenant toto dans le fichier toto.txt :
 <code bash>sed -i '/toto/d' toto.txt</code> <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   * Supprimer les lignes vides
Line 2108: Line 2251:
 sed -e '0,/^begin/d' -e '/^end/,$d' fichier.txt sed -e '0,/^begin/d' -e '/^end/,$d' fichier.txt
 </code> </code>
 +
 +  * Remplacer les adresses IP par X.X.X.X
 +<code bash>
 +sed "s/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/X.X.X.X/g"
 +</code>
 +
 +  * Convertir les minuscules en majuscules (ou inversement)
 +<code bash>
 +echo "La PhraSe avec Des LeTTres n'iMpoRte comMEnt" | sed 's/.*/\L&/'
 +la phrase avec des lettres n'importe comment
 +# et respectivement 's/.*/\U&/' pour convertir le texte en majuscules
 +</code>
 +(Le "&" représente le motif qui matche)
  
   * 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 2274: Line 2430:
   * ''-t'' précise le séparateur de colonne (par défaut un espace blanc)   * ''-t'' précise le séparateur de colonne (par défaut un espace blanc)
   * ''-V'' tri par numéro de version ; peut servir d'alternative à -n   * ''-V'' tri par numéro de version ; peut servir d'alternative à -n
 +  * ''-o <OUTPUT_FILE>'' copie le résultat dans un fichier plutôt que sur la sortie standard
  
 Exemple : Exemple :
Line 2339: Line 2496:
 ss dport \> 1024 ss dport \> 1024
 </code> </code>
 +=====stat=====
 +
 +Commande permettant d'afficher des informations sur un système de fichier ou juste un fichier.
 +
 +<code bash>
 +# Affichage des informations du fichier toto.txt
 +$ stat toto.txt
 +  Fichier : « toto.txt »
 +   Taille : 0           Blocs : 0          Blocs d'E/S : 1048576 fichier vide
 +Périphérique : 37h/55d  Inœud : 36311392    Liens : 1
 +Accès : (0644/-rw-r--r--)  UID : (1515/dude)   GID : ( 1515/     dsi)
 + Accès : 2018-08-30 17:16:35.295782414 +0200
 +Modif. : 2018-08-30 18:15:02.295782414 +0200
 +Changt : 2018-08-30 17:16:35.295782414 +0200
 +  Créé : -
 +</code>
 +
 +On peut filtrer le résultat par type d'information recherchée avec l'option ''-c'' ; par exemple :
 +<code bash>
 +#  N'afficher que la date de dernière modification du fichier (au format //human-readable//) : ''%y''
 +$ stat -c "%y" toto.txt
 +2018-08-30 18:15:02.295782414 +0200
 +
 +# Afficher la taille du fichier (ici il est vide)
 +$ stat -c "%s" toto.txt
 +0
 +</code>
 +
 =====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).
-  strings toto.exe +<code bash> 
 +strings toto.exe 
 +</code>
  
 =====su===== =====su=====
Line 2458: Line 2644:
  
 Permet de calculer le temps d'exécution d'une commande : Permet de calculer le temps d'exécution d'une commande :
-  time sleep 3 +<code bash> 
-   +time sleep 3 
-   real    0m3.015s + real    0m3.015s 
-   user    0m0.000s + user    0m0.000s 
-   sys     0m0.000s+ sys     0m0.000s 
 +</code>
  
 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 ''|''), utiliser plutôt la formulation : 
 +<code bash> 
 +time -f "%es" bash -c "ls | wc" 
 +</code> 
 =====top===== =====top=====
  
Line 2513: Line 2703:
 =====type===== =====type=====
  
-**type** est une commande interne de bash qui indique comment chaque nom doit être interprété si on l'utilise en nom de commande.+**type** est une commande interne de bash qui permet de savoir à quoi correspond un "nomsi on l'utilise en tant que commande. Utilisée avec l'option ''-t'', il permet de savoir si la commande est un alias, un mot-clé une fonction, un fichier (une commande externe) ou un //builtin// (fonction interne à bash). Utilisée sans option ou avec l'option ''-a'', **type** affiche le type et le contenu de la commande en paramètre.
  
-  * ''-a'' : affiche tous les emplacements de l'exécutable en paramètre (les alias et les fonctions) et son code source 
 <code bash> <code bash>
-# lister toutes les fonctions +type -t ls 
-declare -F + builtin 
-[..] +type -t l 
-declare -f titreterm+ alias 
 +type l 
 + l is aliased to 'ls -p --color' 
 + 
 +type -t ssh 
 + file 
 +type ssh 
 + ssh is hashed (/usr/bin/ssh)
  
-# afficher le code de celle-ci (équivalent de "declare -f titreterm") 
 type -a titreterm type -a titreterm
-titreterm est une fonction + titreterm is a function 
-titreterm ()  + titreterm () 
-+ {
     if [[ $# -eq 1 && -n $1 ]]; then     if [[ $# -eq 1 && -n $1 ]]; then
         echo -ne "\033]0;$1\007";         echo -ne "\033]0;$1\007";
     fi     fi
-}+ }
 </code> </code>
 +
 +Voir aussi : [[informatique:linux:commandes_linux#declare|declare]].
  
 =====update-rc.d===== =====update-rc.d=====
Line 2639: Line 2836:
 =====vi===== =====vi=====
  
-Un éditeur de texte en mode texte plus ou moins fourni par défaut avec les distributions actuelles.+Vi (abréviation de **vi**sual) est un éditeur de texte en mode console présent par défaut sur la plupart des distributions Linux (d'où l'intérêt de la maîtriser). Il existe différentes versions plus ou moins légères (vi, vim.basic, vim.tiny, gvim, etc) ; [[informatique:logiciels:vim|plus d'info ici]].
  
  
-=====vipw=====+=====vi*=====
  
-C'est la commande à utiliser pour éditeravec vile fichier ''/etc/passwd'' (il met les verrous qui vont bien pour éviter des conflits d'accès).+Composés du préfixe **vi** (comme d'éditeur de texte) suivi de la commande à configurer**vipw****vigr** ou **visudo** sont des "mots-valise" permettant d'éditer proprement des parties critiques d'un système Linux. 
 +  * ''vipw'' pour éditer les utilisateurs (fichier /etc/passwd
 +  * ''vigr'' pour éditer les groupes (fichier /etc/group) 
 +  * ''visudo'' pour éditer la configuration de la commande ''sudo'' (fichier /etc/sudoers)
  
 +Leur utilisation est vivement recommandée dans la mesure où, souvent, leur action ne se limite pas à l'édition du fichier de conf mais permet également :
 +  * de mettre à jour d'autres fichiers liés, comme dans le cas de **vipw** ou **vigr** (pour MAJ respectivement /etc/shadow et /etc/gshadow)
 +  * de vérifier la syntaxe pour ne pas bloquer le système en cas d'erreur (**visudo** par exemple)
  
 +L'éditeur de texte lancé est celui renseigné dans la variable d'environnement $VISUAL, sinon celui de $EDITOR ; et seulement si aucun n'est spécifié, **vi** sera utilisé par défaut.
 +
 +Au passage, pour configurer l'éditeur de texte par défaut, il existe plusieurs manières :
 +  * **update-alternatives --config editor** sous Debian
 +  * **select-editor** (utilise la variable $SELECTED_EDITOR, préemptée par $VISUAL et $EDITOR)
 +  * éditer le fichier ~/.bashrc pour y ajouter l'une des lignes suivantes :
 +<code bash>
 +export VISUAL=vi
 +export EDITOR=vi
 +</code>
 =====vmstat===== =====vmstat=====
  
informatique/linux/commandes_linux.txt · Last modified: 2024/03/21 07:14 by pteu