Logo
RuTh's  RuThLEss  HomEpAgE

 

sTaRt
 
 
 
 
 
 
 
 
FuN
 
 
 
 
fAcTs
 
 
 
 
>
Mac OS X Für Neueinsteiger
>
UNIX-Befehle in Mac OS X
>
Apple Mac links
 
 
 
 

facts - Apple Macintosh

Die Unix-Seite des MacOSX - erklärt für Mac-Benutzer

Entwurf - 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:

  • Das Terminal: Die Unix-Programme werden alle über das Mac-Dienstprogramm "/Applications/Utilities/Terminal" aufgerufen. Die Programme im Terminal haben keine graphische Oberfläche (d.h. kein Menü, keine Buttons), sondern sie sind textorientiert. Also vergleichbar mit DOS-Kommandos, aber mit viel mehr Funktionen.
  • Die Shell: Im Terminal läuft beim Start schon ein Programm namens Shell, dort tippt man seine UNIX-Kommandos ein. Grob gesagt ist die Shell so etwas wie die textuelle Variante des Finders. Sie ist auch programmierbar ("Shellscripting"), vergleichbar mit AppleScript für den Mac. Es gibt mehrere Shells (z.B. "bash", "csh", ...), im MacOSX ist die "tcsh" mitgeliefert.
  • UNIX-Programm starten: Anstatt ein Symbol im Finder doppelzuklicken, tippt man den Namen des Kommandos im Terminal hinter die Eingabeaufforderung der Shell (meist ein Dollar- oder Prozentzeichen) ein, und drückt dann <RETURN>. Ein Kommando besteht immer aus einem Schlüsselwort und oft zusätzlichen Parametern. "lpr -#3 Brief.txt" bedeutet z.B. "Drucke die Datei Brief.txt dreimal aus" "ssh -l karlheinz pc7.uni.de" bedeutet "Melde mich, Karl-Heinz, an dem Rechner pc7.uni.de an", usw... Ein Parameter kann wie man sieht ein Datei- oder Computername sein, oder eine Option (angegeben durch Buchstaben mit Minuszeichen davor) wie "-#3". Befehlsschlüsselwörter sind fast immer unausprechliche Abkürzungen, die sich dafür aber schnell tippen lassen. Groß- und Kleinschreibung wird unterschieden!!
  • Beenden und Blättern: Ohne "intuitive Bedienung" wie Mouseclicks und Menüleiste kommt man unter UNIX nur weiter, wenn man die passenden Tastaturkürzel kennt: Eine langen Text blättert man durch Drücken der Leertaste weiter, eine Seite zurück kommt man meistens mit dem Buchstaben b (wie back); Den Textanzeigemodus verlassen kann man durch Drücken des Buchstabens q. Einige Befehle werden durch Drücken der Tastenkombination CTRL+D (das sogenannte "EOF") abgeschlossen, die meisten Programme wird man im Notfall durch CTRL+C (close) los. Leider sind solche wichtige Funktionen wie Beenden und Speichern etc im Gegensatz zu MacOS in jedem UNIX-Programm anders, aber ob man nur eine Liste mit unausprechlichen Kommandos neben sich hat, oder noch eine zweite mit all den jeweiligen Kurzbefehlen, macht auch keinen Unterschied mehr. ;-)
  • "Root" 1) Root ist in erster Linie die Bezeichnung für den Administrator eines Unix-Rechners. Da Unix meist von mehreren Leuten zusammen als Multi-User-Betriebssystem verwendet wird, sind die Systemeinstellungen nämlich passwortgeschützt. Nur Systemadministratoren mit "Root-Rechten" (Administrator-Rechten) können diese ändern. 2) Root ("Wurzel") nennt man auch die oberste Ebene, bzw den "Schreibtisch" bei graphischen Unix-Oberflächen. Wenn man in einem graphischen UNIX irgendwo auf den "Desktop" klickt, erscheint ein Kontextmenü. Dieses "Root-Menü" ist der Ersatz für die Menüleiste am oberen Bildschirmrand.
  • Slash: Die oberste Ebene der Hierarchie auf der Festplatte wird unter Unix Root (Wurzel) oder Slash (geschrieben als Schrägstrich "/" ) genannt. Beim MacOS entspricht das der Ebene, die man als erste sieht, wenn man das Festplattensymbol öffnet (auf dieser Ebene liegt z.B. der MacOSX-Systemordner).
  • UNIX-Handbuch: Wer später mehr Konkretes über irgendeinen Unix-Befehl xy und seine Parameter wissen will, kann durch Eintippen von "man xy" oder "xy --help" im Terminal die Handbuchseiten eines Befehls xy aufrufen (Blättern mit <space>, beenden mit q). Ziemlicher Tech-Bla - leider für Anfänger nicht leicht verständlich.
  • Host ("Gastgeber"): Ein Computer in einem Netzwerk. Auf ihm können Client- und Server-Programme installiert sein.
  • Client & Server ("Kunde & Dienstleister"): 1) Client & Server sind zwei Typen von Programmen, die zusammenarbeiten. Bsp: Der Administrator eines Host-Rechners installiert darauf zwei Programme, einen Web-Server und einen Mail-Server. Jetzt kann er seinen Kunden Webseiten und eMail-Zustellung als Dienstleitung anbieten. Die Kunden benutzen entsprechende Client-Programme, um die angebotenen Dienste zu nutzen: Um das Webseiten-Angebot lesen zu können, verwenden sie ein Client-Programm genannt Web-Browser (z.B. Netscape Navigator); um eMails zu lesen und zu schreiben verwenden sie einen eMail-Client (z.B. Eudora).
    2) Ein Rechner, auf dem ein bestimmter Client oder Server läuft, wird im Kontext selbst auch Client bzw. Server genannt.
  • UNIX versus MacOS: Interessant für Mac-User ist es zu wissen, dass einige dieser "kryptisch" scheinenden Unix-Programme eigentlich hinter alltäglichen MacOSX-Programmen stehen (gekennzeichnet durch '-->')! D.h. einige Unix-Kommandos tun genau das gleiche, was der Benutzer auch "benutzerfreundlich" im MacOS tun kann. Jedoch gibt es viele Unix-Programme, die beträchtlich mehr können als die Mac-Programme, was für fortgeschrittene MacOSX-Benutzer und Programmierer sicher interessant ist.
  • Dämonen: Ein "demon" ist ein spezieller Typ Programm, das nach dem Starten des Rechners unsichtbar im Hintergrund läuft, und ständig auf ein bestimmtes Ereignis "lauert", auf das es reagiert. Typische Ereignisse wären das Einlegen einer Diskette, oder ein Kontaktierungsversuch über das Netzwerk. Die Reaktion der Dämonen besteht in diesem Beispiel dann darin, die Diskette auf dem Desktop anzuzeigen (zu "mounten"), bzw zu entscheiden, wie auf den Kontaktierungsversuch im Netzwerk reagiert werden muss.
  • Quellcode kompilieren: Der Quellcode ist eine von einem Programmierer geschriebene Liste von Anweisungen an den Computer in einer Programmiersprache. Der (menschenlesbare) Quellcode wird in das (nur noch für den Computer verständliche) fertige Programm übersetzt. Diese Übersetzung nennt man "den Quellcode kompilieren". Das spezielle Programm, das das Übersetzen erledigt, nennt man Compiler.
  • DNS = Domain Name Server, vergleichbar mit einem Telephonbuch aller angemeldeten Rechner im Internet. Er findet zu jeder URL (ein leichtmerkbarer alphanumerischer Link wie z.B. "www.apple.de") die entsprechende IP-Adresse (sozusagen die "Telephonnummer", unter der der Rechner erreichbar ist).

 

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
--> Apple Developer ProjektBuilder

