Studium, Ausbildung und Beruf

web uni-protokolle.de
 powered by
NachrichtenLexikonProtokolleBücherForenDonnerstag, 21. August 2014 

Unix-Kommandos


Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier.

Unix -Systeme zeichnen sich durch eine Vielzahl von aus mit denen sich über eine Shell das Betriebssystem bedienen lässt. Die Syntax Kommandos weicht unter den diversen Shells voneinander Es existieren zwei Hauptströmungen BSD - und System V -Derivate. Viele Kommandos gibt es in mehreren mittlerweile sind auch die Open Source GNU -Tools weit verbreitet. Die meisten Kommandos verfügen einbuchstabige Optionen die mit einem Bindestrich angehängt und die Funktionalität verändern oder erweitern z.B. ein "cp -R" rekursiv ein ganzes Verzeichnis samt aller Inhalte und Unterverzeichnisse. Die erlauben auch lange Optionsnamen wie "cp --recursive". Befehle und Programme von Unix-Derivaten sind weitere Kommandos aufgeführt.

Im Folgenden wird in Klammern angegeben welcher Unix-Variante das Kommando erstmals auftaucht bzw. der seine Verbreitung ausgeht:

  • (V7) - das Kommando ist in der V7 von 1979 enthalten
  • (BSD) - das Kommando ist Teil der Version
  • (System V) - das Kommando ist Teil System V
  • (GNU) - das Kommando ist ein GNU
  • (SH) - das Kommando ist ein internes der Shell
  • (CSH) - das Kommando ist ein internes der C-Shell
  • (-) - das Kommando wird von anderer beigesteuert

Inhaltsverzeichnis

Die Baukasten-Philosophie

Die grundlegende Philosophie der Unix-Kommandos ist Baukasten-Prinzip: Statt großer spezialisierter Programme für ganze werden kleine spezialisierte Kommandos für elementare Aufgaben die miteinander verknüpft werden können um komplexere durchzuführen.

Unix Shells

Unix-Systeme werden traditionellerweise über die Kommandozeile Zwar gibt es inzwischen auch Desktop-Environments für Unix und unixartige Systeme jedoch von vielen Nutzern weiterhin die Kommandozeile bevorzugt. liegt auch daran dass die Shells (Kommandozeileinterpreter) Unix traditionell wesentlich leistungsfähiger sind als z. der DOS-Kommandozeileninterpreter.

Neben der interaktiven Nutzung haben die auch die Aufgabe so genannte Shellscripts auszuführen. sind grob vergleichbar mit DOS-Stapelverarbeitungsdateien sind jedoch der wesentlich besseren Ausstattung der Unix-Shells mit oft deutlich leistungsfähiger. Insbesondere erlauben es die mit einfacher Syntax die Kommando-"Bausteine" zu verknüpfen.

Die Shells enthalten einige eingebaute Kommandos. modernen Shells beipielsweise:

  • test(SH): Testet Bedingungen z.B. -le (less or <=) und Dateieigenschaften
  • expr(SH): Berechnung von arithmetischen Ausdrücken
  • read(SH): Lesen einer Zeile von der Eingabe eine Variable

Die wichtigsten Shells

  • sh (V7): Bourne Shell ursprüngliche Shell
  • csh (BSD): mit einer der Programmiersprache C Syntax ( C-SHell )
  • ksh (System V): Korn SHell

Weiterentwicklungen

  • bash (GNU): Weiterentwicklung der Bourne Shell ( Bourne Again SHell )
  • tcsh (-): Weiterentwicklung der C-Shell ( TENEX-C-Shell )

(Weitere Shells siehe unter Unix-Shells )

Filter

Unix kennt 3 Standardkommunikationswege:

  • Standardeingabe Voreinstellung: Tastatur
  • Standardausgabe Voreinstellung: Bildschirm
  • Standardfehlermeldung Voreinstellung: Bildschirm

Filter sind Programme / Kommandos die Standardkommunikationswege benutzen z.B. das Kommando "wc"

Ein-/Ausgabeumlenkung (englisch I/O redirection )

