Я хочу змінити ім'я хоста ОС, але не хочу перезапускати.
Я відредагував, /etc/hostname
але для його впровадження потрібен перезапуск. Як цього уникнути?
Я хочу змінити ім'я хоста ОС, але не хочу перезапускати.
Я відредагував, /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
так що тепер воно містить ваше нове ім’я хоста. (Це потрібно, інакше багато команд перестануть функціонувати.)
/etc/hosts
(див. Інші відповіді)
hostname
нове ім’я вступить в силу негайно, воно не є "постійним", якщо ви також не зміните, /etc/hostname
і /etc/hosts
, оскільки це файли, які будуть прочитані після перезавантаження або збоїв, що, звичайно, ви можете не бути очікуючи достроково.
hostnamectl
Команда є частиною установки за замовчуванням на настільних і серверних редакціях.
Він поєднує в собі встановлення імені хоста за допомогою hostname
команди та редагування /etc/hostname
. Окрім встановлення статичного імені хоста, воно може встановити "гарне" ім'я хоста, яке не використовується в Ubuntu. На жаль, редагування /etc/hosts
все ще потрібно проводити окремо.
hostnamectl set-hostname new-hostname
Ця команда є частиною systemd-services
пакету (до складу Ubuntu 14.04 також входять команди timedatectl
та localectl
команди). Коли Ubuntu переходить на systemd
цей інструмент, це майбутнє.
hostnamectl
не існує. Здогадайтесь, деякі аромати Ubuntu ще не використовують systemd.
Зміна імені хоста чи комп'ютера в ubuntu без перезавантаження
Редагувати / etc / ім'я хоста та змінити нове значення,
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 / name host. Ви повинні зберігати обидва імена хостів у / etc / hosts (127.0.0.1 newhost oldhost), поки не виконаєте команду нижче:
sudo service hostname start
Примітка . Вищенаведена команда для активації змін. Ім'я хоста, збережене в цьому файлі (/ etc / hostname), буде збережено під час перезавантаження системи (і буде встановлено за допомогою тієї ж послуги).
sudo: unable to resolve host old-hostname
. З цього боку рішення @jesperado добре працює.
/etc/hosts
, речі манти починають виходити з ладу 12.04.2 LTS, включаючи w
команду, Apache /sbin/reboot
та багато іншого. Обов’язково оновіть/etc/hosts
127.0.0.1
на, так localhost
і 127.0.1.1
на власне ім'я хоста. Правильно? Потім, наприкінці вашої відповіді, для дії без робота , ви посилаєтесь /etc/hosts
і 127.0.0.1 newhost oldhost
. Отже, немає потреби в 127.0.1.1
адресі?
sudo nano /etc/hosts
щоб зміни вступили в силу; без судо, просто nano /etc/hosts
не врятував зміни
Ім'я за замовчуванням було встановлено під час встановлення Ubuntu. Ви можете легко змінити його на все, що завгодно, як на робочому столі, так і на сервері, відредагувавши файли хостів та імен хостів. Нижче описано, як:
sudo hostname NEW_NAME_HERE
Це змінить ім'я хоста до наступного перезавантаження. Зміни не будуть помітні негайно у вашому поточному терміналі. Запустіть новий термінал, щоб побачити нове ім'я хоста.
Щоб назавжди змінити ім'я, запустіть команду для редагування файлів хосту:
sudo -H gedit /etc/hostname
і sudo -H gedit /etc/hosts
Для сервера Ubuntu без графічного інтерфейсу, запускати 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}')"
su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"
? Просто цікаво.
xauth list
) і замінює старе ім'я хоста новим ім'ям хоста ( sed
). Потім awk
ставить лапки навколо першого аргументу, xauth add
оскільки xauth
формат вводу та виводу не симетричний.
Без перезапуску:
/etc/hostname
/etc/hosts
відповідноsudo sysctl kernel.hostname=mynew.local.host
Перевірте своє поточне ім’я хоста hostname -f
sudo: unable to resolve host oldname
, sysctl: setting key "kernel.hostname": Read-only file system
. Може тому, що це КТ всередині Proxmox.
У той час як вищезазначені підходи ( hostnamectl
, etc/hostname
і т. Д.) Працюють для негайної зміни імені хоста, з появою хмари-init - який може керувати налаштуванням імені хоста - серед багатьох інших речей. Таким чином, він не буде триматися після перезавантаження, якщо встановлено хмарно-ініт. Якщо ви хочете, щоб зміни залишалися після перезавантаження, вам потрібно буде відредагувати файли конфігурації cloud-init , відключити набір / оновлення модуля імені хоста cloud-init :
sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg
або повністю відключити хмару-init:
sudo touch /etc/cloud/cloud-init.disabled
/etc/cloud/cloud.cfg
. Яка назва пакета? Просто cloud-init
?
/etc/hostname
на потрібне ім'я хоста (ви можете редагувати за допомогою sudo nano /etc/hostname
)/etc/hosts
, замініть запис поряд із 127.0. 1 .1 з потрібним іменем хоста (ви можете редагувати за допомогою sudo nano /etc/hosts
)sudo service hostname restart; sudo service networking restart
# if you do nothing you'll end up with: # * /etc/hostname (and 'hostname') managed via: 'preserve_hostame: false' # if you do not change /etc/hostname, it will be updated with the cloud # provided hostname on each boot. If you make a change, then manual # maintenance takes over, and cloud-init will not modify it.
що в даний момент у мене немає Ubuntu 18, тому я не можу перевірити його до вихідних.
Це без перезавантаження та без використання терміналу.
Відкритий термінал. Побачте самі.
(Для старих версій текстове поле не можна редагувати.)
Класична відповідь на запитання оригінального плаката полягає в тому, що після редагування /etc/hostname
ви застосовуєте його без перезапуску, запустивши ім'я хоста (1) з параметром -F
( --file
) як корінь:
sudo hostname -F /etc/hostname
Ім'я хоста (5), що працює з /etc/hostname
цією програмою, було одне і те ж в Debian і його похідних вже більше двадцяти років, і пакет, що забезпечує його , позначений як необхідний і необхідний , а IIRC сценарії init буквально використовували те ж саме для десятиліття ( /etc/init/hostname.conf
все ще містить його), тому мушу сказати, що я щиро спантеличений, як ніхто про це вже не згадував :)
sudo hostname your-new-name
sudo /etc/init.d/networking restart
Це повинно зробити роботу, яку я думаю
Я прочитав відповіді, але думаю, напевно, ви цього шукаєте:
Просто виконайте ці дві команди після редагування /etc/hostname
файлу.
$ sudo service hostname restart
$ exec bash
Це все. Не потрібно перезавантажувати. Також переконайтесь, що ви також змінили ім’я у /etc/hosts
файлі.
/etc/hosts
(я підтвердив 14.04).
Рішення на основі відповіді від DigitalOcean Comunity.
Редагувати файл хостів .
$ sudo nano /etc/hosts
Замініть старе ім'я на нове.
127.0.0.1 localhost newname
Встановіть нове ім’я хоста.
$ sudo hostnamectl set-hostname newname