Ana bilgisayar adımı değiştirdim, neden bash PS1 istemim değişmedi


21

/ Etc / hostname dosyasını düzenleyerek hostnameimi değiştirdim ve hostnameand hostname -Fkomutlarını kullanarak yeni hostname'i görebilirim .

Ancak kabuk istemi hala eski ana bilgisayar adını gösteriyor.

Bu arada Ubuntu 11.0.4. İstemi, düzenlemediğim benim ayarlarım .bashrc. Çıkış yapmak ve hatta yeniden başlatmanın bir etkisi yoktur.

Standart Ubuntu'nun ilgili bölümü .bashrc:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

($ debian_chroot giriş yaptığım için ayarlanmamış ...)

Sanırım ana bilgisayar adı \ h özel karakteri ile seçildi.

İşte kabukta bildirildiği gibi PS1 ayarı:

PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '

Ve işte PS1’in gösterdiği:

username@oldhostname:~$ 

Warren'ın cevabındaki tam komutu kullanarak işlemi tekrarladım. Ana bilgisayar adının yeniden başlatılıncaya kadar çalıştığı ancak /etc/hostnameyeni ana bilgisayar adını içermesine rağmen kayboldu .


Ne echo $PS1gösterir?
Keith,

@Keith - PS1'i göstermek için soruyu güncelledim.
Dizzley

Güncelleme için teşekkürler, bu beni mahvetti çünkü dhcp'nin bunu yapabileceğini hatırlamadım çünkü asla buna izin vermedim. Ayrıca geri döndüğünüz ve sorunun üzerinde kaldığınız ve (sonunda) düzenlemenizi yanıt olarak eklediğiniz için teşekkür ederiz, unix.SE! 'Ye hoş geldiniz!
Caleb,

Yanıtlar:


24

Keith ve Warren'ın önceki cevapları ve gerçek kararların ışığında kendi soruma cevap veriyorum. Algılanan sorun, "ana bilgisayar adımı değiştirdim, neden bash PS1 komut istemim değişmedi?" İdi. Asıl sorun "Sistemim neden yeniden başlatırken eski ana bilgisayar adına geri döndü?"

Bu özel durumda cevap şuydu: DHCP yerel ayarları geçersiz kılacak şekilde yapılandırılmış.

Ana Bilgisayar Adını Değiştirmenin Etkili Bir Yolu

Aşağıdakiler Ubuntu, ymmv için geçerlidir .

  1. Kalıcı ana bilgisayar adını dosyayı düzenleyerek değiştirin /etc/hostname.

    echo 'mynewhostname' | sudo tee /etc/hostname
  2. Çalışan sistemin ana bilgisayar adını değiştirmek için hostname komutunu kullanın. 1. Adım olmadan bu yeniden başlatma sırasında sıfırlanır. Az önce belirlediğiniz değeri kullanmak mantıklıdır:

    sudo hostname -F /etc/hostname

    veya eşdeğeri:

    sudo hostname `cat /etc/hostname`
  3. Tam etki alanı adını (FQDN) olarak ayarlayın /etc/hosts.

    Alıntı:

    127.0.0.1    mynewhostname.mydomainname.com    mynewhostname
  4. Makinenin bir DHCP istemcisi çalıştırıp çalıştırmadığını kontrol edin. IP adresine ek olarak, bir DHCP sunucusu ana bilgisayar adı ve DNS çözünürlüğü gibi ayarları geçersiz kılabilir. Bir "bulut" barındırma hizmeti bunu yapabilir, böylece diskteki bir makinenin görüntüsü, yapılandırma dosyalarını düzenlemeden birkaç kez yeniden kullanılabilir.

    Varsa /etc/default/dhcpcd, SET_HOSTNAMEyönergeyi yorumlamak için DHCP istemcisi yapılandırma dosyasını düzenleyin :

    #SET_HOSTNAME='yes'
  5. Mümkün olduğunda, sistemi yeniden başlatın ve adın değişip değişmediğini kontrol edin:

    hostname

4. Adım bana haber oldu ve beni yakaladı. Bu cevabın bütün sürecini belgelendirmenin faydalı olacağını düşündüm. Bu adım, (Linode) barındırma hizmetimin gerçekten doğru okumam gereken talimatlarını izniyle .


Bu cevap uygun gözüküyorsa, kendi cevabım için oy kullanamadığım için başkalarından alınan bir oylama takdir edilecektir.
Dizzley

2

Dosya /etc/hostname, ana bilgisayar adının kalıcı kopyasını tutar ve ön yükleme sırasında çalışma zamanı kopyasını ayarlamak için kullanılır. Çalışma zamanı kopyasını yeniden başlatmadan değiştirmek için, şunu söyleyin:

$ sudo hostname `cat /etc/hostname`

Veya sadece yeni ana bilgisayar adını hostname(1)komuta parametre olarak iletin.


Benim sorunum devam ediyor. Çalışma zamanı ana bilgisayar adını kullandım ve doğruladım (soruya bakın). Ayrıca, "sudo hostname -F / etc / hostname" komutun alternatif bir şeklidir (man hostname). Ancak, önerdiğiniz gibi yaptım. Ana bilgisayar adı yeniden başlatıldığında kayboluyor. :( Ben de /etc/host.conf FQDN'yi koyduk ve /etc/host.conf tek kullanım bağlama ayarlandığında ben zararına hala duyuyorum..
Dizzley

Q’yu bir çözünürlükle güncelledim ve bir süre sonra kendi soruma cevap vereceğim. Teşekkürler Warren / Keith.
Dizzley

Bu da 'FQDN'yi / etc / hosts dosyasına da koydum' olmalıydı.
Dizzley

-1

Sanırım /hiçinde olduğunu PS1ve ardından FQDN'den bahsettim, şimdi eski ve kullanmaya çalıştığınız yeni bir ana bilgisayar adı gönderebilir misiniz?

  • /h ana bilgisayar adını ilk 'e kadar gösterir.
  • /H tam FQDN'yi gösterir

bir şans ver


Selam njekto. NB \ h değil / h. Sunucu adımı "oldname" ve "newname" (nokta yok) gibi bir üretim sunucusu olduğunda gizli tutmayı seviyorum. Unix'te yaşlı bir elim ama bu beni çok şaşırttı - dhcpcd'nin böyle kullanıldığını hiç görmedim. PS1 isteminin hatalı olduğu görülüyordu, ancak asıl sorun / etc / hostname idi, önyüklemede dhcpcd yazıyordu. Dhcpcd, benim makine görüntüm başka bir IP adresi kurulumuna yeniden dağıtılabildiği veya çoğaltılabildiği için kullanılır; böylece hoster'ım Linode, DHCP kullanarak varsayılan değerleri oluşturur, böylece Ubunto görüntümün her örneği benzersiz olur. Ben bir bulut acemiyim, bu yüzden eğlenceli oldu.
Dizzley

-1
  • Capitalize hSepetinde PS1:

    PS1='${debian_chroot:+($debian_chroot)}\u@\H:\w\$ '
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.