cc, c++ Der C-Compiler kompiliert einen Quellcode der Sprache C (bzw C++) und erstellt daraus ein ausführbares Programm.
--> Apple Developer ProjektBuilder

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.
--> Apple Developer ProjektBuilder

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")
--> Apple Developer ProjektBuilder
rcsdiff vergleicht Versionen von Dateien, die im ConcurrentVersionsSystem (cvs) verwaltet werden.
rcsmerge ist ein weiterer Teil des ConcurrentVersionsSystem (cvs), der verschiedene Versionen von CVS-verwalteten Dateien vereinigt.

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.
--> Apple Developer ProjektBuilder

indent rückt C-Programme syntaktisch ein.
--> Apple Developer ProjektBuilder

osascript Führt ein OSA-Skript-Programm aus (Open Scripting Architecture), z.B. AppleScript.
osacompile kompiliert ein OSA-Skript.
osalang zeigt eine Liste der Installierten OSA-Sprachen. Diese drei OSA-Befehle kommen im Original-UNIX nicht vor, sondern sie wurden von Apple hinzugefügt.

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 Einstellungen

su 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!
--> Systemeinstellungen > Benutzer > Benutzer Bearbeiten > 'Benutzer darf diesen Computer verwalten'

passwd Programm zum Ändern des eigenen Passwortes.
--> Systemeinstellungen > Mein Account > 'Kennwort ändern'

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.
--> Einfacher ist es, stattdessen die Systemeinstellung "Startvolume" zu verwenden.

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.
--> Die meisten Dinge lassen sich einfacher im Einstellungen-Menüpunkt des betreffenden Programmes ändern.