Man kann die Standardkommunikationswege "umbiegen". In Regel tut man das um aus einer zu lesen oder in eine Datei zu

  • Eingabeumlenkung mit "<":
 wc -l <test.dat  
wc -l liest aus der Datei und schreibt das Ergebnis auf den Bildschirm. wc kann man allerdings Eingabedateien auch als Argumente übergeben)
  • Ausgabeumlenkung mit ">":
 ls >dir.dat  
Der Output von ls erfolgt in Datei dir.dat. Ist diese bereits vorhanden dann sie überschrieben.
  • Ausgabeumlenkung mit ">>":
 ls >>dir.dat  
Der Output von ls wird an Ende der Datei dir.dat angehängt.
  • Umlenkung von Standarderror mit "2>":
 wc -l <test.dat 2>err.log  
Fehlermeldungen werden in die Datei err.log

Das Prinzip der Ein-/Ausgabeumlenkung findet man im Betriebssystem MS-DOS.

Pipes

Ein mächtiges Hilfsmittel ist Verwendung einer Pipe zur Ein-/Ausgabeumlenkung

  <kommando1> | <kommando2>   

Man kann mehrere Filter miteinander verknüpfen. der Regel erwartet ein Filter die Eingabe der Standardeingabe (Tastatur). Die Ausgabe erfolgt auf Standardausgabe (Bildschirm). Beim Piping wird die Ausgabe Kommandos in die Standardeingabe des folgenden Kommandos Das Unix-Betriebssystem stellt dabei einen Puffer-Speicherbereich zur der die ausführenden Prozesse entkoppelt.

Beispiel:

 grep Unix testdatei | sort  

In der Datei testdatei werden alle gesucht die das Wort "Unix" enthalten diese dann sortiert ausgegeben.

Für komplexere Anwendungen lassen sich auch Pipes definieren auf die dann wie auf Datei zugegriffen werden kann:

  • mkfifo: benannte Pipe anlegen
Beispiel:
  • In einer Shell:
 mkfifo Rohr ls > Rohr  
Hier wird erst eine benannte Pipe und dann das aktuelle Verzeichnis in diese
  • Danach in einer anderen Shell (z. in einem anderen Fenster):
 cat Rohr  
Hier wird der "Inhalt" von Rohr und auf der Standardausgabe ausgegeben. Es erscheint die Ausgabe von ls aus der ersten Shell in der Standardausgabe der zweiten Shell.
  • Danach kann die Pipe wie eine Datei gelöscht werden:
 rm Rohr  

Einige Kommandos

Hilfe

Das Unix-Hilfesystem basiert wesentlich auf den genannten Manpages (für manual page Handbuchseite). Idealerweise liegt für jedes Kommando Aufruf der Programmierschnittstelle (Systemfunktionen C-Bibliothek) und jede Konfigurationsdatei eine eigene man page vor.

Die Manpages sind zudem in durchnummerierte unterteilt die unterschiedliche Schnittstellen abdecken (Benutzerkommandos Administrations-Kommandos etc.).

Die Manpages sind in troff geschrieben kann neben der ASCII-Textversion für die Online-Anzeige eine gedruckte Version generiert werden.

Die Kommandos des Manpage-Systems:

  • man (V7): Handbuchseiten ( MANual page )
ruft die Manpage für ein bestimmtes eine bestimmte Funktion etc. auf.
  • whatis:
gibt eine einzeilige Kurzbeschreibung des Programmes.
  • apropos:
sucht in den Kurzbeschreibungen nach einer und gibt die passenden Einträge samt Kurzbeschreibung Beispielsweise gibt
 apropos color  
alle Einträge in denen das Wort "color"

Von GNU kommt ein alternatives Hilfssystem texinfo das auf Hypertext beruht. Dieses ist den Editor Emacs integriert es gibt aber einen reinen info-Browser:

Zunehmend werden für GUI -Programme auch HTML -Seiten als Hilfedateien verwendet.

Folgendes ist eine unvollständige Zusammenstellung wichtiger

