Terminal für Anfänger

Dieses Thema im Forum "How to..." wurde erstellt von elektronikengel, 13. Februar 2004.

  1. Um die wirkliche Power des UNIX-Systems zu spüren, kann man im Terminal arbeiten. Dieses überaus nützliche Programm befindet sich in den Dienstprogrammen. Hier einige kleine Befehle, die jeder ausprobieren kann, ohne etwas zu riskieren.

    mkdir - erstellt einen neuen Ordner
    rmdir - löscht den Ordner
    du - listet alle benutzten Ordner untereinander auf
    top - zeigt alle laufenden Prozesse an
    cd - wechselt das Verzeichnis (Change Directory)
    sudo sh /etc/daily - löscht die Cronjobs (die auch Macjanitor erledigt)
    date - zeigt das Datum an
    cal - Kalender
    sudo reboot - Neustart
    mount - zeigt alle überprüfbaren Volumes
    open - a (Programm) - öffnet eine Applikation
    sudo passwd (name) - verändert das Passwort
    cd /bin, dev, private, sbin, usr - Diectory zur Rootebene - Der anschliessende Befehl ls listet die Library auf (vielleicht noch nicht damit rumspielen)
    cp <name1> <name2> - kopiert die Datei name 1 in die Datei name 2
    df -k - zeigt den freien Speicherplatz an

    (Verbessert mich und ergänzt die Liste)
     
  2. Praktiches Beispiel: Rechte reparieren

    Der Befehl lautet:

    Welcome to Darwin!
    hybriden:~ hartmutandryczuk$ diskutil
    Disk Utility Tool ?2002-2003, Apple Computer, Inc.
    Utility to manage disks and volumes.
    Most options require root access to the device

    Usage: diskutil <verb> <options>
    <verb> is one of the following:
    list (List the partitions of a disk)
    information | info (Get information on a disk or volume)

    unmount (Unmount a single volume)
    unmountDisk (Unmount an entire disk (all volumes))
    eject (Eject a disk)
    mount (Mount a single volume)
    mountDisk (Mount an entire disk (all mountable volumes))
    rename (Rename a volume)

    enableJournal (Enable HFS+ journaling on a mounted HFS+ volume)
    disableJournal (Disable HFS+ journaling on a mounted HFS+ volume)

    verifyDisk (Verify the structure of a volume)
    repairDisk (Repair the structure of a volume)

    verifyPermissions (Verify the permissions of a volume)
    repairPermissions (Repair the permissions of a volume)
    repairOS9Permissions (Repair the permissions for the current
    Classic boot volume)

    eraseDisk (Erase an existing disk, removing all volumes)
    eraseVolume (Erase an existing volume)
    eraseOptical (Erase an optical media (CD/RW, DVD/RW, etc.))
    zeroDisk (Erase a disk, writing zeros to the media)
    randomDisk (Erase a disk, writing random data to the media)

    partitionDisk ((re)Partition a disk, removing all volumes)

    createRAID (Create a RAID set on multiple disks)
    destroyRAID (Destroy an existing RAID set)
    checkRAID (Check a RAID set for errors)
    enableRAID (Convert a disk to a degraded RAID mirror set)
    repairMirror (Repair a damaged RAID mirror set)

    diskutil <verb> with no options will provide help on that verb

    Hiernach sieht man alle Optionen. Um jetzt die Rechte auf dem Startvolume zu reparieren, gibt man folgendes ein:

    hybriden:~ hartmutandryczuk$ diskutil repairPermissions / repairPermissions

    Return drrücken und die Rechte werden repariert.
     
  3. Kralith

    Kralith New Member

    Hey, solange Ihr Euch nicht als "root" anmeldet oder wahllos mit dem Befehl "sudo" arbeitet, könnt Ihr Euch gefahrlos alle Sachen in der Darwin-VerzeichnisHierarchie anschauen und auch Befehle ausprobieren.

    Die Befehle, die was kaputt machen können, also das System verändern, kann man nämlich nur als "root" ausführen.

    So nun nochmal kurze Ergänzungen zu den Ausführungen oben und alles mal etwas geordnet :

    >>cd - wechselt das Verzeichnis (Change Directory)
    cd allein wechselt in Euer Benutzerverzeichnis
    z.B. /Users/kralith

    Wo Ihr Euch gerade befindet sagt Euch der Befehl pwd .

    cd .. wechselt ein Verzeichnis höher in der Hierarchie
    cd / wechselt in den root-Stamm, das ist die höchste Ebene

    Wenn Ihr nun den Befehl ls eingebt, dann wird der Inhalt des Verzeichnisses gelistet, in dem Ihr Euch gerade befindet.
    ls -l gibt Euch eine ausführlichere Auflistung des Inhaltes des Verzeichnisses an.
    z.B. zeigt ls -l /Users/kralith eine ausführliche Liste des Inhaltes meines Home-Verzeichnisses an, egal, wo ich mich gerade befinde, da ich mein Verzeichnis mit absolutem Pfad (also beginnend mit dem Root-Stamm / ) angegeben habe.
    ls -l kralith würde jedoch mein Home-Verzeichnis nur auflisten, wenn ich mich gerade im Verzeichnis /Users befinde, da das Verzeichnis relativ angegeben wurde (also nicht mit / beginnend).

    Bei einem einfachen ls sieht man nur die Namen, jedoch nciht die Art der Datei.
    Bei der ausführlichen Auflistung ls -l sieht man nun die Dateien in dieser Art:
    -rw------- 1 kralith staff 244 24 Jan 03:21 DEADJOE
    drw------- 5 kralith staff 170 22 Mar 11:04 Desktop

    Ist an der ersten Stelle ein -, handelt es sich um eine Datei.
    Ist dort ein d ist es ein Verzeichnis.
    Seht Ihr ein l, handelt es sich um einen Link(Verknüpfung).
    Am Ende steht dann der Dateiname.
    (Das dazwischen kann man später nochmal genauer erklären.)

    >>mkdir - erstellt einen neuen Ordner
    >>rmdir - löscht den Ordner

    Das könnt Ihr mal ausprobieren, aber bitte nur in Eurem Home-Verzeichnis. Achtung, Darwin fragt nicht nochmal nach, wenn Ihr was löscht und es wandert auch nicht in einen Papierkorb!!! Also überlegt, was Ihr im Terminal löscht.

    Fehlt noch der Befehl rm, dieser löscht nämlich einzelne Dateien.
    Und bitte lasst die Finger von Sternchen/Wildcards (*) wenn Ihr nicht wisst, was Ihr tut. Ein rm * löscht nämlich ungefragt alle Dateien in dem Verzeichnis, wo Ihr Euch gerade befindet (Natürlich nur, wenn Ihr dazu die Rechte habt, aber schon schlimm genug, wenn die letzten Urlaubsfotos so aus Versehen über den Jordan gehen).


    >>du - listet alle benutzten Ordner untereinander auf

    Nicht ganz richtig, denn es listet den benutzen Plattenplatz der Ordner auf


    >>sudo sh /etc/daily - löscht die Cronjobs (die auch Macjanitor erledigt)

    Auch hier etwas unverständlich geschrieben, denn dieser Befehl führt ein manuelles Starten der täglichen Cronjobs aus. Das heisst, die Aufräumskripte werden gestartet und nicht die Cronjobs gelöscht.


    >>cd /bin, dev, private, sbin, usr - Diectory zur Rootebene - Der

    natürlich cd /bin oder cd /dev ...usw. und es wechselt in die einzelnen Systemverzeichnisse die verschiedenste Speicherorte für die Hierarchie von Darwin darstellen. Die Rootebene ist /.
    /bin ist das Verzeichnis der Benutzer-Programme, die bei Sytemstart vorhanden sein müssen.
    /sbin ist das Verzeichnis der Sytsem-Programme, die bei Systemstart vorhanden sein müssen.
    /dev beinhaltet die Gerätedateien.
    /usr ist der Speicherort für alle weiteren Programmdateien, die von den einzelnen Usern benutzt werden können.
    /usr/bin beinhaltet die Programme - hier könnt Ihr Euch mal umschauen und fleissig rumprobieren, diese Programme sind nützlich und harmlos (damit kann man als User nichts kaputt machen).
    /usr/X11R6/bin hier sind die graphischen Programme der X11-Oberfläche abgelegt - auch hier gilt Rumprobieren, da findet sich das ein oder andere nützliche Programm. Vorher aber X11 starten, sonst gibts ne Fehlermeldung.
    Probiert mal im Verzeichnis /usr/X11R6/bin den Befehl startx. Dann startet das X11 - es geht auch ein neues Terminalfenster auf (das von XDarwin) dort gebt dann mal xeyes & ein und bewegt die Maus ;o)
    -> wenn der Befehl nicht gefunden wird, dann gehts, wenn Ihr vor den Befehl ./ angebt, also ./startx und ./xeyes &. Das hat damit zu tun, dass die Standard-Programmpfade manchmal nicht bekannt sind.
    Das & hinter dem Programm sagt übrigens aus, dass das Porgramm im Hintergrund gestartet werden soll. Das ermöglicht, dass Ihr das Terminal weiter nutzen könnt, sonst wäre es blockiert, solange Ihr das Programm offen habt.


    Mehr über das ganze Thema Darwin und Terminal von mir später.
    Für den Anfang reicht das ja auch erstmal.
    Und wie schon gesagt, keine Panik - wer nicht probiert, der nicht gewinnt! - Als User kann nichts schiefgehen, denn zum kaputtmachen hat man als User keine Dateirechte.
    Ich habs auch nicht anders gemacht und ich musste das ganze auf einem total schrägem und bescheidenem SuSE-Linux lernen. :D

    Übrigens gibbet da noch nen Beitrag von frankwatch
    in den Howtos mit einem sehr nützlichen Link, der auch noch so einiges erklärt: http://forum.macwelt.de/forum/newreply.php?s=&action=newreply&threadid=88338
     
  4. Napfekarl

    Napfekarl Napfkuchen-Erfinder

    ääähm, ganz so locker würde ich das nicht sehen, denn mit z. B. rm kann ich als User zwar nicht das System kaputt machen, wohl aber (wichtige?) Daten löschen.

    Ciao
    Napfekarl
     
  5. Sehr schön, besser und auch ausführlicher erklärt.
     
  6. Kralith

    Kralith New Member

    Genau das hatte ich bei rm beschrieben....lesen, dann schreiben! ;)
     
  7. @napfekerl.

    Ja vielleicht. Bei der legendären gefährlichen rm -r Option im Admin-Modus bewirkt sudo anscheinend die einmalige Passwortnachfrage. Beispiel:

    Welcome to Darwin!
    hybriden:~ hartmutandryczuk$ sudo rm -r /Users/hartmutandryczuk/Pictures/03-05-04_XP/Explanation.rtf
    Password:
    hybriden:~ hartmutandryczuk$

    Schreibe ich stattdessen

    hybriden:~ hartmutandryczuk$ rm -r /Users/hartmutandryczuk/Pictures/80q81q98q194q548q255q255q255q0q0q0q0qcqmqvqhaq.jpg
    hybriden:~ hartmutandryczuk$

    löscht er diese Datei ohne Passwortnachfrage.

    Grundsätzlich gilt aber: im Admin-Modus habe ich annähernd alle Rootrechte. Natürlich kann ich mir alle Libraries anschauen, sollte aber als Anfänger äusserst vorsichtig mit dem rm -r - Befehl sein. Ich muß dort immer den genauen Pfad angeben oder aber eben die Datei ins Terminal ziehen, die ich auch löschen will. Fehler sind schon dadurch entstanden, daß man sich in der Ebene des Verzeichnisses geirrt hat und den ganzen Ordner löscht.
     

Diese Seite empfehlen