Konsolenbefehle lfd. Fragen

Hinweis: In dem Thema Konsolenbefehle lfd. Fragen gibt es 5 Antworten. Der letzte Beitrag () befindet sich ganz unten auf dieser Seite.
  • Hallo zusammen:)


    Habe jetzt angefangen mich ein wenig mit der Shell zu beschäftigen, also weniger copy,paste zu verwenden, um langsam auch zu lernen diese Vorteile zu nutzen. Ich bin bei

    Code
    ls

    bei den vielen Möglichkeiten von Suchmustern, die mir nicht zur Gänze in mein Hirn wollen.


    Was ich glaube zu wissen:

    Code
    ls Dateiname*

    =Dateiname+alle Zeichen die sich nach dem Dateinamen befinden.

    Code
    ls Dateiname??

    = Dateiname und die Anzahl der Fragezeichen hinter dem Dateinamen.
    Dasselbe gilt auch für vor dem Dateinamen.

    Code
    ls Dateiname[0-9]

    Dateiname + alle einzelnen Zeichen (also hier Ziffern) hinter dem Dateinamen.

    Code
    ls Dateiname[0123456789]

    sollte dasselbe sein wie vorher.


    Wenn ich jetzt aber eine Datei zB über 10 belege, ist mir nicht klar, wie ich diese Filtern könnte, außer dass ich Dateiname*, oder zB Datename13 schreibe.


    Code
    ln

    Hardlinks

    Code
    ln Dateiname1 Dateiname2


    erzeugt einen Hardlink mit Dateiname2 der auf Dateiname1 verweist, mit selben Inhalt.
    Soweit gelesen, soll bei einer Änderung die andere Datei auch betroffen sein, das ist sie aber bei mir nicht
    Am Anfang gibt

    Code
    ls -i

    noch 2 identische Inodes aus, nach einer Änderung aber leider nur mehr 2 verschiedene Dateien, mit verschiedenen Inodes.

    2 Mal editiert, zuletzt von JeyF123 ()

    Für den Inhalt des Beitrages 77529 haftet ausdrücklich der jeweilige Autor: JeyF123

  • Danke:) Der Bereich Konsolenbefehle, Shell usw. wirkt sehr anfängerfreundlich.



    Edit: Hab jetzt eins bemerkt; wenn man über ein Textbearbeitungsprogramm speichert, werden es verschiedene Dateien. Setzt man mit einen Text mit zB mit

    Code
    echo test123 > text0.txt

    hinein, ändern sich wirklich beide Dateien. Das wirkt sehr praktisch, aber mir fällt dummerweise nichts sinnvolles ein, wo ich das verwenden könnte. Backups vielleicht, allerdings ist es zum einen sowieso nicht erlaubt ganze Verzeichnisse zu verlinken (Hardlinks), zum anderen bringt es vermutlich auch nichts, da dann sowieso die Dateien im Backup auch fehlerhaft sind. Der Vorteil der mir dabei noch einfallen würde, ist dass die Datei zumindest dann noch existiert, weil es ein gesichertes Original gibt, selbst wenn ich eine andere lösche.
    Ergibt das so einen Sinn?

    2 Mal editiert, zuletzt von JeyF123 ()

    Für den Inhalt des Beitrages 77536 haftet ausdrücklich der jeweilige Autor: JeyF123

  • Setzt man mit einen Text mit zB mit

    Quellcode


    echo test123 > text0.txt


    hinein, ändern sich wirklich beide Dateien.


    Von mir jetzt mal die Frage, welche "beiden" Dateien bitte? Ich sehe nur eine Datei.


    Um diesen Befehl mal näher zu betrachten, sollte man ihn in einzeln Schritte zerlegen und dann die einzeln Schritte sich klar machen.


    1. "echo" , zeigt den Text, der dahinter eingegeben wurde, als Ausgabe auf der Konsole an.
    2. ">" die Ausgabe wird von der Ausgabe auf der Konsole umgeleitet in das was dahinter kommt. das kann ein Gerät (LPT: Drucker) sein oder eine Datei (hier: text0.txt).
    Gleichzeitig muss man wissen das bei ">" entweder eine neue Datei angelegt wird, oder der alte Inhalt überschrieben wird, wenn schon eine Datei mit dem Namen vorhanden ist.
    Bei ">>" wird entweder eine neue Datei angelegt oder bei einer vorhandenen Datei die 'echo' Ausgabe hinten angefügt.


    Mit den Zeichen ">", ">>" wird eigentlich ein Kanal umgeleitet. Es gibt insgesamt drei Kanäle.


    &0 -> Standard Eingabekanal
    &1 -> Standard Ausgabekanal
    &2 -> Standard Fehlerkanal



    deshalb findet man bei einigen Befehlen in Programmcode folgendes Konstrukt "&2>/dev/null". damit wird der Fehlerkanal (also alle Fehlermeldungen), ins Leere umgeleitet, weil "/dev/null" ein sog. Device ist, das Nichts ist, ein Großer Mülleiner ohne Boden, wo die Daten einfach verschwinden.


    Wozu ist der echo Befehl noch gut. Stell dir mal vor, du hast eine lange Konfigurationsdatei vor dir und sollst nur am Ende eine zeile hinzufügen. dann wäre es nicht gerade Produktiv, erst ein Editorprogramm zu starten, um dann ans Ende zu springen, um dann zB.

    Code
    Print "Hallo"

    einzugeben.
    Da wäre es Effektiver und auch einfacher, folgende einzugeben.


    Code
    echo Print "Hallo" >> Dateiname


    Was die Ausgabe des echo-Befehl am Schluss der Datei anhängt.


    ich hoffe ich hab einigermaßen verständlich geschrieben und nicht ein noch Größer Missverständnis ausgelöst. :D


    So long

  • Zitat

    Von mir jetzt mal die Frage, welche "beiden" Dateien bitte? Ich sehe nur eine Datei.

    Das Auge hat den Befehl falsch ans Hirn geleitet und mich zu dieser Aussage geführt^^.


    bzw. glaube ich die Aussage ist nicht vollkommen falsch, da die Datei zwar nur 1 Inode aufweist, aber 2 physikalische Plätze belegen muss. Wenn ich eine lösche, existiert noch eine weitere.


    Deine Erklärung war aber sehr gut und hat mir schon ziemlich weiter geholfen.
    Vor allem das mit dem

    Code
    >>

    anfügen.


    Zur Verwendung (bzw. ob das so einen Sinn ergibt:)
    Wäre es so möglich, meine Aufnahmedateien zu sichern, bei der Bearbeitung?

    Code
    ln piano.wav /sicherung/piano.wav

    Für den Inhalt des Beitrages 77558 haftet ausdrücklich der jeweilige Autor: JeyF123

  • Wäre es so möglich, meine Aufnahmedateien zu sichern, bei der Bearbeitung?

    Code
    ln piano.wav /sicherung/piano.wav


    Definiere "sichern".
    Dies ist kein Schutz vor Löschen oder Überschreiben. Baust du bei piano.wav Mist, ist /sicherung/piano.wav genauso betroffen.


    flo

    Für den Inhalt des Beitrages 77738 haftet ausdrücklich der jeweilige Autor: grossing