Sterndeuter
Anmeldungsdatum: 23. Januar 2009
Beiträge: 505
|
Hallo ihr lieben Fragen-Beantworter! Ich habe vorhin mein System neu aufgesetzt und müsste jetzt einige Programme installieren, Sicherungsordner kopieren und einfügen und Dateien verändern (vor allem zur Installation des Epson-Scanners). Nun die Frage: Sind diese Vorgänge über ein Skript aufrufbar? Ich stelle mir das so vor, dass ich ein Skript (mit Pfadangaben für Ordner etc. und Befehlen) erstelle und dieses bei einem Neu-Aufsetzen des Systems einfach ausführe. UIch bräuchte hierzu wahrscheinlich Hilfe, denn meine ganzen Erfahrungen mit Skripts und den Befehlen in Skripts beschränken sich auf die Lösung aus diesem Thread: http://forum.ubuntuusers.de/topic/startskript-fuer-autostart-reihenfolge-erstel/ 🙄 Ich freu' mich schon auf eure Antworten 👍 Liebe Grüße, Daniel
|
ghost1601
Anmeldungsdatum: 19. Dezember 2008
Beiträge: 449
Wohnort: Schwedt
|
Ja klar ist das möglich...
Du legst dir ein Shell-Script an und trägst du die nötigen Befehle ein...Dann lässt du es über eine Shell starten und los geht's. Lg
|
JaiBee
Anmeldungsdatum: 8. Juni 2007
Beiträge: 1469
|
Shell-Skript sind eigentlich recht simpel, wenn man mal das Grundprinzip verstanden hat und die nötigen Grundlagen besitzt. Im Wiki findest du eine Einführung und eine Befehlsübersicht (natürlich nicht vollständig) (im Internet findet man auch viel). Für deine Zwecke benötigst du vermutlich folgende Befehle / Programme:
Am Anfang wird es sicherlich noch etwas unverständlich sein, aber wenn es dann mal funktioniert macht es Spaß (Erfolgserlebnis 😉). Gruß JaiBee
|
Sterndeuter
(Themenstarter)
Anmeldungsdatum: 23. Januar 2009
Beiträge: 505
|
Aber wie funktioniert das mit den root-Rechten in diesen Skripten? Muss man das Skript einfach als root starten und das läuft? Oder kommt (als normaler User) eine Passwortabfrage? Und wie ist das mit Einstellungen, die ich in einigen Programmen machen muss? Ich meine hier jetzt speziell die Konfiguration von Wine, da müssen in einer bestimmten Reihenfolge die Laufwerke hinzugefügt werden, damit das (für mich wichtige) Programm funktioniert... Und bei der Installation des Scanners z. B. muss in einigen Dateien ein Eintrag überprüft werden, ob er drinsteht. Kann man damit auch .iso-Dateien einbinden und dann damit arbeiten? Tja, ihr seht, ich habe viele Fragen und keine Antworten, ich schaue mich jetzt erstmal ein wenig um und poste dann meinen ersten Entwurf des Skripts.
|
JaiBee
Anmeldungsdatum: 8. Juni 2007
Beiträge: 1469
|
Sterndeuter schrieb: Aber wie funktioniert das mit den root-Rechten in diesen Skripten? Muss man das Skript einfach als root starten und das läuft? Oder kommt (als normaler User) eine Passwortabfrage?
Entweder du rufst das Skript mit sudo auf oder du schreibst es direkt ins Skript.
Und wie ist das mit Einstellungen, die ich in einigen Programmen machen muss? Ich meine hier jetzt speziell die Konfiguration von Wine, da müssen in einer bestimmten Reihenfolge die Laufwerke hinzugefügt werden, damit das (für mich wichtige) Programm funktioniert...
Dazu musst du vermutlich die Wine-Konfigurationsdateien im versteckten Ordner .wine im Homeverzeichnis bearbeiten (Dateiendung .reg). Was man da genau bezüglich der Laufwerke ändern muss, weiß ich aber nicht.
Und bei der Installation des Scanners z. B. muss in einigen Dateien ein Eintrag überprüft werden, ob er drinsteht.
Das ist möglich.
Kann man damit auch .iso-Dateien einbinden und dann damit arbeiten?
CD-Images (Abschnitt „Optional-ISO-Images-ueber-ein-Skript-einbinden“) oder FUSE/fuseiso Gruß EDIT: Wenn du viele Programmeinstellungen per Skript anpassen möchtest, ist das ein ziemlicher Aufwand. Ein Backup des Homeverzeichnises, das alle Programmeinstellungen enthält, ist auf jeden Fall unkomplizierter (und übersteht auch eine Neuinstallation).
|
Nobuddy
Anmeldungsdatum: 2. September 2005
Beiträge: 6990
Wohnort: 29614 Soltau
|
Hallo, ich verschieben den Thread mal in das passende Forum. Grüße Nobuddy
|
Sterndeuter
(Themenstarter)
Anmeldungsdatum: 23. Januar 2009
Beiträge: 505
|
Nobuddy: Danke für's Verschieben, hab dieses Forum wohl übersehen. JaiBee: Klar wär's einfacher, ein Backup des Home-Ordners zu erstellen. Aber zwei Gründe sprechen (für mich) dagegen: 1.: Einige Änderungen müssen an Dateien außerhalb des Home-Ordners vorgenommen werden und 2.: das Erstellen von Shell-Skripten ist für mich leider noch ein Buch mit mindestens 17 Siegeln, welches ich unbedingt noch lernen (und verstehen 😉 ) möchte.
|
JaiBee
Anmeldungsdatum: 8. Juni 2007
Beiträge: 1469
|
Sterndeuter schrieb: 2.: das Erstellen von Shell-Skripten ist für mich leider noch ein Buch mit mindestens 17 Siegeln, welches ich unbedingt noch lernen (und verstehen 😉 ) möchte.
Das ist ein gutes Argument; mit etwas Ehrgeiz ist das kein Problem 😉. Gruß
|
Sterndeuter
(Themenstarter)
Anmeldungsdatum: 23. Januar 2009
Beiträge: 505
|
Hmm, jetzt hab ich gleich mal die erste konkrete Frage: Wie kann ich eine Zeile an eine bestimmte Datei anhängen? Also die Datei nicht überschreiben, sondern nur unten drunter einfügen... Was ich bis jetzt gefunden habe ist nur das ">", das die Ausgabe eines Befehls in eine Datei schreibt, wodurch alle Daten der Datei überschrieben werden.
EDIT: ">>" hängt die Ausgabe an die Datei an, aber wie definiere ich eine bestimmte Textzeile als Ausgabe? Meine Überlegung dazu wäre:
sudo gedit "deb http://packages.medibuntu.org/ karmic free non-free" >> /etc/apt/source.list Wird vermutlich nicht so passen, also bitte Verbesserungsvorschläge 😀 Schöne Grüße! Noch ein EDIT: Der Befehl sed -e '[Adresse]a\Textzeile' [Dateiname] sieht aber auch sehr interessant aus, er hängt die Zeile an ein Dokument an. Allerdings habe ich hier folgendes Problem: Wenn ich die Adresse, also die Zeile, nach der etwas angefügt werden soll, leer lasse, passiert gar nichts, wenn ich dort eine Zahl angebe kommt die Ausgabe im Terminal:
daniel@Tubamukl:~/Desktop$ sed -e '1a\Testzeile 1' Test
Vorgegebene Zeile im Dokument
Testzeile 1
Umleiten mit >> hat auch nichts gebracht. Was tun?
|
Nobuddy
Anmeldungsdatum: 2. September 2005
Beiträge: 6990
Wohnort: 29614 Soltau
|
echo & tee wären da das Richtige. tee --help Gibt Dir die notwendigen Infos. Beispiel, erstellen in /home/USER echo "Diese Zeile hänge ich an eine Datei an. Sollte Diese Datei nicht vorhanden sein, so wird sie dadurch erstellt." | tee -a /home/USER/ORT/Datei.txt Beispiel, erstellen in / root echo "Diese Zeile hänge ich an eine Datei an. Sollte Diese Datei nicht vorhanden sein, so wird sie dadurch erstellt." | sudo tee -a /tmp/ORT/Datei.txt
|
JaiBee
Anmeldungsdatum: 8. Juni 2007
Beiträge: 1469
|
Nobuddy schrieb: Beispiel, erstellen in /home/USER echo "Diese Zeile hänge ich an eine Datei an. Sollte Diese Datei nicht vorhanden sein, so wird sie dadurch erstellt." | tee -a /home/USER/ORT/Datei.txt
In deinem Fall benötigst du zwar ein sudo (→ "tee-Variante") aber oft reicht auch folgendes aus:
echo "Diese Zeile hänge ich an eine Datei an. Sollte Diese Datei nicht vorhanden sein, so wird sie dadurch erstellt." >> /home/USER/ORT/Datei.txt
Im Wiki gibt's dazu auch noch ein paar Infos, falls es dich interessiert. Gruß
|
Sterndeuter
(Themenstarter)
Anmeldungsdatum: 23. Januar 2009
Beiträge: 505
|
Wieso benötige ich ein sudo für die tee-variante? Müsste das nicht so funktionieren:
#!/bin/bash
#### Skype installieren ####
sudo echo "deb http://packages.medibuntu.org/ karmic free non-free" | tee -a /etc/apt/source.list && # Medibuntu-Quelle hinzufügen
sudo wget http://www.medibuntu.org/sources.list.d/hardy.list -O /etc/apt/sources.list.d/medibuntu.list && # Download von medibuntu.org; -O schreibt in stdout (= Terminal)
sudo apt-get update && # Update der Paketquellen
sudo apt-get --yes -q --allow-unauthenticated install medibuntu-keyring && # Installation ohne Authentifizierung von Medibuntu erlaubern
sudo apt-get -q update && # erneutes Update der Paketquellen, diesmal ohne Ausgabe im Terminal
# Dieser Teil diente lediglich dem Zufügen der Medibuntu-Quellen zu den Repositories, keine Funktion im Installationsverlauf von Skype.
sudo gdebi /home/daniel/Desktop/Installationsdateien/skype-ubuntu-intrepid_2.1.0.47-1_i386.deb # Installation von Skype aus dem Installationsordner
exit 0 Mein sudo vor dem Befehl ist nötig, da die Datei /etc/apt/source.list mit root-Rechten bearbeitet werden muss. Ein vorheriger Versuch mit einer "Nicht-root-Datei" hat auch ohne sudo funktioniert.
|
Nobuddy
Anmeldungsdatum: 2. September 2005
Beiträge: 6990
Wohnort: 29614 Soltau
|
Ganz einfach, wenn Du außerhalb von /home/USER etwas machen möchtest, benötigst Du Rootrechte, darum > sudo!
|
JaiBee
Anmeldungsdatum: 8. Juni 2007
Beiträge: 1469
|
Sieht für den Anfang schon gut aus.
sudo gdebi /home/daniel/Desktop/Installationsdateien/skype-ubuntu-intrepid_2.1.0.47-1_i386.deb # Installation von Skype aus dem Installationsordner
Hier kannst du 2 Dinge verbessern:
die Variable $HOME, statt /home/daniel verwenden (ist aber nicht unbedingt notwendig) Installiere das Debian-Paket besser mit dpkg – dann brauchst du auch keine grafische Oberfläche. Grafische Programme sollte man außerdem nicht mit sudo starten, sondern mit gksu (Gnome, Ubuntu) oder kdesudo (bei KDE).
Außerdem könnte man eventuell die Skype-Versionsbezeichnung durch einen Platzhalter ersetzen. So würde das dann insgesamt aussehen: sudo dpkg -i $HOME/Desktop/Installationsdateien/skype-ubuntu-*i386.deb # Installation von Skype aus dem Installationsordner Gruß JaiBee
|
Sterndeuter
(Themenstarter)
Anmeldungsdatum: 23. Januar 2009
Beiträge: 505
|
Danke euch beiden, ich werde mich wieder melden, wenn ich weitere Fragen habe 👍
|