Shells

mac_fab

Membre actif
5 Avril 2004
120
1
Bonjour,

Quel est le type de shell par défaut dans le Terminal ? Est-il possible d'utiliser ksh ou tsh ?

Autre petit détail : en mode user j'ai l'historique des commandes Terminal. Si je me logge en root dans le même term, l'historique disparait... Est-ce un shell different ?

Merci
 
1. Les shells disponibles sur Mac OS X sont : bash, tcsh, zsh et ksh
2. Le shell par défaut est bash depuis Panther et était tcsh auparavant (je crois)
3. L'historique des commandes est propre à chaque utilisateur ; donc 'root' a le sien, qui n'est pas celui de ton user habituel
4. En passant : normalement, on doit pouvoir se passer de l'utilisateur 'root' ...
 
Bonjour

Le shell par défaut est 'bash'. Tu peux aussi utiliser 'ksh', 'sh', 'csh', 'tcsh' ou 'zsh'. Par contre 'tsh' ne me dit rien.

Quand tu te logges en root, tu changes d'utilisateur, ce qui explique que tu ne conserves pas l'historique.



EDIT: grilled by bompi !
 
bompi a dit:
4. En passant : normalement, on doit pouvoir se passer de l'utilisateur 'root' ...

comment éditer les fichiers de httpd en n'étant pas root ? :confused:

sinon, merci pour les infos. mais je crois me souvenir que le fait d'entrer ksh dans le terminal renvoie un erreur... Comment dès lors changer de shell ?
 
1. En utilisant la commande 'sudo'
Bloc de code:
sudo vi /etc/httpd/httpd.conf
Cette commande te demandera ton mot de passe et exécutera le reste de la commande en tant que 'root'.
2. En utilisant un éditeur comme smultron (gratuit), TextWrangler (gratuit) ou SubEthaEdit (payant et excellent) tu peux éditer un fichier protégé et le sauver, moyennant l'entrée de ton mot de passe (comme avec 'sudo', donc).
3. J'ai remarqué que ksh semble utiliser le même fichier d'initialisation que bash. C'est étrange, mais du coup j'ai modifié ledit fichier pour que cela marche comme il faut.
Bloc de code:
toto@Hawaii:Preferences [599]$ cat ~/.bashrc
# .bashrc
#
# Curiously, this file might be called when running ksh
# as well. Hence we test first of all if it's bash or
# not
if [ "$0" = "ksh" ] ; then
        echo "Oooopss !! It's ksh running ..."
elif [ "$0" = "-bash" ] || [ "$0" = "bash" ] ; then
#   Source global definitions
#    if [ -f /etc/bashrc ]; then
#       . /etc/bashrc
#    fi
#   Then source local definitions
    if [ -f ~/.myaliases ]; then
        . ~/.myaliases
    fi
else
        echo "Oooopss !! It's '$0' running ..."
fi
Dans ce cas-là, mon fichier d'alias et de définition d'environnement n'est appelé que pour bash (~/.bash_profile est un lien symbolique sur ~/.bashrc).
 
mac_fab a dit:
... je crois me souvenir que le fait d'entrer ksh dans le terminal renvoie un erreur...
Je le fais sur mon Mac, et ça marche très bien sans avoir jamais rien modifié. Je me retrouve sous 'ksh' sans soucis. Peut-être y a-t-il un problème dans ta config ?
 
J'ai fait l'astuce ci-dessus car le fichier d'initialisation de bash générait des messages d'erreur pour ksh.