Comment puis-je mettre fin à la commande sudo en cours d'exécution qui rouvre toujours?

1

Quand j'ouvre une nouvelle fenêtre dans le terminal, je reçois ceci:! enter image description here

J'essayais d'installer MacPorts il y a environ un an et cela ne s'est pas bien passé.

Comme je n'utilise pas souvent le terminal, je l'ai laissé de cette façon

Maintenant, j'aimerais qu'il fonctionne à nouveau!

J'ai essayé de supprimer le fichier com.apple.terminal.plist et je suis coincé.

Lorsque j'entre mon mot de passe, le shell passe de sudo à tee et tout ce que j'entre est répété!

enter image description here

Quand je ne sais pas mon mot de passe, je reçois un shell utilisable. Que puis-je faire pour empêcher la réouverture de la commande sudo? enter image description here

Leon
la source
1
Bienvenue à Ask Different! Regardez notre centre d'aide si personne ne peut deviner ce qui est arrivé ici pour provoquer une invite de mot de passe. J'imagine que vos fichiers de points sont foirés, mais il n'est pas clair si ou comment vous voulez procéder pour les réparer (si c'est le cas).
bmike
Ne pouvez-vous pas simplement éditer / etc / profile et supprimer les lignes relatives à MacPorts?
nohillside
J'ai supprimé ce fichier, je crois. Puis-je en quelque sorte juste terminer la commande sudo en cours d'exécution? Je ne suis pas familier avec les commandes de terminal. J'ai essayé de tuer ainsi que de nombreuses autres commandes et cependant il rouvre toujours!
Leon
Pouvez-vous vérifier si vous l'avez supprimé, nous ne pouvons pas deviner à quoi ressemble votre système. Selon le message d'erreur de votre dernière capture d'écran, le fichier est toujours là et comporte une erreur à la ligne 51. Si vous ne savez pas comment résoudre ce problème, veuillez télécharger le fichier dans Dropbox ou plus et ajouter un lien ici.
nohillside

Réponses:

1

Tout d’abord, il existe un certain nombre de commandes que vous pouvez essayer de sortir de l’état de shell étrange dans lequel vous vous trouvez. Ctrl + C, Ctrl + Z et Ctrl + \ peuvent quitter la commande sudo, et Ctrl + D devrait quitter le 'tee.' En supposant que la commande ne soit pas exécutée en tant que shell de contrôle (ce qui n’est probablement pas le cas, à en juger par le fait que vous n’indiquez pas de mot de passe, vous obtenez un shell), l’un de ceux-ci vous ramènera probablement à votre shell actuel (par exemple, bash). Ensuite, vous devriez regarder les fichiers suivants pour voir ce qui vous met dans cet état:

/etc/profile
.bashrc
.login
.bash_profile
.profile

Vous pouvez également éditer ces fichiers à partir de n’importe quel éditeur de texte OSX (plutôt que de devoir entrer dans un shell pour le faire), bien que ce soit un peu délicat - dans la boîte de dialogue "fichier ouvert", appuyez sur Cmd + Maj + G son chemin (par exemple, / etc / profile ou /Users/nomutilisateur/.bashrc).

Il est également possible que votre shell de connexion ait lui-même été modifié. Dans ce cas, vous devez accéder à l'onglet Utilisateurs & amp; Groupes préférences système, puis ctrl-clic sur votre nom d'utilisateur, puis sélectionnez "Options avancées". Assurez-vous que la liste déroulante "shell de connexion" se lit /bin/bash.

fluffy
la source
Merci d'avoir répondu. Si je vous envoie mon fichier de profil, pouvez-vous me dire ce qui ne va pas? Je suis tout à fait sûr que le fichier cause le problème. Ou puis-je le réinitialiser en quelque sorte? Btw je ne trouve pas /Users/username/.bashrc. Est-ce mauvais?
Leon
Ce n'est pas grave s'il n'y a pas de .bashrc. Mais vraiment, il suffit de rechercher les lignes contenant «sudo» ou «tee», de les supprimer et de sauvegarder le fichier. Aucune de ces commandes ne figure dans vos scripts de connexion.
fluffy
2

