CentOS | [root @ hostname] больше не отображается?

10

По какой-то причине я вошел в свой сервер CentOS6 и в начале каждой строки это обычно показывает

[root@hostname]# 

Теперь это показывает

-bash-4.1#

Что это значит? И как мне вернуть его в нормальное состояние?

Руи Ф Рибейро
источник
Google: /etc/skel.
Кванта
Что echo $PS1показывает? Ты suполучал рут вместо su -?
Jscott
@jscott Я вошел в систему как root, и да, я сделал su. не су - как бы мне выйти из этого?
ls -a /root/ | egrep '^\.'?
Кванта
@Necro Написал ответ, дайте мне знать, если это поможет.
Jscott

Ответы:

13

Запустите эту команду в своем терминале:

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

Если вы хотите показать это приглашение после перезагрузки, вы можете попробовать это (с su):

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

больше информации:

man bash

truongvan
источник
Это хорошо работает и решает мою проблему, большое спасибо.
Loc_rabbirt
8

У меня была такая же проблема, вот как я ее решил:

Произошла одна из двух вещей. Либо каталог /rootбыл удален; или отсутствующий /поврежденный .bashrcфайл в /root( .bashrcисточники /etc/bashrc, который устанавливает приглашение), вы можете выполнить следующую команду, чтобы восстановить исходные файлы (которые автоматически копируются при создании учетной записи root или любой учетной записи пользователя). Запустите эту команду как пользователь, у которого возникли проблемы, ИЛИ определите путь к/home/directory/user/

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

Следует заменить .bash_logout, .bash_profileи .bashrc-. Выездной терминал и снова войти в -bash-4.1#должен исчезнуть!

nak_attack
источник
Спасибо! Я запускаю cp -v /etc/skel/.bash* ~/ как root и работал отлично!
Зинон
4

На ваш комментарий, похоже, вы сделали su, чтобы переключиться на пользователя root, а не su -. Трейлинг -превратит оболочку в оболочку входа в систему, без которой вы можете заметить, что ваша пользовательская среда root отключена.

Чтобы выйти из suсеанса, просто введите exit Enterили нажмите ctrl+ d. Затем снова войдите в сессию, используя su -. Смотрите man-страницу man su, для более подробной информации.

jscott
источник
1

Это означает, что в одном месте ваша командная строка была изменена содержимым .profile (или системного профиля) .... во втором случае ваша подсказка не была изменена.

Кстати, что такое "нормально". На мой взгляд, по умолчанию приложение (вторая запись) нормальное. Как и в других вещах, «нормальный» означает разные вещи для разных людей. В UNIXland есть так много способов сделать что-то, и такой тег действительно не имеет смысла.

Я настоятельно рекомендую вам внимательно изучить страницу руководства или найти хорошую книгу по bash.

Якорь,
источник
Пожалуйста, посмотрите на мои изменения.
Мой ответ остается в силе ... пожалуйста, возьмите книгу-оболочку, если вы собираетесь часто использовать оболочку bash.
MDPC
Хорошо, я получу книгу, но как я вернусь к [root @ hostname] #?
Я бы сказал, что заново запустите профиль системы, используя «.» команда ... предполагая, что ваш системный профиль обеспечивает такую ​​подсказку.
MDPC
0

Вы случайно не пытались редактировать свой файл .bashrc?

Здесь находится резервная копия:

/etc/skel/.bashrc

Для восстановления root запустите это:

cp /etc/skel/.bashrc /root/.bashrc
Пляжный домик
источник
0

похоже, что все эти люди не знали, как на самом деле получить приглашение вернуться назад, чтобы показать [root @ domain] ~ #

Мне трудно поверить, что он не получил прямого ответа на свой вопрос. Потому что я ищу тот же самый ответ.

%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]\$ '

не изменяет запрос на указание root, когда для переключения на root используется su - пароль. мой только показывает #

когда это использовать, чтобы сделать то же самое.

uxserx-м.т.
источник