J'essayais de nouveaux environnements de développement, y compris zsh et oh-my-zsh. Maintenant que j'ai installé oh-my-zsh, il démarre par défaut sur mes terminaux (iTerm2 et terminal) commence toujours par zsh et avec les paramètres activés depuis oh-my-zsh. Je me demandais s'il était possible de "désactiver" ou d'arrêter d'utiliser zsh et sa configuration avec oh-my-zsh sans avoir à désinstaller oh-my-zsh? Il serait également intéressant de savoir comment les réactiver également.
Actuellement, mes terminaux passent automatiquement en zsh (je pense) et utilisent automatiquement oh-my-zsh. Je veux avoir plus de contrôle sur cela et me permettre de contrôler les deux, quand le zsh est utilisé et quand les fonctionnalités oh-my-zsh sont utilisées.
Une chose qui m'intéresse également est de savoir comment les applications terminales savent quel shell doit démarrer au démarrage. Ce serait bien de pouvoir contrôler aussi!
Si vous expliquez autant que possible le «pourquoi» de chaque commande que vous me donnez, cela serait utile! :)
Je suis sur OS X. Je ne sais pas si cela importe, mais j'ai tendance à aimer davantage les réponses qui sont plus applicables aux environnements Unix plus généraux plutôt qu'aux miens.
zsh
? ouoh-my-zsh
? lequel?Réponses:
Le libellé de votre question est ambigu, donc je ne peux pas dire si vous voulez dire que vous voulez arrêter d'utiliser
zsh
ou si vous voulez arrêter d'utiliseroh-my-zsh
. Je couvrirai les deux.Désactiver
zsh
Exécutez simplement
chsh
et sélectionnez le shell que vous utilisiez auparavant. Si vous ne savez pas quel shell vous utilisiez auparavant, c'est presque certainementbash
. Cette commande modifie le "shell de connexion" associé à votre utilisateur. Essentiellement, cela change votre shell par défaut.Vous devrez ouvrir une nouvelle fenêtre de terminal pour que les modifications prennent effet. Si cela ne fonctionne pas, vous devrez vous déconnecter et vous reconnecter pour réinitialiser votre environnement.
Désactiver uniquement
oh-my-zsh
~/.zshrc.pre-oh-my-zsh
existe. C'est probablement le cas. (Ce fichier a été créé lorsque leoh-my-zsh
script d'installation a déplacé le précédent.zshrc
. Il.zshrc
s'agit d'un fichier de démarrage dezsh
, similaire à.bashrc
pourbash
.)mv ~/.zshrc ~/.zshrc.oh-my-zsh
. Cela mettra leoh-my-zsh
-créé.zshrc
à l'écart, afin que nous puissions restaurer l'original, en faisantmv ~/.zshrc.pre-oh-my-zsh ~/.zshrc
.~/.zshrc
dans un éditeur de texte. Trouvez la ligne qui ditsource $ZSH/.oh-my-zsh
et commentez-la ou supprimez-la. Cela désactivera l'initialisation deoh-my-zsh
.Vous devrez redémarrer votre shell pour que les modifications prennent effet.
la source
Commutation de configuration ZSH
Si vous voulez tester différents cadres de configuration de zsh (oh-my-zsh, zprezto, etc.) et basculer entre eux, votre meilleur pari utilise des liens symboliques pour
~/.zsh
,~/.zshrc
,~/.zlogin
,~/.zlogout
,~/.zprofile
et~/.zshenv
. Vous pouvez créer un script shell pour chaque framework afin de créer ces liens symboliques pour une commutation plus rapide.Mettez vos configurations de framework dans leurs propres dossiers. Pour chaque cadre.
~/.zsh
, alors~/.zsh
. Soit~/.zsh
lien symbolique;rm ~/.zsh
, ou~/.zsh
dossier;mv ~/.zsh ~/.zsh.backup
mv ~/.zsh ~/.oh-my-zsh
.Une fois cela fait, créez un script shell pour chaque framework pour créer les liens symboliques nécessaires. Voici un exemple pour zprezto, puisque je l'utilise déjà.
Ce script est assez simple et repose sur le fait que tous mes liens symboliques sont organisés avec le même modèle. Vous pouvez copier et coller la suppression et créer des lignes après la boucle pour les liens symboliques que vous avez qui ne suivent pas le modèle.
Une fois cela fait, utilisez
~/bin/use-zprezto
- ou -~/bin/use-whatever
pour basculer entre les frameworks zsh.Notez que les modifications ne prennent effet que dans les nouveaux shells zsh, pas dans les shells existants.
Commutation de shell
C'est un peu dangereux, mais si vous êtes si enclin, vous pouvez utiliser un lien symbolique pour votre commande shell et définir le lien symbolique comme shell par défaut. Vous pouvez ensuite suivre
use-*
méthode de script ci-dessus pour changer votre shell par défaut.Par exemple avec zsh ...
La raison pour laquelle cela est dangereux est que vous ne pouvez pas vous connecter sous un utilisateur si le shell stocké dans
/etc/passwd
n'est pas un programme valide. Vous pouvez donc vous verrouiller hors de votre compte si vous ne faites pas attention; c'est-à-dire que votre~/.shell
lien symbolique est cassé ou ne pointe pas vers un programme interactif. Vous êtes invités à essayer ceci avec un compte utilisateur, mais ce n'est PAS RECOMMANDÉ pour votreroot
compte.Si vous voulez toujours continuer, alors
la source
chsh -s / bin / bash
Pour définir manuellement un nouveau shell par défaut, faites chsh -s / my / new / shell, par exemple chsh -s / bin / bash. Ensuite, rouvrez simplement vos coquilles.
la source
Vous pouvez demander à zsh de charger ses fichiers de configuration par utilisateur à partir d'un répertoire différent en définissant la variable d'environnement
ZDOTDIR
avant de démarrer zsh.Si vous souhaitez démarrer zsh sans charger vos fichiers de configuration, définissez-le
ZDOTDIR
sur un répertoire inexistant. Si vous souhaitez ignorer les fichiers de configuration système (en dehors de/etc/zshenv
), vous pouvez exécuterzsh -f
. Si vous souhaitez ignorer les fichiers de configuration système mais exécuter les fichiers par utilisateur, exécutezzsh -d
.Par exemple, si vous souhaitez tester oh-my-zsh sans en faire la valeur par défaut, ne placez pas le
.zshrc
fichier oh-my-zsh dans votre répertoire personnel. Au lieu de cela, mettez-le ailleurs, par exemple. dans~/.oh-my-zsh
, puis exécutezZDOTDIR=~/.oh-my-zsh zsh
lorsque vous souhaitez utiliser oh-my-zsh.Les applications terminales exécutent le shell indiqué par la
SHELL
variable d'environnement. Si cette variable n'est pas définie, ils exécutent le shell de connexion indiqué dans la base de données utilisateur (/etc/passwd
). Vous pouvez demander une application différente lorsque vous démarrez un émulateur de terminal, par exemplexterm -e fish
.la source
Comme il est un peu caché dans @Gilles, répondez au moyen rapide de charger zsh sans aucune configuration, par exemple .zshrc .zshenv, etc.
Ceci est utile lorsque vous souhaitez tester si quelque chose dans votre configuration empêche certaines fonctionnalités de zsh de fonctionner.
la source