Я хочу изменить имя хоста ОС, но я не хочу перезапускать.
Я редактировал /etc/hostname
, но для его реализации требуется перезапуск. Как этого избежать?
Я хочу изменить имя хоста ОС, но я не хочу перезапускать.
Я редактировал /etc/hostname
, но для его реализации требуется перезапуск. Как этого избежать?
Это легко. Просто нажмите значок Gear (расположенный в правом верхнем углу экрана), откройте экран "Об этом компьютере" (расположенный на значке Gear) и отредактируйте "Имя устройства". Р>
Или, в терминале, используйте следующую команду:
sudo hostname your-new-name
Это приведет к тому, что имя хоста будет присвоено вашему новому имени до перезапуска. См. man hostname
и Как изменить имя компьютера? для получения дополнительной информации. Не используйте _
для вашего имени.
Примечание
После перезапуска будут использованы ваши изменения в /etc/hostname
, поэтому (как вы сказали в вопросе), вы все равно должны использовать
sudo -H gedit /etc/hostname
(или какой-либо другой редактор), так что файл содержит имя хоста.
Чтобы проверить правильность настройки файла, запустите:
sudo service hostname start
Вы также должны отредактировать /etc/hosts
и изменить строку, которая гласит:
127.0.1.1 your-old-hostname
, чтобы теперь оно содержало ваше новое имя хоста. (Это необходимо, иначе многие команды перестанут функционировать.)
Команда hostnamectl
является частью установки по умолчанию как на рабочем столе, так и на сервере.
Он объединяет настройку имени хоста с помощью команды hostname
и редактирования /etc/hostname
. Помимо установки статического имени хоста, он может установить «симпатичное» имя хоста, которое не используется в Ubuntu. К сожалению, редактирование /etc/hosts
все равно должно выполняться отдельно.
hostnamectl set-hostname new-hostname
Эта команда является частью пакета systemd-services
(который с Ubuntu 14.04 также включает в себя timedatectl
и localectl
). Поскольку Ubuntu переносится на systemd
, этот инструмент является будущим.
Изменение имени хоста или имени компьютера в ubuntu без перезагрузки
Измените / etc / hostname и измените на новое значение,
nano /etc/hostname
Измените / etc / hosts и измените старую строку 127.0.1.1 на новое имя хоста
127.0.0.1 localhost
127.0.1.1 ubuntu.local ubuntu # change to your new hostname/fqdn
Примечание : я прочитал его на форуме > Измените / etc / hosts и измените старую строку 127.0.1.1 на новое имя хоста (если вы этого не сделаете, вы больше не сможете использовать sudo. Если вы уже сделали это, нажмите ESC в меню grub, выберите восстановление , и отредактируйте файл хоста с правильными настройками)
Теперь после перезагрузки ваше имя хоста будет новым, которое вы выбрали
Чтобы изменить без перезагрузки , вы можете просто использовать hostname.sh после редактирования / etc / hostname. Вы должны сохранить оба имени хоста в / etc / hosts (127.0.0.1 newhost oldhost), пока не выполните следующую команду:
sudo service hostname start
Примечание : команда выше, чтобы сделать изменение активным. Имя хоста, сохраненное в этом файле (/ etc / hostname), будет сохранено при перезагрузке системы (и будет установлено с использованием той же службы).
Имя по умолчанию было установлено при установке Ubuntu. Вы можете легко изменить его на все, что угодно, в Desktop & amp; Server путем редактирования файлов хостов и хостов. Ниже описано, как:
sudo hostname NEW_NAME_HERE
Это приведет к изменению имени хоста до следующей перезагрузки. Это изменение не будет видно сразу в вашем текущем терминале. Запустите новый терминал, чтобы увидеть новое имя хоста.
Чтобы изменить имя навсегда, запустите команду для редактирования файлов хоста:
sudo -H gedit /etc/hostname
и sudo -H gedit /etc/hosts
Для сервера Ubuntu без GUI запустите sudo vi /etc/hostname
и sudo vi /etc/hosts
и отредактируйте их один за другим.
В обоих файлах измените имя на то, что вы хотите, и сохраните их.
Наконец, перезагрузите компьютер, чтобы применить изменения.
Вот сценарий, который изменяет имя хоста предписанным образом. Это гарантирует, что не только 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}')"
Без перезагрузки:
/etc/hostname
/etc/hosts
соответственно sudo sysctl kernel.hostname=mynew.local.host
Проверьте текущее имя хоста с помощью hostname -f
Чтобы получить текущее имя хоста:
cat /etc/hostname
Это может быть изменено в любом текстовом редакторе. Вам также необходимо обновить запись, отличную от localhost, против 127.0.0.1 в / etc / hosts.
/etc/hostname
на требуемое имя хоста (вы можете редактировать с помощью sudo nano /etc/hostname
) /etc/hosts
замените запись рядом с 127.0. 1 .1 с нужным именем хоста (вы можете редактировать с помощью sudo nano /etc/hosts
) sudo service hostname restart; sudo service networking restart
Это без перезагрузки и без использования терминала.
Открыть терминал. Смотрите сами.
(Для более старых версий текстовое поле недоступно для редактирования.)
sudo hostname your-new-name
sudo /etc/init.d/networking restart
Это должно делать то, о чем я думаю.
Я прочитал ответы, Но я думаю, вероятно, вы ищете это:
Просто выполните эти две команды после редактирования файла /etc/hostname
.
$ sudo service hostname restart
$ exec bash
Вот и все. Не нужно перезапускать. Также убедитесь, что вы также изменили имя в файле /etc/hosts
.
Классический ответ на вопрос оригинального плаката состоит в том, что после того, как вы отредактировали /etc/hostname
, вы примените его без перезапуска, запустив hostname (1) с параметром -F
( --file
) в качестве пользователя root:
sudo hostname -F /etc/hostname
имя хоста (5) с /etc/hostname
, и указанная программа были одинаковыми в Debian и его производных более двадцати лет, а пакет, предоставляющий его , был помечен ess и требуется , а IIRC сценарии инициализации буквально использовали одну и ту же вещь в течение десятилетий ( /etc/init/hostname.conf
все еще содержит ее), поэтому я должен сказать, что я действительно озадачен тем, как об этом никто уже не упоминал:)
В то время как вышеупомянутые подходы ( hostnamectl
, etc/hostname
и т. д.) работают для немедленного изменения имени хоста, с появлением cloud-init - который может управлять настройкой имени хоста - помимо многих других. Таким образом, он не будет вставлен после перезагрузки, если будет установлен cloud-init. Если вы хотите, чтобы изменения оставались после перезагрузки, вам необходимо отредактировать файлы конфигурации с облачным init , отключите узел / модуль обновления хостов :
sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg
или полностью отключить cloud-init:
sudo touch /etc/cloud/cloud-init.disabled
Решение основано на ответ от DigitalOcean Comunity.
Изменить хосты .
$ sudo nano /etc/hosts
Замените oldname на новый.
127.0.0.1 localhost newname
Установите новое имя хоста.
$ sudo hostnamectl set-hostname newname