Можно, вероятно, восстановиться без перезагрузки, не перезагружайте, пока Вы не попробовали некоторые другие вещи, потому что она не загрузится. Если у Вас все еще есть открытая попытка своей сессии SSH они:
То, где программы запущены от, установлено с помощью переменной $PATH. Можно добавить новое местоположение мусорного ведра для соединения каналом путем выполнения export PATH="$PATH:/newpath/to/bin:/newpath/to/usr/bin"
. Вы, возможно, должны добавить соответствующие sbin каталоги также. Можно также запустить программы вручную через их полный путь /path/to/mv [from] [to]
например, должен работать, даже если mv находится в diffeent месте. Хитрая часть - то, что большинство команд собирается хотеть получить доступ к общим библиотекам, и Вы говорите /lib
был перемещен так, необходимо установить переменную для того, где это также. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/newpath/to/lib/:/newpath/to/usr/lib
После того как можно выполнить некоторые основные команды, положить обратно материал! mv /path/to/subfolder/* /
был бы в порядке! После того как все вернулось на месте, система должна обычно вести себя.
Если это перестало работать, загружая КАКОЙ-ЛИБО LiveCD и монтируя, что диск должен позволить Вам класть обратно папки, где они принадлежат. Вы не должны переустанавливать или даже использовать свои дистрибутивы livecd, просто необходимо смонтировать диск и положить обратно папки к правильному местоположению на диске. Много основанного на Linux спасательного диска специализирует на предоставлении Вам всего несколько основных консольных инструментов, чтобы сделать этот вид восстановления.
Это не на 100% верно. Например:
$> echo $SHELL
/bin/bash
$> /bin/ksh
$] echo $SHELL
/bin/bash
$SHELL содержит родительскую оболочку для Вашей сессии, которая обычно является Вашей оболочкой входа в систему, как продиктовано Вашей пользовательской записью в/etc/passwd. Более ясно $SHELL является родительской оболочкой от который Ваша текущая порожденная сессия. В моем примере текущая оболочка, Korn, технически работает в Bash, который является, почему $SHELL был не изменен.
Очевидно, это - почти исключительно семантическое различие, однако, не попадайте в прерывание веры, которая, что Вы видите, всегда, что Вы получаете.
Нет, это не связано с оболочкой по умолчанию.
Оболочка системного значения по умолчанию определяется в /etc/default/useradd
файл.
Ваша оболочка по умолчанию определяется в /etc/passwd
файл. Можно изменить его chsh
команда.
$SHELL
переменные обычно хранят текущий исполнимый путь оболочки. Каждая оболочка ведет себя по-другому по этому вопросу. Например, удар устанавливает переменную SHELL, если это сброшено, когда это запускается, иначе это оставляет его без изменений. tcsh не поддерживает эту переменную вообще.
echo $SHELL
от удара. Затем текущий исполнимый путь оболочки должен был относиться, чтобы колотить, исправиться?
– Lazer
17.11.2010, 18:56
Переменная для Вашей информации ("Эй, под какой оболочкой я работаю?"), а не путь Вы устанавливаете оболочку. Так как переменные среды Unix могут только распространить вниз к дочерним процессам и не назад до родителей, обычно переменные среды как это являются описательными а не параметрами конфигурации.
Для наблюдения оболочки по умолчанию посмотрите запись в /etc/passwd
, и изменить это, работать chsh
. (Это предполагает, что Вы не используете NIS или LDAP для этой информации; в этом случае используйте getent passwd $USERNAME
.) И как andcoz примечания, начальные значения по умолчанию для новых пользователей, добавленных со стандартом useradd
программа находится в /etc/default/useradd
.
“Оболочка по умолчанию “для системного администратора Unix - то, что хранится в столбце “оболочки” пользовательской базы данных. Это - программа, которая вызывается, когда Вы входите в систему в текстовом режиме (на консоли текстового режима, или по сети через, например, ssh).
” Оболочка по умолчанию” для приложения Unix также sh
или $SHELL
. Существует некоторое изменение относительно ли $SHELL
предназначается, чтобы быть интерактивной оболочкой или оболочкой для запущения скриптов. Спецификация POSIX неоднозначна в том отношении, отражая отличающуюся практику:
Эта переменная должна представить путь предпочтительного интерпретатора командного языка пользователя. Если этот интерпретатор не соответствует Командному языку Shell в Shell и объеме Утилит Станд. IEEE 1003.1-2001, Главы 2, Командного языка Shell, утилиты могут вести себя по-другому по сравнению с описанными в Станд. IEEE 1003.1-2001.
Тот бит о предпочтительном командном языке означает, что некоторые приложения могут попробовать к командам выполнения в $SHELL
, использование POSIX окружает синтаксис команды. Однако нормальный способ выполнить команду оболочки в приложении Unix является через функции таким как system
, который, как предполагается, находит подходящую оболочку независимо от значения $SHELL
переменная среды. Bash и ksh являются примерами совместимых POSIX оболочек. Zsh приближается. Csh отличается, и можно иногда сталкиваться с проблемой из-за SHELL
будучи установленным на csh (это не очень распространено, поскольку большинство приложений действительно звонит sh
и csh достаточно совместим для основного использования).
На практике, для пользователя UNIX, $SHELL
Ваша предпочтительная интерактивная оболочка, т.е. что Вы хотите видеть при запуске эмулятора терминала. Это не должно совпадать с Вашей оболочкой входа в систему ¹: можно установить его в Вашем .profile
или .login
.
¹, Например, я обычно уезжаю, любая оболочка входа в систему является значением по умолчанию, поддержите Совместимое с границей .profile
, но набор SHELL
к zsh, если это доступно.
Я всегда понимал переменные окружения, чтобы быть консультацией к программам, которые Вы запускаете. $SHELL был бы оболочкой, которую Вы хотите, чтобы программа запустила, когда это должно выполнить оболочку. Сравните с $EDITOR, Вы посылаете программу по электронной почте, мог бы использовать его для решения который редактор предложить Вам. B/c эти переменные окружения так же легки изменить Вас, не может действительно полагаться на них как заключительное слово на том, на что действительно похож мир.
Связанный с Вашим вопросом на оболочке по умолчанию: chsh является командой, которая позволяет Вам изменять свою оболочку входа в систему. Прежде, чем изменить это показывает Вам, каков Ваш текущий выбор.