Dateioperationen

Der Umgang mit Dateien ist ein Teil der Arbeit am Computer. Dementsprechend gibt auch unter Unix Kommandos zum Umgang mit

  • cd (SH): Wechsel des aktuellen Verzeichnisses ( Change Directory )
  • cp (V7): Datei kopieren ( CoPy )
  • ls (V7): Dateien in einem Verzeichnis anzeigen LiSt )
  • mv (V7): eine Datei verschieben oder umbenennen MoVe )
  • pwd (V7): Anzeige des aktuellen Verzeichnispfades ( Print Working Directory )
  • rm (V7): Löschen einer Datei ( ReMove )
  • tar (V7): Archivierungsprogramm ( Tape ARchive )
  • gzip (GNU): Kompressionstool

Verzeichnisse

Dateien sind unter Unix (wie eigentlich allen modernen Betriebssystemen) in Verzeichnissen geordnet. Unter gibt es jedoch anders als z.B. unter oder Windows nur einen einzigen Verzeichnisbaum in der Inhalt anderer Datenträger bei Bedarf "eingehängt"

Zur Verzeichnisverwaltung stehen u.a. folgende Befehle Verfügung:

  • mkdir (V7): erzeugt ein neues Verzeichnis
  • rmdir (V7): löscht ein (leeres) Verzeichnis
  • cd (SH): wechselt in ein anderes Verzeichnis
  • pushd (CSH): wechselt in ein anderes Verzeichnis sich aber vorher das aktuelle Verzeichnis
  • popd (CSH): kehrt ins vorherige Verzeichnis (vor letzten pushd) zurück

Dateisystem

  • mkfs: Dateisystem erstellen ( MaKe FileSystem )
  • fsck (V7): Dateisystem überprüfen ( FileSystem ChecK )
  • mount (V7) und umount (V7): Dateisystem einhängen den/aushängen aus dem Verzeichnisbaum
  • df (V7): Anzeige des freien Speicherplatzes auf ( Disk Free )
  • du (V7): Anzeige des benötigten Speicherplatzes von und Verzeichnissen ( Disk Usage )

Benutzer- und Rechteverwaltung

Unix ist von Anfang an ein Das bedeutet dass verschiedene Benutzer am Rechner können und voreinander abgeschottet werden: Man kann Benutzern erlauben oder verbieten auf bestimmte Dateien Zusätzlich kann man Benutzer auch Gruppen zuordnen kollektiv bestimmte Zugriffsrechte gewährt werden können. Eine Rolle spielt der Benutzer root (Systemadministrator) der einziger Benutzer vollen Zugriff auf das System

Jeder Benutzer hat typischerweise sein eigenes in welchem nur er (und root) Dateien und löschen kann.

Einige Kommandos:

  • su (V7): Benutzer wechseln ( Substitute User )
  • useradd oder adduser: Einen neuen Benutzer anlegen.
  • w: Wer ist alles angemeldet? Und was Sie?
  • who (V7): Wer ist alles angemeldet?
  • whoami: Wer bin ich ?
  • chmod (V7): Zugriffsrechte auf Dateien ändern ( CHange MODe )
  • chown (V7): Eigentümer und/oder Gruppe ändern ( Change OWNer )
  • chgrp (V7): Gruppenzugehörigkeit ändern ( Change GRouP )

Textmanipulation

Eine der Stärken von Unix sind vielen Zubehörprogramme insbesondere (aber nicht nur) zur von Textdateien. Die Stärke beruht u. a. dass die Zubehörprogramme leicht über pipes "zusammengeschaltet" werden können um komplexere Aufgaben erfüllen.

  • cat (V7): Ausgabe und/oder Verkettung von Textdateien der Kommandozeile ( conCATenate )
  • cut: Auswählen bestimmter Spalten bei der Ausgabe.
  • echo (V7): Ausgabe
  • grep (V7): Anzeige aller Zeilen einer Textdatei auf einen regulären Ausdruck passen.
  • less (GNU) und more: seitenweise Ausgabe einer
  • sort (V7): nach bestimmten Kriterien sortieren.
  • strings: zeigt nur die druckbaren Zeichen (ASCII) Binärdatei an.
  • sed (V7): mächtiges Werkzeug zur Textmanipulation ( Stream EDitor )

