FAQ: Windows -> GNU/Linux - Umstieg, Einstieg, Aufstieg - Seite 7

Seite 7 von 67 - Forum: Linux and other OS auf overclockers.at

URL: https://www.overclockers.at/linux/faq_windows_gnu_linux_umstieg_einstieg_aufstieg_127618/page_7 - zur Vollversion wechseln!


COLOSSUS schrieb am 04.10.2009 um 08:40

ad 1:
nein, fuer solche Aufgaben gibt es anacron (siehe http://en.wikipedia.org/wiki/Anacron). Was auch immer du momentan als Backup-Script verwendest: schau dir auch rdiff-backup an.

ad 2:
Beschreib lieber noch einmal, was genau du tun willst (das was, nicht unbedingt das wie) - dann kann man dir besser weiterhelfen. Generell gilt: alles, was mit `rm` zu tun hat, ist gefaehrlich. Ein "undelete" gibt es nicht. (Das ist zwar unter bestimmten Umstaenden gelogen, aber es ist viel gesuender fuer die Nerven, wenn man diese Tatsache einfach uebersieht, und ein bisschen zu viel als zu wenig vorsichtig agiert.)


prayerslayer schrieb am 04.10.2009 um 12:48

ad 1: Danke, werd ich machen.

ad 2: Naja, ich weiß, dass ich mit der Pipe das Ergebnis eines Befehls umleiten kann. Nur rm spielt in dem Fall nicht mit (missing parameter).
Die Installation (was ich mir dabei auch immer gedacht habe) von nautilus-dropbox hat nicht ganz funktioniert, inzwischen ist es wieder unten (mittels apt). Trotzdem habe ich noch ein paar Dateien mit nautilus und dropbox im Pfad, die jetzt natürlich obsolet sind. Die wär ich gern los. Mein Plan war halt

Code:
locate dropbox | grep nautilus | rm
aber das geht nicht :)
Ich hoff, es is jetzt klarer :D


COLOSSUS schrieb am 04.10.2009 um 14:21

Zur Pipe-Geschichte moechte ich gleich ein bisschen weiter ausholen:

Eine Pipe ("|") ist eine unidirektionale Datenleitung zwischen zwei Prozessen, die Text von einem schreibenden Prozess zu einem Prozess lesenden leiten kann.

Wenn du einen Prozess auf deiner Shell startest, so hat dieser von Anfang an drei sogenannte File Descriptors ("fd") offen: Standard Input ("stdin"), Standard Output ("stdout"), und Standard Error ("stderr"). Diese sind, vereinfacht gesprochen, mit deinem Terminal verbunden. Die beiden Kanaele stdout und stderr geben dir normalerweise einfach alles, was in sie geschrieben wird, auf dem Terminal bzw. deinem Monitor aus. Wenn dir ein Programm etwas mitteilen oder anzeigen will, kann es das also (z. B.) ueber einen dieser beiden Kanaele tun. Deine Tastatureingaben landen in stdin; wenn das Programm diesen Datenkanal auswertet, kannst du also via Tastatureingaben mit ihm kommunizieren. Ein gutes Beispiel ist das Programm `cat`: wenn man es einfach so aufruft, liest es (zeilenweise) alle Eingaben von stdin, und gibt diese auf stdout wieder aus.

