Ich bin ein Anfänger im Bash-Scripting. Ich möchte ein Bash-Script erstellen, um die Installation und Konfiguration von Inhalten auf meiner Linux-Box auf automatisierte Weise durchzuführen.
Angenommen, ich möchte bearbeiten
/etc/yum.repos.d/epel.repo
durch das Bash-Skript
Was ich tun möchte, ist wie folgt
- Öffnen Sie die Datei /etc/yum.repos.d/epel.repo
- Suchen Sie den Abschnitt [epel]
- Fügen Sie eine Zeilenpriorität = 10 direkt nach Zeile aktiviert = 1 im Epel-Abschnitt hinzu
Für den ersten Teil habe ich hinzugefügt
yum install nano
nano /etc/yum.repos.d/epel.repo
Meine Frage ist, wie man den 2. und 3. Teil mit bash script mit nano macht (wenn möglich, falls nicht möglich, zeig es mir mit sed)
An einigen Stellen muss ich auch Variablen in Dateien ändern
- enable = 0, um = 1 zu aktivieren
- Testen = "1" bis Testen = "0"
- Fügen Sie Text in eine Zeile ein. functions = to function = "text1", "text2"
- Füge Text zu einer Datei hinzu und speichere sie (mit Nano)
Ich weiß, dass es anstrengend ist, aber ich muss es für einen Freund erstellen, der sich nicht mit Servermanagement auskennt.
Jungs, danke für all die Antworten, die ich im Bash-Skript größtenteils erfolgreich gemacht habe
Allerdings habe ich ein anderes Problem Lets i sed ändern annehmen wollen nginx.conf nutzen wir mit worker_processes befassen wird
nun möchte ich den Einsatz sed folgendes 1.Suchen das zu tun , das erste Vorkommen von worker_processes
in dieser conf und Ersetzen von Text mitworker_processes 4;
Besonderer Hinweis: Dies ist nur ein Beispiel. Es kann vorkommen, dass die conf worker_processes 1 enthält; . Das ist ein schwieriger Teil. Ich möchte einen sed-Befehl, der den ersten wHOLE-Übereinstimmungsfall des Wortes worker_processes findet , lösche die Textzeile, in der das Wort gefunden wird, und füge sieworker_processes 4;
dort ein und speichere die Datei. Dies ist jedoch die zuverlässigste Methode beim Bearbeiten von Dateien (ohne das Risiko, dass eine Konf. Beschädigt wird)
Ein letzter Vorschlag Ich habe sed -is / enabled = 0 / enabled = 1 / g '/etc/yum.repos.d/remi.repo verwendet, um enabled = 0 in enabled = 1 im Abschnitt [remi] in remi zu ändern .repo .Jedoch habe ich das Gefühl, dass es alle aktivierten = 0 in dieser Datei ändern kann, was den Server beschädigen wird. Kann jemand einen besseren Code vorschlagen.
Ein anderes Zeug, dessen ich mir nicht sicher bin: PI möchte eine Datei bearbeiten, die dies als Text Testing = "0" hat (Ja, es hat Anführungszeichen und ich muss es behalten). Es sollte von Testing = "0" zu Testing = "geändert werden. 1 "(mit Anführungszeichen)
Außerdem muss ich Text mit Anführungszeichen am Ende einer Datei mit sed einfügen. Wie "Thanks Quanta" (mit Anführungszeichen) Für PHP setzen Sie ein \ mit echo-Anführungszeichen, wissen nicht, wie es für bash gemacht wird
Eine andere Sache, die
ich muss, um eine Zeile in einem Conf zu ändern, aber ich erinnere mich nicht, was der gesamte zu ersetzende Text ist
Wie sein Zuhören = etwas; , ich möchte es ändern, um zu hören = /tmp/php5-fpm.sock;
Daumen hoch für Quanten
Vielen Dank für die großartige Unterstützung