эквивалент `setx` в Ubuntu

Установлена ​​установка с альтернативным установщиком для Lubuntu 14.04.1 и forcepae.

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

Однако теперь возникли две другие проблемы: недавно установленная система не может быть отключена (см. Lubuntu: ни остановка, ни перезапуск не работает), и не распознает USB-накопители (та же проблема, что и в USB распознан, но недоступен?). Обе проблемы не возникали с помощью установочного компакт-диска как live CD.

Поэтому я снова хотел попробовать «нормальный» установочный компакт-диск, но он не работает с тем же сообщением об ошибке, что и раньше: [!d7 ]

The installer encountered an unrecoverable error. A desktop session will now be run so that you may investigate the problem or try installing again.

Как только вы находитесь в этом сеансе рабочего стола, tail -n 800 -F /var/log/kern.log перечисляет следующее (извините за то, что он длинный, я не знаю, что может быть важно): см. Lubuntu: ни завершение работы, ни перезапуск [ ! d5]

Содержание Однако из ...

... установка с альтернативным установщиком: https://www.dropbox.com/ sh / qv7o8w6t5s31xzk / AADmkNP1KP1IaMKOxRfsclRAa? dl = 0 ... неудачная установка с обычным установщиком: https://www.dropbox.com/sh/dhon6asbz1swms5/AACc3WtvvpIH34_WqA3u3p18a?dl=0

9
задан 29 November 2017 в 09:23

9 ответов

Вы можете сделать это просто, объявив его новым в командной строке или повторно объявив его. Например, если вы хотите добавить ~/testfolder к переменной пути, вы просто можете ввести его в свой текущий терминал (это только пример):

PATH="$HOME/testfolder:$PATH"

Это, конечно, только изменит его на время, когда вы сказали, что сеанс терминала открыт. Обратите внимание на использование $ здесь, вы оставляете его для объявления, но если вы хотите его отобразить, вам нужно добавить $, чтобы развернуть его содержимое.

Если вы хотите объявить их более прочными и вы можете добавить их в свой файл ~/.bashrc (только для вас) или в /etc/bash.bashrc (в системе), например, если вы хотите, чтобы они учитывали только вас или всех пользователей. Другой вариант - добавить его в свой .profile файл (только для себя), где он будет жизнеспособен с момента входа в систему. Вы можете сделать это с помощью echo, например, если вы уверены, что эта переменная уже не установлена или если вы создаете новые (только пример):

echo "variable=value" >> /path/filename

Если вы, однако, хотите отредактировать файл за пределами вашего пользовательского каталога, который имеет место, когда вы хотите отредактировать /etc/bash.bashrc, вам необходимо использовать sudo, поэтому вы не можете просто использовать «здесь документ», так как это не сработает, вместо этого используйте следующую строку:

echo "variable=value" | sudo tee -a /path/filename

Если переменная, однако, уже существует, вы можете изменить ее с помощью sed (также только пример):

sed -i.bak 's/variable=value/variable=new-value/' /path/filename

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

sudo sed -i.bak 's/variable=value/variable=new-value/' /path/filename

Удаление переменной из файла может быть выполнено с помощью sed as ну, просто оставьте вторую часть регулярного выражения пустым:

sed -i.bak 's/variable=value//' /path/filename

Если ваши заинтересованные переменные окружения установлены, вы можете использовать команду env для их перечисления, ( set -o posix ; set ) | less или sh -c set. Все три дают различные объемы вывода, при этом ( set -o posix ; set ) | less возвращает большинство переменных, которые фактически установлены.

12
ответ дан 22 May 2018 в 15:49
  • 1
    Вместо ( set -o posix ; set ) проще сказать sh -c set. Это будет работать, даже если sh является символической ссылкой на bash (что обычно не относится к современным версиям Ubuntu). – Ruslan 28 November 2017 в 23:36
  • 2
    @ruslan sh -c set не показывает действительно все переменные среды, установленные в системе. Однако я включу его как третий способ показать некоторые из них. – Videonauth 29 November 2017 в 04:16
  • 3
    Фактически sh -c set отображает все переменные environment . Он просто не показывает переменные shell вызывающей оболочки, но они никогда не унаследованы процессом, который вы запускаете из этой оболочки, если только вы не export. – Ruslan 29 November 2017 в 08:33
  • 4
    Есть ли когда-либо действительная причина для редактирования /etc/environment? Похоже, это короткий путь к путанице. – Roger Lipscombe 29 November 2017 в 12:31
  • 5
    @RogerLipscombe Спасибо, не был уверен в этом, это все же жизнеспособное место для редактирования переменных, но я взял его ради того, чтобы не вызвать путаницу. – Videonauth 29 November 2017 в 13:13

