![]() |
RuTh's
RuThLEss
HomEpAgE
|
|
facts - Apple MacintoshDie Unix-Seite des MacOSX - erklärt für Mac-BenutzerEntwurf - noch in Arbeit In Mac OS X sind viele Unix-Programme mitgeliefert, die dem vom klassischen MacOS kommenden Benutzer eventuell bisher entgangen sind. Dies ist eine Übersicht, die anhand einiger Kommandos zeigt, was in der UNIX-Seite des MacOS so alles drinsteckt. Konkrete Beispiele gebe ich nicht für alle Kommandos, da einige Funktionen nicht ohne weitere Vorkenntnisse verständlich sind (und wer die Vorkenntnisse hat, braucht diese Übersicht hier nicht).
Dinge, die man vor der Benutzung von UNIX-Kommandos wissen sollte:
UNIX-Befehle in MacOSX:Für Programmierer:source .tcshrc Source startet die Ausführung eines Shellscripts. Ein einzelner Punkt ist die Kurzschreibweise dafür ('. .tcshrc'). Wird z.B. verwendet, um die .tcshrc oder .bashrc (die Konfigurationsdatei der Shell) neuzuladen, nachdem man Änderungen daran gemacht hat, aber man sich nicht aus- und wieder einloggen will, um sie neuzuladen. perl, perlcc, perldoc Practical Extraction and Report Language - eine Programmiersprache, ihr Compiler und ihre Dokumentation. Perl wird z.B. zum Schreiben von CGI-Skripten benutzt. (siehe auch awk/sed) a2p: AwkToPerl übersetzt ein Skript der Sprache Awk in ein Skript in der Sprache Perl. s2p SedToPerlTranslator übersetzt ein sed-Skript in ein Perl-Skript. java, javac, jdb: Java-Interpreter, -Compiler und -Debugger für Java-Programmierer cc, c++ Der C-Compiler kompiliert einen Quellcode der Sprache C (bzw C++) und erstellt daraus ein ausführbares Programm. gnumake, make, jam Diese Werkzeuge verwendet ein Programmierer, um eine Gruppe von voneinander abhängigen Dateien (z.B. Programmmodule) schnell zu aktualisieren, wenn eine von ihnen geändert wurde. Welcher Art die Aktualisierung sein soll, und welche Dateien unter welchen Bedingungen davon betroffen sein sollen, definiert man in einem sogenannten Makefile. cvs: Das ConcurrentVersionsSystem verwaltet alte und neue Versionen von voneinander abhängigen Dateien, z.B. wenn mehrere Leute an einem Projekt arbeiten. Es sorgt z.B. dafür, dass jeder Mitarbeiter die aktuellen Änderungen der anderen mitbekommt, oder, wenn nötig, Änderungen rückgängig machen kann. (siehe auch "man rcs") awk, sed : Zwei Skriptsprachen, mit denen man u.a. Text nach Mustern scannen und anschließend automatisch bearbeiten kann. Eine Art dynamisch programmierbares "Suchen und Ersetzen", aber mit sehr viel flexibleren Möglichkeiten. Für Benutzer von Interesse, die oft langwierige, komplexe, aber automatisierbare Aufgaben lösen müssen -- z.B. aus einer 3000 Seiten langen Liste immer bestimmte Werte und Zeilen herauszukopieren, und daraus eine Statistik erstellen, o.ä. (siehe auch perl) gdb Der GNU Debugger hilft Programmiern beim Finden von Fehlern in "C"-, "C++"- oder Modula2-Programmen. indent rückt C-Programme syntaktisch ein. osascript Führt ein OSA-Skript-Programm aus (Open Scripting Architecture), z.B. AppleScript. fsplit: FortranSplit segmentiert ein Fortran-Programm in mehrere Dateien. leaks: sucht in selbstgeschriebenen Programmen nach Speicherlecks as: Übersetzt Programme der Sprache Assembler in Objektcode, den der Computer verstehen kann. m4 MacroLanguageProcessor, mit dem (C-, Fortran-, etc)-Programmierer Macros definieren können. ioalloccount zeigt den gerade allozierten Speicher (?); hilft beim Auffinden von Speicherlecks. apply führt in einem Shellskript ein gegebenes Kommando einmal mit jedem einzelnen der gegebenen Argumente aus. Also aus apply berechne a b c wird berechne a, dann berechne b, dann berechne c. gzexe: GnuZipExecutables komprimiert Programme so, dass sie sich beim Starten selbst entpacken, und sich nach dem Beenden wieder komprimieren. Das ist von Vorteil, falls man extrem wenig Festplattenplatz hat, aber die Programme starten dadurch natürlich langsamer. Früher erkaufte man so Platz durch Zeit. bc, dc: Zwei Programmiersprachen zum exakten Rechnen. Eine Art vielfältig programmierbarer Taschenrechner. sample erstellt stückweise ein Profil eines laufenden Prozesses (Programmes). Für Programmierer zum Debuggen. tops ist ein komplexes Suchen&ersetzen-Werkzeug von Apple, mit dem man im Quellcode von Programmen automatisierte Änderungen machen kann.
Administration, Individuelle Einstellungensu Mit Hilfe von SubstituteUser kann sich kurzfristig jemand anderer in einem Terminalfenster einloggen, ohne dass sich der eigentlich angemeldete Benutzer zuvor ausloggen muss. Einfach nur 'su' einzutippen bedeutet, dass man zur Identität des Administrators Root wechseln möchte -- sollte man also nur eintippen, wenn man das Passwort dafür tatsächlich kennt, denn fehlgeschlagene Einlogversuche als Root werden protokolliert und dem Admin gepetzt... 'su -l karlheinz'. sudo SuperUserDo erlaubt es einem Benutzer, mit seinem eigenen Passwort gewisse Befehle absenden zu dürfen, die eigentlich nur der Root-Admin darf. Der Administrator definiert zuvor die Liste der Benutzer, denen er dies erlauben möchte -- diese Benutzer nennt man 'Sudoer': Sie haben einen ähnlichen Status wie Root, aber sie kennen das Root-Passwort nicht. Alle Sudo-Aktionen werden protokolliert! passwd Programm zum Ändern des eigenen Passwortes.
alias gibt alle selbstdefinierten Befehlsabkürzungen aus. Mit Argumenten definiert es eine selbstwählbare Abkürzung (z.B. 'mylist') für einen Unix-Befehl (z.B 'ls -Flo'): alias mylist="ls -Flo"Rückgängig machen mit: unalias "mylist" Aliasse speichern: Wenn man mit einem UNIX-Textditor wie pico eine Datei Namens ".login" in seinem 'Privat'-Verzeichnis erstellt, und darin Kommandos wie alias mylist="ls -Flo" u.a. einträgt, funktionieren die selbstdefinierten Aliasse bei jedem Aufruf eines Terminalfensters! Ansonsten verschwinden sie nach dem Schließen des aktuellen Terminalfensters. (Anmerkung: MacOSX-Texteditoren lassen nicht zu, dass Dateien erstellt werden, deren Name mit einem Punkt beginnt.) bless kennzeichnet einen Systemordner, von dem man booten möchte; d.h. dass die OpenFirmware des Macs ihn beim Booten wählt. Einen sogenannten "gesegneten" Systemordner erkennt man daran, dass er das Systemordnersymbol hat, und kein Standard-Ordnersymbol. bless -folder9 /Volumes/MacintoshHD2/Systemordner/ bless -folder /System defaults
Lässt den Benutzer Voreinstellungen von Mac-Programmen ändern. Das zu ändernde Programm darf derweil nicht laufen. Defaults ist nicht intuitiv zu bedienen, man sollte es nur verwenden, wenn man weiss, was man tut. Netzwerk, AppleTalkifconfig, ipconfig Network Interface Parameter Configurator und Internet Protocol Configurator (?). Durch die Eingabe von ifconfig kann man die Tech-Blah Variante der aktuelle Netzwerk-Einstellungen sehen, u.a. die Hardware-Adresse der Netzwerkarte. appletalk
Dies ist eines der UNIX-Programme, die man unbewusst verwendet, während man die (benutzerfreundlicheren) MacOS-Systemeinstellungen wie z.B. Sharing benutzt. atstatus AppleTalkStatus zeigt den Status von Objekten (Rechnern, Druckern etc) im AppleTalk-Netzwerk an. atstatus "Steve's LaserWriter" atlookup
AppleTalkLookup sucht nach Appletalkrechnern und Druckern im Netzwerk. ab ApacheBenchmark misst, wie lange eine Webseite aus dem Internet zum Laden braucht (wenn man gerade online ist). ab http://www.seite.de/index.html apachectl
ApacheControl ist das Programm, das einem Mac die Fähigkeiten eines Web-Servers geben kann. ping www.xyz.de Wie Echolot im U-Boot - ein anderer Rechner im Netzwerk kann angepingt werden, anhand der Antwort kann man erkennen, ob er an oder aus ist, und wie schnell er auf Anfragen antworten kann. Um den Test abzuschließen und das Ergebnis der Messung angezeigt zu bekommen, drückt man <CTRL>-C. Kommt keine Antwort, ist der Ziel-Rechner evtl. ausgeschaltet.
who Who zeigt, welche Benutzer gerade auf dem Rechner eingelogt sind, und seit wann.
rcp Mit RemoteFileCopy kann man eine Datei übers Netzwerk von einem Host zum anderen kopieren.
rcp quelldatei loginname@andererrechner:zielpfad scp karlheinz@privat.de:meinedatei.txt meyer@firma.de:meinedatei2.txt tftp FileTransferProtocol ist ein bekanntes Programm, um mehrere Dateien hoch- oder runterzuladen.
telnet, login, rlogin, rsh Telnet, (Remote)Login und RemoteShell stellen eine Verbindung zu einem anderen Host-Rechner mit unverschlüsselter Übertragung her. (Besser: ssh)
telnet rechner.uni.de ssh -x karlheinz@rechner.uni.de netinfod, nidomain, nicl, niutil:
NetInfoDomainUtility, NetInfoUtility, NetInfoCommandLineUtlity sind zum Ansehen und Ändern von vielen NetInfo-Einstellungen. bpwhoami BootParam-WhoAmI zeigt Rechnername, Domänennamen, Router-und Server-Adresse des Macs an, wenn dieser sich in einem Netzwerk befindet. arp AdressResolutionDisplay verwaltet die im Internet verwendeten Identifikationsadressen für Rechner. (Nur, wenn man in einem Netzwerk online ist) arp -a nslookup Sucht einen Rechner im Netzwerk. netstat zeigt den Netzwerkstatus an, auch von "localhost zu localhost". dig Der Domain Information Groper sammelt Informationen über DNS-Server. dig www.bla.de traceroute www.bla.com zeigt an, welchen Weg die Datenpakete durchs Netzwerk zu einem angegebenen Host nehmen. tcpdump kann Netzwerkverkehr-Daten zur späteren Analyse als Datei speichern. dnsquery zeigt DNS-Information über einen Rechner. dnsquery www.bla.de hostname zeigt an, unter welchem Namen dieser Rechner im Netzwerk ansprechbar ist. Wenn der Rechner nicht in einem Netzwerk ist, ist sein Name einfach localhost/127.0.0.1. Dämonenautomount Dieser Dämon kümmert sich darum, dass CDs und Disketten nach dem Einlegen auf dem Desktop angezeigt (gemountet) werden und benutzbar sind. autodiskmount Ein weiterer Dämon, der sich um das Anzeigen (Mounten) von Festplatten nach dem Hochfahren kümmert. lookupd LookUpDemon wird von verschiedenen Programmen aufgerufen, um Information über Benutzer-Accounts, Gruppen, Drucker, e-Mail-Aliasse, Computername, Internetadressen, etc zu bekommen. routed Der RouterDemon, kümmert sich um das Finden der 'Route' zu anderen Rechnern/Geräten im Netzwerk. timed: Der Time Server Demon stellt beim Starten des Rechners automatisch die Uhr nach der Uhrzeit eines anderen Rechners im Netzwerk. mountd Der Mount-Demon wartet im Hintergrund und sorgt dafür, dass Volumes (CDs, Disketten, Festplatten) erkannt und benutzbar angezeigt werden, wenn sie eingelgt werden. Zudem gibt es eine Reihe von mount-Befehlen, falls man dies einmal von Hand machen müssen sollte: mount, mount_cd9660, mount_msdos, mount_nfs, mount_smbfs, mount_afp, mount_hfs ... inetd Der Internet-Dämon macht aus dem Mac einen Webserver. Er wartet auf Anfragen von anderen Rechnern, und entscheidet, wie er die Anfrage beantworten soll; d.h. er überträgt dem Anfragenden Clienten z.B. eine angeforderte Webseite oder Datei, oder die Uhrzeit, oder lässt ihn sich einloggen, u.v.m. smbd SambaDemon ist ein praktischer Demon, der Kompatibilität zu Windows-Netzwerken herstellt. Informationen über das System und installierte Programmeapropos durchsucht die Handbuchseiten (man(ual) pages) aller UNIX-Befehle nach einem Stichwort xy. Siehe auch "man". apropos xy man Manual zeigt die Handbuchseiten (man(ual) pages) eines UNIX-Befehls. Anmerkung: Wird als Hinweis auf einen zu benutzenden Befehl, den man nachschlagen möchte, ein Zahl in Klammern mitgenannt (z.B. "crontab(5)"), ruft man diesen Handbuchabschnitt durch z.B. "man 5 crontab" auf! Weiss man die Sektions-Nummer nicht, tippt man "man -a crontab". Ansonsten wird immer nur die 1. Sektion gezeigt, wenn vorhanden. Siehe auch "apropos". man man dmesg DisplaySystemMessageBuffer zeigt eine Aufzeichnung der Bootnachrichten des Computers (der "komische Text", der weiss-auf-schwarz auf PCs vorbeiscrollt, wenn man sie startet), die MacOSX während des Startens nur kurzgefasst anzeigt. Er enthält u.a. Information über das Laden diverser Komponenten, z.B. USB-, Modem-Treiber etc. printenv, env Environment spuckt Daten über den Rechner und die aktuelle Variablenumgebung aus. Aktueller Benutzer und sein Home, eingestellte Sprache, Programm-Pfade, Terminal-Information, Typ des Computers und des Betriebssystems, u.a.
ioreg Input/Output-Registry zeigt eine Baumstruktur von Eingabe- und Ausgabegeräten des Macs, z.B. Lautsprecher, USB-Geräte, Mouse, Tastatur, Monitor etc.
machine, arch Machine und Architecture beantworten schlicht die Frage "Was für ein Typ Rechner ist das hier?", die Antwort ist dann z.B. "PPC" bzw "ppc750" -- also z.B. ein PowerMac 750.
lsof, fstat ListOpenFiles und FileStatus zeigen eine Liste aller Dateien auf dem Rechner an, die gerade "in Verwendung" sind (das sind mehr als man denkt). iostat Input/Output-Statistik, zeigt wieviele Ein- und Ausgaben im Terminal, in der Zentraleinheit (CPU) und auf der Platte abgelaufen sind. hostinfo gibt Info über diesen Mac aus: Wieviele Prozessoren er hat, wie schnell sie sind, wieviele vom Kernel angesteuert werden können, welcher Kernel verwendet wird. sysctl lässt Einstellung am Kernel zu, bzw gibt Information über Einstellungen aus. (seeehr Tech-Blah). sysctl -a Informationen über Benutzer und Prozesselast gibt eine Liste aus, wer sich wann wielange eingeloggt hat, wann der Rechner neugestartet wurde, etc.
id Identity zeigt die Identifikationsnummer des angegebenen Benutzers, und in welchen Gruppen er ist. groups zeigt an, zu welchen Gruppen der Benutzer gehört. Ist man z.B. Gruppenmitglied von 'admin', darf man die Einstellungen des Macs ändern; ist man nur Mitglied der Gruppe 'staff', darf man das nicht. chfn, chsh Mit diesen Change-Befehlen kann der Root-Administrator die Shell-, Namens- und Adress-Einträge für die Benutzer des Rechners ändern. (Um den Editor bedienen zu können, sind vi-Kenntnisse erforderlich) Vergleiche chpass. chpass Mit ChangePass kann der Root-Administrator viele Einstellungen betreffs der erlaubten Benutzer dieses Computers machen, z.B. Name, Login-Name, Passwort, Gruppe zu der er gehört, wann der Benutzer-Account erlischt, Shell, Adresse, und welches Home-Verzeichnis er benutzen darf. (Um den Editor bedienen zu können, sind vi-Kenntnisse erforderlich.) Vergleiche chfn, chsh.
edquota Mit EditQuota kann der Root-Admin den Benutzern Beschränkungen für Festplattenplatzverbrauch auferlegen. quota Zeigt eine Liste, wieviel Festplattenplatz jeder Benutzer belegen darf. lpc Line Printer Configurator - (Laser)Druckerkonfiguration. atprint Das Unix-Programm AppleTalkPrint sendet Druckdaten an einen AppleTalk-Drucker.
at_cho_prn Mit AppleTalkChoosePrinter kann man den Default-Drucker in einem AppleTalkNetz wählen. testprns druckername /etc/printcap testet einen Drucker auf Bereitschaft in einem SAMBA-Netzwerk. banner hallo Banner gibt den Text hallo (irgendetwas, bis zu 10 Zeichen auf einmal) in großen aus Sternen gemalten und zum Banner drucken geeigneten Buchstaben ins Terminal aus. :-) [siehe auch echo] enscript konvertiert eine normale Textdatei ins Postscript-Format, das für Laser-Drucker verständlich ist. Anmerkung: Fast alle dieser Programme funktionieren nur, wenn der Mac einen eigenen Mailserver installiert hat! (Was er standardmäßig nicht hat). expn emailadresse Expand schlägt den Namen des Besitzers der eMail-adresse im Internet nach. (Ist oft aus Datenschutzgründen gesperrt) finger Name@Domäne sucht nach zusätzlicher Information zu einer Person in einer bestimmten Domäne: eMail-Adresse, vollständiger Name, wann die Person zuletzt Mail gelesen hat. Eine 'Domäne' wäre z.B. "yahoo.de", 'Name' kann auch nur ein Teil des Vor- oder Nachnamens sein. (Ist oft aus Datenschutzgründen gesperrt) sendmail ist die Grundlage aller UNIX-eMail-Programme. Man ruft es als Benutzer nicht direkt auf, sondern benutzt stattdessen benutzerfreundlichere Mail-Clients wie elm oder pine ("benutzerfreundlich" nach UNIX-Maßstäben).
biff benachrichtigt den Benutzer durch eine Ausgabe in das Terminal, dass eine neue eMail angekommen ist.
mailstats Zeigt eine Statistik des Mail-Servers, also wieviele Mails verschickt/empfangen wurden, wie groß und von wem/an wem u.v.m. newaliases Läd gerade neuerstellte Mail-Aliasse (Alterntive eMail-Adressen), so dass sie funktionieren, ohne dass man den Mac neustarten muss. Man kann z.B. webmaster@mein_mac.de und postmaster@mein_mac.de als Alternativ-Emailadresse für sich selbst einstellen. Zeit, Kalenderleave Ein kleiner kurzfristiger Wecker im Terminalfenster: "leave 0815" erinnert dich ab 5 min vor 20:15Uhr an diesen Termin heute. In der Eieruhrvariante "leave +0008" erinnert es Dich an etwas in 8 min. Es weckt Dich auch noch jede Minute nach dem verstrichenen Termin mit "Time to leave!"... Solange, bis du das Terminal-Fenster schliesst. *Praktisch*! cron, crontab Der Cron-Dämon verwaltet für jeden Benutzer eine Liste von beliebigen Kommandos oder Programmen, die er regelmäßig zu bestimmten Zeitpunkten und Terminen ausgeführt haben möchte (sogenannte Cron-Jobs). Mit "crontab -l" kann man die Liste seiner gespeicherten Cronjobs einsehen, mit "crontab -e" kann man neue Einträge machen oder alte bearbeiten/löschen (Um den Cron-Editor bedienen zu können, sind vi-Kenntnisse erforderlich). Beispiele für die korrekte Schreibweise der Einträge erfährt man durch den Handbuchaufruf "man 5 crontab" . [siehe auch at und calendar] at, batch, atq, atrm At und Batch sind wie Cron eine Art Zeitzünder für Kommandos. Man verwendet sie, um die Ausführung von gewünschten Kommandos zu einem bestimmten Zeitpunkt in einer Warteschlange vorzumerken, und vom Rechner dann automatisch starten zu lassen. Die Warteschlange einsehen kann man mit atq, etwas aus der Warteschlange entfernen kann man mit atrm. [siehe auch cron und calendar] time befehl Eine Stoppuhr die misst in Bruchteilen von Sekunden, wie lange ein UNIX-Befehl zur Ausführung gebraucht hat. cal Zeigt einen aktuellen Kalender. Durch die Eingabe von cal 9 1752 sieht man z.B. den besonderen Kalender im Monat der Datumsreform im September 1752! :-)
date gibt aktuelles Datum und Uhrzeit aus. calendar Ein Terminplaner, den man individuell konfigurieren kann, einen zu bestimmten Uhrzeiten/Tagen an etwas zu erinnern, z.B. einen Geburtstag. Siehe auch cron und at. Datei-Eigenschaftenchflags ChangeFlags manipuliert Flags (Zusatzeinstellungen), die für bestimmte UNIX-Dateien gesetzt sind. chgrp Mit ChangeGroup kann der Administrator festlegen, zu welcher Gruppe von Benutzern eine Datei gehören soll. Eine Gruppe ist z.B. "admin" oder "staff".
Vergleiche chown, chflags und chmod.
chmod {ugoa}{-+=}{rwx} datei Mit ChangeMode legt man die Zugriffsrechte einer Datei fest. Man kann jeweils die Rechte zum "Schreiben" (w), "Ausführen" (x), und "Lesen" (r) an "Eigentümer" (u), "Mitglieder derselben Gruppe" (g), "sonstige" (o) und "alle" (a) vergeben. Z.B. "chmod u+rwx datei" gibt dem Besitzer der Datei alle Rechte daran, mit "chmod go-w datei" nimmt man allen Gruppenmitgliedern und Fremden die Schreibrechte an einer Datei, usw.
Vergleiche ls, chown, chflags und chgrp.
chown heini:staff datei Mit ChangeOwner kann man den Eigentümer und die Gruppenzugehörigkeit einer Datei festlegen. Vergleiche chmod, chflags und chgrp.
Programme, Prozesse, Jobs, Neustarten, Ausschaltenkill pid Zwangsbeenden eines (z.B. amoklaufenden) Programm-Prozesses mit der Nummer pid (siehe auch 'top') shutdown, halt, reboot Auschalten bzw Neustarten - darf nur der Administrator. sync Schreibt alles auf die Festplatte, was gerade noch in der Luft (im Arbeitsspeicher = RAM) hängt. Das macht der Administrator gewöhnlich, um den Rechner seelisch darauf vorzubereiten, dass er ihn gleich ausschalten oder neustarten möchte, damit keine Daten verloren gehen. (Anmerkung: Echte UNIX-Server werden nur selten ausgeschaltet oder neugestartet, gewöhnlich bleiben sie immer an, damit sich Benutzer rund um die Uhr anmelden können.) uptime zeigt an, wie viele Tage der Rechner bereits läuft, wieviele Leute ihn benutzt haben, und ausserdem, wie sehr er dabei ausgelastet wurde. Eine 'Load' von 1.0 bedeutet bei einem Mac mit 1 CPU perfekte Auslastung, ein Load-Wert kleiner Null bedeutet, er ist unterfordert, größer Null, überfordert.
bg, fg Background, Foreground. Man könnte dieses Feature mit dem "Programm Aus/Einblenden"-Menüpunkt des MacOS vergleichen. Wenn man ein UNIX-Programm im Terminal gestartet hat, belegt es dieses Fenster, solange es läuft. Man kann dann nur weitere Terminal-Programme starten, indem man das vorhergehende Programm beendet, oder ein neues leeres Terminalfenster öffnet.
notify: Wenn man einen Prozess mit einem & dahinter startet, um ihn auszublenden, kann man gleich danach "notify" eintippen, um über Statusänderungen des Prozesses informiert zu werden. jobs Listet alle (laufenden und angehaltenen) Jobs in der shell. Siehe auch bg/fg. ps Zeigt den Prozess-Status an, also welche Prozesse (z.B. Programme, Befehle) gerade in diesem Terminalfenster laufen. Siehe auch bg/fg. nice -10 Programm Mit Nice gibt man seinen Programmen beim Aufruf Prioritäten, wieviel Rechenzeit sie verbraten dürfen. Shell ("Der Finder" des Unix)tcsh Die erweiterte C-Shell - das erste Programm, das läft, wenn man ein Terminal-Fenster öffnet. Es zeigt eine Eingabeaufforderung (z.B. ymbolisiert durch ein Prozent-, Gartenzaun- oder Dollerzeichen), nachdem man seine UNIX-Befehle eintippt, und den Namen des Rechners und des Benutzers.
ls listet den Inhalt eines Ordners. Mit der Option "ls -al" bekommt man zusätzliche Informationen wie Dateigröße, Schreib/Lese-Rechte von Benutzer/Gruppe/Fremden an den Dateien, und man sieht auch unsichtbare Unix-Dateien. clear Leert das Terminal-Fenster und zeichnet alles darin neu. Alternativ ist auch die Tastenkombination <CTRL>-L möglich. pwd PrintWorkingDirectory zeigt den Pfad des Ordners an, in dem man sich gerade befindet.
mkdir name MakeDir erstellt einen neuen Ordner. chdir Bla, cd Bla ChangeDirectory wechselt in ein anderes Verzeichnis namens Bla. Es entspricht dem Öffnen eines Ordners unter MacOS. cp quelle ziel Copy kopiert ein Datei quelle in die neue Datei ziel. (Vorsicht, wenn die Zieldatei den selben Namen hat wie die Quelldatei, dann geht der Inhalt der Quelldatei verloren!!) ditto kopiert ganze Verzeichnisse. Praktisch, wenn man grosse Mengen von Daten kopieren möchte. Anmerkung: Dieses Kommando kommt im Original-UNIX nicht vor, es wurde von Apple hinzugefügt, um Mac-Dateien sicher und verlustfrei automatisiert kopieren zu können, z.B., wenn man Home-Verzeichnisse der User von einem MacOSX-Server zum anderen kopieren möchte. (Nur für den Root-Administrator) mv quelle ziel Move verschiebt eine Datei in einen anderen Ordner. Wird bei Unix auch zum Umbenennen von Dateien verwendet: Man verschiebt eine Datei sozusagen in eine Datei mit einem anderen Namen.
rm datei Remove löscht eine Datei unwiderruflich, es gibt kein "Widerrufen"!
ln Link erstellt einen Datei-Alias. ln -s 'originaldatei' 'datei alias' du -k datei DiskUsage zeigt an, wieviel Speicherplatz von einer Datei verbraucht wird (Ohne -k bekommt man die Größe in Blöcken, das sind 0,5 Kilobyte). df DiskFree zeigt an, wieviel Speicherplatz auf welcher Festplatte frei ist. echo blabla gibt den Text blabla ins Terminal aus. So 'ne Art "PrintLine", wird in ShellSkripten genutzt, um Feedback an den Benutzer zu geben. [siehe auch banner] expr Expression interpretiert (berechnet) mathematische Ausdrücke in der Shell. Anmerkung zum Thema Interpretation in der tcsh: Bestimmten Ausdrücke wie z.B. Kommandos innerhalb vom Kopfteil einer 'foreach'-Schleife müssen hingegen in Apostrophe als Anführungszeichen eingeschlossen sein, damit sie ausgewertet werden und nicht als Textstring interpretiert werden! expr 2 + 3 find kann auf der Festplatte Dateien mit bestimmten Eigenschaften finden. locate findet Dateien auf dem Rechner.
logname gibt den Benutzer(kurz)namen des gerade eingelogten Benutzers aus. Dieser Name steht übrigens auch im Shellprompt; das ist wichtig, weil man unter mehreren Namen auf verschiedenen Rechnern arbeiten könnte, und man will ja nicht verwechseln, als wer man gerade einen Befehl abschickt. script Eine praktische Mitprotokollierung aller Kommandos, die man seit der Eingabe des Befehls 'script' in das Terminal eingetippt hat -- z.B. für Studenten, die während einer Übung viele Kommandos eintippen müssen, und später gerne eine Mitschrift ihrer Aktionen hätten. Das Protokoll wird durch eingabe von EOF (ctrl-D) beendet und steht dann in einer Datei Namens 'typescript'. Es funktioniert am besten mit normalen kommandos wie cat, mkdir, cd, usw., aber nicht mit Programmen, die das gesamte Terminalfenster in Beschlag nehmen (wie z.B. der vi-Texteditor). Terminallock Sperrt ein Terminal, so dass keiner mehr was eingeben kann, bis ein bestimmtes Passwort eingegeben wurde, oder eine bestimmte Zeit verstrichen ist. stty Anzeigen bzw konfigurieren, wie das Terminalfenster zur Zeit eingestellt ist, z.B. wie groß es ist. Verwendung z.B. 'stty -a'. open Eine von NeXtStep übernommene Idee: Dieser OSX-Befehl öffnet eine Datei, als ob sie im Finder doppelgeklickt worden wäre. Mit "open -a /Application/xy datei" kann man eine Datei mit dem OSX-Programm xy öffnen lassen, mit "open -e datei" kann man jede Datei aus der Terminal heraus mit SimpleText öffnen. tty gibt den Namen des aktuellen Terminals zurück, z.B. /dev/ttyp1. Möchte man einem anderen Benutzer z.B. mit 'write' eine Nachricht zukommen lassen, aber er hat gerade mehrere Terminals in Verwendung, kann man die Nachricht gezielt auf ein bestimmtes seiner Terminals schreiben lassen, indem man dessen Namen angibt. Siehe auch who, w, write. reset Mit "reset" kann man die Terminalanzeige neu laden. Praktisch, wenn exotische Steuerzeichen versehentlich die Textausgabe vermurkst haben: set TERM=vt100; reset exit, logout: dieses Terminal-Fenster schließen. Internet / World Wide Webcurl ist ein Programm, mit dem man Hoch- und Runterladen von größeren Mengen Dateien automatisieren kann. Vrgl. Beispiel: Nach -o gibt man an, unter welchem Namen die heruntergeladenen Dateien (Output) gespeichert werden sollen; die Zeichen #1, #2... werden jeweils durch den 1., 2. ... Ausdruck in Klammern ersetzt. Die Ziel-Ordner (hier Kapitel-a, Kapitel-b, Kapitel-c) muss man vorher selbst mit mkdir erstellen. *Praktisch*! curl http://www.buch.de/kapitel{a,b,c}/seite[1-5].html -o "Kapitel-#1/Seite#2.html"
httpd Der HyperTextTransferProtocol-Dämon macht aus dem Mac einen "Apache"-Webserver. Das heisst, wenn jemand die IP-Adresse des Macs in einen Webbrowser eintippt, bekommt er die Webseiten angezeigt, die ein Benutzer erstellt und im Ordner "Sites" abgespeichert hat. htpasswd, htdigest Mit HTTP-Digest und HTTP-Password erstellt und verwaltet man Listen von Benutzern und Passwörtern von Leuten, die auf bestimmte lokale Webseiten und Dateien auf diesem Mac zugreifen dürfen, die nicht jeder aufrufen darf. host yahoo.de Mit Host kann man, während man online ist, einen bestimmten Rechner suchen und dessen IP-Adresse ausgegeben bekommen. ipfw Mit InternetProtocolFirewall kann ein Netzwerkadministrator einen Mac so für das Netzwerk konfigurieren, dass er so gut wie möglich vor Angriffen geschützt ist. Speichermedien, Dateisystemfdisk FormatDisk ist ein DOS-Festplatten/Disketten-Formatierungsprogramm. pdisk UNIX-Festplattenformatierungsprogramm von Apple für Mac-Volumes.
newfs_msdos, newfs_hfs, newfs Legen ein neues Dateisystem (File System) an. Siehe auch mount und disklabel. disktool kann Speichermedien mounten (= nach dem Einlegen benutzbar auf dem Desktop anzeigen), unmounten (zum Auswerfen freigeben), auswerfen, u.v.m. fsck FileSystemCheck überprüft das Dateisystem auf Fehler. hdiutil Das Hard(?)DiskImage-Utility verwendet man, um Diskimages zu erstellen, anzuzeigen (mounten), auszuwerfen, überprüfen oder auf CD zu brennen. Dateibearbeitungmore datei.txt, less datei.txt Inhalt einer Datei ausgeben, seitenweises Blättern durch Drücken von <space>, aufhören durch Drücken des Buchstabens "q". Anmerkung: More heisst so, weil es "mehr" von einer Datei zeigt als nur den Namen. Jemand entwickelte More weiter, und nannte die neue Version scherzhaft Less, "weniger". ;-) cat datei1.txt datei2.txt > dateien.txt Cat konkateniert mehrere Textdateien, d.h. hängt ihre Inhalte hintereinander. *Praktisch*! pico ein einfacher UNIX-Texteditor für puren Text (d.h. keine Schriften oder Stile möglich). vi, ex, ed Nicht intuitiv bedienbare einfache Texteditoren. Die Programme vi+ex ergeben zusammen den Texteditor vi (Visual Editor). Keine Schriftstile etc. emacs Ein extrem vielseitiges Programm! Auf den ersten Blick ist es nur ein Texteditor, aber es kann z.B. Reguläre Ausdrücke finden und ersetzen, und mit Hilfe von Synatx-Modulen die Syntax von Quellcode farbig markieren, er kann als eMail-Client benutzt werden, ausländische Schriftsysteme anzeigen, und noch viel mehr. Ist zumindest in seiner graphischen Variante sehr nützlich, in der der textbasierten muss man hingegen alle Kurzbefehle auswendig wissen. sort datei.txt > sortiertedatei.txt Sortiert Textzeilen in einer Datei alphabetisch. Mit der Option 'sort -n' werden Zahlen nach ihrem Wert sortiert und nicht als Buchstaben behandelt. Mit der Option 'sort -f' wird Gross-/Kleinschreibung ignoriert. Mit 'sort -k 3 wortliste.txt > sortierteliste.txt' kann man die Datei nach z.B. der 3. anstatt der ersten Spalte sortieren (Spalten sind durch Tabulatorzeichen getrennt, oder man nutzt die Option 'sort -t "e "e -k 3 ...', um ein anderes Trennzeichen anstatt tabulator zu wählen). head -10 datei.txt, tail -10 datei.txt Head zeigt die ersten bzw Tail die letzten 10... Zeilen einer Textdatei. *Praktisch*!
comm datei1 datei2 Common vergleicht, welche Zeilen zwei Dateien gemeinsam haben. Ausgabe sind drei Spalten, wobei die erste Zeilen enthält, die ausschließlich in datei1 vorkommen, die zweite die von datei2, und die dritte alle Zeilen, die in beiden vorkommen. *Praktisch*! cmp datei1 datei2 Compare vergleicht zwei Dateien und gibt die Position der ersten Stelle an, wo sie sich unterscheiden. *Praktisch*! diff datei1.txt datei2.txt Diff kann zwei Dateien oder Verzeichnisse vergleichen, und gibt detailliert aus, was die eine Datei mehr oder weniger hat als die andere. *Praktisch*!
merge geaendert1.txt original.txt geaendert2.txt Inkooperiert alle änderungen zwischen original.txt und geaendert2.txt in die Datei geaendert1.txt, und kennzeichnet Konflikte. *praktisch* cut -f3 tabelle.txt Cut kann Teilstücke von Dateien ausgeben, z.B. die dritte Spalte einer Tabelle. split -l 277 eingabe.txt ergebnis zerhackt die Datei 'eingabe.txt' in mehrere Teile mit z.B. je 277 Zeilen Länge, und speichert jedes Teilstück unter dem Namen 'ergebnisa', 'ergebnisb' usw. Wenn mehr als 676 teile erzeugt werden sollen, verwende man den aufruf ohne Spezifikation des Namens der Ergebnisdatei (also nur 'split -l 277 eingabe'), dann werden die Ergebnisdateien automatisch 'xaa' bis 'xzz' genannt (= über 2000 Möglichkeiten). hexdump datei.txt filtert Daten in bestimmten Formaten, und zeigt sie (je nach zusätzlich gewählter Option wie -C, -d, -x, -o) an, als wären sie ASCII-Text, dezimal, hexadezimal, oder oktal. native2ascii: Übersetzt eine Datei mit Sonderzeichen in eine Latin1- oder Unicode-Datei. strings datei.exe Mit diesem Befehl kann man sich alle puren Text-Zeichenketten aus einer Datei anzeigen lassen. Z.B. bei Programmen, die zum Grossteil aus kompiliertem Code bestehen, aber in denen anzuzeigende Texte unkodiert drinstehen. rev datei.txt Reverse dreht die Reihenfolge von Buchstaben der Eingabe bzw. in einer Datei um:
rs datei.txt Reshape ist praktisch für die Ausgabe von langen Listen ins Terminal.
file dateiname versucht den Typ einer Datei herauszufinden. (z.B. Text-Datei, Word-Dokument, MP3-Datei etc). Praktisch, wenn man eine Datei ohne Endung hat. touch datei berührt eine Datei, d.h. ihr letztes Zugriffs- und Änderungsdatum wird auf 'jetzt' gesetzt. Wenn die Datei noch nicht existiert, wird eine leere mit diesem Namen erstellt. tr translate ersetzt schnell alle Auftreten eines Zeichens in einer Datei durch ein anderes. Das 1. Beispiel ersetzt alles in Datei file1, was nicht (-c) eine Kette (-s) von Buchstaben ([:alpha:]) ist, durch einen Zeilenumbruch (\n) -- am Ende stehen alle Worte aus dieser Datei einzeln in Zeilen, Satzeichen oder Zahlen sind weg. Das 2. Beispiel ersetzt alle kleingeschriebenen Buchstaben druch großgeschriebene. tr -cs "[:alpha:]" "\n" < file1 > tr "[:lower:]" "[:upper:]" < file1 flex, flex++, lex der Fast LEXical Analyzer Generator ist ein Dienstprogramm, dass individuelle Programme generieren kann, die automatisiert Pattern-matching auf Texten ausführen. grep suchwort datei.txt GetRegularExpressionPattern findet u.a. alle Zeilen in Dateien, die 'suchwort' enthalten. Es kann auch nach Regulären Ausdrücken suchen, die Ausgabe anderer Programme nach bestimmten Zeilen filtern, u.v.m. grep Karlheinz Meine_Mails/* groff Dokumentformatierungssystem mit zahlreichen Modulen... look wort liste.txt gibt aus der alphabtisch sortierten 'Liste' alle Einträge aus, die mit 'wort...' beginnen. Wenn man keine Liste angibt, wird stattdessen ein mitgeliefertes englisches Wörterbuch verwendet! *praktisch*. Dateiarchivierungexpand datei.txt, unexpand datei.txt Konvertiert alle Tabulatorzeichen in einem Text zu Leerzeichen, bzw umgekehrt. *Praktisch*! gunzip datei.zip, gzip datei: GNUZip komprimiert Dateien, GNUunzip entpackt sie wieder. gnutar, tar Der TapeArchiver verpackt mehrere Dateien in eine Datei (ohne sie zu komprimieren). Früher tat man das, bevor man Dateien auf Magnetbänder (tapes) abspeicherte (archivierte). Heutzutage verwendet man ihn, um einzelne Teile von Programmen beim Download etc zusammenzubehalten. pax Eine Programm zum Auflisten, Erstellen und Kopieren von Verzeichnisarchiven. compress datei Komprimiert Dateien mit Hilfe des Lempel-Ziv-Vefahrens (Dateiendung ".Z"). Gegenteil: uncompress.
Kommunikation, Chatmesg Mit dem Message-Befehl, entweder 'mesg n' oder 'mesg y', kann man festlegen, ob andere Benutzer Nachrichten (Chat-Anfragern etc) in dein Terminalfenster schicken dürfen (y) oder nicht (n). Ist natürlich nur sinnvoll, wenn es mehr als ein Benutzer gleichzeitig an diesem Mac arbeitet (d.h., wenn der Mac als ein Server genutzt wird). talk ist ein kleines Chat-Programm. Anhand der Ausgabe von who kann man sehen, wer alles z.Z eingelogt ist, und kann an dessen Login eine Chat-Anfrage senden: 'talk karlheinz'. Der Empfänger bekommt die Anzeige, dass z.B. hanspeter ihn sprechen möchte. Er antortet darauf, indem er seinerseits 'talk hanspeter' eingibt. Ab jetzt kann der jeweils andere alles sehen, was der andere eintippt - die Nachrichten des einen befinden sich in der oberen Terminalhälfte, die des anderen in der unteren. Den Chat beendet man durch Eingabe von CTRL-C. Diversesinstall Installationsprogramm (?). keytool generiert Schlüssel und Zertifikate, mit denen sich Benutzer authentifizieren können, falls mehr Sicherheit benötigt wird. jot Definierbarer Wort-, Zahlen- bzw Zufalls-Generator. Das erste Beispiel generiert 20 8-Buchstabige Zufallswörter (z.B. Passwörter) aus Buchstaben von a-z (20 = 160/8); das zweite gibt der Reihe nach 21 Zahlen zwischen -1 und 1 aus. jot -r -c 160 a z | rs -g 0 8 jot 21 -1 1.00 test top zeigt eine laufend aktualisierte Systemstatistik: CPU-Auslastung, Name und ID-Nummer (PID) jedes Prozesses (falls man einen amoklaufenden identifizieren und mit kill abschießen muss), wie lange ein Prozess schon läft, wie viele Prozesse laufen/schlafen, Load und Uptime, wieviel Arbeitsspeicher (RAM) zur Verfügung steht, u.v.m. (siehe 'uptime', 'kill')
trpt transliterate protocol trace tee datei leitet innerhalb einen Befehl wie eine Pipe weiter, und speichert zusätzlich ein Zwischenergebnis in einer angegebenen Datei. (Anmerkung: Pipes sind durch das Zeichen | verkettete UNIX-Kommandos, bei denen die Ausgabe des ersten als Eingabe an den zweiten weitergeleitet wird, usw.) Benannt ist es nach dem Buchstaben 'T'. Das folgende Beispiel sendet (cat) den Inhalt einer Datei an das Sortierprogramm sort, speichert das Zwischenergebnis (tee) als Datei, und leitet die sortierte Ausgabe an das Programm 'uniq' weiter, das Mehrfacheinträge zählt und entfernt; das Ergebnis wird als Datei gespeichert. cat liste.text | sort | tee zwischenergebnis.txt | uniq -c > ergebnis.txt tcopy kopiert Daten von einem Magnetband zum anderen (wenn man sowas hat). tsort ul uncompress unlimit update_prebinding umask unexpand unset umount unhash unsetenv users unalias unifdef unvis uudecode uname uniq unzip uuencode uncomplete units update uuidgen vacation vgrind view vis vm_stat vsdbutil vers_string vi vipw visudo vmmap w wall wc what whatis whereis which whoami whois window write xargs xstr yacc ypbind ypinit.sh yppoll ypset ypxfr yes ypcat ypmatch yppush ypwhich zcat zdiff zforce zic zmore zprint zcmp zdump zgrep zip znew zsh |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
http://www.ruthless.zathras.de/ |