Redémarrez complètement Bash


18

Existe-t-il un moyen de redémarrer complètement Bash et de recharger .bashrcet .profileainsi de suite? Je voudrais m'assurer que mes modifications ont bien fonctionné après avoir modifié ces fichiers.

Réponses:


32

Faites-le se remplacer par lui-même.

exec bash -l

Notez que cela n'affectera pas des choses telles que le cwd ou les variables exportées.


Bien, mais j'aimerais surtout le faire afin de vérifier et de voir si mon PATHest réglé comme je veux ou mon PS1, etc.
Naftuli Kay

1
Retirez le execet vous obtenez un shell qui source les fichiers que vous souhaitez. Puis juste au exitmoment où vous avez terminé de vérifier.
Arcege

@TK: Toutes les variables que vous affectez auront priorité sur celles qui restent du shell précédent.
Ignacio Vazquez-Abrams

Donc, cela fonctionnera pour changer mon invite Bash? C'est-à-dire, il rechargera mon invite bash chaque fois que je l'exécuterai?
Naftuli Kay

Tant que vous définissez $PS1dans les fichiers de démarrage de bash, oui.
Ignacio Vazquez-Abrams

9

Je suggère instamment de me connecter sur une fenêtre / un écran séparé. De cette façon, vous avez toujours une session de travail en cas de problème avec vos modifications apportées aux fichiers de démarrage. De plus, vous êtes sûr d'avoir un environnement propre.

Raison: J'ai vu trop de gens se bloquer sur un système à cause d'une simple faute de frappe dans leur .profile (ou autre).


+10, un shell propre où vous pouvez modifier les modifications est essentiel.
Sardathrion

Je suis dans un DE, donc ça ne devrait pas être si mal, Bauhaus oui, fais attention.
Naftuli Kay

3

Si votre objectif est simplement de relire les fichiers modifiés, vous n'avez pas besoin de le redémarrer. Vous pouvez simplement vous l'approvisionner.

source filename

ou

. filename # notice the dot

Notez que cela ne vous donnera pas un "état propre" dans un sens qu'il ne désactive pas les variables définies ou les fonctions définies ...


2
su -l yourOwnUserName

Ouvrira un nouveau shell pour l' yourOwnUserNameutilisateur avec tous les paramètres rechargés. Ceci est indépendant du shell, car il fait référence aux paramètres du système, pas à votre shell spécifique. Il charge également certains paramètres à l'échelle du système qui bash -lne le font pas (comme les groupes d'utilisateurs).


note importante: "une nouvelle coquille" signifie ici une coquille à l'intérieur de votre coquille existante, vous n'êtes donc que des coquilles imbriquées, pas en remplacement de celle d'origine. La réponse acceptée le fait correctement.
underscore_d
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.