Вы можете сделать это просто, объявив его новым в командной строке или повторно объявив его. Например, если вы хотите добавить ~/testfolder к переменной пути, вы просто можете ввести его в свой текущий терминал (это только пример):

PATH="$HOME/testfolder:$PATH"

Это, конечно, только изменит его на время, когда вы сказали, что сеанс терминала открыт. Обратите внимание на использование $ здесь, вы оставляете его для объявления, но если вы хотите его отобразить, вам нужно добавить $, чтобы развернуть его содержимое.

Если вы хотите объявить их более прочными и вы можете добавить их в свой файл ~/.bashrc (только для вас) или в /etc/bash.bashrc (в системе), например, если вы хотите, чтобы они учитывали только вас или всех пользователей. Другой вариант - добавить его в свой .profile файл (только для себя), где он будет жизнеспособен с момента входа в систему. Вы можете сделать это с помощью echo, например, если вы уверены, что эта переменная уже не установлена или если вы создаете новые (только пример):

echo "variable=value" >> /path/filename

Если вы, однако, хотите отредактировать файл за пределами вашего пользовательского каталога, который имеет место, когда вы хотите отредактировать /etc/bash.bashrc, вам необходимо использовать sudo, поэтому вы не можете просто использовать «здесь документ», так как это не сработает, вместо этого используйте следующую строку:

echo "variable=value" | sudo tee -a /path/filename

Если переменная, однако, уже существует, вы можете изменить ее с помощью sed (также только пример):

sed -i.bak 's/variable=value/variable=new-value/' /path/filename

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

sudo sed -i.bak 's/variable=value/variable=new-value/' /path/filename

Удаление переменной из файла может быть выполнено с помощью sed as ну, просто оставьте вторую часть регулярного выражения пустым:

sed -i.bak 's/variable=value//' /path/filename

Если ваши заинтересованные переменные окружения установлены, вы можете использовать команду env для их перечисления, ( set -o posix ; set ) | less или sh -c set. Все три дают различные объемы вывода, при этом ( set -o posix ; set ) | less возвращает большинство переменных, которые фактически установлены.

12
ответ дан 18 July 2018 в 02:25

Вы можете сделать это просто, объявив его новым в командной строке или повторно объявив его. Например, если вы хотите добавить ~/testfolder к переменной пути, вы просто можете ввести его в свой текущий терминал (это только пример):

PATH="$HOME/testfolder:$PATH"

Это, конечно, только изменит его на время, когда вы сказали, что сеанс терминала открыт. Обратите внимание на использование $ здесь, вы оставляете его для объявления, но если вы хотите его отобразить, вам нужно добавить $, чтобы развернуть его содержимое.

Если вы хотите объявить их более прочными и вы можете добавить их в свой файл ~/.bashrc (только для вас) или в /etc/bash.bashrc (в системе), например, если вы хотите, чтобы они учитывали только вас или всех пользователей. Другой вариант - добавить его в свой .profile файл (только для себя), где он будет жизнеспособен с момента входа в систему. Вы можете сделать это с помощью echo, например, если вы уверены, что эта переменная уже не установлена или если вы создаете новые (только пример):

echo "variable=value" >> /path/filename

Если вы, однако, хотите отредактировать файл за пределами вашего пользовательского каталога, который имеет место, когда вы хотите отредактировать /etc/bash.bashrc, вам необходимо использовать sudo, поэтому вы не можете просто использовать «здесь документ», так как это не сработает, вместо этого используйте следующую строку:

echo "variable=value" | sudo tee -a /path/filename

