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/07 15:09] – [date] pteuinformatique:linux:commandes_linux [2020/02/04 13:32] – [history] HISTSIZE et cie pteu
Line 460: 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 953: Line 986:
 =====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 962: Line 995:
  68  echo 'toto'  68  echo 'toto'
  69  history  69  history
 +</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 :
 +<code bash>
 +HISTCONTROL=ignoredups:ignorespace
 +HISTTIMEFORMAT="%Y%m%d_%H%M%S "
 +HISTSIZE=10000
 +HISTFILESIZE=20000
 </code> </code>
  
Line 985: Line 1032:
 </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 2422: Line 2469:
 </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 2607: Line 2659:
 =====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