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 [2020/01/08 10:32] – [declare] pteuinformatique:linux:commandes_linux [2020/05/07 12:39] – [sed] supprimer une ligne pteu
Line 536: Line 536:
 </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 986: Line 1000:
 =====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 996: Line 1010:
  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 1018: Line 1046:
 </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 1728: Line 1756:
 =====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 1735: Line 1763:
   * ''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 2179: Line 2222:
 <code bash> <code bash>
 sed '/toto/,/titi/d' sed '/toto/,/titi/d'
 +</code>
 +
 +  * Supprimer la 5eme ligne du fichier toto.txt
 +<code bash>
 +sed -i '5d' toto.txt
 </code> </code>
  
Line 2455: Line 2503:
 </code> </code>
  
-On peut filtrer le résultat par type d'information recherchée avec l'option ''-c'' ; par exemple n'afficher que la date de dernière modification du fichier (au format //human-readable//''%y''+On peut filtrer le résultat par type d'information recherchée avec l'option ''-c'' ; par exemple :
 <code bash> <code bash>
 +#  N'afficher que la date de dernière modification du fichier (au format //human-readable//) : ''%y''
 $ stat -c "%y" toto.txt $ stat -c "%y" toto.txt
 2018-08-30 18:15:02.295782414 +0200 2018-08-30 18:15:02.295782414 +0200
 +
 +# Afficher la taille du fichier (ici il est vide)
 +$ stat -c "%s" toto.txt
 +0
 </code> </code>
  
Line 2640: Line 2693:
 =====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=====
informatique/linux/commandes_linux.txt · Last modified: 2024/04/05 06:58 by pteu