Если переменная, однако, уже существует, вы можете изменить ее с помощью sed (также только пример):

sed -i.bak 's/variable=value/variable=new-value/' /path/filename

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

sudo sed -i.bak 's/variable=value/variable=new-value/' /path/filename

Удаление переменной из файла может быть выполнено с помощью sed as ну, просто оставьте вторую часть регулярного выражения пустым:

sed -i.bak 's/variable=value//' /path/filename

Если ваши заинтересованные переменные окружения установлены, вы можете использовать команду env для их перечисления, ( set -o posix ; set ) | less или sh -c set. Все три дают различные объемы вывода, при этом ( set -o posix ; set ) | less возвращает большинство переменных, которые фактически установлены.

12
ответ дан 24 July 2018 в 17:33

Нет прямого эквивалента setx /m, но есть способы выполнить то, что делает setx /m.

setx /m помещает variable=value в HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment. Non / m (то есть для пользователя) setx просто помещает variable=value в HKCU\Environment.

Вы специально попросили «системную ширину». Для этого вы добавите пару с переменным значением в /etc/environment OR или /etc/profile.d/<yourfile>. Первый оценивается pam, а последний оценивается по /bin/sh. Таким образом, в /etc/profile.d/<yourfile> вы добавили бы variable=value; export variable. (bash также позволяет export variable=value). Для /etc/environment вы добавили бы variable=value.

Эквиваленты для каждого пользователя: ~/.pam_environment и ~/.profile.

См. Также: https: //help.ubuntu. ком / сообщества / EnvironmentVariables

10
ответ дан 22 May 2018 в 15:49

Вы можете экспортировать переменные среды в командной строке, но это не повлияет на эффективную среду в уже запущенных процессах, только в текущем процессе и его подпроцессах. Поэтому на практике вам часто приходится переписывать переменные среды.

7
ответ дан 22 May 2018 в 15:49

Вы можете экспортировать переменные среды в командной строке, но это не повлияет на эффективную среду в уже запущенных процессах, только в текущем процессе и его подпроцессах. Поэтому на практике вам часто приходится переписывать переменные среды.

7
ответ дан 18 July 2018 в 02:25

Нет прямого эквивалента setx /m, но есть способы выполнить то, что делает setx /m.

setx /m помещает variable=value в HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment. Non / m (то есть для пользователя) setx просто помещает variable=value в HKCU\Environment.

Вы специально попросили «системную ширину». Для этого вы добавите пару с переменным значением в /etc/environment OR или /etc/profile.d/<yourfile>. Первый оценивается pam, а последний оценивается по /bin/sh. Таким образом, в /etc/profile.d/<yourfile> вы добавили бы variable=value; export variable. (bash также позволяет export variable=value). Для /etc/environment вы добавили бы variable=value.

Эквиваленты для каждого пользователя: ~/.pam_environment и ~/.profile.

См. Также: https: //help.ubuntu. ком / сообщества / EnvironmentVariables

10
ответ дан 18 July 2018 в 02:25

Вы можете экспортировать переменные среды в командной строке, но это не повлияет на эффективную среду в уже запущенных процессах, только в текущем процессе и его подпроцессах. Поэтому на практике вам часто приходится переписывать переменные среды.

7
ответ дан 24 July 2018 в 17:33

Нет прямого эквивалента setx /m, но есть способы выполнить то, что делает setx /m.

setx /m помещает variable=value в HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment. Non / m (то есть для пользователя) setx просто помещает variable=value в HKCU\Environment.

Вы специально попросили «системную ширину». Для этого вы добавите пару с переменным значением в /etc/environment OR или /etc/profile.d/<yourfile>. Первый оценивается pam, а последний оценивается по /bin/sh. Таким образом, в /etc/profile.d/<yourfile> вы добавили бы variable=value; export variable. (bash также позволяет export variable=value). Для /etc/environment вы добавили бы variable=value.

Эквиваленты для каждого пользователя: ~/.pam_environment и ~/.profile.

См. Также: https: //help.ubuntu. ком / сообщества / EnvironmentVariables

10
ответ дан 24 July 2018 в 17:33

Другие вопросы по тегам:

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