Netzwerk, AppleTalk

ifconfig, 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.
--> Systemeinstellungen > Netzwerk > Ethernet/Internes Modem > TCP/IP

appletalk Dies ist eines der UNIX-Programme, die man unbewusst verwendet, während man die (benutzerfreundlicheren) MacOS-Systemeinstellungen wie z.B. Sharing benutzt.
--> Systemeinstellungen > Netzwerk / Sharing

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.
--> Finder-Menü 'Gehe zu > Mit Server verbinden'

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.
--> Systemeinstellungen > Sharing

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.
Ping nicht mehr als ein paar Sekunden einsetzen, weil es einen ziemlichen Teil der Kapazität der betreffenden Rechner für sich beansprucht (im Extremfall so genanntes 'Ping of Death').
spray www.xyz.de ist so etwas ähnliches wie Ping, nur sendet es ganze Pakete. Erst recht mit Vorsicht zu genießen!
appleping Steves Mac ApplePing misst wie Ping, wie schnell ein Mac im AppleTalk-Netz auf Anfragen reagiert.

who Who zeigt, welche Benutzer gerade auf dem Rechner eingelogt sind, und seit wann.
rhwo RemoteWho macht dasselbe, aber auch für andere Rechner im lokalen Netzwerk.

rcp Mit RemoteFileCopy kann man eine Datei übers Netzwerk von einem Host zum anderen kopieren.
scp Mit SecureCopy kann man eine Datei übers Netzwerk verschlüsselt 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.
ncftp, ftp FileTransferProtocol ist ein bekanntes Programm, um mehrere Dateien hoch- oder runterzuladen.
sftp SecureFileTransferProtocol ist die sichere Variante von FTP, d.h. verschlüsselte Dateiübertragung.
--> Mac-Programme rBrowser, Fetch, AnArchie, CaptainFTP, u.v.m.

telnet, login, rlogin, rsh Telnet, (Remote)Login und RemoteShell stellen eine Verbindung zu einem anderen Host-Rechner mit unverschlüsselter Übertragung her. (Besser: ssh)
ssh Mit SecureShell logt sich ein Benutzer ählich wie mit telnet & Co auf einem anderen UNIX-Rechner ein, das Passwort und alle Daten werden dabei verschlüsselt übertragen. Die zusätzliche SSH-Option '-x' erlaubt auch die Mitbenutzung von graphischen Programmen auf dem fernen Rechner.

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.
--> NetInfo Manager Utility

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.
--> Network Utility

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ämonen

automount 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.
--> Systemeinstellungen > Datum & Uhrzeit > Netzwerkzeit

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.
--> Systemeinstellungen > Sharing > Dienste

