1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

Unix Hacks für Schulung

Dieses Thema im Forum "Unix & Terminal" wurde erstellt von Tobi1051, 12.09.06.

  1. Tobi1051

    Tobi1051 Uelzener Rambour

    Dabei seit:
    29.12.05
    Beiträge:
    371
    Hallo,

    ich werde in Kürze eine Unix Einsteigerschulung halten. Ziel ist es den Teilnehmern einen ersten Überblick über Unix zu verschaffen und die ersten Befehle zu vermitteln. Eigentlich alles ganz easy.

    Aber um das ganze Interessant zu machen, möchte ich in der Schulung ein paar Unix Hacks zeigen, die den Teilnehmern die Leistungsfähigkeit von Unix (unter MacOS X) nähe bringen und mit denen ich die Lust auf mehr wecken kann. Nichts ist frustrierender, als eine Schulung zu halten, dessen Inhalt später keine Anwendung findet. Am Liebsten hätte ich irgendwelche kleinen Befehlskombinationen, dessen Ergebnis die Teilnehmer verstehen, aber erstmal einen WOW-Effekt nachsichziehen. Nach dem Motto: Wie hat der das gemacht? Soetwas habe ich schon immer können wollen. Wie geht das?

    Die Teilnehmer haben alle jahrelange Erfahrung mit Macs, aber bisher noch nichts mit Unix gemacht.

    Wenn Ihr Ideen habt, dann bitte posten.

    Vielen Dank!

    Gruß
    Tobi
     
  2. seb2

    seb2 Gast

    Weder Hack noch Unix aber bash: es gibt -- gerade was die History und das flotte Arbeiten angeht eine Unzahl von Kleinigkeiten, die ich sehr schätze, diese hier nutze ich eigentlich täglich:
    - Ctrl-R für inkrementelle Suche in der History
    - ! in allen Variationen, also !! !config (also das letzte configure oder was auch immer damit anfängt) und am meisten !config:p um das letzte configure an die letzte Stelle der History zu schreiben, es aber nicht auszuführen damit ich es mit "cursor oben" erreichen und bearbeiten kann
    - die "Hütchen" um im letzten ausgeführten Befehl etwas zu ersetzen und auszuführen; angenommen "rm abc.jpg" war mein letzter Befehl gebe ich nur "^jpg^png" ein, um "rm abc.png" auszuführen

    Was mir gerade noch einfällt, vielleicht mal die Mächtigkeit von curl und wget zeigen, um komplette Sites rekursiv runterzuladen oder auch Dateien mit bestimmten Mustern...?
     
  3. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.708
  4. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Wie oft muß man ganze Listen von Dateinamen umbennennen? Nicht oft, aber immer mal wieder. Gut wenn man da die Shell beherrscht:
    Code:
    for n in *.jpg
    do 
      b=`basename "$n" .jpg`
      mv "$n" "$n"-old.jpg
    done
    
    Oder Archivieren von Daten in ein Verzeichnis mit aktuellem Datum als Namen
    Code:
    d=`date +%Y-%m-%d-%H-%M-%S`
    mkdir -p /BACKUP/$d
    mv * /BACKUP/$d/
    
    Das ist natürlich nur als script richtig sinnvoll.

    Und noch zwei, die ich häufig verwende:
    1. Kopieren ganzer Verzeichnisse unter Beibehaltung sämtlicher Rechte und Timestamps:
    Code:
    tar cBpf - . | ( cd /target/ ; tar xBpf - )
    2. Sicherung meiner Fotosammlung mit rsync
    Code:
    rsync -rv /Volumes/PICTUREDISK/Pictures/iPhoto\ Library/ /Volumes/BACKUPDISK/backups/Pictures/iPhoto\ Library/
    Und ein letztes: Ändern des PROMPT
    Code:
    PS1="\033[7m \u@\h:\w \033[0m\n\$ "
    export PS1
     
  5. Tobi1051

    Tobi1051 Uelzener Rambour

    Dabei seit:
    29.12.05
    Beiträge:
    371
    Hallo,

    vielen Dank für die Tipps bisher. Das ist genau das, wie ich gesucht habe. Und ich muss ja sagen, dass ich selbst auch noch wieder etwas dazu gelernt habe.

    Vielleicht setzen wir den Thread einfach fort. Einige Hacks sind bestimmt auch für andere User hoch interessant.

    Gruß
    Tobi1051
     
  6. Tobi1051

    Tobi1051 Uelzener Rambour

    Dabei seit:
    29.12.05
    Beiträge:
    371
    Hier noch ein Hack von mir:

    Um eine Datei von einem auf einen anderen Server komprimiert zu übertragen, ohne dass man die Datei am Anfang komprimieren und am Ende wieder dekomprimieren muss kann man auch direkt den Stream komprimieren. Das hat auch den Vorteil, dass man auf dem Zielsystem max. soviel freien Spreicher benötigt, wie die entpackte Datei groß ist.

    cat datei | gzip -9 | ssh benutzer@server "zcat > datei"

    Gruß
    Tobias
     
  7. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Damit gehen aber User Informationen und Zeitstempel flöten.
    Code:
    tar cBpf - dateiname | gzip -9 | ssh benutzer@server 'zcat | tar xBpf -'
    Sollte das Manko beheben. tar hat zwar auch eine option "-z" zum komprimieren, das lieferte hier im Test aber immer eine Fehlermeldung, obwohl die Datei richtig entpackt wurde.
     
  8. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    Wie wäre es einige der Unix Funktionen, bzw. der Terminal Funktionen mit den gewohnten GUI Apps des Macs zu verbinden?

    zB Key Bindings. Ein Terminal (unabhängig der Shell) unterstützt Kurzbefehle.
    Am Mac sind da eingestellt, ctrl-a für Zeilenanfang, ctrl-e für Zeilenende, ctrl-w um das Wort links der Einfügemarke zu löschen, ctrl-k um die aktuelle Zeile zu löschen, und mein besonderer Liebling ctrl-t um die Zeichen rechts und links der Einfügemarke auszutauschen. (Klassiker wenn man einen Buchstabendreher hat.)

    Diese Kürzel funktionieren in allen Cocoa Applikationen. zB in Mail.app, Safari, TextEdit, Pages, und auch vielen anderen. (M$ Office und Adobe Apps sind (bis auf Lightroom) durchwegs Carbon, können das also nicht.)
    Damit können die User etwas mitnehmen, was nicht nur in Unix funktioniert, sondern auch Ihre bisherige Anwendung von GUI Applikationen erweitert.

    Ein Eindrucksvoller "Befehl" ist beispielsweise:
    Code:
    /System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend
    Was er tut? Copy, paste und ausprobieren! :-D Eignet sich gut um den Vortrag abzuschließen.


    Ich würde auch das zusammenspiel von Unix und GUI herzeigen. Also im Terminal ein ls machen von einem Ordner der gerade im Finder angezeigt wird um zu zeigen, daß es das gleich ist, nur ein wenig anders aussieht. Ordner anlegen, Datei anlegen, verschieben umbenennen. Vorgänge die man vom GUI her eben kennt.
    Gruß Pepi
     
  9. interpreter

    Dabei seit:
    22.02.06
    Beiträge:
    36
    ssh hat schon einen -C parameter fuer die kompression. noch einfacher geht es mit scp:
    scp -C /path/to/foo user@host:/path/to/bar
     
  10. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    Stimmt, mit gzip isses wenig sinnvoll, da ist --compress beim scp besser. Wenn man das allerdings mit bzip2 oder p7zip macht, bringts uU doch etwas. Allerdings isses auch dann ein wenig unnötig viel plumbing. gzip kann nach stdout ausgeben, ebenso wie gunzip von stdin lesen kann. Das gleiche gilt für bzip2|bunzip2, p7zip.
    Sollte man extern komprimieren, ist es allerdings empfehlenswert für scp oder ssh die compression nicht einzuschalten.
    Gruß Pepi
     

Diese Seite empfehlen