Mon serveur Web a été falsifié par quelqu'un qui utilisait le shell zsh. Je me sens plus à l'aise avec bash shell, car ce sont les valeurs par défaut fournies avec Ubuntu et OS X (les deux principaux systèmes d'exploitation que j'utilise). Mais cette question se concentre sur le serveur Ubuntu. J'ai 4 sites Web exécutés sur ce serveur Web, j'utilise byobu, j'utilise tmux, j'utilise ruby / ruby sur rails, node.js, apache, quelques démons. Si je change le shell racine actuel de zsh en bash, pourrait-il y avoir des effets secondaires négatifs qui pourraient résulter de ce changement? Par exemple, les processus seront-ils tués parce que leur processus parent (le shell) a été changé?
command-line
bash
zsh
JohnMerlino
la source
la source
Réponses:
Changer votre shell, via
sudo chsh --shell=/bin/bash $USER
changera le champ shell dans/etc/passwd
. Cette valeur n'est consultée qu'au moment de la connexion, lorsque le système n'a aucune idée du shell à utiliser pour vous.Processus en cours, que ce soit a commencé par
zsh
,bash
apache
ouevil_overlord's_program
ne sera pas affectéla source
login
programme s'exécute dans un processus, comme tout. Quand il vous laisse entrer, il crée un autre processus avec votre UID, etc., et exécute / bin / bash (à partir de / etc / passwd). Le shell bash lit à partir de STDIN (mis en place parlogin
), et va bifurquer / exécuter des commandes non intégrées, attendre qu'elles se terminent et boucler pour plus de commandes. L'idée de "contrôler le terminal" n'est pas utile sous Unix / Linux.Réponse du débordement de pile ( passage de zsh à bash ):
la source
Ouvrez votre terminal et utilisez la commande suivante:
la source
which bash
donnerait le chemin absolu debash
, donc ce serait la même chose si/bin/bash
c'est oùbash
était situé.Sur Mac OS Catalina
Passez à zsh:
Changer pour bash:
la source