smbd SambaDemon ist ein praktischer Demon, der Kompatibilität zu Windows-Netzwerken herstellt.
--> SystemPreferences > Sharing > Dienste: Windows Sharing; bzw. Directory Access Utility.




Informationen über das System und installierte Programme

apropos 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.
--> Apple System Profiler Utility.

ioreg Input/Output-Registry zeigt eine Baumstruktur von Eingabe- und Ausgabegeräten des Macs, z.B. Lautsprecher, USB-Geräte, Mouse, Tastatur, Monitor etc.
--> Apple System Profiler Utility.

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.
--> Apple System Profiler Utility, bzw "Applemenü > Über diesen Mac".

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 Prozesse

last gibt eine Liste aus, wer sich wann wielange eingeloggt hat, wann der Rechner neugestartet wurde, etc.
lastcomm gibt eine Liste aus, welche Befehle zuletzt eingegeben wurden.
accton protokolliert alle Befehle mit, wann wer wo was wielange laufen liess.
logger um zusätzlich eigene Einträge in das tägliche automatische Protokoll zu machen.
msgs Messages ist eine Art internes eMail-Programm, mit dem man in größeren Unix-Systemen Systemnachrichten sendet und liest.

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.
--> Systemeinstellungen "Benutzer"; Macintosh Manager

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.
--> Vieles davon geht einfacher mit der Systemeinstellung "Benutzer" einzustellen.

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.




Drucken

lpc Line Printer Configurator - (Laser)Druckerkonfiguration.
lpr Line Printer - schickt (Postscript)-Dateien an einen Laserdrucker.
lpq Line Printer Queue - Zeigt die Druckerwarteschlange und die Bereitschaft des Druckers
lprm Line Printer Remove - Aufträge aus der Druckerwarteschlange löschen
--> Print Center Utility

atprint Das Unix-Programm AppleTalkPrint sendet Druckdaten an einen AppleTalk-Drucker.
--> "Ablage"-Menü > 'Drucken...'

at_cho_prn Mit AppleTalkChoosePrinter kann man den Default-Drucker in einem AppleTalkNetz wählen.
--> "Ablage"-Menü > 'Drucken...' bzw Print Center Utility.

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.




eMail

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).
mail sehr simples Mailsende- und Empfangs-Programm.
fetchmail Ein Unix-Email-Programm.
procmail Ein Email-Bearbeitungsprogramm. Es kann z.B. gerade angekommene Mails filtern und anhand von Regeln Spams löschen u.v.m.
--> Apple Mail

biff benachrichtigt den Benutzer durch eine Ausgabe in das Terminal, dass eine neue eMail angekommen ist.
from zeigt die Liste der Leute an, die zuletzt eMail an diesen Mac geschickt haben.
mailq Zeigt die "Outbox".

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, Kalender

leave 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! :-)
--> Systemeinstellungen "Datum & Uhrzeit"

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-Eigenschaften

chflags ChangeFlags manipuliert Flags (Zusatzeinstellungen), die für bestimmte UNIX-Dateien gesetzt sind.
--> Vergleichbare Funktion wie ResEdit im MacOS.

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.
--> Finder-Menu "Information einblenden"
--> xFiles ist ein leicht zu bedienendes graphisches Tool mit derselben Funktion.

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.
--> Finder-Menu "Information einblenden"
--> xFiles ist ein leicht zu bedienendes graphisches Tool mit der selben Funktion.

chown heini:staff datei Mit ChangeOwner kann man den Eigentümer und die Gruppenzugehörigkeit einer Datei festlegen. Vergleiche chmod, chflags und chgrp.
--> Finder-Menu "Information einblenden"
--> xFiles ist ein leicht zu bedienendes graphisches Tool mit der selben Funktion.




Programme, Prozesse, Jobs, Neustarten, Ausschalten

kill pid Zwangsbeenden eines (z.B. amoklaufenden) Programm-Prozesses mit der Nummer pid (siehe auch 'top')
--> AppleMenü > Sofort beenden

