CentOS | [root @ hostname] ne s'affiche plus?

10

Pour une raison quelconque, je me suis connecté à mon serveur CentOS6 et au début de chaque ligne, il affiche normalement

[root@hostname]# 

Maintenant ça montre

-bash-4.1#

Qu'est-ce que ça veut dire? Et comment le ramener à la normale?

Rui F Ribeiro
la source
Google: /etc/skel.
quanta
Que echo $PS1montre-t-on? Avez-vous supris racine au lieu de su -?
jscott
@jscott Je suis connecté en root, et oui je l'ai fait. pas su - comment pourrais-je en sortir?
ls -a /root/ | egrep '^\.'?
quanta
@Necro Publié une réponse, faites-moi savoir si cela aide.
jscott

Réponses:

13

Exécutez cette commande dans votre terminal:

export PS1='[\u@\h \W]\$ '

Si vous souhaitez afficher cette invite après le redémarrage, vous pouvez essayer ceci (avec su):

echo "export PS1='[\u@\h \W]\$ '" > /etc/profile.d/bash_prompt.sh

Plus d'information:

man bash

truongvan
la source
Cela fonctionne bien et résout mon problème, merci beaucoup.
Loc_rabbirt
8

J'ai eu le même problème, voici comment je l'ai résolu:

Une des deux choses s'est produite. Soit le répertoire a /rootété supprimé; ou un fichier /corrompu manquant .bashrcdans /root( .bashrcsources /etc/bashrc, qui définit l'invite), vous pouvez exécuter la commande suivante pour restaurer les fichiers d'origine (qui sont copiés automatiquement lorsque la racine ou tout compte d'utilisateur est créé). Exécutez cette commande en tant qu'utilisateur qui rencontre des problèmes OU définissez le chemin de destination vers/home/directory/user/

cp -v /etc/skel/.bash* ~/             #if logged in as user
cp -v /etc/skel/.bash* /home/user/    #run as root

Devrait remplacer le .bash_logout, .bash_profileet .bashrc- quitter le terminal et vous reconnecter. Le -bash-4.1#devrait maintenant être parti!

nak_attack
la source
Je vous remercie! Je cours en cp -v /etc/skel/.bash* ~/ tant que root et j'ai parfaitement fonctionné!
zinon
4

Selon votre commentaire, il semble que vous ayez fait un su, pour passer à l'utilisateur root, plutôt que su -. La fin -fera du shell un shell de connexion, sans cela, vous remarquerez peut-être que votre environnement root est "désactivé".

Pour quitter la susession, tapez simplement exit Enterou appuyez sur ctrl+ d. Entrez à nouveau la session à l'aide de su -. Voir la page de manuel,, man supour plus de détails.

jscott
la source
3

Cela signifie que vous utilisez le shell bash. Version 4.1 .

HopelessN00b
la source
1
Comment puis-je m'en sortir pour qu'il affiche simplement [root @ hostname] # et mon dossier actuel et d'autres choses?
1
Consultez la page de manuel et voyez comment définir votre invite.
mdpc
1

Cela signifie qu'à un endroit, votre invite de commande a été modifiée par le contenu de .profile (ou le profil système) .... dans le second cas, votre invite n'a pas été modifiée.

BTW, ce qui est "normal". À mon avis, la valeur par défaut de l'application (la deuxième entrée) est normale. Comme dans d'autres choses, "normal" signifie différentes choses pour différentes personnes. Dans UNIXland, il y a tellement de façons de faire les choses, une balise comme celle-ci n'a vraiment aucun sens.

Je vous suggère fortement d'étudier attentivement la page de manuel ou de chercher un bon livre sur bash.

mdpc
la source
Veuillez regarder ma modification.
Ma réponse est toujours valable ... veuillez obtenir un livre shell si vous utilisez beaucoup le shell bash.
mdpc
D'accord, j'obtiendrai un livre, mais jusqu'à ce que je le fasse, comment puis-je revenir au [root @ hostname] #?
Ce que je dirais, c'est réexécuter le profil du système en utilisant le '.' commande ... en supposant que votre profil système fournit une telle invite.
mdpc
0

Avez-vous par hasard essayé de modifier votre fichier .bashrc?

Il y a une copie de sauvegarde située ici:

/etc/skel/.bashrc

Pour restaurer root, exécutez ceci:

cp /etc/skel/.bashrc /root/.bashrc
Maison de plage
la source
0

semble que toutes ces personnes ne savaient pas comment obtenir réellement l'invite pour revenir en arrière pour afficher [root @ domain] ~ #

J'ai du mal à croire qu'il n'ait pas obtenu de réponse directe à sa question. Parce que je cherche cette même réponse.

%userx@voided ~>>$cat /etc/skel/.bashrc
# .bashrc

# If not running interactively, don't do anything
 [[ $- != *i* ]] && return

 alias ls='ls --color=auto'
 PS1='[\u@\h \W]\$ '

ne change pas l'invite pour indiquer root quand on utilise su-password pour basculer vers root. le mien ne montre que #

quand il faisait la même chose.

uxserx-bw
la source