在Linux系統中,自定義主機名可以通過編寫一個簡單的腳本來實現。以下是一個基本的腳本示例,用于設置和驗證新的主機名:
#!/bin/bash
# 檢查是否提供了新的主機名
if [ -z "$1" ]; then
echo "Usage: $0 <new_hostname>"
exit 1
fi
# 新的主機名
NEW_HOSTNAME=$1
# 檢查主機名是否有效
if ! [[ "$NEW_HOSTNAME" =~ ^[a-zA-Z0-9_-]{1,63}$ ]]; then
echo "Invalid hostname. Hostnames must be 1 to 63 characters long and can only contain letters, numbers, underscores, or hyphens."
exit 1
fi
# 檢查主機名是否已經被使用
if grep -q "^$NEW_HOSTNAME$" /etc/hosts; then
echo "Hostname already in use. Please choose a different one."
exit 1
fi
# 設置新的主機名
sudo hostnamectl set-hostname "$NEW_HOSTNAME"
# 更新 /etc/hosts 文件
sudo sed -i "s/^127.0.0.1.*/127.0.0.1 $NEW_HOSTNAME/" /etc/hosts
# 重啟網絡服務以應用更改
sudo systemctl restart networking
echo "Hostname changed to $NEW_HOSTNAME successfully."
change_hostname.sh
。chmod +x change_hostname.sh
sudo ./change_hostname.sh new-hostname
sudo
。/etc/hosts
文件中的主機名,確保網絡服務能夠正確識別新的主機名。通過這個腳本,你可以輕松地自定義Linux系統的主機名。