shutdown, halt, reboot Auschalten bzw Neustarten - darf nur der Administrator.
--> Apple-Menü > Ausschalten, Neustart etc.

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.
ruptime macht das gleiche, aber auch für Rechner im lokalen Netzwerk.

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.
Will man, dass ein schon gestartes Terminal-Programm in den Hintergrund geschaltet wird, um ein weiteres Terminal-Programm zu starten, drückt man im laufenden Terminalprogramm <ctrl>-z, tippt dann die zwei Buchstaben "bg", und drückt dann die Returntaste. Das Programm blendet sich aus (die Eingabeauffordrung erscheint wieder), und bekommt eine Job-Nummer zugewiesen, z.B. '1'. Dann kann das nächste Programm gestartet werden.
Um das Programm mit Job-Nummer '1' wieder in den Vordergrund zu holen, tippt man hinter den Prompt "fg -1" ein, usw. (Eventuell muss man zuvor ebenso ein gerade laufendes anderes Terminalprogramm beenden oder in den Hintergrund schalten, um den Prompt wieder zu bekommen.) [siehe auch jobs]
Alternativ kann man auch gleich beim Starten eines UNIX-Kommandos ein "&"-Zeichen hinter das Kommando schreiben, um es gleich in den Hintergrund zu schicken. Das macht man z.B. beim Datei-Kopierungs-Kommando cp, weil es während eines langen Kopiervorgangs eh nichts interessantes zu sehen gibt (mit Ausnahme von Fehlermeldungen -- siehe notify).

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.
Ein "nice -20 prog" würde das Programm prog als sehr unwichtig einstufen, es stört dann niemanden und läuft u.U. sehr langsam ab. Ein "nice -10 prog" ist normal; "nice -1 prog" hat hohe Priorität, und darf anderen Rechenzeit wegnehmen. Der Administrator darf sogar mit "nice --1 prog" (wichtig) bis zu "nice --20 prog" (sehr wichtig) seinen Programmen noch höhere Prioritäten zuweisen.
renice Ändert die Prioritäten von laufenden Programmen, also wieviel Rechenzeit sie jeweils in Anspruch nehmen 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.
csh Die C-Shell ist eine weitere der möglichen UNIX-Shells.
--> Vom Zweck her in etwa mit dem 'Finder' vergleichbar

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.
--> im Finder mit gedrückter Apfeltaste auf den Namen eines Fensters klicken.

mkdir name MakeDir erstellt einen neuen Ordner.
-->Finder > Ablage > Neuer Ordner

chdir Bla, cd Bla ChangeDirectory wechselt in ein anderes Verzeichnis namens Bla. Es entspricht dem Öffnen eines Ordners unter MacOS.
cd ist der Kurzbefehl, um im Terminal von überall direkt in das Home-Verzeichnis zurückzukehren. Es entspricht dem Finder-Menüpunkt "Gehe zu > Privat".
cd.. ist der Kurzbefehl, um eine Ebene höher in der Ordnerhierarchie zu gelangen.

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.
--> im Finder macht man das per drag&drop etc.