Ce que vous avez est un mauvais ensemble de fichiers de démarrage, donc la première chose à faire est de reprendre le contrôle de votre Mac.

  1. Ne vous déconnectez pas et ne redémarrez pas (juste au cas où le dommage empêcherait une nouvelle connexion - peu probable, mais pourquoi le risquer - surtout si vous n'avez pas une bonne sauvegarde)
  2. Ouvrir les préférences du système
  3. Créez un nouveau compte administrateur et activez le changement rapide d'utilisateur
  4. Enregistrez tout travail dans d'autres applications que vous ne pouvez pas vous permettre de perdre
  5. Utilisez la barre de menus pour vous connecter en tant que nouveau compte administrateur.

À ce stade, vous saurez si ce nouvel utilisateur dispose d'un accès shell complet ou si vous avez en quelque sorte foiré les fichiers qui configurent tous les processus shell utilisateur.

Vous pouvez supprimer MacPorts du nouvel utilisateur et vous assurer que vous avez une bonne sauvegarde avant d'effacer les fichiers qui perturbent le processus de connexion au shell de votre utilisateur actuel. Comme votre installation de port ne fonctionne pas, essayez d’exécuter la désinstallation du port, mais continuez avec le manuel. rm commande pour réellement supprimer les éléments installés dans / opt et ailleurs.

http://guide.macports.org/chunked/installing.macports.uninstalling.html

À ce stade, vous pouvez également essayer de nettoyer des fichiers ailleurs - voici les fichiers que MacPorts aurait dû modifier sur vous. Vous devrez donc peut-être les supprimer et / ou les récupérer à partir d'une installation propre ou d'une sauvegarde antérieure lorsque MacPorts est touché. leur:

Selon votre shell et les fichiers de configuration existants, le programme d'installation peut utiliser .profile, .bash_login, .bash_profile, .tcshrc ou .cshrc.

Le nettoyage pour vous pourrait également impliquer:

cd /Users
sudo -s
cd broken
tar -cvf ./bash_broken.tar .bash*
rm -i .bash*

Cela fera un fichier tar de sauvegarde de tous vos fichiers de démarrage bash cassés (.bash_history, .bahsrc, etc…) Soyez prudent avec sudo - si vous récupérez le mauvais fichier, il n’y aura pas de corbeille ni d’annulation. le -i drapeau devra vous demander si vous souhaitez supprimer chaque fichier. Vous voulez supprimer presque tous les fichiers, sauf peut-être le fichier d'historique (afin de pouvoir revenir sur ce que vous avez fait dans le passé, si nécessaire).

Une fois que vous avez supprimé les fichiers, déconnectez le nouvel utilisateur, reconnectez-le avec l'ancien utilisateur et déterminez si cela résout vos problèmes de terminal.

bmike
la source
1
Le terminal est dans l'état décrit depuis environ 1 an et je peux me connecter
Leon
Parfait - c'était plus pour quelqu'un d'autre. Je vais ajouter les étapes à suivre une fois que vous avez une invite de terminal. Vous pouvez également effectuer ces étapes en mode mono-utilisateur.
bmike
Pouvez-vous me donner plus de détails sur les fichiers que je dois supprimer? Merci pour votre réponse rapide btw.
Leon
Votre shell par défaut devrait être bash - concentrez-vous donc sur leur suppression. Il est peu probable que vous ayez un fichier .profile - renommez-le ainsi que tous les autres fichiers si vous avez des doutes plutôt que de supprimer tous les fichiers de points que j'ai énumérés ci-dessus.
bmike
J'ai donc suivi les étapes et supprimé les fichiers que vous avez énumérés. En outre supprimé le fichier historique (je l'ai sauvegardé). Cependant, le terminal ouvre toujours toujours la commande. Je me fiche de savoir si MacPorts n’installe que la moitié. Existe-t-il un moyen de terminer la commande qui ne disparaît pas? : DD sa été assez ennuyeux quand j'ai vraiment besoin d'utiliser un terminal.
Leon