Так что я также попросил помощи на форумах Linux Mint, и какой-то замечательный пользователь решил мою проблему. Очевидно, с помощью вышеприведенной команды я изменил содержимое /etc/environment. Она должна содержать только следующее:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:"
Для изменения, которое я должен был ввести как root в оболочке восстановления, измените часть для чтения/записи с помощью:
mount -o remount,rw /
и затем отредактируйте /etc/окружение, используя
nano /etc/environment
или вы можете отредактировать /etc/окружение как root:
sudo nano /etc/environment
Теперь оно снова работает.
Нет, нет. Можно настроить auditd
или что-то подобное для отслеживания произошедшего, но это было бы набором до команды.
Одним из возможных решений является просмотр истории оболочки, чтобы увидеть, куда/как был перемещен файл, и определить исходное местоположение оттуда. Однако это в значительной степени ненадежно.
-121--96782-Баш не добавил к команде ни одной кавычки. Отображаемые одинарные кавычки добавляются, чтобы сделать отображаемую команду допустимым синтаксисом bash. Если вы видите
find -name '"*.log"'
это означает, что bash было сказано выполнить эту команду: найти
с двумя аргументами -name
и «* .log»
(двойные кавычки являются частью аргумента). Он мог быть введен точно так же или каким-то другим эквивалентным способом, как
find -name \"*.log\"
find -name "\"*.log\""
find -name '"*.'log""\"
Теперь давайте посмотрим на то, что вы написали:
find `echo "-name \"*.log\""`
Команда, выполняемая в субоболочке
echo "-name \"*.log\""
Ее выход
-name "*.log"
Вот откуда берутся двойные кавычки в аргументе. Когда выходные данные подстановки команд интерполируются в командную строку, он не разбирается как синтаксис оболочки - так, например,
find `echo '; rm -rf ~'`
не удалит все ваши файлы, а передаст ;
в качестве первого аргумента для поиска
, rm
в качестве второго, -rf
в качестве третьего и ваш домашний каталог (если он не содержит специальных символов) в качестве четвертого.
Когда подстановка переменной или команды находится вне двойных кавычек, происходит следующее преобразование значения переменной или выходных данных команды:
IFS
.) Следует отметить, что результатом этого преобразования является список последовательностей. Шаг 2 разбивает последовательность -имя «* .log»
на две части: -имя
и «* .log»
. Ни одна часть не соответствует ни одному файлу, поэтому результатом являются два слова -name
и «* .log»
.
Вместо этого необходимо выполнить find
с аргументами -name
и * .log
. Вы можете сделать это, отключив глоббинг:
set -f
find `echo -name *.log`
set +f
Это не надежно: это не позволит передать имена файлов, содержащие пробел, например. Вообще говоря, не следует пытаться создавать команды, сохраняя их биты в переменной или передавая их в командах. Лучший способ сделать то, что ты делаешь, зависит от того, что ты на самом деле пытаешься сделать. Вот несколько общих советов:
Возможно, вы все еще сможете войти в текстовый режим. Нажмите Ctrl + Alt + F1 и введите имя пользователя и пароль в поле login:
и password:
, затем запустите sudo-s
для получения корневой оболочки. Если у вас есть пароль root, вы можете войти как root напрямую.
Ошибка выглядит как неудачная попытка установить PATH
. Это согласуется с наличием дополнительного пространства в назначении, как
export PATH= …$PATH…
вместо export PATH =... $ PATH...
(или просто PATH =... $ PATH...
).
В зависимости от точного характера проблемы она может сообщаться в момент, когда фактическая ошибка является или более поздней. Чтобы изменить /etc/mdm/Xsession
, запустите
nano /etc/mdm/Xsession
Если ошибка отсутствует, проверьте файлы точек и другие файлы в /etc
.
grep -s mallet-2.0.7 ~/.* /etc/* /etc/*/Xsession*
Как только вы считаете, что исправили ошибку (не стесняйтесь задать новый вопрос на этом сайте, если вы не уверены, как), нажмите Ctrl + Alt + F7 , чтобы вернуться к подсказке входа в GUI. Можно использовать Ctrl + Alt + F1 и Ctrl + Alt + F7 для переключения между виртуальными консолями в любое время.
Как появился экран для текстового режима после нажатия Ctrl+Alt+F1.
Я сделал те же изменения, что и вы, и столкнулся с той же проблемой, я не могу войти на сервер и перепробовал много способов. любезно предоставьте мне шаги для возврата к моим изменениям. Это будет очень полезно для меня.