rm datei Remove löscht eine Datei unwiderruflich, es gibt kein "Widerrufen"!
rmdir verzeichnis löscht (leere) Verzeichnisse.
rm -rf verzeichnis/* löscht volle Verzeichnisse samt Inhalt.
Vorsicht, rm hat sehr negative Nebenwirkungen, wenn man (versehentlich) Ausdrücke wie "rm ~" oder "rm .*" eintippt, dann löscht es das Homeverzeichnis bzw. auch Dateien im übergeordneten Ordner!

ln Link erstellt einen Datei-Alias.
--> Finder-Menü: Ablage > Alias erzeugen.

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.
--> Sherlock.

locate findet Dateien auf dem Rechner.
--> Sherlock.

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).




Terminal

lock Sperrt ein Terminal, so dass keiner mehr was eingeben kann, bis ein bestimmtes Passwort eingegeben wurde, oder eine bestimmte Zeit verstrichen ist.
--> Die textuelle Variante eine passwortgeschützten Bildschirmschoners. :-)

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 Web

curl 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.
--> Systemeinstellungen > Sharing > Dienste: Personal Web Sharing.

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.
--> Systemeinstellungen > Sharing > Firewall




Speichermedien, Dateisystem

fdisk FormatDisk ist ein DOS-Festplatten/Disketten-Formatierungsprogramm.
--> Apple Disk Utility

pdisk UNIX-Festplattenformatierungsprogramm von Apple für Mac-Volumes.
--> Apple Disk Utility

newfs_msdos, newfs_hfs, newfs Legen ein neues Dateisystem (File System) an. Siehe auch mount und disklabel.
--> Apple Disk Utility

disktool kann Speichermedien mounten (= nach dem Einlegen benutzbar auf dem Desktop anzeigen), unmounten (zum Auswerfen freigeben), auswerfen, u.v.m.
--> Finder-Menupunkt: Ablage > CD Auswerfen.

fsck FileSystemCheck überprüft das Dateisystem auf Fehler.
--> Apple Disk Utility

hdiutil Das Hard(?)DiskImage-Utility verwendet man, um Diskimages zu erstellen, anzuzeigen (mounten), auszuwerfen, überprüfen oder auf CD zu brennen.
--> Apple DiskCopy Utility; Finder-Ablage-Menü > CD Brennen/Auswerfen.




Dateibearbeitung

more 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).
--> Apple TextEdit

vi, ex, ed Nicht intuitiv bedienbare einfache Texteditoren. Die Programme vi+ex ergeben zusammen den Texteditor vi (Visual Editor). Keine Schriftstile etc.
--> Apple TextEdit

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.
--> Apple TextEdit

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*!
tail -f /var/log/httpd/error_log ist z.B. praktisch bei Protokolldateien, an die ständig automatisch etwas angefügt wird - man ist so immer auf dem neusten Stand.
tail -2 datei.txt zeigt die letzten zwei Zeilen der Datei,
tail +2 datei.txt zeigt alles ausser den beiden ersten Zeilen.

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*!
diff3 datei1.txt datei2.txt datei3.txt kann das selbe mit drei Vergleichsobjekten.
sdiff -o ergebnis.txt eingabe1.txt eingabe2.txt Zwei leicht verschiedene (Text-)Dateien interaktiv zu einer vereinen. Die zusätzlichen Optionen -b, -B, und -i erlauben es, unterschiede in den Leerzeichen, Leerzeilen und Gross/Kleinschreibung zu ignorieren.
patch Ein Programm, mit dem man die von diff ausgegebenen Unterschiede zwischen zwei Datei als Patchdatei verwenden kann, nach deren Vorbild man geänderte Zeilen in eine Datei einfügen lassen kann. (Solche Dateien können als Updater verwendet werden)

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.
*Praktisch*!
paste datei1.txt datei2.txt setzt mehrere Dateien zu einer Tabelle zusammen, wobei die Einzeldateien entweder als Zeilen oder Spalten verwendet werden können.
join erstellt aus zwei Tabellen eine Datei mit der Schnittmenge(?) bestimmter Spalten.

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:

rev[RETURN]
Ein Neger mit Gazelle zagt im Regen nie
ein negeR mi tgaz ellezaG tim regeN niE

rs datei.txt Reshape ist praktisch für die Ausgabe von langen Listen ins Terminal.

rs[RETURN]
Dies ist ein langer Satz, aber am Ende steht jedes Wort 
untereinander in passenden Spalten.^D
Dies           langer         am             jedes          in
ist            Satz,          Ende           Wort           passenden
ein            aber           steht          untereinander  Spalten.

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.
--> Siehe Datei-Symbol im Finder.

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.
--> Eine Art super-"Finden & Ersetzen".

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*.




Dateiarchivierung

expand 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.
--> Alladin Stuffit

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.
--> ungefähr Alladin StuffIt DropStuff




Kommunikation, Chat

mesg 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.







Diverses

install 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')
--> CPU Monitor Utility, Process Viewer Utility

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
 
   
2008.08.26

http://www.ruthless.zathras.de/