Как мне изменить имя хоста без перезагрузки?

Я хочу изменить имя хоста операционной системы, но я не хочу перезагружаться.

Я отредактировал /etc/hostname но для его реализации требуется перезагрузка. Как этого избежать?

Это просто. Просто нажмите на значок шестеренки (расположен в правом верхнем углу экрана), откройте экран "Об этом компьютере" (расположен на значке шестеренки) и отредактируйте "Имя устройства".

Или в терминале используйте следующую команду:

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

так что теперь он содержит ваше новое имя хоста. (Это необходимо, иначе многие команды перестанут функционировать.)

Ubuntu 13.04 и далее

То 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   localhost127.0.1.1   ubuntu.local    ubuntu   # change to your new hostname/fqdn

Примечание> : я прочитал это на форуме Edit /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. Вы можете легко изменить его на все, что захотите, как на рабочем столе, так и на сервере, отредактировав файлы hosts и hostname. Ниже показано, как:

  1. Нажмите CtrlAltt на клавиатуре, чтобы открыть терминал. Когда он откроется, выполните приведенную ниже команду: sudo hostname NEW_NAME_HERE

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

  1. Чтобы навсегда изменить имя, выполните команду для редактирования файлов хоста:

    sudo -H gedit /etc/hostname и sudo -H gedit /etc/hosts

Для сервера Ubuntu без графического интерфейса запустите sudo vi /etc/hostname и sudo vi /etc/hosts и редактируйте их один за другим.В обоих файлах измените имя на то, что вы хотите, и сохраните их.

Наконец, перезагрузите компьютер, чтобы применить изменения.

Сохранение имени хоста при инициализации в облаке (Ubuntu 18+)

В то время как вышеупомянутые подходы (hostnamectl, etc/hostname и т.д.) работают для немедленного изменения имени хоста с появлением запуск в облаке - который может управлять настройкой имени хоста - среди многих других вещей. Таким образом, он не будет зависать после перезагрузки, если установлен cloud-init. Если вы хотите, чтобы изменения сохранялись после перезагрузки, вам нужно будет отредактировать конфигурационные файлы для инициализации в облаке, отключить инициализацию облака модуль установки/обновления имени хоста:

sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg

или полностью отключить облачную инициализацию:

sudo touch /etc/cloud/cloud-init.disabled

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

Использование: sudo ./change_hostname.sh new-hostname

#!/usr/bin/env bashNEW_HOSTNAME=$1echo $NEW_HOSTNAME > /proc/sys/kernel/hostnamesed -i 's/127.0.1.1.*/127.0.1.1\t'"$NEW_HOSTNAME"'/g' /etc/hostsecho $NEW_HOSTNAME > /etc/hostnameservice hostname startsu $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"

Без перезапуска:

  1. измените имя хоста в /etc/hostname
  2. обновление /etc/hosts соответственно
  3. sudo sysctl kernel.hostname=mynew.local.host

Проверьте ваше текущее имя хоста с помощью hostname -f

Чтобы получить ваше текущее имя хоста:

cat /etc/hostname

Это можно изменить в любом текстовом редакторе. Вам также потребуется обновить запись, отличную от localhost, до 127.0.0.1 в /etc/hosts.

Ubuntu 16.04

Решение, основанное на ответ от сообщества DigitalOcean.

Редактировать хозяева файл.

$ sudo nano /etc/hosts

Заменять старое имя с новым.

127.0.0.1 localhost newname

Установите новое имя хоста.

$ sudo hostnamectl set-hostname newname

  1. Замените содержимое /etc/hostname с желаемым именем хоста (вы можете редактировать с помощью sudo nano /etc/hostname)
  2. В /etc/hosts, замените запись рядом с 127.0.1.1 с желаемым именем хоста (вы можете редактировать с помощью sudo nano /etc/hosts)
  3. Выполнять sudo service hostname restart; sudo service networking restart

Предупреждение: не будет работать с Ubuntu 18+, который по умолчанию запускает cloud-init, который управляет именем хоста при загрузке.

@nslntmnx, спасибо тебе!