모든 기반(도메인 이름 제외)을 다루었는지 확인하고 싶었습니다. 내가 아는 한 모든 것이 잘 작동합니다.
#!/bin/sh
# Needs 1 and only 1 argument
if [ "$#" -ne 1 ]; then
echo "Usage: $0 NEW-HOSTNAME" >&2
exit 1
fi
# I could probably put in a regex here to check that the hostname is good.
# Change the hostname in the session (does this even do anything?)
sudo hostname -b ${1}
# Change the visible hostname permanently (writes to /etc/hostname)
sudo hostnamectl set-hostname ${1}
# Change the mail hostname if there is one
if [ -f "/etc/mailname" ]; then
echo ${1} | sudo tee /etc/mailname > /dev/null
fi
# Change the hostname in the hosts file (aka the fun one)
my_temp=`mktemp`
grep -v "127.0.1.1" < /etc/hosts > ${my_temp}
echo 127.0.1.1 ${1} >> ${my_temp}
sudo cp ${my_temp} /etc/hosts
rm -f ${my_temp}
# And now for a reboot
echo "Rebooting."
sudo shutdown -r now
내가 정말 신경질적이라면 이전 호스트 이름을 저장하고 재부팅 후 참조로 사용하여 남아 있는 xauth 쿠키를 모두 지울 수 있을 것 같습니다.