ошибка xsession: не может войти в систему после переменной изменяющей среды

[112537] Если вы просто хотите узнать MAC-адрес данного IP-адреса, вы можете воспользоваться командой [113150]arp[113151] для поиска, после того, как вы пинговалили систему 1 раз.[12316]Пример[12317]Теперь посмотрите в ARP-таблицу:[12318]fing[12319]Если вы хотите прочесать всю локальную сеть на предмет MAC-адресов, вы можете воспользоваться инструментом командной строки [113152]fing[113153] для этого. Обычно она не установлена, поэтому вам придется загрузить ее и установить вручную. [12320] [12321]Используя ip[12322]Если вы обнаружили, что у вас нет доступных команд [113155]arp[113156] или [113157]fing[113158], вы можете использовать команду iproute2 [113159]ip neigh[113160], чтобы увидеть ARP-таблицу вашей системы, а не:[12323]References[12324]Equivalent iwlist'а, чтобы увидеть, кто находится поблизости? [12325]
2
12.04.2015, 12:34
3 ответа

Так что я также попросил помощи на форумах 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

Теперь оно снова работает.

1
27.01.2020, 22:12

Нет, нет. Можно настроить 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 в качестве третьего и ваш домашний каталог (если он не содержит специальных символов) в качестве четвертого.

Когда подстановка переменной или команды находится вне двойных кавычек, происходит следующее преобразование значения переменной или выходных данных команды:

  1. Только для подстановки команды: удаляются завершающие новые строки.
  2. последовательность разделена на части, разделенные пробелами. (Можно настроить разделители путем установки переменной IFS .) Следует отметить, что результатом этого преобразования является список последовательностей.
  3. Каждый элемент списка интерпретируется как подстановочный образец. Если этот образец совпадает с файлами, то элемент заменяется списком соответствующих файлов (это называется globbing ). Если образец не совпадает ни с одним файлом, элемент остается один.

Шаг 2 разбивает последовательность -имя «* .log» на две части: -имя и «* .log» . Ни одна часть не соответствует ни одному файлу, поэтому результатом являются два слова -name и «* .log» .

Вместо этого необходимо выполнить find с аргументами -name и * .log . Вы можете сделать это, отключив глоббинг:

set -f
find `echo -name *.log`
set +f

Это не надежно: это не позволит передать имена файлов, содержащие пробел, например. Вообще говоря, не следует пытаться создавать команды, сохраняя их биты в переменной или передавая их в командах. Лучший способ сделать то, что ты делаешь, зависит от того, что ты на самом деле пытаешься сделать. Вот несколько общих советов:

-121--114301-

Возможно, вы все еще сможете войти в текстовый режим. Нажмите 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 для переключения между виртуальными консолями в любое время.

2
27.01.2020, 22:12

Как появился экран для текстового режима после нажатия Ctrl+Alt+F1.

Я сделал те же изменения, что и вы, и столкнулся с той же проблемой, я не могу войти на сервер и перепробовал много способов. любезно предоставьте мне шаги для возврата к моим изменениям. Это будет очень полезно для меня.

-1
27.01.2020, 22:12

Теги

Похожие вопросы