Я хочу изменить имя хоста ОС, но я не хочу перезапускать.
Я отредактировал /etc/hostname, но для его реализации требуется перезапуск. Как этого избежать?
Это легко. Просто нажмите значок Gear (расположенный в правом верхнем углу экрана), откройте экран «Об этом компьютере» (расположенный на значке Gear) и отредактируйте «Имя устройства».
Или, в терминале, используйте следующую команду:
sudo hostname your-new-name
Это приведет к тому, что имя хоста будет присвоено вашему новому имени до перезапуска. См. [F5] и Как изменить имя компьютера? для дополнительной информации. Не используйте _ для вашего имени.
Примечание
После перезапуска будут использоваться изменения в man hostname , поэтому (как вы сказали в вопросе), вы все равно должны использовать
sudo -H gedit /etc/hostname
(или какой-либо другой редактор), чтобы файл содержал имя хоста.
Чтобы проверить правильность настройки файла, запустите :
sudo service hostname start
Вы также должны отредактировать /etc/hosts и изменить строку, которая гласит:
127.0.1.1 your-old-hostname
, чтобы теперь оно содержало ваше новое имя хоста. (Это необходимо, иначе многие команды перестанут функционировать.)
Это легко. Просто нажмите значок Gear (расположенный в правом верхнем углу экрана), откройте экран «Об этом компьютере» (расположенный на значке Gear) и отредактируйте «Имя устройства».
Или, в терминале, используйте следующую команду:
sudo hostname your-new-name
Это приведет к тому, что имя хоста будет присвоено вашему новому имени до перезапуска. См. [F5] и Как изменить имя компьютера? для дополнительной информации. Не используйте _ для вашего имени.
Примечание
После перезапуска будут использоваться изменения в man hostname , поэтому (как вы сказали в вопросе), вы все равно должны использовать
sudo -H gedit /etc/hostname
(или какой-либо другой редактор), чтобы файл содержал имя хоста.
Чтобы проверить правильность настройки файла, запустите :
sudo service hostname start
Вы также должны отредактировать /etc/hosts и изменить строку, которая гласит:
127.0.1.1 your-old-hostname
, чтобы теперь оно содержало ваше новое имя хоста. (Это необходимо, иначе многие команды перестанут функционировать.)
Решение основано на ответе от DigitalOcean Comunity.
Редактировать файл hosts.
$ sudo nano /etc/hosts
Заменить hosts с новым.
127.0.0.1 localhost newname
Установите новое имя хоста.
$ sudo hostnamectl set-hostname newname
Классический ответ на вопрос оригинального плаката заключается в том, что после того, как вы отредактировали /etc/hostname, вы примените его без перезапуска, запустив имя хоста (1) с параметром -F (--file) в качестве пользователя root: [ ! d0] sudo hostname -F /etc/hostname
Обработка hostname (1) с /etc/hostname и указанной программой была одинаковой в Debian и ее производных уже более двадцати лет, а пакет, предоставляющий ее был отмечен как существенный, так и требуемый, и IIRC сценарии инициализации буквально использовали одно и то же в течение десятилетий (/etc/init/hostname.conf все еще содержит его), поэтому я должен сказать, что я действительно озадачен тем, как об этом никто уже не упоминал:)
Вот сценарий, который изменяет имя хоста предписанным образом. Это гарантирует, что не только функции sudo, но и X11 продолжают функционировать без необходимости перезапуска.
Использование: sudo ./change_hostname.sh new-hostname
#!/usr/bin/env bash
NEW_HOSTNAME=$1
echo $NEW_HOSTNAME > /proc/sys/kernel/hostname
sed -i 's/127.0.1.1.*/127.0.1.1\t'"$NEW_HOSTNAME"'/g' /etc/hosts
echo $NEW_HOSTNAME > /etc/hostname
service hostname start
su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"
Чтобы получить текущее имя хоста:
cat /etc/hostname
Это можно изменить в любом текстовом редакторе. Вам также необходимо обновить запись, отличную от localhost, против 127.0.0.1 в /etc/hosts.
sudo hostname your-new-name
sudo /etc/init.d/networking restart
Это должно сработать, я думаю,
Хотя вышеупомянутые подходы (hostnamectl, etc/hostname и т. д.) работают для немедленного изменения имени хоста с появлением cloud-init - который может управлять настройкой имени хоста - помимо многих других. Таким образом, он не будет вставлен после перезагрузки, если будет установлен cloud-init. Если вы хотите, чтобы изменения остались после перезагрузки, вам необходимо отредактировать файлы конфигурации init-init, отключите модуль / номер узла хоста host-init:
sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg
или полностью отключите cloud-init :
sudo touch /etc/cloud/cloud-init.disabled
Я прочитал ответы. Но я думаю, что вы, вероятно, ищете это:
Просто выполните эти две команды после редактирования файла /etc/hostname.
$ sudo service hostname restart
$ exec bash
Это все. Не нужно перезапускать. Также убедитесь, что вы также изменили имя в файле /etc/hosts.
Без перезапуска:
изменить имя хоста в /etc/hostname update /etc/hosts соответственно sudo sysctl kernel.hostname=mynew.local.hostПроверить текущее имя хоста с помощью hostname -f
Это без перезапуска и без использования терминала.
Перейдите в раздел «Настройки системы» -> «Подробности». Вот оно. Помимо имени устройства есть текстовое поле. Отредактируйте текстовое поле и закройте окно.Открыть терминал. Посмотрите сами.
(Для более старых версий текстовое поле недоступно для редактирования.)
Решение основано на ответе от DigitalOcean Comunity.
Редактировать файл hosts.
$ sudo nano /etc/hosts
Заменить hosts с новым.
127.0.0.1 localhost newname
Установите новое имя хоста.
$ sudo hostnamectl set-hostname newname
Классический ответ на вопрос оригинального плаката заключается в том, что после того, как вы отредактировали /etc/hostname, вы примените его без перезапуска, запустив имя хоста (1) с параметром -F (--file) в качестве пользователя root: [ ! d0] sudo hostname -F /etc/hostname
Обработка hostname (1) с /etc/hostname и указанной программой была одинаковой в Debian и ее производных уже более двадцати лет, а пакет, предоставляющий ее был отмечен как существенный, так и требуемый, и IIRC сценарии инициализации буквально использовали одно и то же в течение десятилетий (/etc/init/hostname.conf все еще содержит его), поэтому я должен сказать, что я действительно озадачен тем, как об этом никто уже не упоминал:)
Вот сценарий, который изменяет имя хоста предписанным образом. Это гарантирует, что не только функции sudo, но и X11 продолжают функционировать без необходимости перезапуска.
Использование: sudo ./change_hostname.sh new-hostname
#!/usr/bin/env bash
NEW_HOSTNAME=$1
echo $NEW_HOSTNAME > /proc/sys/kernel/hostname
sed -i 's/127.0.1.1.*/127.0.1.1\t'"$NEW_HOSTNAME"'/g' /etc/hosts
echo $NEW_HOSTNAME > /etc/hostname
service hostname start
su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"
Чтобы получить текущее имя хоста:
cat /etc/hostname
Это можно изменить в любом текстовом редакторе. Вам также необходимо обновить запись, отличную от localhost, против 127.0.0.1 в /etc/hosts.
sudo hostname your-new-name
sudo /etc/init.d/networking restart
Это должно сработать, я думаю,
Хотя вышеупомянутые подходы (hostnamectl, etc/hostname и т. д.) работают для немедленного изменения имени хоста с появлением cloud-init - который может управлять настройкой имени хоста - помимо многих других. Таким образом, он не будет вставлен после перезагрузки, если будет установлен cloud-init. Если вы хотите, чтобы изменения остались после перезагрузки, вам необходимо отредактировать файлы конфигурации init-init, отключите модуль / номер узла хоста host-init:
sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg
или полностью отключите cloud-init :
sudo touch /etc/cloud/cloud-init.disabled
Я прочитал ответы. Но я думаю, что вы, вероятно, ищете это:
Просто выполните эти две команды после редактирования файла /etc/hostname.
$ sudo service hostname restart
$ exec bash
Это все. Не нужно перезапускать. Также убедитесь, что вы также изменили имя в файле /etc/hosts.
Без перезапуска:
изменить имя хоста в /etc/hostname update /etc/hosts соответственно sudo sysctl kernel.hostname=mynew.local.hostПроверить текущее имя хоста с помощью hostname -f
Это без перезапуска и без использования терминала.
Перейдите в раздел «Настройки системы» -> «Подробности». Вот оно. Помимо имени устройства есть текстовое поле. Отредактируйте текстовое поле и закройте окно.Открыть терминал. Посмотрите сами.
(Для более старых версий текстовое поле недоступно для редактирования.)