Texteditor

So mächtig die Kommandos zur Textmanipulation sind für größere Änderungen an Texten sind besser geeignet. Selbstverständlich gibt es diese auch Unix. Weit verbreitet sind u. a.:

  • Emacs (GNU -): leistungsfähiger Editor mit Lisp -Interpreter
  • joe (-) ( Joe's Own Editor )
  • pico (-) : für Anfänger leicht bedienbarer
  • vi (BSD) ( VIsual editor )

Netz

  • ftp (BSD): Kommanozeilenclient für FTP ( File Transfer Protocol )
  • mail (V7): E-Mail verschicken.
  • ping (BSD): schickt ein ping an einen anderen Rechner.
  • telnet (BSD): Client für das Telnet -Protokoll
  • ssh (-): Shell für verschlüsselte Verbindungen sicherer Telnet ( Secure SHell )
  • rsh (BSD): ( Remote SHell )
  • netstat (BSD): Anzeige der Netzverbindungen
  • ifconfig (BSD): Netzwerkschnittstellenkonfiguration

Kommunikation

  • talk: mit einem anderen Benutzer unterhalten.
  • write (V7): Nachricht an einen Benutzer schicken
  • wall: Nachricht an alle Benutzer eines Systems ( Write ALL )

Prozessmanagement

  • at (V7): Prozess später starten
  • free (-): Anzeige des freien Speicherplatzes (flüchtiger
  • kill (V7): einen Prozess beenden
  • killall: alle Prozesse des angegebenen Namens beenden
  • nice (V7) und renice (BSD): Priorität eines ändern.
  • ps (V7): Anzeige der laufenden Prozesse.
  • pstree (-): "-" in Baumform
  • top (-): interaktive Anzeige der laufenden Prozesse. Table Of Processes )
  • uname : Ausgabe von Informationen über Betriebssystem und

C Entwicklungssystem

  • cc (V7): C-Compiler
  • gcc (GNU): GNU-C-Compiler
  • make (V7): Programmgruppenverwaltung
  • lint (V7): C-Code-Überprüfung
  • as (V7): Assembler
  • ld (V7): Link Loader
  • ar (V7): Archiver
  • adb (V7): Debugger
  • gdb (GNU): Gnu Debugger
  • nm (V7): Symbol Table
  • size (V7): Programmsegmentgrößen
  • prof (V7): Profiler
  • lex (V7): Lexical Analyser Generator
  • yacc (V7): Parser Generator

Textsatzsystem

Unix wurde zusammen mit dem leistungsfähigen troff entwickelt das unter anderem Tabellen- und ermöglicht.

Auch die Manualseiten können mit diesem gesetzt werden. nroff erlaubt die Ausgabe auf Textterminals und Das betriebssystemunabhängige TeX hat jedoch *roff weitgehend abgelöst. Auch GNU-Hilfesystem texinfo arbeitet mit TeX für die Druckausgabe.

  • troff (V7): Makroorientiertes Textsatzsystem für Linotype-Fotosatzmachinen
  • nroff (V7): Makroorientiertes System für Terminal und
  • groff (GNU): GNU Version von troff und nroff
  • eqn (V7): Mathematischer Formelsatz für troff (Präprozessor)
  • neqn (V7): Mathematischer Formelsatz für nroff (Präprozessor)
  • tbl (V7): Tabellen für troff und nroff (Präprozessor)
  • spell (V7): Rechtschreibprüfprogramm



Bücher zum Thema Unix-Kommandos

Dieser Artikel von Wikipedia unterliegt der GNU FDL.

ImpressumLesezeichen setzenSeite versendenSeite drucken

HTML-Code zum Verweis auf diese Seite:
<a href="http://www.uni-protokolle.de/Lexikon/Unix-Kommandos.html">Unix-Kommandos </a>