Shell

De system.co.free.fr.
(Différences entre les versions)
 
(6 versions intermédiaires masquées)
Ligne 1 : Ligne 1 :
=SHELL=
=SHELL=
-
==Connexion==
+
==Connexion en BASH==
Le shell de connexion est lancé après la saisie du login et du mot de passe sur la console. C’est celui indiqué à la fin  
Le shell de connexion est lancé après la saisie du login et du mot de passe sur la console. C’est celui indiqué à la fin  
de chaque ligne de /etc/passwd.<br>
de chaque ligne de /etc/passwd.<br>
Ligne 20 : Ligne 20 :
==commande echo et nouvelle ligne ( new ligne \n )==
==commande echo et nouvelle ligne ( new ligne \n )==
-
Sur les version recentes des Shell en Linux et pour certains autre Unix, la commande
+
Sur les versions récentes des Shell en Linux et pour certains autre Unix, la commande
   echo "\n\n\n\n  toto  \n\n\n"
   echo "\n\n\n\n  toto  \n\n\n"
renvoi
renvoi
   \n\n\n\n  toto  \n\n\n
   \n\n\n\n  toto  \n\n\n
-
et ce n'est pas ce qui est attendu. On prefererais avoir:
+
et ce n'est peut-être pas ce qui est attendu. On prefererais avoir:
<pre>  
<pre>  
    
    
Ligne 35 : Ligne 35 :
l'origine est lié au nouvelles versions de la norme POSIX.
l'origine est lié au nouvelles versions de la norme POSIX.
 +
 +
===echo -e===
===printf===
===printf===
-
POSIX et IEEE recommande d'utiliser <g>printf a la place de echo. La commande printf accepte de nombreuses options. voir man printf
 
-
===pour bash uniquement: shopt -s xpg_echo===
+
POSIX et IEEE recommande d'utiliser <b>printf</b> a la place de <b>echo</b>. La commande <b>printf</b> accepte de nombreuses options. voir man printf
 +
 
 +
===KSH : modification de UNIVERSE===
 +
 
 +
voir http://0xdec0.blogspot.fr/2011/12/echo-newline-in-ksh93.html
 +
 
 +
  #builtin getconf
 +
  #getconf UNIVERSE = att
 +
 
 +
===BASH uniquement: shopt -s xpg_echo===
Active
Active
   #shopt -s xpg_echo # Active xpg_echo
   #shopt -s xpg_echo # Active xpg_echo

Version actuelle en date du 10 septembre 2015 à 12:26

Sommaire

SHELL

Connexion en BASH

Le shell de connexion est lancé après la saisie du login et du mot de passe sur la console. C’est celui indiqué à la fin de chaque ligne de /etc/passwd.
Dans ce mode, le shell va tenter d'executer les fichiers dans cet ordre et s'ils sont presents :

  1. /etc/profile
  2. ~/.bash_profile
  3. ~/.bash_login
  4. ~/.profile

À la déconnexion, il tente d’exécuter :

  • ~/.bash_logout

Shell simple

Le shell interactif simple correspond à l’exécution du bash dans une fenêtre (xterm, konsole), une console ou à la main (taper bash dans une console). Dans ce cas seul le fichier suivant sera exécuté s’il existe :

  • ~/.bashrc

Notez que dans beaucoup de distributions Linux, le .bashrc est appelé soit par .bash_profile, soit par /etc/profile, et que la configuration est donc placée dans .bash_profile qui sera alors toujours appelé.

commande echo et nouvelle ligne ( new ligne \n )

Sur les versions récentes des Shell en Linux et pour certains autre Unix, la commande

 echo "\n\n\n\n   toto  \n\n\n"

renvoi

 \n\n\n\n   toto  \n\n\n

et ce n'est peut-être pas ce qui est attendu. On prefererais avoir:

 
  
  
      toto
  
  

c'est a dire un retour a la ligne ou avec \t une tabulation, ou un caractère spécial avec les autres option commençant par "\" ( \a \b \c\f \n \r \t \v ... )

l'origine est lié au nouvelles versions de la norme POSIX.

echo -e

printf

POSIX et IEEE recommande d'utiliser printf a la place de echo. La commande printf accepte de nombreuses options. voir man printf

KSH : modification de UNIVERSE

voir http://0xdec0.blogspot.fr/2011/12/echo-newline-in-ksh93.html

 #builtin getconf
 #getconf UNIVERSE = att

BASH uniquement: shopt -s xpg_echo

Active

 #shopt -s xpg_echo # Active xpg_echo
 #echo "Hello\nworld"
 Hello
 world

Desactive

 #shopt -u xpg_echo # Desactive xpg_echo
 #echo "Hello\nworld"
 #Hello\nworld
Outils personnels