Hängen Sie die Zeile an die Datei / etc / hosts mit dem Shell-Skript an
Habe ich ein neues Ubuntu 12.04 vserver. Ich bin versucht zu schreiben, ein setup-Skript, das schließt eine ganze LAMPEN-installation. Wo ich bin ist ärger Anhängen einer Zeile an die /etc/hosts
- Datei. Meine aktuelle hosts-Datei sieht wie folgt aus:
127.0.0.1 localhost Venus
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Ich würde es wie folgt Aussehen:
127.0.0.1 localhost Venus
192.241.xx.xx venus.example.com venus
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Habe ich versucht eine Vielzahl von sed
Befehle mithilfe der append ( \a
) - Befehl. Für einige Grund, Ubuntu entweder nur echo den Inhalt der hosts
Datei im terminal oder überhaupt nichts macht. Wie würde ich es richtig Spritzen der zweiten Zeile in die Datei mit ein bash-script?
InformationsquelleAutor der Frage Stephen Howells | 2013-10-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellen Sie sicher, dass Sie die
-i
Möglichkeitsed
.Ansonsten
wäre anzufügen die Zeile am Ende der Datei, das könnte so funktionieren, wie Sie erwarten.
InformationsquelleAutor der Antwort damienfrancois
Insert/Update Eintrag
Wenn Sie möchten programmgesteuert einfügen/aktualisieren eines hosts Eintrag mit bash, hier ist ein Skript, das ich schrieb, das zu tun:
Skript ist gedacht für die Verwendung mit OS X, sondern würde die Arbeit an linux, als auch mit kleineren Optimierungen.
InformationsquelleAutor der Antwort brismuth
Wenn Ihr in den mac-oder müssen Sie die sudo-Berechtigung für diese (versuchen Sie dies:
Es werden noch Fragen Sie nach dem Passwort.
InformationsquelleAutor der Antwort Jsonras
InformationsquelleAutor der Antwort Vladimir Dimitrov
Sollte ich darauf hinweisen, dass
sed
(stream editor) ist eigentlich nicht vorgesehen für die Bearbeitung von Dateien, obwohl es kann verwendet werden, zu tun. (Standard-sed nicht mit einem integrierten Mechanismus für das schreiben von anderen als die standard-Ausgabe.) Eine geeignetere tool wäreed
.Folgende ed-Skript sagt "suchen Sie die Zeile mit der (zugegebenermaßen schlampig) regulären Ausdruck /127.0.0.1/und hängen Sie Sie in der nächsten Zeile." (Der einsame Zeit sagt ed zu stoppen anfügen.)
Sagte, Sie kann wirklich fügen Sie einfach diese Zeile, um die Ende deine /etc/hosts-Datei sehr trivial:
InformationsquelleAutor der Antwort kojiro
kannst du sed benutzen, wie:
sed '/Venus/a\
192.241.xx.xx venus.example.com venus' /etc/hosts
InformationsquelleAutor der Antwort crackerjack