Code:
colo@zealot ~ $ cat
Dies ist eine Zeile von stdin. Die Zeile darunter luegt!
Dies ist eine Zeile von stdin. Die Zeile darunter luegt!
Ich hab's ja gesagt…
Ich hab's ja gesagt…
Eine Pipe zwischen zwei Programmaufrufen macht nichts Anderes, als stdout des vorderen Programms in stdin des hinteren Programms zu leiten. Mit `uptime | wc -c` z. B. kann ich das Programm `wc` die Ausgabe des Programms `uptime? auf stdin empfangen lassen. Dort treibt es dann mit den Daten, was immer der Programmautor von `wc` fuer sie vorgesehen hat. (In diesem beispiel zaehlt es die Anzahl der Zeichen, die der durch die Pipe geschickte Text enthaelt. Sinnlos, aber auch nur ein Beispiel, gell? ;))

Es gibt noch ein paar andere Moeglichkeiten ueber stdin hinaus, um mit einem UNIX-Programm zu interagieren. Eines davon ist die aufrufende Kommandozeile des Programms, wo sich auch die Argumentliste ("argv") des Programms tummelt. Wenn du in deiner Shell z. B. mit `/usr/bin/nano` deinen Texteditor startest, so ist die Zeichenkette "/usr/bin/nano" das erste (und einzige) Element von argv. Wenn du aber `/usr/bin/nano /tmp/file.txt` eingibst um gleich direkt einen Pfad zu einer zu editierenden Datei anzugeben, so hast du zwei Elemente: das erste (argv[0]) lautet "/usr/bin/nano", das zeite (argv[1]) lautet "/tmp/file.txt".
Auch das Programm `rm` wertet die aufrufende Kommandozeile, sein argv also, aus: Neben einiger Parameter, die das Wie? beeinflussen (z. B.: Sollen Verzeichnisse rekursiv geloescht werden? Soll vor jedem tatsaechlichen Loeschvorgang nochmal nachgefragt werden? … etc.), gibt es auch noch eine Liste von Dateien, die geloescht werden sollen: das Was? also.

Ein Aufruf von `rm -i /tmp/A /tmp/b /tmp/cde` z. B. weist das Programm `rm` an, die drei Dateien /tmp/{A,b,cde} jeweils mit Rueckfrage "Soll ich wirklich…?" zu loeschen.

Dabei ist zu beachten: `rm` kuemmert sich um argv. `rm` ist es aber voellig egal, was man in sein stdin fuettert. Insofern kann man `rm` nicht mittels Pipe sagen, welche Dateien es zu loeschen hat. Man muss einen Weg finden, die Liste der zu loeschenden Dateien in argv von `rm` zu bringen. Das geht z. B. mittles find. Fuer deinen speziellen Anwendungsfall konkret so:
Code:
find / -iname "*dropbox*" -exec echo rm -rf {} +

Das echo in der Kommandozeile oben dient dazu, dass nicht `rm` aufgerufen wird, sondern nur `echo` - somit kann man mitlesen, welche Befehle von `find` ausgefuehrt _wuerden_, wenn man echo tatsaechlich aus dem Aufruf weglaesst. Wie gesagt - bei Aufrufen von `rm`, vor allem bei skriptgesteuerten, besser zu viel als zu wenig Vorsicht walten lassen!

Hth.


Obermotz schrieb am 05.10.2009 um 11:52

Hi!

Ich setze gerade meinen Rechner in der Firma neu auf und möchte Vista und Kubuntu parallel laufen lassen. Empfehlenswert ist es vermutlich, zuerst Vista und dann Kubuntu aufzusetzen, da Grub Vista erkennt und Vista umgekehrt das Linux nicht, lieg ich da richtig?

tia


COLOSSUS schrieb am 05.10.2009 um 11:54

Ja, da liegst du richtig. Mit Ubuntu 9.10 setzt uebrigens zum ersten Mal eine der groszen Distros auf GRUB in Version 2, wenn du gleich was Neues probieren (bzw. wagen ;)) moechtest.


prayerslayer schrieb am 05.10.2009 um 17:41

rdiff hab ich mir angeschaut. Sieht gut aus fürs backuppen auf die externen Festplatten. Für meinen derzeitigen Einsatzzweck (ein paar Ordner und config-Files regelmäßig auf dropbox.com spielen) reicht ein backup.sh mit ein paar cp drin im Ordner /etc/cron.daily. Denn lt. ubuntuusers.de wird alles in dem Ordner von anacron gemanaged.

Und danke für die ausführliche Antwort zu den Pipes! :)


__Luki__ schrieb am 24.10.2009 um 14:04

Bin mal' wieder dabei es mit KDE zu versuchen... Es haut eigentlich ganz gut hin (verglichen mit vorigen Versuchen) - verwendet wird Kubuntu 9.10 beta.

Eine Frage haette ich jedoch: Wie kann ich die "Standardprogramme" umstellen?
zB.:
Wenn ich eine IM bekomme, welche einen Link beinhaltet und ich diesen klicke wird er automatisch mit Konqueror geoeffnet; mir waer's aber lieber das wuerde in Firefox passieren...

Oder: Wenn ich gerade eine Datei heruntelade und auf "Open containing folder" klicke, weisz er nicht mit welchem Programm er den Link oeffnen soll... (Dolphin nehme ich an?!)

Bei "Choose App" kommt dann ein "File open"-Dialog mit dem ich nicht wirklich was anfangen kann...

Waere toll, wenn mir da jemand helfen koennte.
Lg
Luki


t3mp schrieb am 24.10.2009 um 14:05

Systemsettings - Personal/Default Applications ;)


Taltos schrieb am 16.11.2009 um 14:26

Zitat von prayerslayer
Für meinen derzeitigen Einsatzzweck (ein paar Ordner und config-Files regelmäßig auf dropbox.com spielen) reicht ein backup.sh mit ein paar cp drin im Ordner /etc/cron.daily.
reichts eigtl btw nicht, einfach einen symlink auf das zu backuppende verzeichnis/file in den dropbox folder zu legen? so wär das ja von DB gedacht, und funktioniert bei mir problemlos.
Colo: super pipe crashkurs! :)


prayerslayer schrieb am 16.11.2009 um 14:57

das ist allerdings wirklich schicker, ja.


userohnenamen schrieb am 22.01.2010 um 09:07

ich denk mal hier passt es am besten
gibt es sowas wie ein buch für linux anfänger das empfehlenswert ist? Ich bin leider ein mensch der bei sowas auch papier in den händen halten will und wär für brauchbare vorschläge dankbar :)


Lukas schrieb am 22.01.2010 um 09:21

Wenn nicht bereits hier schon erwähnt: Linux, Kofler

Natürlich gibts dann div. distributionsspezifische Bücher.


Obermotz schrieb am 31.03.2010 um 15:16

Kurze Frage: vim ist nicht utf-8 tauglich, lieg ich da richtig? falls ja, hab ich die lösung für mein problem, falls nein -> welcher freie editor wäre utf-8 fähig?

danke


Lobo schrieb am 31.03.2010 um 15:37

Zitat von COLOSSUS
Ein Aufruf von `rm -i /tmp/A /tmp/b /tmp/cde` z. B. weist das Programm `rm` an, die drei Dateien /tmp/{A,b,cde} jeweils mit Rueckfrage "Soll ich wirklich…?" zu loeschen.

Dabei ist zu beachten: `rm` kuemmert sich um argv. `rm` ist es aber voellig egal, was man in sein stdin fuettert. Insofern kann man `rm` nicht mittels Pipe sagen, welche Dateien es zu loeschen hat. Man muss einen Weg finden, die Liste der zu loeschenden Dateien in argv von `rm` zu bringen. Das geht z. B. mittles find. Fuer deinen speziellen Anwendungsfall konkret so:
Code:
find / -iname "*dropbox*" -exec echo rm -rf {} +

Das echo in der Kommandozeile oben dient dazu, dass nicht `rm` aufgerufen wird, sondern nur `echo` - somit kann man mitlesen, welche Befehle von `find` ausgefuehrt _wuerden_, wenn man echo tatsaechlich aus dem Aufruf weglaesst. Wie gesagt - bei Aufrufen von `rm`, vor allem bei skriptgesteuerten, besser zu viel als zu wenig Vorsicht walten lassen!

Hth.

Super danke, "arbeite" zwar schon "länger" mit linux, aber teil mit rm (und vorallem die"{}") ist mir verborgen geblieben


edit: eine frage zu CRON: was passiert, wenn zum bestimmten Zeitpunkt der Rechner nicht läuft? Wird dieser Durchlauf dann übersprungen, oder nach dem start durchgeführt?


Caption schrieb am 31.03.2010 um 17:12

Zitat von Lobo
Super danke, "arbeite" zwar schon "länger" mit linux, aber teil mit rm (und vorallem die"{}") ist mir verborgen geblieben


edit: eine frage zu CRON: was passiert, wenn zum bestimmten Zeitpunkt der Rechner nicht läuft? Wird dieser Durchlauf dann übersprungen, oder nach dem start durchgeführt?

Wird nicht ausgeführt. Dafür gibts aber Anacron.




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025