Links

zur Startseite

Einige Kommandos für die Konsole

Auf dieser Seite stelle ich ein paar Kommandos für die Konsole (oder das Terminal) vor. Es gibt ein paar Tausend Anweisungen, welche ich nicht alle vorstellen kann. Die Verfügbarkeit der vielen Anweisungen hängt von den installierten Packeten ab. Ich beschreibe hier ein paar Kommandos, die auf einem Grundsystem verfügbar sein sollten.

Die Befehle werden hier nur kurz beschrieben. Diese Seite soll zur Einarbeitung dienen, nicht als Profi-Nachschlagewerk. Hat man sich mit der Sache angefreundet, steht dem Profi-Werden nichts mehr im Weg. Viele Aufgaben lassen sich mit diesen Befehlen schneller erledigen als mit dem Umhergeklicke auf einer grafischen Oberfläche. Und der Rechner braucht nicht irgend eine Grafik zu generieren, um den Fortschritt der Operationen anzuzeigen, das ganze spart also auch noch Energie, auch wenn's nur der Tropfen auf dem heißen Stein ist.

Aller Anfang ist schwer. Das ist hier auch so. Und dann braucht man noch Zeit. Man muss ausprobieren, Fehler machen und diese wieder in den Griff bekommen, das ist das beste Lernen. Deshalb bereite ich am Ende der Seite ein paar Übungen vor, damit man ein wenig trainieren kann. Ist der Groschen erst mal gefallen, geht's dann richtig vorwärts. Da wird aus einer lahmen Kiste ein Rechner, der nur noch im Leerlauf umhertümpelt. Mein Rechner, dieser Server, ist ein Laptop Baujahr 2008. Er ist Webserver, Tracker zur Verbreitung von (hoffentlich freier) Software, jede Sekunde muss er für mich Informationen des Betriebszustandes zusammenstellen, welche ich weltweit abrufen kann, er ist mein Mail-Server, er vertreibt Linux-Software (ich musste mein Upload drosseln, damit andere im Heimnetzwerk noch eine Chance auf Internet haben), er ist mein Radio, er ist mein Fernseher, er ist mein PC für zu Hause mit Office-Anwendungen, kleinen Spielen und so. Anderer erzählen mir was von Viren, Trojaner und Spam-Mails, ich weiß (schon fast) nicht mehr, was das ist. Und was sagt mein 2 GHz-Prozessor? Er taktet mal runter auf 800 MHz (weiter runter geht nicht) und ist dann doch mit 3% ausgelastet.
Jeder ist nicht ein Profi. Aber jeder kann selbst entscheiden, was sein Rechner macht, was sein Rechner darf, was andere dürfen (auch die von draußen). Der Rechner ist nie schlauer als der, der davor sitzt. Wenn man seinen persöhnlichen, eigenen, mit dem Internet verbundenen und sicheren Computer haben will, muss man lernen und verstehen (oder einen Haufen Geld ausgeben, wo man noch nicht mal weiß: Wofür?). Jaja, geredet wird heute viel, weil kaum einer noch was kann.

Diese Seite wird von mir ohne externe Quellen erstellt. So könnt Ihr mit Menü -> Datei -> Speichern unter Eures Webbrowsers diese Seite herunterladen und offline lesen und nachschlagen. Da ich mit offener Software arbeite, darf diese Seite unbegrenzt kopiert und weiterverteilt werden.
Bitte bedenkt, dass ich diese Seite ab und zu aktualisiere. Die aktuellste Version ist die Online-Version.

Regeln

In der Regel notiert man Anweisungen nach folgendem Syntax:

Anweisung -Optionen Ausdruck1 Ausdruck2...

Als erstes gibt man den Befehl ein, danach folgen die eventuellen Optionen eingeleitet mit einem - und danach die Ausdrücke, z.Bsp. Dateinamen, Ordner oder Geräte. Ausdrücke können auch sogenannte Wildcards (z.Bsp. *, was für alle beliebige Zeichen und beliebiger Anzahl notiert wird, oder ~, was /home/<Benutzername> bedeutet) sein, um zum Beispiel mehrere Dateien damit anzusprechen. Zu jedem Kommando beschreibe ich ein paar Beispiele mit gängigen Optionen.

Man kann sogar mehrere Befehle zusammen eingeben, die dann nacheinander abgearbeitet werden.

Sollen viele Befehle nacheinander ausgeführt werden, empfehle ich, sich mit dem Thema Skripte zu beschäftigen. Ein Skript schreibt man nur einmal und man kann es unbegrenzt aufrufen. Man kann zum Beispiel so eine komplette Datensicherung erledigen.


Inhalt

Alle Befehle alphabetisch geordnet Befehle für Einsteiger
TastenkombinationenTastaturbefehle für die Shell
addgroupNeue Benutzergruppe anlegen
adduserNeuen Nutzer anlegen
apt-cacheSoftwarepackete durchsuchen
apt-getPacketverwaltung - Software installieren
bgLaufenden Prozess in den Hintergrund verschieben
bzcatInhalt von mit bzip komprimierten Dateien ausgeben
chmodZugriffsrechte ändern
chownEigentümer und/oder Eigentümergruppe von Dateien oder Verzeichnissen ändern
catInhalt von Dateien ausgeben
cdin ein Verzeichnis wechseln
clearden Bildschirm leeren
cpDatei(en) kopieren
dateDatum und Uhrzeit anzeigen oder einstellen
deluserEinen Nutzer entfernen
dfBelegungen eingehängter Laufwerke anzeigen
duLaufwerksbelegungen von Dateien und Ordner ausgeben
echoeine Zeile ausgeben
exitsich abmelden
fgEinen Prozess in den Vordergrund holen
freeRam-Nutzung anzeigen
findDateien oder Ordner suchen
grepDateien oder Standardeingabe nach einem Muster durchsuchen
groupsGruppenmitgledschaften eines Nutzers anzeigen
gzipDateien komprimieren und dekomprimieren
hwclockZugriff auf die Hardware-Uhr
idInformationen zu einem Nutzer und deren Gruppenzugehöhrigkeit ausgeben
ifbedingte Anweisungen
jobsProzesse der aktuellen Konsole anzeigen
kill, pkill, killallSignale an Prozesse versenden
lnLink (Verknüpfung) erstellen
lpq (lprm)Status des Druckers ausgeben
lprEingabe auf Drucker umleiten
lsOrdnerinhalt auflisten
lsblkerkannte Laufwerke auflisten
manHandbuch anzeigen
mkdirOrdner erstellen
moreseitenweise Ausgabe
mountGeräte im Dateisystem einbinden
mvDateien bewegen bzw. umbenennen
niceProgramme mit einer bestimmten Priorität starten
ntpdateUhrzeit nach einem Zeitserver einstellen
pslaufende Prozesse ausgeben
pstreeProzessbaum ausgeben
pwdAusgabe, wo man sich im Dateisystem befindet
readEingabeaufforderung
renicePriorität von Prozessen ändern
rmDateien löschen
rmdirOrdner löschen
scriptEingaben und Ausgaben in Datei aufzeichnen
setVariablen anzeigen
shutdownDas System herunterfahren
sleeppausieren
sortInhalt von Dateien oder der Standardausgabe sortieren
sshsichere Verbindung zu einem entfernten Rechner
sudoAdministratorrechte freischalten
tailDie letzten Zeilen einer Datei ausgeben
tarDateien archivieren oder aus einem Archiv wiederherstellen
teeStandardeingabe in Datei schreiben
testeine Gegebenheit prüfen
timeAusführzeit von Programmen ermitteln
touchDateien erstellen
umountGeräte aus dem Dateisystem aushängen
unsetVariablen löschen
usersAusgabe der angemeldeten Benutzer
watchEinen Befehl wiederkehrend ausführen lassen
wcZeilen, Worte und Zeichen zählen
wgetDateien aus dem Internet herunterladen
whichSpeicherort eines Befehls ausgeben
whoangemeldeten Benutzer anzeigen
whoamiangemeldeten Benutzername anzeigen
TastenkombinationenTastaturbefehle für die Shell
Hier werden Tastenkombinationen vorgestellt, die das Arbeiten in einer Konsole erleichtern.
cpDatei(en) kopieren
Dieser Befehl ist ähnlich dem copy-Befehl von Windows. Allerdings hat man bei Linux mehr Optionen.
mvDateien bewegen bzw. umbenennen
Unter Linux gibt es kein rename. Um Dateien umzubenennen, nutzt man mv (move).
rmDateien löschen
Mit rm werden Dateien sofort und unwiderruflich gelöscht.
mkdirOrdner erstellen
Einen neuen Ordner anlegen
rmdirOrdner löschen
Mit rmdir löscht man leere Ordner.
lsOrdnerinhalt auflisten
Unter Windows kennt Ihr bestimmt den ähnlichen Befehl dir, allerding gibts auch bei ls wieder mehr Optionen.
cdin ein Verzeichnis wechseln
Den gleichen Befehl gibt es auch in DOS oder Windows.
touchDateien erstellen
Mit touch erstellt man neue leere Dateien.
wgetDateien aus dem Internet herunterladen
Das wollen alle. Man kann auch in der Konsole Dateien aus dem Internet downloaden. Der Vorteil besteht darin, dass man die Downloadrate festlegen kann, so bleibt bei großen Dateien der Rechner weiter nutztbar.
catInhalt von Dateien ausgeben
Mit cat kann man sich den Inhalt von Dateien anzeigen lassen.
moreseitenweise Ausgabe
Große Ausgaben werden so seitenweise angezeigt.
clearden Bildschirm leeren
In Windows lautet dieser Befehl cls.
dfBelegungen eingehängter Laufwerke anzeigen
Mit df könnt Ihr sehen, wieviel Speicherplatz auf Euren Laufwerken belegt bzw. verfügbar ist.
echoeine Zeile ausgeben
So kann man eine dumme Bemerkung ausgeben lassen.
exitsich abmelden
Wenn man sich an einer Konsole angemeldet hat, muss man sich auch abmelden können.
freeRam-Nutzung anzeigen
Mit free kann man sich die Auslastung des RAM-Speichers anzeigen lassen. Allerdings solltet Ihr nicht erschrecken, wenn der RAM voll genutzt wird. Das ist bei Linux normal. Es wird alles im RAM behalten, was geht. So starten Anwendungen schneller. Sollte weiterer RAM benötigt werden, werden Daten, die länger nicht mehr gebraucht wurden, blitzschnell rausgeschmissen, es steht wieder RAM-Speicher zur Verfügung.
findDateien oder Ordner suchen
Hat man irgendwo in seinem Datensalat eine Datei und weiss nicht mehr wo, kann man die mit find suchen lassen.
mountGeräte im Dateisystem einbinden
Wieder ein schweres Thema für Einsteiger, aber Ihr wollt es doch lernen. Unter Linux gibt es keine Laufwerksbuchstaben. Es gibt ein Dateisystem. Innerhalb dieses Dateisystems kann man Laufwerke an beliebiger Stelle einbinden.
umountGeräte aus dem Dateisystem aushängen
Wenn Ihr mit mount einen USB-Stick in das Dateisystem eingebunden habt, sollte dieser ausgehängt werden, bevor Ihr diesen vom Rechner entfernt.
chmodZugriffsrechte ändern
Auch wenn's schwer fällt, Ihr wollt doch das Sicherheitssystem verstehen.
sudoAdministratorrechte freischalten
Einige werden der Meinung sein, dass dieser Befehl nicht für Einsteiger sinnvoll ist. Der Meinung bin ich nicht. Wenn Ihr Einstellungen am System vornehmen wollt, braucht Ihr sudo. Verwendet sudo nur, wenn Ihr Euch im Klaren seid, was Ihr tut. Adernfalls kann das System beschädigt werden. Verwendet sudo auch nur, wenn es unbedingt benötigt wird, es kann sonst vorkommen das Eure Dateien auf einmal dem Administrator gehöhren. Also im Zweifelsfall erstmal ohne sudo, das System meckert, wenn Du was nicht darfst.
ÜbungenVom einfachen Lesen der Abschnitte bleibt nicht lange was hängen. Nutzt die Übungen, damit Ihr mit der Anwendung der Befehle vertraut werdet. Übung macht den Meister, nicht klauen.

zu den Übungen

zurück


Tastenkombinationen für die Shell

Wie in anderen Betriebssystemen gibt es auch unter Linux verschiedene Tastenkombinationen, um gewisse Sachen zu steuern. Vor allem in den virtuellen Konsolen gibt es in der Regel keine Maus und keine Felder, auf die man klicken kann. Mit den Tastenkombinationen ist man schnell unterwegs und erspart sich viel Schreibarbeit. Allerdings muss man sich erst einmal eingewöhnen und üben, aber dann sind sie doch eine echte Erleichterung.

[STRG+]ALT+F1 bis [STRG+]ALT+F9 Wechsel zwischen den Konsolen: Nochmal für die Anfänger. Auf einer Standardinstallation von Ubuntu gibt es 6 Textkonsolen und 3 grafische Konsolen. Wenn Ihr den Rechner gestartet habt und die grafische Oberfläche geladen wurde, befindet Ihr Euch in der Konsole 7. Durch Drücken der Tasten STRG+ALT+F1 gelangt Ihr in die erste Textkonsole. Nun könnt Ihr Euch erneut anmelden und den Rechner bedienen. Wollt Ihr wieder zurück zur grafischen Konsole 7, drückt Ihr ALT+F7. Befindet man sich in einer grafischen Oberfläche, muss die Taste STRG mit gedrückt werden, da dort andere Funktionen unter ALT+Funktionstasten definiert sind. Befindet man sich in einer Textkonsole, braucht man die Taste STRG nict zu drücken, schadet aber auch nicht. Die grafischen Konsolen 8 und 9 müssen erst manuell gestartet werden, dafür gibt es den Befehl startx.
TAB-Taste Autovervollständigen: Linux ist nicht dumm. Dem System reichen ein paar einzelne Tasten, damit es weiss, wo Ihr hinwollt. Mit TAB lässt man die Eingabe vervollständigen. Beispiel: cd ~/Dok und TAB-Taste - Hier vervollständigt sich die Eingabe automatisch auf cd ~/Dokumente. Auch Dateien kann man so finden, es ist egal, bei welchem Befehl die TAB-Taste genutzt wird. Geschicktes Anwenden vermindert die Schreibarbeit und vermeidet Eingabefehler, wie sie mir auch immernoch fast täglich passieren.
↑ und ↓ Durch zuletzt eingegebene Befehle navigieren: Die vertikalen Pfeiltasten benutzt man, um sich die letzten eingegebenen Befehle wiederzuholen. Führt man den Befehl ls -l aus und drückt man dann , dann steht der Befehl wieder da und man braucht nur noch die Enter-Taste zu drücken, um den Befehl erneut auszuführen. Gerade bei längeren Befehlen erspart einem das doch erheblichen Eingabeaufwand. Syntaxfehler bei der Eingabe sind so schnell berichtigt, man braucht den ganzen Befehl nicht nochmal einzugeben.
STRG+c Den im Vordergrund befindlichen Prozess beenden: Wenn man oft auf einer Konsole Programme ausführt, wird man irgendwann mal das Bedürfnis haben, das aktuelle Programm sofort zu beenden, vielleicht hat man falsche Parameter eingegeben oder was vergessen. Es gibt auch Programme, die endlos laufen. Um so ein Programm (Prozess) zu beenden, drückt man STRG+c. Hierbei handelt es sich um ein normales Beenden des Programms. Soll das Programm beim Beenden noch was erledigen (z.Bsp. Daten speichern), dann wird es das auch tun. Um ein Programm zu töten (hart beenden), bedarf es einer weiterne Konsole und den Befehl kill. Was mit Vordergrund gemeint ist beschreibe ich in dem Abschnitt bg.
STRG+d

EOF-Zeichen (End Of File) senden: Manch Anfänger mag es kaum glauben, aber es gibt unter Linux die Möglichkeit, Mails aus einer Konsole zu versenden (ohne Thunderbird etc). Dabei schreibt man seine 3 bis 125 Zeilen in die Konsole und drückt dann STRG+d. Jetzt weiss das Mailprogramm, das die Nachricht zu Ende ist. Vielleicht noch ein anderes Beispiel, was jeder probieren kann: Gebt einfach den Befehl cat ohne Optionen und Parameter ein. Alles, was Ihr jetzt eingebt, wird wiederholt (ein Computer-Echo). Wenn es Euch genug ist, dann drückt STRG+d, und das Programm cat wird beendet. Das EOF-Zeichen ist ein Code, der ein Dateiende bekannt gibt.

Zusätzlich kann man STRG+d zum Abmelden an einer Konsole verwenden. Diese Tastenkombination funktioniert auch bei einer SSH-Verbindung, die Verbindung wird beendet. STRG+d wirkt also genauso wie der Befehl exit.

STRG+z Den im Vordergrund befindenden Prozess anhalten: Manche werden das Problem kennen; Man hat ein Programm gestartet und muss auf dessen Beendigung warten. Dabei könnte man noch einiges nebenbei erledigen, aber man hat keinen Eingabeprompt. Durch Drücken von STRG+z hält man das Programm an, man bricht es aber nicht ab. Jetzt hat man wieder die Möglichkeit, etwas einzugeben. Man kann das angehaltene Programm mit bg in den Hintergrund schieben und gleichzeitig starten und andere Aufgaben gleichzeitig erledigen.
STRG+l Bildschirm leeren: Mit der Eingabe von STRG+l wird, wie bei der Eingabe des Befehls clear, der Bildschirm geleert.
STRG+s Alle Ausgaben auf dem Bildschirm anhalten: Nach der Eingabe von STRG+s wird keine Ausgabe auf dem Bildschirm angezeigt. Prozesse, die eine Ausgabe erzeugen, werden angehalten. Prozesse ohne Ausgabe laufen weiter. Mit der Eingabe von STRG+q wird das Anhalten der Ausgaben beendet, die Prozesse laufen weiter.
STRG+q Angehaltene Ausgaben fortsetzten: Beschreibung siehe STRG+s.

Es gibt noch einige weitere Tastenkombinationen, die meisten sind aber von der verwendeten Software abhängig.

zur Inhaltsübersicht


addgroup - Neue Benutzergruppe anlegen

Beschreibung

Jede Datei und jedes Verzeichnis wird im Linux-Dateisystem einem Benutzer und einer Benutzergruppe zugeordnet. Somit wird sichergestellt, das Kai nicht in den Dateien von Isabell umherwüten kann.

Manchmal wird es gewünscht, dass mehrere Benutzer gewisse Zugriffe auf bestimmte Dateien haben. Hier macht es Sinn, mittels addgroup eine neue Benutzergruppe anzulegen. Wer dieser Gruppe zugehöhren soll, wird mittels adduser festgelegt. Zusätzlich müssen die Zugriffsrechte der jeweilige Dateien mittels chown und chmod festgelegt werden.

Ein Beispiel beschreibe ich in dem Artikel chown.

Beispiel für addgroup

sudo addgroup navit

Eine Benutzergruppe namens navit wird angelegt.

Anmerkung: Benutzergruppen können nur mit Root-Rechte angelegt werden, deswegen das sudo vor dem Befehl.

Weitere Informationen zu addgroup gibt es mit der Eingabe von addgroup --help oder man addgroup.

zur Inhaltsübersicht


adduser - Neuen Benutzer anlegen

Um einen neuen Benutzer auf dem System anzulegen, kann man sich in der grafischen Oberfläche umherwühlen, bis man das alles eingerichtet hat, oder man nutzt den Befehl adduser in einer Konsole. Da das Anlegen eines neuen Benutzers ein Systemzugriff ist, braucht man den Befehl sudo, um Administratorrechte freizuschalten.

Unter Linux werden Benutzer immer zu Benutzergruppen zugeordnet. Damit kann man festlegen, was der Benutzer darf oder nicht (Netzwerk nutzen, CD-Laufwerk nutzen, Adminrechte, usw.). Um seine eigene Zugehöhrigkeit auszugeben, gibt man den Befehl id oder groups ein.

Jeder Benutzer erhält automatisch eine Idendifikationsnummer (UID), jede Gruppe ebenso (GID).

Beispiel

sudo adduser klaus Es wird ein Benutzer mit dem Benutzernamen klaus angelegt. Als erstes folgt die Abfrage für sudo, dann wird der Benutzer angelegt, danach muss ein Passwort für klaus eingegeben und wiederholt werden, und zum Schluss werden noch ein paar persöhnliche Informationen, wie voller Name, Telefon etc, abgefragt.
Gleichzeitig wird eine Benutzergruppe namens klaus angelegt. Das ist auch richtig so, wenn man einen normalen Benutzer anlegt.
sudo adduser --ingroup andrea klaus Es wird ein Benutzer mit dem Benutzernamen klaus angelegt. Hier wird er zur schon existierenden Benutzergruppe andrea hinzugefügt.
sudo adduser klaus sudo Der bestehende Benutzer klaus wird in die Gruppe sudo aufgenommen. Damit hat Klaus jetzt Systemzugriff mit seinem eigenen Passwort.

Wenn Ihr das nur mal testen wollt, könnt Ihr hinterher mit dem Befehl sudo deluser --remove-home klaus den Benutzer Klaus löschen.

Weitere Informationen zu adduser gibt es mit der Eingabe von adduser --help oder man adduser.

zur Inhaltsübersicht


apt-cache - Softwarepackete nach einem Ausdruck durchsuchen

Und hier sind wir schon bei einer der Stärken von Ubuntu-Linux. Der Befehl apt-cache gibt Informationen zu Softwarepacketen aus, dessen Quellen auf dem System freigeschaltet sind. Benötigt man irgendwelche Software, kann man so nach dieser suchen und danach mit dem Befehl apt-get install installieren. Nutzer anderer Betriebssysteme müssen leider da oftmals zur Brieftasche greifen. Und wenn's dann nicht gefällt. Ubuntu-Nutzer geben dann einfach den Befehl apt-get -purge PACKETNAME ein und sind die Software wieder los.
Freie Software aus anderen Packetquellen werden nicht aufgelistet, solche Software muss auch meist manuell installiert werden.
Der Befehl apt-cache benötigt keine Administratorrechte. Es handelt sich nur um eine Auflistung, nicht um eine Änderung des Systems.

Beispiele

apt-cache search Sudoku Es wird eine Auflistung der Softwarepackete mit kurzer Beschreibung ausgegeben, die was mit Sudoku zu tun haben.
apt-cache show vim Informationen zu dem Softwarepacket vim werden angezeigt.
apt-cache depends vlc Die sogenannten Abhängigkeiten zum Packet vlc werden angezeigt. Das sind weitere Packete, die benötigt werden, damit die Software vlc funktioniert.
apt-cache pkgnames Die Namen aller Packete im System werden aufgelistet.

Viele weitere Informationen zu apt-cache gibt es mit der Eingabe von apt-cache --help oder man apt-cache.

zur Inhaltsübersicht


apt-get - Softwarepackete verwalten, installieren, deinstallieren

apt-get ist ein starkes Werkzeug für die Softwareverwaltung unter Ubuntu. Software wird in kostenlosen Packeten unter Linux angeboten, die Quellen dieser Software sind im System hinterlegt (mehr dazu später). Mit apt-get kann man diese Packete verwalten, installieren, deinstallieren und aktualisieren. Da dieser Befehl das System verändern kann, braucht man Administratorrechte. Siehe dazu sudo. Ein weiterer Vorteil besteht darin, dass Abhängigkeiten zu andereren Packeten geprüft werden und diese dann nach Bestätigung automatisch mit installiert werden. So braucht man sich nicht mühsam auf die Suche der nötigen Packete machen und diese dann einzeln installieren. Nicht mehr benötigte Packete werden auch von apt-get erkannt, diese werden angezeigt.

Beispiele

sudo apt-get install gedit Der Gnome-(Text)-Editor gedit wird installiert. Fehlende Abhängigkeiten werden nach Bestätigung automatisch mit installiert.
sudo apt-get install vlc vorbis-tools mpg123 audacity vim vim-gtk Folgende Software wird installiert:
  • VLC Media-Player
  • vorbis-tools: Programme, die zur Wiedergabe und Umwandlungen von ogg-Dateien (freies Format) in der Konsole genutzt werden (z.Bsp. ogg123)
  • mpg123: Programm zur Wiedergabe von mp3-Dateien (lizensiertes Format) in der Konsole
  • audacity: Sehr gutes Programm zum Bearbeiten von Audio-Dateien mit grafischer Oberfläche
  • vim: ein Editor für die Konsole
  • gvim: vim für die grafische Oberfläche
Alles was der Normale für Adiodateien braucht und mein Lieblings-Editor mit einem Befehl installiert. Viele, viele fehlenden Abhängigkeiten kommen automatisch mit.
sudo apt-get remove vim vim-gtk Die Software vim und gvim wird entfernt.
sudo apt-get purge vim vim-gtk Die Software vim und gvim wird entfernt. Dir Konfigurationsdateien werden mit entfernt. Praktisch, wenn man diese Software nie wieder braucht.
sudo apt-get autoremove Alle nicht mehr benötigte Softwarepackete werden entfernt.
sudo apt-get update Die Softwarequellen werden neu eingelesen. So bekommt das System mit, ob Aktualisierungen vorhanden sind.
sudo apt-get dist-upgrade Das System wird so aktualisiert.
sudo apt-get update && sudo apt-get dist-upgrade Systemaktualisierung in einem Befehl. Erst, wenn die Quellen erfolgreich ohne Fehler eingelesen wurden, wird das System aktualisiert.

Viele weitere Informationen zu apt-cache gibt es mit der Eingabe von apt-get --help oder man apt-get.

Nachtrag: apt-get wird derzeit durch apt ersetzt. Kommandos und Optionen sind die gleichen.

zur Inhaltsübersicht


bg - Laufenden Prozess in den Hintergrund schieben

Es gibt Komanndos, die zur Ausführung viel Zeit benötigen. Will man zum Beispiel eine Datei mit wget aus dem Internet herunterladen, die mehrere Gigabyte groß ist, kann das ein paar Stunden dauern. Nun kann man ja nicht mehr mit der Konsole weiter arbeiten, bis alle Daten geladen wurden. Man müsste in eine andere Konsole wechseln oder den Prozess mit STRG+c abbrechen, wenn man was anderes machen möchte.

In einem normalen System laufen ca. 100 bis 200 Prozesse. Wieviel Prozesse bei Euch laufen, könnt Ihr mit der Eingabe ps -e | wc -l ausgeben lassen. Wir haben aber im Normalfall nur 9 Konsolen, 6 Textkonsolen und 3 grafische Konsolen. Die Textkonsolen kann man mit ALT+F1 bis ALT+F6 wechseln. Befindet man sich in einer grafischen Konsole, muss man STRG+ALT+F1 bis F6 drücken. In die erste grafische Konsole wechselt Ihr mit ALT+F7. Um mehrere hunderte Prozesse laufen lassen zu können, gibt es die Möglichkeit, Prozesse im Hintergrund laufen zu lassen. Dabei laufen die Prozesse (Programme) weiter, die Konsole steht trotzdem für andere Aufgaben zur Verfügung.

Verlangt ein Programm im Hintergrund eine Eingabe, wird es angehalten. Da muss man den Prozess in den Vordergrund holen, um die Eingabe machen zu können.

Programm beim Starten in den Hintergrund schieben

Eine Möglichkeit, ein Programm im Hintergrund laufen zu lassen, ist, es beim Starten gleich in den Hintergrund zu schieben. Die Konsole steht sofort wieder zur Verfügung. Dazu gibt man ein & nach dem Befehl und einem Leerzeichen ein, z.Bsp. cp -r ~ /mnt/sicherung &. Das ist ein Beispiel, alle persöhnlichen Dateien auf eine externe Festplatte zu schreiben, die vorher vielleicht mit sudo mount -t auto /dev/sdb1 /mnt/sicherung eingehängt wurde. Das Kopieren erfolgt nun im Hintergrund. Wichtig ist, dass das &-Zeichen ganz am Schluss eingegeben wird.

Ein im Vordergrund laufendes Programm in den Hintergrund schieben

Einige werden das Problem kennen: Man hat ein Programm gestartet und hat unterschätzt, wie lange das dauern wird. Gerade Datensicherungen, Archivierungen oder Downloaden sind solche klassischen Beispiele. Jetzt muss man warten, warten... Oder gibt's da eine andere Lösung? Na klar, wir haben doch ein gutes Betriebssystem.

Man drückt die Tastenkombination STRG+z. Der Prozess wird angehalten aber nicht abgebrochen. Jetzt gibt man einfach bg ein (das steht für background), der Prozess wird nun in den Hintergrund geschoben und wieder gestartet. Das Programm macht da weiter, wo es angehalten wurde. Die Konsole steht für weitere Aufgaben zur Verfügung.

Natürlich gibt es auch eine Möglichkeit, einen Prozess in den Vordergrund zu holen, das beschreibe ich unter der Anweisung fg.

zur Inhaltsübersicht


bzcat - Inhalt vom mit bzip komprimierten Dateien ausgeben

Beschreibung

Komprimierte Dateien finden immer mehr Anwendung vor allem im Netzwerk und im Internet. Dateien werden komprimiert auf den Servern angeboten, man lädt diese herunter und entpackt sie dann. Man erhält so die originale Version der Datei mit erheblich geringerer Netzwerkbelastung.

bzcat kann den Inhalt einer mit bzip komprimierten Datei ausgeben, ohne das man diese (nicht) wirklich entpacken muss.

Auf den ersten Blick macht dieser Befehl nicht viel Sinn, wenn man mit dem originalen Inhalt solcher Dateien weiter arbeiten möchte, aber eben nur auf dem ersten Blick.

Hat man als Beispiel eine 20 Gigabyte große bz2-Datei herunter geladen und man möchte nun diese entpacken, kann es sein, dass man weitere 80 bis 100 Gigabyte Speicherplatz benötigt, um die originale Version abspeichern zu können. Den Speicherplatz muss man erst mal übrig haben. Nun möchte man diese Datei mit einem anderen Programm verabeiten, und alles, was man braucht, ist das Ergebnis dieser Bearbeitung. Um den Speicherplatz wieder freizugeben, löscht man zum Schluss die herunter geladene bz2-Datei und vor allem die entpackte Datei. Das Ganze braucht also viel Festplattengerödel.

Mit bzcat kann man das besser lösen: bzcat macht eine unkomprimierte Ausgabe der komprimierten Datei und mit einer Pipe schickt man diese an das entsprechende Programm. So sparen wir die 80 bis 100 Gigabyte Speicherplatz. Mehr dazu in den Beispielen.

Beschreibung

bzcat liste.txt.bz2 Der unkomprimierte Inhalt der Datei liste.txt.bz2 wird auf dem Bildschirm ausgegeben.
bzcat liste.txt.bz2 | grep Klaus Der unkomprimierte Inhalt der Datei liste.txt.bz2 wird dem Programm grep übergeben, welches dann nur Zeilen mit Klaus auf dem Bildschirm ausgibt.
bzcat liste.txt.bz2 > liste.txt Der unkomprimierte Inhalt der Datei liste.txt.bz2 wird in die Datei liste.txt geschrieben. Die Datei wird also entpackt. Die Originaldatei bleibt erhalten.
bzcat germany.osm.bz2 | maptool germany.osm.bin bzcat schickt die unkomprimierte Ausgabe der Datei germany.osm.bz2 an das Programm maptool, welches daraus die Datei germany.osm.bin erstellt. Diese Datei kann als Karte vom Programm navit genutzt werden.

Weitere Infos gibt es unter bzcat -h und man bzcat.

zur Inhaltsübersicht


chmod - Zuggriffsrechte von Dateien und Ordnern ändern

Beschreibung

Das Kommando chmod ändert Zugriffsrechte von Dateien und Verzeichnissen. Zugriffsrechte werden für Benutzer, Benutzergruppe und allen anderen gesetzt. In Verbindung mit dem Befehl sudo ist dieser Befehl mit Vorsicht anzuwenden, da bei Fehlern das System angreifbar werden kann. Ist man als root (Administrator) angemeldet, hat man immer auf alle Dateien vollen Zugriff.
chmod darf nur vom Besitzer der Dateien oder vom Administrator angewendet werden.

Es gibt zwei Arten, Argumente an chmod zu übergeben, einmal mit Oktalzahl, zum anderen mit einem Buchstaben, einem Vorzeichen und einem weiteren Buchstaben.

chmod mit Oktalzahl

Bei der Oktalzahl-Version setzt man alle Zugriffsrechte für den Benutzer, die Benutzergruppe und alle anderen einer Datei in einem Befehl.

Beispiel: chmod 755 test.sh
Die Leute, die wissen, was Binärzahlen sind, haben hier einen Vorteil, aber keine Angst, ich versuch's mal zu erklären.
Für uns sind (die letzten) drei Ziffern von Interesse. Welche Ziffer bedeutet was?

Welche Ziffer für was?

Da es sich hier um Oktalzahlen (Basis 8) handelt, sind Ziffern von 0 bis 7 möglich.

Will man mehrere Rechte vergeben, werden die Ziffern zusammenaddiert, z.Bsp. 6 für Lese- und Schreibrechte oder 7 für alle Rechte.

Beispiele

chmod 764 test.sh Die Datei test.sh darf vom Besitzer gelesen, beschrieben und ausgeführt werden. Die Gruppe darf nur lesen und schreiben. Aller anderen dürfen nur lesen.
chmod 755 test.sh Der Besitzer hat Vollzugriff auf die Datei test.sh. Alle anderen dürfen nur lesen und ausführen.
chmod 644 Musik/* Der Besitzer darf alle Dateien im Ordner Musik lesen und verändern. Alle anderen dürfen diese Dateien nur lesen (bzw. abspielen).
sudo chmod 600 /etc/config.cfg Der Administrator hat Lese- und Schreibrechte auf die Datei config.cfg im Ordner /etc. Alle anderen dürfen nichts. Das ist sinnvoll für Dateien, die Passwörter beinhalten.

chmod mit Vorzeichen und Buchstaben

Mit dieser Schreibweise kann man einzelne Zugriffsrechte erstellen. Andere Zugriffsrechte bleiben erhalten.

Beispiel: chmod u+x test.sh

Als erste kommt ein Buchstabe:

Danach folgt ein Vorzeichen: + (Plus), wenn man Rechte erteilen will, und ein - (Minus), wenn man Rechte entziehen will.

Nun folgt noch ein Buchstabe für die Freigabeart:

Beispiele:

chmod u+x test.sh Die Datei test.sh wird nur für den Benutzer als ausführbar markiert. Das wird sehr häufig benötigt, z.Bsp. bei allen Scripten.
chmod a-w ~/.bash.rc Die ausgeblendete Datei .bash.rc im Heimatordner wird für alle auf schreibgeschützt gesetzt (Empfohlen!). So kann sich kein Programm-Code dort einnisten, der dann automatisch irgendwelche Programmchen (Spione, Viren usw.) startet. Diese Datei gehört dem Nutzer, nicht dem Administrator. Möchte man die Datei ändern, gibt man einfach chmod u+x ~/.bash.rc ein, und der Schreibschutz ist aufgehoben.
chmod u+rw test.txt Mit diesem Befehl erteilt man den Benutzer Lese- und Schreibrecht auf die Datei test.txt. Kombinationen sind also auch möglich.

Um die vergebenen Zugriffsrechte zu kontrollieren, nutzt man den Befehl ls -l.

Weitere Informationen zu chmod gibt es mit der Eingabe von chmod --help | more oder man chmod.

zur Inhaltsübersicht


chown - Eigentümer und/oder Eigentümergruppe von Dateien und Ordnern ändern

Beschreibung

Jede Datei und jedes Verzeichnis im Linux-Dateisystem wird einem Benutzer und einer Benutzergruppe zugeordnet. Wie dann wer auf die entsprechenden Daten zugreifen kann, wird mit chmod geregelt.

Manchmal wird gewünscht, dass andere Benutzer auf entsprechende Daten ändern dürfen und wieder andere diese nur lesen dürfen.

Um so etwas sinnvoll umzusetzen, sollte man sich mit Benutzer und Gruppen etwas mehr beschäftigen, als das bei der normalen Nutzung notwendig ist. Es stellt ein Sicherheitsrisiko dar, wenn man einfach mit chmod 777 DATEINAME jedem (auch Viren, Trojaner) den Zugriff gewährt.

Als Beispiel wollen wir ein Verzeichnis /home/bilder erstellen, in dem Bilddateien abgelegt werden. Jeder darf sich die Bilder ansehen, aber nur isabell, klaus und kai dürfen Bilddateien anlegen und niemand darf eine ausführbare Datei in diesem Ordner starten. Isabell soll der Eigentümer dieses Verzeichnisses werden. Die Vorgehensweise ist folgende:

Isabell, Klaus und Kai können nun Dateien in diesen Ordner schreiben, alle anderen können diese lesen.

Anmerkung: Kai, der alte Trottel hat seine Bilder so abgelegt, das nur er sie lesen und ändern kann. Die Attribute des Verzeichnisses gelten nicht für alle Dateien, die darin enthalten sind. Abhilfe schafft hier: sudo chmod -R 664 /home/bilder, womit alle enthaltenen Dateien diese Attribute übernehmen. Kai braucht dazu kein sudo.

Noch eine Anmerkung: Fehlerhaftes Umgehen mit chown stellt ein Sicherheitsrisiko dar. Seit Euch immer im Klaren, was Ihr da tut, ansonsten könnten andere ungewollten Zugriff erlangen. Ob alles so ist, wie Ihr das wollt, könnt Ihr mit ls -lh prüfen.

Beispiele zu chown

chown klaus test.txt

Klaus wird als Eigentümer der Datei test.txt festgelegt.

chown -R isabell:audio ~/Musik

Isabell wird als Eigentümer des Verzeichnisses ~/Musik festgelegt. Als Eigentümergruppe wird die Gruppe audio festgelegt. -R legt fest, dass alle in dem Verzeichnis enthaltenen Dateien und Verzeichnisse diese Attribute mit übernehmen.

Weitere Informationen zu chown gibt es mit der Eingabe von chown --help | more oder man chown.

zur Inhaltsübersicht


cat - Inhalt von Dateien ausgeben

Beschreibung

Das Kommando cat gibt den Inhalt von Datei(en) aus. Das gilt auch für Dateien, die vom System angelegt werden. So kann man mit cat auch Systeminformationen auslesen.

Beispiele

cat test.txt Der Inhalt der Datei test.txt wird auf dem Bildschirm ausgegeben.
cat test.txt > textneu.txt Der Inhalt der Datei test.txt wird in die Datei testneu.txt geschrieben, mal eine andere Art zu kopieren. Zum Kopieren sollte man aber cp benutzen.
cat /proc/stat Der Inhalt der virtuellen Datei /proc/stat wird ausgegeben, das sind die Nutzungszeiten der CPUs.
cat Eine kleine Spielerei. Hier wird die Standardeingabe (Tastatur) zur Standardausgabe (Bildschirm) umgeleitet. Alle Eingaben werden wiederholt. Da die Standardeingabe kein EOF-Zeichen (End Of File) sendet, muss die Sache mit STRG+d beendet werden.

Die Umkehrfunktion von cat ist tee. Weitere Informationen zu cat gibt es mit der Eingabe von cat --help oder man cat.

zur Inhaltsübersicht


cd - in ein Verzeichnis wechseln

Beschreibung

Öffnet man ein Terminal oder meldet man sich in der Konsole an, befindet man sich in seinem Heimatverzeichnis. Das Eingabeprompt zeigt dann BENUTZER@RECHNERNAME:~$ an. Dabei steht das ~ für das Heimatverzeichnis, welches /home/BENUTZERNAME ist. Das $-Zeichen besagt, dass auf eine Eingabe gewartet wird. Möchte man in ein anderes Verzeichnis wechseln, benutzt man cd (call directory).

Beispiele

cd Musik Es wird in den Unterordner Musik gewechselt. Dabei muss der Ordner Musik im aktuellen Ordner existieren.
cd /usr/bin Egal in welchem Verzeichnis sich man befindet, es wird zum Verzeichnis /usr/bin gewechselt. Immer, wenn ein / am Anfang steht, geht das System vom Root-Verzeichnis aus. Weitere Infos zum Dateisystem erhaltet Ihr auf dieser Seite.
cd / Es wird in das Root-Verzeichnis (Wurzelverzeichnis) gewechselt.
cd ~ Egal wo man gerade ist, so gelangt Ihr wieder ins Heimatverzeichnis.
cd . Man bleibt im atuellen Verzeichnis. Ein unsinniger Befehl, sollte aber trotzdem erklärt werden.
cd .. Man wechselt in das übergeordnete Verzeichnis.
cd ../.. Man wechselt in das zwei mal übergeordnete Verzeichnis.
cd ~/Musik/Artist/CD1 Egal wo man gerade ist, so gelangt Ihr in das Verzeichnis Musik/Artist/CD1 innerhalb Eures Heimatverzeichnisses.

Anmerkung: Zwischen cd und dem Pfad muss immer ein Leerzeichen stehen, sonst erkennt das System nicht, dass Ihr cd ausführen wollt.

Für cd gibt es meist keine Hilfedaten im System.

zur Inhaltsübersicht


clear - den Bildschirm leeren

Beschreibung

Hat man schon mit mehreren Befehlen gearbeitet, so ist man in der Konsole bzw. im Terminal auf der untersten Zeile unterwegs, weil noch die Ausgaben der letzten Befehle darüber stehen. Möchte man den Bildschirm leeren, gibt man einfach clear ein. Alle Ausgaben auf dem Bildschrim werden gelöscht und es erscheint nur noch das Eingabeprompt. Je nach Einstellung behält das System die letzten XXX Ausgaben im Ausgabepuffer. Mit clear wird auch der Ausgabepuffer geleert. In Skripten setzt man clear ein, um die Ausgaben übersichtlich zu halten. clear erwartet keine Parameter.

Beispiel

clear Die Konsole bzw. das Terminal und dessen Ausgabepuffer werden geleert und es erscheint nur das Eingabeprompt.

Weitere Informationen zu clear gibt es unter man clear, da steht aber auch nicht viel mehr drin.

zur Inhaltsübersicht


cp - Dateien kopieren

Beschreibung

Das Kommando cp kopiert Datei(en) oder ganze Verzeichnisse von einem Ort zum anderen.

Beispiele

cp test.txt test.backup Die Datei test.txt im aktuellen Ordner wird zur Datei test.backup kopiert. Diese Eingabe ist sinnvoll, wenn man die Datei test.txt ändern will. Vorher erstellt man so eine Sicherungskopie.
cp -v ~/Musik/*.ogg /media/usb Alle Dateien im Ordner /home/<Benutzername>/Musik, die mit .ogg enden, werden in den Ordner /media/usb kopiert. Die kopierten Dateien werden aufgelistet. Dateien, die sich z.Bsp. im Ordner ~/Musik/Artist befinden, werden nicht kopiert.
cp -ruv ~/* /sicherung Alle Dateien im persöhnlichen Ordner inklusive Unterordner werden in den Ordner /sicherung kopiert. Dabei werden nur neue oder geänderte Dateien kopiert. Alle Dateien, die schon in /sicherung existieren und nicht geändert wurden, werden nicht kopiert. Das ist eine einfache Möglichkeit, eine Datensicherung durchzuführen, wenn man z.Bsp. eine externe Festplatte mit dem Befehl mount unter /sicherung eingebunden hat.

Einige Optionen

-r Ordner rekursiv kopieren, d.h. alle Unterordner mit kopieren
-u Es werden nur neue oder neuere (also geänderte) Dateien kopiert gegenüber den Dateien im Zielordner
-v cp geschwätzig machen, alles, was cp kopiert, wird aufgelistet.

Weitere Informationen zu cp gibt es mit der Eingabe von cp --help | more oder man cp.

zur Inhaltsübersicht


date - Datum und Uhrzeit anzeigen oder einstellen

Beschreibung

Mit date kann man Datum und Uhrzeit ausgeben lassen oder einstellen. Beim Ausgeben kann man verschiedene Formate einstellen. Hier noch eine Anmerkung: Es gibt 2 Uhren im Rechner, die eine ist eine Software-Uhr, die andere ist die Hardware-Uhr. Die Hardware-Uhr ist dabei wesentlich genauer, diese läuft auch, wenn man den Rechner ausgeschaltet hat und besitzt deshalb eine eigene Energiequelle. Mit date greift man nur auf die Software-Uhr zu. Sollte man die Zeit geändert haben, wird beim Herunterfahren die Softwarezeit an die Hardware-Uhr übergeben.

Beispiele

date Es erscheint eine Ausgabe mit Datum und Uhrzeit. Das CEST steht für Central Europe Summer Time, als mitteleuropäische Sommerzeit.
date +%Y_%m_%d_%H_%M_%S Die Zeit wird im Format Jahr_Monat_Tag_Stunde_Minute_Sekunde ausgegeben. Das ist zum Beispiel sinnvoll, wenn man sich Dateinamen basteln will, wo die Zeit ein Bestandteil des Namens sein soll.
date -r meintext.txt Es wird die Zeit angezeigt, wann die Datei meintext.txt zuletzt geändert wurde.
sudo date 0824142214.25 Die Uhrzeit des Systems wird auf 24.8.2014 14:22:25 Uhr geändert. An sudo erkennt man, dass dazu Administratorrechte nötig sind. Danach gibt man date und folgende, immer 2-stellige Zahlen zusammenhängend ein: Monat, Tag, Stunde, Minute, Jahr, einen Punkt und Sekunde. Die Zeichen .Sekunde können auch weggelassen werden.

In der Regel wird date selten verwendet, um die Zeit einzustellen. Heute stellen Systeme meist ihre Uhren selber nach einem Zeitserver oder, wenn man ein GPS-Empfänger hat, nach Satelittenzeiten ein. Ein gutes Programm ist ntpdate für den Abgleich mit Zeitservern.

Weitere Informationen zu date und weitere Optionen gibt es mit der Eingabe von date --help | more oder man date.

zur Inhaltsübersicht


deluser - Einen Nutzer entfernen

Beschreibung

Mit dem Tool deluser kann man angelegte Benutzer entfernen. Das geht bedeutend schneller als in der grafischen Oberfläche. Weil das ein Systemeingriff ist, sind auch hier wieder Administratorrechte notwendig.

Beispiele

sudo deluser klaus Der Benutzer klaus wird entfernt. Seine Dateien bleiben auf dem Rechner.
sudo deluser --remove-home klaus Der Nutzer klaus wird entfernt. Sein komplettes Heimatverzeichnis wird gelöscht.

Es kann passieren, dass eine Meldung erscheint, dass eine Gruppe keine Mitglieder mehr hat. In unserem Beispiel wird die Gruppe klaus trotzdem mit entfernt.

Weitere Informationen zu deluser gibt es mit der Eingabe von deluser --help oder man deluser.

zur Inhaltsübersicht


df - Belegungen der eingehängten Laufwerke anzeigen

Beschreibung

Mit df kann man sich die Belegung der eingehängten Laufwerke, wie z.Bsp. Festplatten, SD-Cards, USB-Sticks, Ram-Partitionen uvm., anzeigen lassen.

Beispiele

df Es werden die Belegungen der Laufwerke in 1 KiB-Blöcke (1024 Byte) angezeigt.
df -m Es werden die Belegungen der Laufwerke in 1 MiB-Blöcke (1024 Kilobyte = 1024 x 1024 Byte = 1048576 Bytes) angezeigt.
df -h Das Programm df entscheidet selbst, in welchen Blöcken die Belegungen angezeigt werden. Das ist die lesbarste Variante. Man braucht nicht zählen und rechnen. Das -h steht für human (menschlich).

Weitere Informationen zu df und weitere Optionen gibt es mit der Eingabe von df --help oder info coreutils 'df invocation'.

zur Inhaltsübersicht


du - Laufwerksbelegungen von Dateien und Ordner anzeigen

Beschreibung

Manchmal möchte man erfahren, wieviel Speicherplatz eine Datei oder ein Ordner belegt. Gerade wenn der Speicherplatz knapp wird, sind solche Informationen wichtig, um entsprechende Entscheidungen treffen zu können. Dafür gibt es das Tool du.

Beispiele

du -h ~/Musik Es werden Speicherinformationen zum Ordner Musik und all seinen Unterordner ausgegeben, am Ende folgt eine Ausgabe der gesamten Speicherplatzmenge. Das -h steht wieder für human, also das Programm entscheidet selbst, in welchen Einheiten die Speicherplatzmengen angezeigt werden (kB, MB, GB usw.).
du -sh ~/Musik Es wird nur der gesamte Speicherplatz angezeigt, den der Ordner Musik mit all seinen Unterordnern verbraucht.

Weitere Informationen zu du und viele weitere Optionen gibt es mit der Eingabe von du --help | more oder info coreutils 'du invocation'.

zur Inhaltsübersicht


echo - eine Zeile ausgeben

Beschreibung

Mit echo gibt man eine Zeile in die Standardausgabe (auf dem Bidschirm) aus. Als einzelnen Befehl nutzt man echo, um den Inhalt einer Variablen anzuzeigen. Ansonsten findet echo in Skripten Anwendung, um Ausgaben aus dem Skript darzustellen.

Der Inhalt von Dateien kann nicht so einfach mit echo ausgegeben werden, dafür gibt es die Befehle cat und more.

Beispiele

echo Heute ist ein schöner Tag. Die Meldung Heute ist ein schöner Tag. wird ausgegeben.
echo 2000 > test.txt Die Zahl 2000 wird in die Datei test.txt geschrieben. Dabei wird am Ende ein LF-Zeichen (neue Zeile) angehängt.
echo $PATH Der Wert der Variable PATH wird angezeigt. Das sind die Pfade, wo das System nach einem Standardbefehl sucht.
echo 2 | sudo tee /sys/class/backlight/acpi_video0/brightness Die Zahl 2 wird mit Administratorrechten in die Systemdatei .../brightness geschrieben. Somit wird die Bildschirmhelligkeit auf Stufe 2 gesetzt. Diese Datei ist systemabhängig und kann sich an einem anderen Ort befinden. Das System muss die Helligkeit des Bildschirms regeln können, was eigentlich nur bei Laptops und Netbooks der Fall ist.

Weitere Informationen zu echo gibt es mit der Eingabe von man echo.

zur Inhaltsübersicht


exit - sich abmelden

Beschreibung

Möchte man sich in einer Konsole abmelden, gibt man einfach exit ein. Damit ist der Benutzer ausgeloggt und es erscheint die Anmeldeaufforderung. exit braucht keine Optionen oder Parameter und gibt keine Parameter zurück.

Sollte man im Terminal in der grafischen Oberfläche unterwegs sein, beendet man mit exit das Terminal. Auf die grafische Oberfläche selbst hat der Befehl keine Auswirkungen.

Sollte man sich temporär mit sudo su -- als Administrator angemeldet haben, wird ebenfalls exit benutzt, um den Administrator abzumelden. Die Eingabeaufforderung kehrt zum aktuell angemeldeten Benutzer zurück.

Auch wenn man mittels ssh auf anderen Rechnern unterwegs ist, nutzt man exit, um sich abzumelden.

Als Alternative zu exit gibt es die Tastenkombination STRG+d.

Es gibt nur ein Beispiel

exit Der Benutzer meldet sich von der Konsole ab, es erscheint die Anmeldeaufforderung. Ein Terminal in der grafischen Oberfläche wird beendet.

Nachtrag: In Skripten kann man den exit-Befehl nutzen, um ein Skript vorzeitig zu beenden. Mehr dazu unter Shell-Skripte.

Weitere Informationen zu exit gibt es mit der Eingabe von man exit.

zur Inhaltsübersicht


fg - einen Prozess in den Vordergrund holen

Beschreibung

Wie ich unter bg beschrieben habe (bitte erst lesen), gibt es mehrere Möglichkeiten, Programme (Prozesse) im Hintergrund laufen zu lassen. Verlangt aber so ein Programm eine Eingabe, wird es einfach angehalten. Die Eingabe kann man aber nicht erledigen, man selbst ist im Vordergrund unterwegs. Also kann man den Prozess nur töten, oder?

Wenn nur ein einzelner Prozess in der aktuellen Konsole im Hintergrund läuft, gibt man einfach fg (engl. foreground) ein, der Prozess ist nun im Vordergrund.

Hat man mehrere Prozesse im Hintergrund laufen, muss man erst mal herausfinden, welchen Prozess man im Vordergrund haben möchte. Dazu gibt man erst einmal den Befehl jobs ein, hier werden alle Prozesse der aktuellen Konsole ausgegeben. Möchte man den 2. Prozess im Vordergrund haben, gibt man fg 2 ein. Jetzt ist dieser Prozess im Vordergrund.

Anmerkung: Man kann unzählige Prozesse im Hintergrund haben aber nur einen im Vordergrund. Um einen anderen Prozess in den Vordergrund zu holen, muss der aktuell im Vordergrund befindliche Prozess wieder mit bg in den Hintergrund geschoben werden.

zur Inhaltsübersicht


free - Nutzung des RAMs und der Swap-Datei ausgeben

Beschreibung

Um die Belegungen des RAMs auszugeben, nutzt man free. Außerdem werden noch Infos über die Auslagerdatei (Swap) angezeigt. Neue Linux-Nutzer werden etwas erschrocken sein, dass der RAM fast voll ist, wenn das System eine Weile im aktiven Betrieb ist. Das ist aber normal. Linux versucht so viel wie möglich im RAM zu belassen. So kann das System blitzschnell auf Daten zugrefeifen und muss diese nicht wiederholt von der Festplatte lesen, was viel mehr Zeit kostet. Sollte das System weiteren RAM benötigen, werden schon länger nicht benötigte Daten blitzschnell rausgeworfen. Auslagern tut Linux erst wirklich dann, wenn der RAM für aktuell laufende Programme nicht mehr reicht. Das ist eher selten der Fall, z.Bsp.: Programme, die mit einigen Gigabytes an Daten arbeiten.

Beispiele

free Es werden Infos über RAM und Auslagerungsdatei in Kilobytes ausgegeben.
free -m Es werden Infos über RAM und Auslagerungsdatei im Megabytes ausgegeben.
free -h Es werden Infos über RAM und Auslagerungsdatei ausgegeben. Dabei werden die Einheiten automatisch erstellt, damit die Ausgabe gut lesbar ist (human).
free -ht Es werden Infos über RAM und Auslagerungsdatei ausgegeben. Anschließend werden noch die Gesamtsummen mit ausgegeben.
free -h -s 2 -c 10 Das Programm free -h wird alle 2 Sekunden ausgeführt. Das ganze wird 10 mal gemacht.

Wer noch mehr Infos zum RAM und der Auslagerungsdatei braucht, kann cat /proc/meminfo eingeben.

Weitere Informationen zu free gibt es mit der Eingabe von free --help und man free.

zur Inhaltsübersicht


find - Dateien oder Ordner suchen

Beschreibung

Das Proramm find ist ein mächtiges Werkzeug, mit denen man bestimmte Dateien und Ordnern suchen kann. Es gibt viele Suchkriterien, wie zum Beispiel Name, Größe, letzte Änderung usw. Man kann bei find auch eingeben, was mit den gefundenen Dateien passieren soll, das erfordert mehr Erfahrung, bei einem Eingabefehler hat man schnell einen Ordner inklusive Unterordner unwiderruflich gelöscht. Ich beschreibe hier nur, wie man Dateien finden kann, wenn man nicht mehr genau weiß, wo diese sich befinden. Diese Dateien werden nur aufgelistet.

Syntax: find PFAD -name DATEINAME
Dabei ist das Minuszeichen vor name wichtig. Lässt man PFAD weg, wird im aktuellen Verzeichnis gesucht.

Beispiele

find ~ -name .bashrc Im Heimatverzeichnis und allen Unterordnern werden alle Dateien aufgelistet, die .bashrc heißen. Das sollte nur 1 Datei sein.
find ~ -name "*.pdf" Es werden alle Dateien, die mit .pdf enden und die sich irgendwo innerhalb des Heimatverzeichnisses befinden, aufgelistet. Wenn man Platzhalter verwendet, muss der Suchbegriff in Anführungszeichen stehen, ansonsten sucht find nach Dateien die wirklich *.pdf lauten.
find / -name "*.html" | more Es werden alle Dateien, die mit .html enden, aufgelistet. Da als Pfad / angegeben wurde, wird der gesamte Rechner inklusive aller eingehängten Laufwerke durchsucht. Das kann dauern! Die Ausgabe wird an more übergeben, welches dann eine seitenweise Ausgabe erzeugt.
find -iname "Katze*" Der aktuelle Ordner inklusive aller Unterordner wird nach Dateien durchsucht, die mit Katze, katze, KATZE, kATZE usw. anfangen, Groß- und Kleinschreibung werden nicht beachtet.

Mehr will ich über find erstmal nicht erzählen. Für weitere Informationen zu find solltet Ihr erstmal auf dieser Seite von ubuntuusers.de nachlesen bevor Ihr find --help und man find nutzt. Wie gesagt, man kann auch viel kaputt machen.

zur Inhaltsübersicht


grep - Dateien oder Standardeingabe nach einem Muster durchsuchen

Beschreibung

Mit grep kann man etwas nach einem Muster durchsuchen lassen. Der Syntax lautet grep MUSTER [DATEI]. Oft wird dieser Befehl in Kombination mit anderen Befehlen verwendet, um nur das anzuzeigen, was man sehen will. Dieses Komanndo erleichtert die Arbeit am Rechner enorm.

Um es verständlich zu erläutern ein kleines Beispiel: Man hat eine Datei telefonliste.txt erstellt, die ungefähr folgenden Inhalt hat:

Walter Wasserratte - 0175 9988998
Ingeborg Müller - 012345 67890
Fred Feuerstein - 023434 3434343
Inge Blaumann - 07878 654321
Sieglinde Siebenschläfer - 0123 4567890
usw.

Mit dem Befehl grep Inge telefonliste.txt werden die Einträge aus dieser Datei angezeigt, die auf Inge passen, das wären Ingeborg Müller und Inge Blaumann. Man kann sich so mit einfachen Mitteln ein Adressbuch basteln.

Beispiele

grep -w Inge telefonliste.txt Es wird nach dem ganzen Wort Inge gesucht und ausgegeben, Ingeborg ist also nicht mehr dabei.
grep -i inge telefonliste.txt Groß- und Kleinschreibung wird ignoriert, dass passt also auf Inge, Ingeborg, aber auch auf Wingersheim.
ls -l /usr/bin | grep vlc Sieht kompliziert aus, ist es aber nicht. Als erstes kommt der Befehl ls -l /usr/bin. Dieser listet alle Dateien im Ordner /usr/bin mit Dateigröße und Benutzerrechte auf, also ein paar hundert Stück. Mit dem Zeichen | wird die Standardausgabe, was eigentlich die Konsole oder das Terminal ist, auf das Programm grep umgeleitet. grep durchsucht die paar hundert Einträge und gibt nur das aus, was auf vlc passt. Im Endeffekt sieht man nur die Angaben zum Programm vlc.
ps -e | grep firefox Funktioniert genauso: ps -e gibt Informationen über alle laufenden Prozesse des Rechners. Es wird aber nur der Eintrag angezeigt, der auf firefox passt. Wenn Firefox nicht gestartet wurde, sieht man nichts.

Weitere Informationen zu grep und weitere Optionen gibt es mit der Eingabe von grep --help oder man grep.

zur Inhaltsübersicht


gzip - Dateien komprimieren und dekomprimieren

Beschreibung

Um etwas Festplattenspeicher zu sparen, kann man Dateien komprimieren. Dafür gibt es das Programm gzip. Wieviel Speicher man spart, hängt von der jeweiligen Datei ab. Bei Programmcodes oder HTML-Dateien kann das schon ordentlich sein, weil solche Dateien viele Leerzeichen und Leerzeilen enthalten, um die Übersicht zu bewahren. Bei schon komprimierten Formaten, wie z.Bsp. jpg, mp3 usw., kann gzip nicht soviel Speicher freimachen, da diese Dateien schon in einem komprimierten Format vorliegen. Oft werden Dateien auch komprimiert, bevor man diese über Internet oder ein anderes Netzwerk versendet. Das spart Netzwerkverkehr und geht schneller.

In Linux ist es möglich, mit so komprimierten Dateien zu arbeiten. Gzip ist im System gut integriert. Wer ein Archiv aus mehreren Dateien erstellen möchte, sollte das Programm tar verwenden.

Beispiele

gzip liste.txt Die Datei liste.txt wird zur Datei liste.txt.gz komprimiert und gelöscht.
gzip -d liste.txt.gz Die Datei liste.txt.gz wird zur Datei liste.txt dekomprimiert und gelöscht.
gzip -k *.txt Alle Dateien, die mit .txt enden, werden zu .txt.gz-Dateien komprimiert. Die Originaldateien werden nicht gelöscht, das -k steht für keep (engl. bleiben oder behalten).
gzip -l liste.txt.gz Informationen über die Datei liste.txt.gz ausgeben.
gzip -c liste.txt Die Datei liste.txt wird komprimiert, und der ganze Datensalat wird auf dem Bildschirm ausgegeben. Auch bei -c wird die Originaldatei nicht gelöscht.
gzip -c liste.txt | tee archiv/liste.txt.gz Die Datei liste.txt wird komprimiert, und die Daten werden an tee übergeben, welches die Daten in die Datei liste.txt.gz im Ordner archiv schreibt. Die Originaldatei bleibt erhalten.

Einige Optionen

-cDaten nicht in eine Datei, sondern in die Standardausgabe schreiben. Originaldatei behalten.
-dDatei dekomprimieren (entpacken).
-kOriginaldatei behalten (nicht löschen).
-vInformationen beim Ausführen anzeigen.
-LSoftware-Lizenz anzeigen
-l (kleines L)Informationen über eine oder mehrere komprimierten Dateien ausgeben.
-1 bis -9Qualität der Komprimierung: 1 macht die geringste Komprimierung und geht am schnellsten. 9 macht die beste Komprimierung.

Weitere Informationen zu gzip und weitere Optionen gibt es mit der Eingabe von gzip --help oder man gzip.

zur Inhaltsübersicht


groups - Gruppenmitgliedschaften eines Nutzers ausgeben

Beschreibung

Mit groups werden, ähnlich wie bei id, die Gruppenmitgliedschaften eines Nutzers ausgegeben. Allerdings werden hier nur die Gruppennamen angezeigt. Hierfür sind keine Administratorrechte nötig.

Beispiele

groups Es werden die Gruppenmitgliedschaften des angemeldeten Benutzers ausgegeben. Wurden diese gerade erst geändert, kann die Ausgabe abweichen. Ein Ab- und wieder Anmelden wäre dann sinnvoll.
groups andrea Die Gruppenmitgledschaften von Nutzernamen andrea werden ausgegeben.

Weitere Informationen zu groups gibt es mit der Eingabe von groups --help oder man groups.

zur Inhaltsübersicht


hwclock - Zugriff auf die Hardeware-Uhr

Beschreibung

Wie schon bei date beschrieben wurde, gibt es 2 Uhren im System, die etwas ungenauere Software-Uhr, auf die die Software zugreift, und die etwas genauere Hardware-Uhr, welche immer läuft, auch wenn der Rechner ausgeschaltet ist. Mit hwclock kann man direkt auf die Hardware-Uhr zugreifen, allerdings benötigt hwclock immer Administratorrechte.

Beispiele

sudo hwclock -r Die Zeit der Hardware-Uhr wird angezeigt. Es erscheint auch eine Differenz zur Software-Uhr, die sollte man aber nur bedingt ernst nehmen, da das Programm hwclock selbst eine gewisse Zeit braucht.
sudo hwclock -s Die Software-Uhr wird nach der Hardware-Uhr eingestellt. Bei Systemen, die mehrere Tage laufen und nicht die Uhrzeit über Internet mittels einem Time-Server abgleichen, sollte man das ab und zu mal machen.
sudo hwclock -w Die Hardware-Uhr wird nach der Software-Uhr gestellt. Das sollte man nur machen, wenn man sich sicher ist, dass die Software-Uhr momentan stimmt.

Weitere Informationen zu hwclock und weitere Optionen gibt es mit der Eingabe von hwclock --help oder man hwclock.

zur Inhaltsübersicht


id - Informationen über einen Nutzer und deren Gruppenzugehöhrigkeit ausgeben

Beschreibung

Sicherlich kennt Ihr das von anderen Systemen auch, der eine darf mehr und der andere darf wenigen an einem Rechner machen. Deshalb wird jeder Nutzer bestimmten Gruppen zugeordnet, damit er entsprechende Sachen machen darf. Um solche Gruppen anzuzeigen gibt es das Tool id. Dabei sind keine Administratorrechte nötig, weil man am System nichts verändert, es wird nur eine Ausgabe angezeigt.

Wie man Nutzer zu einer Gruppe zuordnet, beschreibe ich unter adduser. Wer nur die Gruppenmitgliedschaften ausgegeben haben will, sollte groups nutzen.

Beispiele

id Es werden Informationen über das eigene Nutzerkonto ausgegeben. Diese beinhalten die Nutzeridendifikatinsnummer (UID) und die Gruppen mit GID-Nummer, denen man zugehöhrt.
id andrea Hier werden Informationen über den Nutzer andrea ausgegeben.

Weitere Informationen zu id und weitere Optionen gibt es mit der Eingabe von id --help oder man id.

zur Inhaltsübersicht


if - Anweisungen bedingt ausführen

Beschreibung

Bedingte Anweisungen werden nur ausgeführt, wenn eine bestimmte Gegebenheit vorhanden ist. Oft wird das in Skripten eingesetzt. Als eigentlicher Konsolenbefehl wird es nur von erfahrenen Benutzern genutzt. So eine Anweisung wird als einzelner Befehl für Anfänger relativ unübersichtlich. Trotzdem sollte es doch mal erklärt werden.

Syntax: if BEDINGUNG; then BEFEHL1; BEFEHL2; else BEFEHL3; BEFEHL4; fi

Eingeleitet wird die Befehlsfolge mit if und beendet wird sie mit fi. Innerhalb dieser Befehlsfolge werden mehrere Befehle, getrennt duch ; notiert. BEDINGUNG ist eine Abfrage, die im Endeffekt nur 2 Zustände haben kann: wahr (true) oder falsch (false).
Ist BEDINGUNG wahr, werden die Befehle, die nach then notiert wurden, ausgeführt, hier BEFEHL1 und BEFEHL2. Ist BEDINGUNG falsch, werden die Befehle, die nach else notiert wurden, ausgeführt, hier BEFEHL3 und BEFEHL4. Die Anzahl der Befehle ist beliebig, sie müssen durch ein ; (Semikolon) getrennt sein. Der else-Bereich (wenn die Bedingung falsch ist) muss nicht vorhanden sein.

Beispiele

if true;then echo Bedingung ist wahr.;fi Das Wort true sagt, dass die Bedingung immer wahr ist. Deshalb wird Bedingung ist wahr. ausgegeben. Der Befehl echo wird also immer ausgeführt. Sinnloser Satz, soll aber doch erklärt werden.
if false;then echo Bedingung ist wahr.;fi Noch sinnloser, denn es wird nichts gemacht. Das Wort false besagt, dass die Bedingung immer falsch ist.
if true;then echo Bedingung ist wahr.;else echo Bedingung ist falsch.;fi Hier wird wieder Bedingung ist wahr. ausgegeben. Ersetzt man true durch false, wird Bedingung ist falsch. ausgegeben.
andrea=5;if [ $andrea==5 ]; then echo Variable andrea ist 5.; else echo Variable andrea ist nicht 5.;fi Das geht jetzt schon in den Skript-Bereich. Als erstes wird eine Variable namens andrea angelegt. Als Wert bzw. Inhalt erhält sie das Zeichen 5.
Als Bedingung wird dann mit [ $andrea==5 ] abgefragt, ob andrea den Wert 5 hat, hierbei sind die Leerzeichen wichtig. Das $-Zeichen ist auch wichtig, es besagt, dass man die Variable andrea auslesen will. Fehlt es, so wird andrea ein anderer Wert zugeteilt.
Hat andrea den Wert 5, so wird true an if zurückgegeben, ansonsten false.
Dem entsprechend wird dann mittels echo die entsprechende Ausgabe generiert.
if ls Test;then echo ls lief fehlerfrei.;else echo ls konnte nicht ausgeführt werden.;fi Sowas wird schon mal in der Konsole benutzt. Als erstes wird der Befehl ls Test aufgerufen. Kann dieser Befehl fehlerfrei ausgeführt werden, wird true an if geliefert, und es erscheint die Ausgabe ls lief fehlerfrei.
Kann ls nicht ausgeführt werden, weil es zum Beispiel keine Datei oder Verzeichnis namens Test gibt, wird false an if geliefert, es erscheint die Ausgabe ls konnte nicht ausgeführt werden..

If-Anweisungen werden mehr in Skripten angewendet, dort kann man das übersichtlicher mit mehreren Zeilen notieren. Hier nochmal das 4. Beispiel:

andrea=5
if [ andrea==5 ]
then
  echo Variable andrea ist 5.
else
  echo Variable andrea ist nicht 5.
fi

zur Inhaltsübersicht


jobs - Prozesse der aktuellen Konsole anzeigen

Beschreibung

Wie ich unter bg beschrieben habe, können mehrere Prozesse im Hintergrund laufen. Mit jobs erzeugt man eine Ausgabe, welche Prozesse in der aktuellen Konsole im Hintergrund laufen. So ermittelt man einen Prozess, den man vielleicht in den Vordergrund holen will.

Läuft kein Prozess im Hintergrund, bleibt die Ausgabe leer. Wenn Ihr wirklich jobs richtig anwenden wollt, müssen mehrere Prozesse im Hintergrund laufen, da muss man schon Ahnung haben.

Nachtrag: jobs zeigt auch Prozesse an, die im Vordergrund mit STRG+z angehalten wurden.

Beispiele

jobs Es werden alle im Hintergrund befindlichen Prozesse der aktuellen Konsole ausgegeben.
jobs -r Es werden nur laufende Prozesse ausgegeben.
jobs -s Es werden nur angehaltene Prozesse ausgegeben.

Leider gibt es keinen Handbucheintrag unter Ubuntu zu jobs, ist aber auch nicht so schlimm.

zur Inhaltsübersicht


kill, pkill, killall - Signale an Prozesse versenden

Beschreibung

Es gibt Programme, die, wenn sie einmal gestartet wurden, endlos laufen. Vor allem bei Diensten ist das der Fall aber auch bei anderen Programmen. Will man das System herunterfahren, müssen solche Programme beendet werden, ansonsten würde das System endlos warten. Deshalb sendet das System Signale zu diesen Prozessen. Die Prozesse werden daraufhin beendet, das System kann herunterfahren.

Um solche Siganale zu senden, gibt es das Tool kill. Somit ist es möglich, Prozesse anzuhalten, weiter laufen zu lassen, abzubrechen oder gar hart zu töten (uvm.). Um an Systemprozesse ein Signal zu senden, muss man sudo verwenden.

Ich gehe hier nur auf einen Syntax und wenige Beispiele ein, es gibt noch weitere, was den Rahmen hier aber sprengen würde.
Syntax: kill -ZAHL PID
ZAHL ist das Signal was versendet werden soll, PID ist die Prozess-ID, die bekannt sein muss. Ist die PID nicht bekannt, kann man diese mit ps -e | grep PROGRAMMNAME herausfinden.

Beispiele

kill 1228 Der Prozess 1228 wird normal beendet. Sollte der Prozess noch Daten speichern müssen, wird er das noch tun, bevor er sich beendet.
kill -19 12084 Der Prozess 12084 wird angehalten, aber nicht beendet.
kill -18 12084 Der angehaltene Prozess 12084 wird fortgesetzt.
kill -9 8823 Der Prozess 8823 wird getötet. Sowas macht man mit Prozessen, die sich aufgrund eines Fehlers aufgehangen haben (sog. Zombies). Dieser Prozess speichert keine Daten auf die Festplatte, bevor er sich beendet. Das ist der allerletzte Weg, wenn nichts anderes mehr geht.

Wie Ihr an der Überschrift gesehen habt, gibt es noch die Befehle pkill und killall. Hier kann man mit dem Programmnamen den Prozessen Signale senden. Der Syntax ist ähnlich. Na gut, weil Ihr's seid, nochmal ein paar Beispiele.

pkill firefox Der Prozess, der mit dem Programm firefox gestartet wurde, wird normal beendet.
pkill -19 firefox Der Prozess, der mit dem Programm firefox gestartet wurde, wird angehalten. Firefox macht eine Pause, Ihr könnt umherklicken, es wird nichts passieren.
pkill -18 firefox Der Prozess, der mit dem Programm firefox gestartet wurde, wird fortgesetzt. Firefox lebt wieder.
killall java Alle Prozesse, die was mit java zu tun haben, werden normal beendet
killall -9 java Alle Java-Prozesse werden knallhart getötet.

Bitte versucht nicht mit sudo kill ... Prozesse zu beenden, um den Rechner schneller zu machen. Man muss immer wissen, was dieser Prozess eigentlich tut, bevor man solche beendet. Das ist kein Windows-System, Linux zeigt Euch alle Prozesse an (offene Software). Jeder Systemprozess hat eine Funktion, die notwendig ist. Wer auf dieser Weise seine Perfomance verbessern will, stellt unzählige Arbeitsstunden von Millionen von Mitwirkenden in Frage und gehöhrt auf die Schulbank der 1. Klasse in der Hoffnung, das logische Denken doch noch zu erlernen. Abgesehen davon kann man sein System damit zerschießen, Wer die Performance verbessern will, muss lernen und verstehen, damit er seinen Rechner besser konfigurieren kann.

Weitere Infos erhaltet Ihr unter man kill und man 7 Signal

zur Inhaltsübersicht


ln - Link (Verknüpfung) erstellen

Beschreibung

Gerade manuell installierte Programme lassen sich von der Konsole normalerweise nur starten, wenn man den Pfad dorthin angibt. Das kann schon mal eine längere Zeile werden.
Als Beispiel: /home/BENUTZER/programme/hersteller/softwarename/software/startdatei
Jedesmal, wenn man dieses Programm starten will, muss man diese lange Zeile eingeben. Gibt es da nicht eine Vereinfachung? Ja, die Lösung lautet ln.

Ich beschreibe hier nur, wie man eine symbolische Verlinkung anlegt. Es gibt auch harte Verlinkungen, die Ihr Euch mit den Hilfeseiten selbst erarbeiten könnt.

Ich empfehle, solche symbolischen Verlinkungen im Ordner ~/bin anzulegen, dieser Ordner wird nach dem Anmelden automatisch in die Variable PATH eingebunden, d.h. Ihr braucht nicht dorthin navigieren, um ein Programm zu starten.

Beispiel

ln -s ~/programme/hersteller/softwarename/software/startdatei ~/bin/stdatei Im Ordner ~/bin wird ein Link namens stdatei angelegt, die mit der Datei ~/programme/hersteller/softwarename/software/startdatei verknüpft ist. Da dieser Link sich im Ordner ~/bin befindet, kann man nun, egal wo man sich im System befindet, mit der Eingabe von stdatei das Programm starten.

Anmerkungen: Solltet Ihr den Ordner ~/bin gerade erstellt haben, so muss man sich einmal abmelden und wieder anmelden, damit er in der Variable PATH aufgenommen wird. Der Name des Links darf nicht identisch sein mit einem Programmnamen, welches sich in PATH gespeicherten Ordnern befindet. Man kann sowas vorher prüfen mit which NAME. Bleibt die Ausgabe leer, kann man diesen Namen verwenden.

Noch eine Anmerkung: Manche manuell installierten Programme verlangen, dass man erst mit cd dorthin wechselt und dann mit ./startdatei das Programm startet. Die Ursache liegt darin, dass sonst benötigte Konfigurationsdateien nicht gefunden werden. Um sowas zu vereinfachen, sollte man ein dreizeiliges Bash-Skript nutzen, das wie folgt aussieht:

Hier empfehle ich wieder, dieses Skript im Ordner ~/bin zu speichern.

Viele weitere Informationen zu ln gibt es mit der Eingabe von ln --help | more oder man ln.

zur Inhaltsübersicht


lpq und lprm) - Status des Druckers ausgeben

Beschreibung

lpq ist ein Werkzeug, um sich den Status eines Druckers ausgeben zu lassen. So kann man feststellen, ob ein Drucker angeschlossen und eingeschaltet ist und was dieser gerade macht.

Gerade Netzwerkdrucker stehen oft in anderen Räumen oder Gebäuden. Mittels lpq kann man feststellen, ob der Drucker bereit ist, bevor man etwas wichtiges ausdrucken möchte. Man braucht im Erfolgsfall also nicht erst mal hinlaufen, um festzustellen, dass mit dem Drucker alles OK ist.

Genau genommen zeigt lpq den Status der Druckerwarteschlange an, aber genau die genannten Informationen sind in dieser enthalten. Wer nur die Liste der Warteschlange sehen möchte, kann lprm benutzen.

Beispiele

lpq Es wird der Name des Standarddruckers ausgegeben und sein Status.
lpq -l Ausführlichere Informationen zum Status des Standarddruckers werden ausgegeben.
lprm Die Druckerwarteschlange-Liste für den Standarddrucker wird ausgegeben.

Mehr Infos und wie Ihr andere Drucker abfragen könnt gibt es unter lpq --help und man lpq.

zur Inhaltsübersicht


lpr - Eingabekanal zum Drucker umleiten

Beschreibung

Früher hat man einen Bleistift oder Kugelschreiber und einen Zettel genommen, um sich etwas aufzuschreiben. Heute kommt da mehr und mehr das Smartphone zum Einsatz. Auch am PC gibt es unzählige Möglichkeiten, sich etwas zu notieren, allerdings ist es etwas kompliziert, diese Notizen im Einkaufsladen nachzulesen.

Wenn Zettel und Stift nicht verfügbar sind, aber ein Linux-Rechner mit Drucker, kann man einfach lpr benutzen, um Notizen auf ein Blatt Papier zu bekommen. Man gibt in einer Konsole lpr + ENTER ein und schreibt seine Notizen. Ist man fertig, drückt man STRG+d. Und schon kommt die Notiz aus dem Drucker. Alternativ kann auch das Tool lp verwendet werden.

lpr kann auch Textdateien und Bilder ausdrucken. Man kann auch Ausgaben andere Programme zu lpr umleiten, die ausgedruckt werden sollen.

Beispiele

lpr Die Konsole wartet auf eine Eingabe. Hat man alles eingegeben drückt man STRG+d und die Eingaben werden ausgedruckt.
lpr Notiz.txt Die Textdatei Notiz.txt wird ausgedruckt.
lpr ~/Bilder/Blume.png Das Bild der Datei Blume.png im Ordener Bilder wird ausgedruckt.
ls -la ~ | lpr Die Ausgabe des Befehls ls -la ~ wird an den Drucker umgeleitet.

Mehr Infos und viele Optionen zu lpr gibt es unter man lpr.

zur Inhaltsübersicht


ls - Ordnerinhalt auflisten

Beschreibung

Das Kommando ls (list) listet Dateien und Ordner auf. Im DOS gibt es den ähnlichen Befehl dir.

Beispiele

ls ~ Es wird der Inhalt des persöhnlichen Ordners aufgelistet. Ausgeblendete Dateien und Ordner werden nicht angezeigt.
ls -la Musik Der Inhalt des Unterordners Musik wird aufgelistet. Es werden Angaben über Größe der Dateien und deren Zugriffsrechte sowie deren letzte Änderung angezeigt. Ausgeblendete Dateien und Verzeichnisse, die mit einem Punkt beginnen, werden ebenfalls angezeigt.
ls -lh /usr/bin | more Der Inhalt des Ordners /usr/bin (Hier befinden sich die Programme, die man direkt aus der Konsole startet.) wird mit Zugriffsrechte und Dateigröße an das Programm more mittels einer Pipe übergeben, welches dann die Ausgabe seitenweise ausgibt. Dieses Vorgehen ist sinnvoll, wenn sich viele Dateien in einem Ordner befinden. Ohne dem Programm more würde die Ausgabe wahnsinnig schnell auf dem Bildschirm durchrasseln. Die Option h gibt an, dass die Dateigrößen leicht lesbar dargestellt werden sollen (human).
ls -lh /usr/bin >inhalt.txt Der Inhalt des Ordners /usr/bin wird mit Zugriffsrechte und Dateigröße in die Datei inhalt.txt geschrieben. Falls die Datei schon existiert, wird sie überschrieben. Mit more inhalt.txt oder cat inhalt.txt kann man sich die Datei anzeigen lassen.

Einige Optionen

-l Informationen über Dateigröße, Benutzerrechte und letzte Änderungen werden ausgegeben.
-lh Informationen über Dateigröße, Benutzerrechte und letzte Änderungen werden ausgegeben. Dabei sollen die Dateigrößen lesbar ausgegeben werden (human).
-a Ausgeblendete Datein und Ordner, die mit einem Punkt beginnen, werden auch ausgegeben.
-t Die Ausgabe wird nach Änderungszeit sortiert, neuere Dateien werden zuerst aufgelistet.

Viele weitere Informationen zu ls, die ich hier in der Kürze nicht erkläre, gibt es mit der Eingabe von ls --help | more oder man ls.

zur Inhaltsübersicht


lsblk - erkannte Speichermedien ausgeben

Beschreibung

Ihr wisst sicherlich, dass erkannte Geräte im Ordner /dev/ vorhanden sind. Möchte man ein Speichermedium, wie z.Bsp. USB-Stick, SD-Karte oder externes CD-Laufwerk nutzen, geht das Drama los.

Man könnte vorher den Befehl ls /dev/ eingeben, das Speichermedium einstecken und anschließend den Befehl nochmal eintippen, um zu erfahren, wie Ihr das Gerät einnhängen könnt. Wer kommt am Anfang schon darauf, dass die SD-Karte umter mmcblk0p1 erkannt wurde.

Macht doch einfach das Spiel mit lsblk. Es ist übersichtlich und zeigt, wenn schon eingehängt, den Einhängepunkt an. Einzelne Partitionen werden in einer Baumstruktur ausgegeben.

Beispiele

lsblk Alle erkannten Speichergeräte werden angezeigt sowie deren Speichergröße. Falls diese schon eingehängt sind, wird der Mount-Point mit ausgegeben.

Mehr über lsblk könnt Ihr mit lsblk --help und man lsblk erfahren.

zur Inhaltsübersicht


man - Handbuch anzeigen

Beschreibung

Zu jedem Befehl gibt es ein kurzes Handbuch im System. Dieses kann man mit dem Befehl man (manual) gefolgt von dem Befehlnamen angezeigt werden. Mit der Leertaste kann eine Seite weiter geblättert werden. Mit q beendet man die Anzeige des Handbuches.

Oft findet man in den Handbüchern weitere Hilfen im Internet.

Beispiele

man ls Das Handbuch zum Befehl ls wird angezeigt.

Viel mehr gibt es hier zu dem wichtigen Befehl man nicht zu sagen, auch wenn die Handbücher eine riesige Sammlung von Kommandos, Optionen, Lizensinformationen und Autoren sind.

zur Inhaltsübersicht


mkdir - Ordner erstellen

Beschreibung

Das Kommando mkdir (make directory) erstellt einen neuen oder mehrere neue Unterordner.

Beispiele

mkdir Test Im aktuellen Ordner wird der Ordner Test erstellt.
mkdir programme/c/neues_programm Im Ordner programme/c wird der Unterordner neues_programm erstellt. Die Ordner programme und c müssen vorhanden sein.
mkdir programme programme/c programme/c/neues_programm Hier werden die Ordner programme, programme/c und programme/c/neues_programm gleichzeitig erstellt. Es darf vorher keines dieser Ordner vorhanden sein.

Weiter Informationen zu mkdir gibt es mit der Eingabe von mkdir --help | more oder man mkdir.

zur Inhaltsübersicht


more - seitenweise Ausgabe

Beschreibung

Wer kennt das Problem nicht? Man will sich eine Datei ansehen, diese ist aber relativ groß und rauscht nur so auf dem Bildschirm durch, und man sieht wirklich nur das Ende. Mit more wird die Ausgabe seitenweise angehalten. Drückt man dann die Leertaste, wird die folgende Seite angezeigt. Mit der Taste q beendet man more, beim Erreichen des Endes beendet sich more selbst. more erkennt die Fenster- oder Bildschirmgröße selbst, es sind keine Einstellungen erforderlich.

Beispiele

more test.txt Der Inhalt der Datei test.txt wird seitenweise ausgegeben. Der Befehl cat wird nicht benötigt.
ls -l /usr/bin | more ls -l /usr/bin erzeugt eine Ausgabe mit allen Dateien innerhalb des Ordners /usr/bin. Da das mehrere hunderte Einträge sind, ist diese Ausgabe mehrere Seiten groß. more fängt dies Ausgabe ab und gibt sie seitenweise aus.
more * Der Inhalt aller Dateien im aktuellen Ordner wird ausgegeben. Dabei hält more die Ausgabe nach jeder Datei oder Seite an.

Tasten, die innerhalb von more benutzt werden können

Enter Die nächste Zeile wird angezeigt.
5 Enter Die nächsten 5 Zeilen wird angezeigt.
Leerzeichen Die nächste Seite wird angezeigt.
:f Momentane Datei und Zeilennummer wird angezeigt.
h Hilfe für verwendbare Befehle wird angezeigt.
q Das Programm more beenden.

Weiter Informationen zu more gibt es mit der Eingabe von more --help oder man more.

zur Inhaltsübersicht


mount - Geräte in das Dateisystem einbinden

Beschreibung

Das Kommando mount dient zum Einhängen von Geräten in das Dateisystem. Als Geräte sind hier Festplatten, USB-Stcks, SD-Cards, CD- ind DVD-Laufwerke usw. gemeint. Es lassen sich auch CD-Image-Dateien (*.iso) oder ein anderer Ordner einbinden. Da mount das System verändert, darf man mount nur mit Administratorrechte anwenden, z.Bsp. mit sudo.

Das Linux-Dateisystem benutzt keine Buchstaben für Laufwerke, wie man es von Windows gewöhnt ist. Laufwerke lassen sich an beliebiger Stelle im Dateisystem einhängen. Dem entsprechend kann man Lese- und Schreibrechte vergeben. Laufwerke und andere Geräte werden im Ordner /dev abgelegt. Mit dem Befehl ls /dev kann man sich diese anzeigen lassen. Man könnte denken, da sind ja nur ein paar komische Dateien. Nein, das sind Geräte, die irgendwas mit Ein- und Ausgabe zu tun haben, angefangen von Sound bis hin zu Tastatur und Konsolen. Reelle Laufwerke fangen in der Regel mit sd an, sda ist das erste Laufwerk, sdb das zweite usw. Danach folgt noch eine Zahl, welche dann die installierte Partition auf dem Laufwerk darstellt, also sda3 ist die 3. Partition auf dem ersten Laufwerk, sdb1 ist die 1. Partition auf dem 2. Laufwerk. SD-Cards melden sich oft unter /dev/mmcblk0 an.

Die grafischen Oberflächen verfügen auch über eine Einhägefunktion. Sie erkennen externe Laufwerke automatisch. Unter Ubuntu werden diese nach einem Klick unter /media/<BENUTZER>/<Gerätename> eingebunden.

Will man ein Laufwerk partitionieren oder formatieren, sollte es nicht eingehängt sein. Meist übernehmen das entsprechende Proframme selbst.

Soll ein Laufwerk bei jedem Systemstart automatisch eingebunden werden, muss ein entsprechender Eintrag in der Datei /etc/fstab vorhanden sein. Da braucht man den Befehl mount nicht mehr.

Beispiele

mkdir ~/usb
sudo mount -t auto /dev/sdb1 ~/usb
Zuerst erstellt man den Ordner usb im Heimatverzeichnis, danach bindet man beispielsweise ein USB-Stick dort ein. Nun kann man im Ordner usb alle Dateien sehen, die auf dem Stick vorhanden sind und mit diesen arbeiten. Da man im Heimatverzeichnis und seine Unterordner vollen Zugriff hat, gilt das auch für den USB-Stick, solange nicht andere Schutzmaßnahmen greifen.
sudo mount -t auto -o ro /dev/sdb1 ~/usb Das gleiche wie im vorherigem Beispiel, allerdings nur mit Leserechte.
mount -l Es werden alle eingehängten Geräte und deren Einbindeort aufgelistet.
sudo mount -o loop ~/Downloads/cd_image.iso ~/cdisk Die CD-Image-Datei cd_image.iso, die sich im Ordner Downloads befindet, wird im Ordner cdisk des Heimatverzeichnisses eingebunden, jetzt kann man mit dieser Datei arbeiten, als wäre die CD gebrannt.
sudo mount -t ramfs ramfs ~/ram Im Ordner ~/ram wird eine RAM-Disk, eine virtuelle Partition, die Datem im RAM-Speicher ablegt, eingebunden. Die Größe solch einer RAM-Partition ist immer so groß, wie sie benötigt wird, sie passt sich an. Empfohlen wird, nicht mehr Daten abzulegen als die halbe Größ des physischen RAMs, ansonsten muss das System Daten in die Swap-Parttion auslagern, was Zeit kostet. Wird der Rechner ausgeschaltet, sind alle in der RAM-Disk abgelegten Daten weg.

Um ein eingehängtes Gerät wieder auszuhängen, gibt man sudo umount <Gerät> oder sudo umount <Einhängepunkt> ein.
Beispiele: sudo umount /dev/sdb1 oder sudo umount ~/usb

Weiter Informationen zu mount gibt es mit der Eingabe von mount --help | more oder man 8 mount.

zur Inhaltsübersicht


mv - Dateien bewegen bzw. umbenennen

Beschreibung

Das Kommando mv (move - bewegen) bewegt Datei(en) oder ganze Verzeichnisse von einem Ort zum anderen oder ändert deren Namen.

Beispiele

mv test.txt test.backup Die Datei test.txt im aktuellen Ordner wird zur Datei test.backup umbenannt. Diese Eingabe ist sinnvoll, wenn man eine neue Datei test.txt erstellen will. Vorher erstellt man so eine Sicherungskopie von der alten Datei.
mv -v ~/Musik/*.ogg /media/usb Alle Dateien im Ordner /home/<Benutzername>/Musik, die mit .ogg enden, werden in den Ordner /media/usb kopiert und anschließend gelöscht. Die geschobenen Dateien werden aufgelistet. Dateien, die sich z.Bsp. im Ordner ~/Musik/Artist befinden, werden nicht verschoben.

Einige Optionen

-f Es werden schon vorhandene Dateien ohne Nachfrage überschrieben.
-v mv geschwätzig machen, alle Dateien werden aufgelistet.

Weiter Informationen zu mv gibt es mit der Eingabe von mv --help oder man mv.

zur Inhaltsübersicht


nice - Programme mit einer bestimmten Priorität starten

Beschreibung

Wie Ihr sicherlich schon wisst, laufen in einem kompletten System mehrere hundert Programme gleichzeitig. Dabei sind einige wichtiger, die anderen können auc mal kurz warten. Die CPUs haben eine bestimmte Taktfrequenz, die es erlaubt, nur eine bestimmte Datenmenge pro Zeiteinheit zu verarbeiten. Hat man mehrere rechenintensive Programme am Laufen, kann das eine ein anderes schon mal ausbremsen. Deshalb kann man mit nice festlegen, welches Programm wichtiger ist und welches nicht unbedingt auf Vollgas laufen muss.

Man gibt mit nice den Programmen eine Priorität, welche von -20 (höchste Priorität) bis +19 (geringste Priorität) reicht. So weiss das System, welchen Anwendungen mehr oder weniger Prozessorzeiten zugeteilt werden sollen. Startet man ein Programm ohne nice, bekommt es die Priorität 0, also die goldene Mitte. Mit nice ist es nicht möglich, einem Programm zu sagen, dass es nur im Rechnerleerlauf arbeiten soll. Einen kompletten Leerlauf gibt es nicht, es gibt nur freie Prozessorzeiten (idle), bei denen Programme mit niedriger Priorität ausgeführt werden. Man sollte nice einsetzen, da es ein ausgeglichenes System schafft, es ist zum Beispiel Blödsinn, wenn man ein Programm, dass alle 3 Tage nach irgendwelchen Updates suchen soll, eine hohe Priorität gibt, wenn es 3 Tage und ein paar Millisekunden sind, ist doch auch nicht schlimm. Be nice - Seid nett zueinander.

Bei laufenden Prozessen kann man die Priorität mit renice ändern.

Beispiele

nice firefox Das Programm firefox wird mit der Priorität 10 gestartet, es wird nicht das System behindern. Bei einem normalen System ist eine Verlangsamung aber kaum feststellbar.
nice -n 19 vlc Der VLC-Player wird mit der geringsten Priorität gestartet. Alle anderen Programme haben Vorrang.
sudo nice --adjustment=-10 vlc Der VLC-Player wird mit höherer Priorität gestartet. Will man einem Programm eine höhere Priorität geben als normal, muss man mit sudo Administratorrechte freischalten. Jetzt kann es schon mal passieren, dass das System mal kurz hängt. Für normale, auch rechenintensive, Programme ist das Setzen einer höheren Priorität meist kein Vorteil, da ein gut laufendes System mehr als 95% nicht ausgelastet ist. Das --adjustment=-10 kann man durch -n -10 ersetzen, das ist nur mal ein anderer Syntax.

Weiter Informationen zu nice gibt es mit der Eingabe von nice --help oder man nice.

zur Inhaltsübersicht


ntpdate - Uhrzeit nach einem Zeitserver einstellen

Beschreibung

Mit ntpdate wird die Systemzeit nach einem Zeitserver abgeglichen. Da ntpdate als "deprecated" eingestuft ist, d.h. es soll bald nicht mehr verwendet werden, gehe ich hier nur kurz darau ein. Der Dienst ntpd soll in Zukunft die Arbeit mit den Zeitservern erledigen. Da es sich um einen ganzen Dienst handelt und nicht um einen einzelnen Befehl, gehe ich hier nicht näher auf ntpd ein.

Das Programm ntpdate sollte nicht genutzt werden, wenn der Dienst ntpd installiert ist. Das führt zu Konflikten, außerdem braucht man es nicht mehr. Ihr könnt mit der Eingabe ntpd -V testen, ob dieser Dienst installiert ist.

Beispiele

sudo ntpdate -u ptbtime3.ptb.de Da das Ändern der Systemzeit ein Eingriff in das System ist, schaltet man mit sudo Administratorrechte frei. ntpdate verbindet sich mit dem Server ptbtime3.ptb.de. Das ist ein Server der Physikalischen Technischen Bundesanstalt in Braunschweig. Die Zeit stammt dort aus der einzigen in Deutschland befindlichen Atomuhr. Die Systemzeit wird nun nach dieser Atomuhr eingestellt.

Weiter Informationen zu Zeitservern und Software bekommt Ihr auf dieser Seite von ubuntuusers.de.

zur Inhaltsübersicht


ps - laufende Prozesse anzeigen

Beschreibung

ps stammt von processes. Es listet je nach Optionen einige oder alle Prozesse auf, die auf dem Rechner gestartet wurden. Man kann so kontrollieren, ob ein Programm noch läuft oder schon beendet ist. ps macht nur eine einzige Momentaufnahme des System. Will man die Prozesse über eine gewisse Zeit überwachen, dann muss ps immer wieder gestartet werden oder man verwendet top.

Beispiele

ps Es werden die Prozesse der aktuellen Konsole angezeigt, andere Prozesse werden nicht angezeigt.
ps -A oder ps -e Es werden alle Prozesse angezeigt.
ps -ef oder gar ps -eF Es werden alle Prozesse angezeigt. Dabei werden ausführlichere Informationen ausgegeben.
ps -A | grep firefox Es werden die Prozesse angezeigt, in denen firefox vorkommt. Man kann zwar so nach einem Programm suchen, jedoch wird der Prozess grep mit ausgegeben, da er auch einen Wert namens firefox enthält und zum Zeitpunkt des Aufrufs läuft. Besser ist vielleicht nächstes Beispiel.
ps -C firefox Hier werden die Prozesse angezeigt, die den exakten Namen firefox haben.
ps -fC firefox,grep,bash Es werden die Prozesse angezeigt, deren Namen firefox, grep oder bash ist. Es werden weitere Infos ausgegeben. Die Option C erwartet also eine Liste von Namen, die durch Kommas getrennt werden.
ps -e | wc -l wc zählt die Zeilen, die von ps -e ausgegeben werden. Das ist eine mehr als die Anzahl aller Prozesse.

Sollte man Infos zur Prozesshirarchie brauchen, ist der Befehl pstree zu verwenden.

Weitere Infos zu ps erhaltet Ihr mit Eingabe von ps --help oder man ps.

zur Inhaltsübersicht


pstree - Prozessbaum anzeigen

Beschreibung

Der Befehl pstree stammt von ps und tree (Baum auf englisch). Er gibt eine Struktur aus, mit der man sehen kann, welche Prozesse vorhanden sind und diese zu welchen Prozessen untergeordnet sind. Man spricht eigentlich von Elternprozess und Kindprozess. pstree ist mehr was für Programmierer und Systemadministratoren, es kann aber von jedem Nutzer aufgerufen werden. Um Infos zu einzelnen Prozessen auszugeben, eignet sich ps besser.

Beispiele

pstree Es wird eine Struktur ausgegeben, die die einzelnen Prozesse beinhaltet. Mehrfach gestartete Prozesse werden zusammengefasst.
pstree -c Zusammengefasste Prozesse werden einzeln angezeigt.
pstree -cl | more Zusammengefasste Prozesse werden einzeln angezeigt, lange Zeilen werden nicht abgeschnitten. more sorgt für eine seitenweise Ausgabe.

Weitere Infos zu pstree erhaltet Ihr mit Eingabe von pstree --help oder man pstree.

zur Inhaltsübersicht


pwd - Ausgabe erzeugen, wo man sich im Dateisystem befindet

Beschreibung

Der Befehl pwd erzeugt eine Ausgabe, wo man sich im Dateisystem befindet (der aktive Pfad). Eigentlich steht das ja schon im Eingabeprompt. Aber in Skripten kann man diese Ausgabe in eine Variable speichern und am Ende wieder in diesen Pfad zurückspringen.

Beispiel

pwd Es wird eine Ausgabe mit dem Pfad erzeugt, wo man sich gerade befindet.

Anmerkung: Der aktuelle Pfad wird auch in der Variable PWD abgelegt. Deshalb ergibt die Eingabe echo $PWD die gleiche Ausgabe.

Weiter Informationen zu pwd bekommt Ihr mit man pwd.

zur Inhaltsübersicht


read - Eingabeaufforderung

Beschreibung

Gerade in Skripten ist es manchmal nötig, vom Benutzer eine Eingabe abzufragen, um dann zu entscheiden, wie das Skript weiter arbeiten soll. Dafür gibt es das Tool read. Dabei wird die Bash angehalten, bis der Benutzer eine Eingabe getätigt hat. Hat der Benutzer die Enter-Taste gedrückt, wird die Eingabe in einer Variablen abgespeichert. Existiert diese Variable nicht, wird sie einfach erstellt.

Beispiele

read klaus Die Bash wird angehalten, bis man eine Eingabe gemacht hat. Diese Eingabe wird in der Variablen klaus gespeichert. Kontrollieren kann man die Eingabe mit echo $klaus.
read -p 'Bitte mache Deine Eingabe: ' klaus Das gleiche wie im 1. Beispiel. Allerdings erzeugt read noch eine Ausgabe (Prompt), damit der Benutzer weiss, was er eingeben soll.
read -n 5 -p 'Gib bitte 5 Zeichen ein ' klaus Das -n 5 besagt, dass read 5 Zeichen erwartet. Hat man 5 Zeichen eingegeben, wird read automatisch beendet. Es muss also kein ENTER-Zeichen eingegeben werden.
read -n 1 -p 'eine beliebige Taste drücken ' temp Hier wird nur 1 Zeichen verlangt. Sowas wird oft in Skripten programmiert, um große Bildschirmausgaben anzuhalten. Hat der Benutzer die Ausgabe gelesen, drückt er irgend eine Taste, um die nächste Ausgabe anzeigen zu lassen. Auch in Menüs kann man so die Benutzereingabe programmieren. Was der Benutzer eingegeben hat, wird ja in der Variablen temp gespeichert. Man kann die Variable auch weglassen, die Eingabe wird dann nicht gespeicherrt.
read -t 10 -p 'Du hast 10 Sekunden Zeit, um Deine Eingabe zu machen: ' klaus Hier wartet read maximal 10 Sekunden auf das abschließende ENTER-Zeichen. Schafft der Benutzer die Eingabe in 10 Sekunden, wird die Eingabe in der Variablen klaus gespeichert. Schafft er es nicht, bleibt die Variable klaus leer.
read -t 3 -n 1 Hier wird wie bei sleep 3 die Bash 3 Sekunden angehalten. Allerdings kann der Benutzer diese Pause durch Eingabe eines beliebigen Zeichens unterbrechen. Da keine Variable angegeben ist, wird die Eingabe nicht gespeichert.

Weiter Informationen zu read bekommt Ihr mit man read oder mit einer ungültigen read-Eingabe, z.Bsp. read -h.

zur Inhaltsübersicht


renice - Priorität von Prozessen ändern

Beschreibung

Wie ich es schon unter nice beschrieben habe, können Prozesse verschiedene Prioritäten haben. Dabei ist -20 die höchste Priorität und +19 die geringste. Mit nice kann man beim Start der Prozesse die Priorität festlegen. Manchmal möchte man die Prioritäten laufender Prozesse änden, um vielleicht eine Optimierung seines System vorzunehmen, das kann man mit renice tun.

Allerdings hat die Sache 2 Haken:

  1. Um eine Priorität zu erhöhen, egal ob es ein eigener oder anderer Prozess ist, muss man mit sudo Administratorrechte freischalten.
  2. Man muss die PID (Prozessidentifizierungsnummer) kennen. Um zum Beispiel die PID von firefox zu ermitteln, gibt man ps -e | grep firefox ein.

Ist die PID z.Bsp. 1284, kann mit mit der Eingabe renice -n 10 -p 1284 die Priorität ändern. Die Zahl hinter -n gibt die neue Priortät an, die Zahl hinter -p ist die PID.

Weiter Informationen zu renice bekommt Ihr mit renice -h oder man renice.

zur Inhaltsübersicht


rm - Dateien löschen

Beschreibung

Das Kommando rm löscht Datei(en) oder ganze Verzeichnisse und das ohne Nachfrage und unwiderruflich. Bisher gibt es noch keine Software, die so gelöschte Dateien sicher wiederherstellen kann. Ein sogenannter Papierkorb wird nicht genutzt.

Beispiele

rm test.txt Die Datei test.txt im aktuellen Ordner wird gelöscht.
rm test1.txt test2.txt test3.txt Es werden 3 Dateien gelöscht: test1.txt, test2,txt und test3.txt
rm test*.txt Es werden alle Dateien im aktuellen Ordner gelöscht, deren Namen mit test anfangen und mit .txt enden.
rm -v ~/Musik/*.ogg Alle Dateien im Ordner /home/<Benutzername>/Musik, die mit .ogg enden, werden gelöscht. Die gelöschten Dateien werden aufgelistet. Dateien, die sich z.Bsp. im Ordner ~/Musik/Artist befinden, werden nicht gelöscht.
rm -rv ~/Dokumente/* Alle Dateien im Ordner Dokumente inklusive Unterordner werden gelöscht. Der Ordner Dokumente ist danach leer. Alle gelöschten Dateien werden aufgelistet.
sudo rm -r /* Nicht Nachmachen! Das soll nur als Beispiel dienen, wie man rm anwendet. Es wird versucht, das gesamte Dateisystem zu löschen. Der Befehl sudo verlangt ein Passwort und schaltet Administratorrechte frei. Den Rest erledigt dann rm -r /*. Gelöschte Dateien werden nicht aufgelistet, so geht das ganze Chaos noch schneller. Siehe hierzu auch den Befehl sudo.

Einige Optionen

-r Ordner rekursiv löschen, d.h. alle Unterordner mit löschen
-v rm listet alle gelöschten Dateien zeitnah auf.

Weiter Informationen zu rm gibt es mit der Eingabe von rm --help | more oder man rm.

zur Inhaltsübersicht


rmdir - Ordner löschen

Beschreibung

Das Kommando rmdir (remove directory) löscht einen oder mehrere Unterordner. Die zu löschenden Ordner müssen leer sein, ansonsten wird eine Fehlermeldung ausgegeben. Es erfolgt keine Nachfrage, ob die Ordner wirklich gelöscht werden sollen.

Beispiele

rmdir Test Im aktuellen Ordner wird der leere Ordner Test gelöscht.
rmdir programme/c/neues_programm Im Ordner programme/c wird der leere Unterordner neues_programm gelöscht.
rmdir programme/c/neues_programm programme/c programme Die Ordner programme/c/neues_programm, programme/c und programme werden gelöscht. Bitte darauf achten, dass von unten nach oben gelöscht werden muss, sonst sind die übergeordneten Ordner nicht leer.

Um einen nicht leeren Ordner mit seinem gesamten Inhalt zu löschen, nutzt man den Befehl rm -r [Ordnername]. Mehr dazu unter rm.

Weiter Informationen zu rm gibt es mit der Eingabe von rmdir --help | more oder man rmdir.

zur Inhaltsübersicht


script - Ein- und Ausgaben in Datei aufzeichnen

Beschreibung

Manchmal ist es notwending, eine gewisse Menge an Befehlen in eine Konsole einzugeben, bis man das Ziel erreicht hat. Ein Beispiel ist die Installation und Konfiguration gewisser Hardware. Irgendwann hat man alles funktionsfähig hinbekommen und alles ist gut, bis...

2 Jahre später spielt man eine neuere Version des Betriebssystems auf und der Kampf beginnt von vorne. Oder man muss die selbe Tätigkeit auf einem anderen Rechner durchführen.

Hier kommt das Tool script ganz recht, es zeichnet alle Ein- und Ausgaben in eine Textdatei auf. Oft ist dieses Tool standardmäßig nicht installiert, es kann mit dem Befehl sudo apt install script installiert werden und steht sofort zur Verfügung.

Benutzung

Man gibt den Befehl script ein, es wird standardmäßig die Datei typescript im aktuellen Ordner angelegt und aktuelles Datum und Uhrzeit werden eingetragen. Nun gibt man seine Befehle in die Konsole ein. Alle Eingaben und alle Ausgaben, die in der Konsole erscheinen, werden in die Datei typescript eingetragen. Ist man fertig und möchte die Aufzeichnung beenden, drückt man die Tastenkombination STRG+d. Alternativ kann man die Aufzeichnung mit dem Befehl exit beenden.

Beispiele

script Alle Ein- und Ausgaben werden in die Datei typescript im aktuellen Ordner geschrieben.
script install_bw.txt Die Ein- und Ausgaben werden in die Datei install_bw.txt geschrieben.
script -a install.txt Sollte die Datei install.txt schon existieren, werden folgende Ein- und Ausgaben am Ende angehängt (append).

Weitere Hilfen zu script gibt es unter script -h oder man script.

zur Inhaltsübersicht


set - Variablen anzeigen

Beschreibung

Man kann sich mit set alle Variablen im System anzeigen lassen. Das sind in der Regel eine ganze Menge. Um den Inhalt bekannter Variablen anzeigen zu lassen, kann man auch echo benutzen, z. Bsp.: echo $PS1

Beispiele

set Es werden alle definierte Variablen und deren Werte angezeigt.
set | more Variablennamen und -inhalte werden seitenweise ausgegeben. Siehe more.
set | grep PS1 Es werden nur die Variablen angezeigt, in deren Namen oder Werte PS1 vorkommt. Siehe hierzu grep. Die Variable PS1 beinhaltet das Eingabeprompt.

Um Variablen zu definieren, ist set nicht notwendig, das macht man einfach mit VARIABLE=WERT. Systemvariablen werden mit export angelegt.

zur Inhaltsübersicht


shutdown - Das System herunterfahren

Beschreibung

Auch aus der Konsole ist es möglich, das Betriebssystem herunterzufahren oder neu zu starten. Allerdings muss das Tool shutdown mit Root-Rechte gestartet werden, da man andere Benutzer quasi rausschmeissen muss.

Beispiele

sudo shutdown -h now Das Betriebssystem wird sofort heruntergefahren. Andere Benutzer bekommen zwar noch eine Meldung, haben aber keine Zeit mehr, noch etwas zu erledigen.
sudo shutdown -h 5 Das System wird in 5 Minuten heruntergefahren. Andere Benutzer erhalten eine Meldung und können ihre Arbeiten noch speichern.
sudo shutdown -r 1 Das System wird in einer Minute heruntergefahren und neu gestartet.
sudo shutdown -k 2 Es wird ein Herunterfahren des Systems in 2 Minuten vorgetäuscht.

Weitere Infos zu shutdown findet Ihr unter shutdown --help oder man shutdown.

zur Inhaltsübersicht


sleep - pausieren

Beschreibung

Mit dem Befehl sleep sagt man dem System, dass es eine Pause machen soll. Beim ersten Hinsehen scheint der Befehl sinnlos zu sein. Aber beim Eingeben mehrerer Befehle in einer Zeile kann man sleep dazu benutzen, dass erst ein Programm gestartet werden soll, etwas gewartet werden soll und danach ein zweites Programm gestartet werden soll. Auch in Skripten wird sleep angewendet, um das Skript kurz anzuhalten, um eine Ausgabe lesbar zu machen, die dann weiter überschrieben wird, oder um das System nicht unnötig zu belasten. Auch bei Startskripte, die beim Hochfahren des Rechners ausgeführt werden, findet man oft eine sleep-Anweisung, damit die Skripte warten, bis das System vollständig hochgefahren sind und alle Daten zur Verfügung stehen.

Beispiele

sleep 5 Das System pausiert 5 Sekunden. Danach ist es wieder verfügbar.
sleep 3m Das System pausiert 3 Minuten.
sleep 2h Das System pausiert 2 Stunden.
sleep 1d Das System pausiert einen ganzen Tag.
sleep 0.1 Das System pausiert 0.1 Sekunden. Sowas wird in Schleifen eingegeben, das System wird dann kaum belastet.
firefox & sleep 8 && thunderbird Zuerst wird firefox gestartet und mit einem &-Zeichen in den Hintergrund geschoben, damit die Shell wieder verfügbar wird. Dann wird 8 Sekunden gewartet, bis firefox vollständig gestartet wurde. Danach wird thunderbird gestartet. Lässt man sleep 8 && weg, werden beide Programme gleichzeitig gestartet.

Weitere Infos zu sleep findet Ihr unter sleep --help oder man sleep.

zur Inhaltsübersicht


sort - Inhalt von Dateien oder der Standardausgabe sortieren

Beschreibung

Manchmalist es hilfreich, den Inhalt einer Datei oder einer Ausgabe von anderen Programmen alphabetisch zu sortieren, um einen besseren Überblick zu bekommen. Das macht man mit dem Befehlstool sort.

Nach welchem Syntax sort sortiert, hängt von den lokalen Einstellungen ab. Auch der Inhalt der Variablen LC_ALL beeinflusst die Sortieraktion.

Beispiele

sort test.txt Die Einträge der Datei test.txt werden sortiert und auf dem Bildschirm ausgegeben.
sort -o sortiert.txt test.txt Die Einträge der Datei test.txt werden sortiert und in die Datei sortiert.txt geschrieben. Das gleiche kann man auch mit sort test.txt > sortiert.txt erreichen.
ls ~ | sort Die Ausgabe von ls ~ wird sortiert und auf dem Bildschirm ausgegeben.
du -h --max-depth=1 ~ | sort -h So zeigt man den Speicherverbrauch seines Heimatverzeichnisses an. Dateien und Ordner mit geringem Speicherplatzverbrauch werden zuerst angezeigt. Das Toold du listet mit den Parametern den Speicherplatzverbrauch auf, sort -h fängt diese Ausgabe ab und sortiert diese nach Speichergröße. Damit der Speicherplatzverbrauch lesbar bleibt, werden beide Befehle mit der Option -h aufgerufen.

Weitere Infos zu sleep findet Ihr unter sort --help | more oder man sort.

zur Inhaltsübersicht


ssh - eine sichere Verbindung zu einem entfernten Rechner

Beschreibung

Viele Menschen, die mit einem Netzwerk arbeiten, kennen das vielleicht: Man hat ein Problem mit seinem Rechner und ruft den Administrator (EDV-Abteilung usw.) an, und der steht noch nicht einmal auf, sondern löst das Problem von seinem eigenen Rechner aus, manchmal sogar von zu Hause. Um so etwas machen zu können, gibt es eine Vielzahl an Programmen (Ultra-VNC, Teamviewer usw.). Allerdings haben solche Programme auch immer ein kleines Sicherheitsrisiko, der eigentliche Nutzer weiss nicht, was wirklich abgeht.

Deshalb finde ich, dass eine klare Lösung dieser kritischen Sache das Beste ist, wo jeder weiss, was los ist, und das ist für mich ssh.

Um das Ganze über ssh zu erlätern, braucht man mehrere Internet-Seiten oder sogar Schulungen. Warum erkläre ich das hier auf dieser Seite? Weil es einen Befehl ssh auf jedem Standard-Rechner gibt.

SSH steht für Security Shell. Verbindet man sich mittels ssh mit einem entfernten Rechner, erscheint eine Passwort- oder Pasphrasenabfrage, und dann ist man mit der eigenen Konsole auf dem entfernten Rechner. Startet man nun ein Programm, wird es auf dem entfernten Rechner ausgeführt, und die Ausgabe erscheint auf dem eigenen Rechner, als wenn man davor sitzt. Kurze Anmerkung: Startet bitte keine Audio-Programme, die Musik spielt auf dem entfernten Rechner. Um diese virtuelle Arbeit zu beenden, gibt man den Befehl exit ein, man ist dann wieder auf dem eigenen Rechner unterwegs. Für die Verbindung im Netzwerk handeln beide Rechner eine Verschlüsselung aus, sodass kein anderer irgendwelche Daten mitlesen kann. Sogar der Internet-Provider hat keine Chance, solche Daten zu dekodieren. Ein weiterer Vortell von ssh ist, dass es nur einer geringen Datenübertragung bedarf, um die Daten hin- und herzuschicken, wir arbeiten ja in einer Konsole. Grafische Programme müssen immer und immer wieder Bilder verschicken, damit der andere etwas sieht. Bei einer DSL-Verbinding senden aber beide Rechner nur mit ca. 128kB/s, ein Bild hat mehrere MByte, das Ruckeln ist also vorprogrammiert.

Man muss also etwas Ahnung von Netzwerken haben. Wenn Ihr ssh probieren wollt, macht es bitte erst einmal im Heimnetzwerk. Im Internet ist schon genug Datenschrott. Hat man's kapiert, dann geht's weiter. Um ssh überhaupt benutzen zu können, müssen 3 Voraussetzungen vorhanden sein:

  1. Der entfernte Rechner muss einen SSH-Server installiert und laufen haben. Wie man so etwas macht, ist auf dieser Seite von ubuntuusers.de beschrieben. Bitte achtet darauf, dass man sich nicht als root (Administrator) anmelden kann.
  2. Es muss ein Benutzerkonto mit eigenem Passwort auf dem entfernten Rechner eingerichtet sein.
  3. Der ferne Rechner muss entweder mit einer IP-Adresse oder mit einem Domain-Namen erreichbar sein.

Beispiele

ssh andrea@192.168.1.8 Man meldet sich mit dem Benutzernamen andrea an dem Rechner an, dessen IP-Adresse 192.168.1.8 ist. Dabei wird der Standard-Port (Port 22) genutzt.
ssh 192.168.1.8 Man meldet sich wieder an diesem Rechner an und nutzt den Standard-Port, allerdings mit dem User-Namen, der am eigenen Rechner gerade angemeldet ist.
ssh -p 6969 andrea@192.168.1.8 Andrea meldet sich an dem fernen Rechner an. Dabei wird Port 6969 genutzt. Der Server muss dem entsprechend konfiguriert sein.
ssh -p 6969 andrea@laptop-asus.local Das ist ein Beispiel für 2 direkt verbundene Rechner. Es muss eine Direktverbindung per Link-Local konfiguriert sein, also nicht mittels IPs. Man meldet sich als andrea an den Rechner namens laptop-asus an. Der Port ist 6969.

Um Dateien von einem Rechner zum anderen zu übertragen, gibt es die Programme scp (ähnlich cp) und sftp (ähnlich ftp). Viele grafische Dateimanager besitzen auch eine Funktion, um eine Verbindung per ssh mit einem anderen Rechner herzustellen. Man gibt in die Adresszeile einfach ssh://192.168.1.8:6969/home/andrea ein, es folgt eine Abfrage nach Benutzer und Passwort.

Wie schon gesagt, das Thena ssh ist sehr umfangreich, hier sollte nur mal der Befehl ssh erklärt werden. Wenn Ihr mehr über ssh erfahren wollt, fangt vielleicht bei dieser Seite von ubuntuusers.de an.

zur Inhaltsübersicht


sudo - Administratorrechte freischalten

Beschreibung

Das Kommando sudo (superuser do) ermöglicht, einen Befehl als Administrator auszuführen. Der normale Nutzer darf nur in seinem Heimatverzeichnis (~ bzw. /home/[Benutzername]) umherwüten, alle anderen Dateien und Verzeichnisse sind zum Schreiben gesperrt. Es ist aber für Konfigurationszwecke nötig, andere Dateien zu kopieren und zu editieren. Dafür gibt es den Befehl sudo, der natürlich ein Passwort verlangt. Veränderungen an Systemdateien können zu Schäden am System führen! Deshalb ist hier etwas Vorsicht geboten. Man sollte sich immer im Klaren sein, was man tut. Der Mensch ist das schwächste Glied, wenn es um Sicherheit geht.

Beispiele

sudo vim /etc/fstab Nach Eingabe des Passwortes wird der Editor vim mit Root-Rechten gestartet und öffnet die sonst schreibgeschützte Datei /etc/fstab. Nun kann man Änderungen beim automatischen Einhängen von Geräten vornehmen.
sudo rm -r /home/nicole Alle persöhnlichen Daten des Nutzers nicole werden gelöscht. Das ist sinnvoll, wenn der Nutzer diesen Rechner nicht mehr nutzt. Allerdings werden nur die persöhnlichen Dateien gelöscht. Der Nutzer kann sich weiterhin anmelden. Siehe hierzu auch rm.
sudo su -- Hier ist man dauerhaft als root angemeldet und kann weitere Systemkonfigurationen ohne sudo vornehmen. Angezeigt wird das im Prompt (das ist die Eingabeaufforderung) mit einem # als letztes Zeichen. Wenn man fertig ist, gibt man den Befehl exit ein, um Root-Rechte abzuschalten.

Weiter Informationen zu sudo gibt es mit der Eingabe von sudo --help oder man sudo.

zur Inhaltsübersicht


tail - Die letzten Zeilen einer Datei ausgeben

Beschreibung

Dateien, wie z. Bsp. Protokolle, werden manchmal sehr groß. Möchte man nur die letzten Einträge solch einer Datei lesen, kann man mit dem Texteditor die gefühlten 12543 Seiten nach unten blättern, bis man diese lesen kann. Auch der Befehl cat rasselt einem eine gefühlte halbe Stunde die Konsole mit Einträgen voll, bis es endlich fertig ist und man die letzten Einträge lesen kann. Von der Rechenleistung ganz zu schweigen.

Das Programm tail schafft hier Abhilfe. Es zeigt standardmäßig die letzten 10 Zeilen einer Datei an.

Beispiele

tail protokoll.txt Die letzten 10 Zeilen der Datei protokoll.txt werden ausgegeben.
tail -n 25 protokoll.txt > jetzt.txt Die letzten 25 Zeilen der Datei protokoll.txt werden in die Datei jetzt.txt geschrieben.

Ausführlichere Informationen gibt es unter tail --help | more oder man tail.

zur Inhaltsübersicht


tar - Dateien archivieren oder aus einem Archiv wieder herstellen

Beschreibung

Oft ist es sinnvoll, viele Dateien zu einer Archivdatei zusammenzufassen. Dafür gibt es das Programm tar. Möchte man mehrere Dateien über Internet oder ein Netzwerk versenden, ist es besser diese als Archivdatei zu versenden. Archivdateien eignen sich auch gut als Datensicherungen. Man kann jederzeit einzelne oder alle Dateien aus dem Archiv herstellen.

Das Programm tar hat viele, viele Optionen, die ich nicht alle erläutern kann. Ich gehe hier nur auf ein paar sinnvolle Beispiele ein.

Beispiele

tar -cvf archiv.tar text1.txt text2.txt Es wird eine neue Archivdatei namens archiv.tar erstellt, deren Inhalt aus den Dateien text1.txt und text2.txt gebildet wird. Das c steht für das Erstellen eines neuen Archivs. Das v gibt Informationen aus. Das f besagt, dass wir die Datei archiv.tar benutzen wollen, es muss an letzter Stelle stehen.
tar -rvf archiv.tar text3.txt Die Datei text3.txt wird im Archiv archiv.tar hinten angehängt. Der vorherige Inhalt des Archivs bleibt erhalten. Das r hängt also Daten an ein Archiv hinten an, das v gibt Informationen aus.
tar -tvf archiv.tar Es werden ausführliche Informationen über den Inhalt des Archivs ausgegeben.
tar -xvf archiv.tar Es werden alle Dateien aus dem Archiv wieder hergestellt.
tar -xvf archiv.tar text2.txt Es wird nur die Datei text2.txt wieder hergestellt.
tar -uvf archiv.tar * Es wird ein Archiv erstellt, das alle Dateien und Verzeichnisse inklusive Unterverzeichnisse des aktuellen Ordners (*) enthält. Ist das Archiv bereits vorhanden, werden nur neuere Dateien aufgenommen (u).
tar -czvf archiv.tar.gz * Es wird ein neues Archiv erstellt, das alle Dateien und Verzeichnisse inklusive Unterverzeichnisse des aktuellen Ordners (*) enthält. Es werden alle Dateien aufgenommen. Das Archiv wird mit gzip komprimiert (z). Solche Archive lassen sich (eigentlich) nicht aktualsieren. Es wird weniger Speicherplatz benötigt. Deshalb ist das eine gute Variante für Dateien, die man versenden möchte. Entpacken kann man das komplette Archiv mit tar -xzvf archiv.tar.
tar -cjpf archiv.tar.bz2 ~ Es wird ein neues Archiv erstellt, das alle Dateien und Verzeichnisse inklusive Unterverzeichnisse des Heimatordners (~) enthält. Es werden alle Dateien aufgenommen. Das Archiv wird mit bzip2 komprimiert (j). Diese Art von Archiv findet man oft bei Software, die zum Download bereitgestellt ist. Solche Archive lassen sich auch nicht aktualsieren. Es wird wieder weniger Speicherplatz benötigt. Deshalb ist das auch eine gute Variante für Dateien, die man versenden möchte (dann bitte ohne p). Das p besagt, dass die Nutzerrechte erhalten bleiben, das ist wichtig, wenn man als Administrator angemeldet ist. Entpacken kann man das komplette Archiv mit tar -xjvf archiv.tar.

Ausführlichere Informationen und viele weitere Optionen erhaltet Ihr unter tar --help | more oder man tar.

zur Inhaltsübersicht


tee - Standardeingabe in Dateien schreiben

Beschreibung

Das Kommando tee gibt den Inhalt der Standardeingabe, in der Regel die Tastatureingaben, in die Standardausgabe, in der Regel der Bildschirm, und in Dateien aus. Das gilt auch für Dateien, die vom System angelegt werden. So kann man mit tee auch als Administrator Systemeinstellungen verändern.

Beispiele

tee test.txt Alles, was jetzt mit der Tastatur eingegeben wird, wird auf dem Bildschirm angezeigt und in der Datei test.txt gespeichert. Um tee zu beenden, drückt man STRG+d.
tee test1.txt test2.txt test3.txt Alles, was jetzt mit der Tastatur eingegeben wird, wird auf dem Bildschirm angezeigt und in den Dateien test1.txt, test2.txt und test3.txt gespeichert.
tee -a test.txt Alles, was jetzt mit der Tastatur eingegeben wird, wird auf dem Bildschirm angezeigt und in der Datei test.txt hinten angehängt. Es wird nichts überschrieben.
cat test.txt | tee test1.txt Der Inhalt der Datei test.txt wird angezeigt und in die Datei test1.txt geschrieben. Ähnlich ist der Befeht cat test.txt > test1.txt. Braucht man aber Administratorrechte, um die Datei test1.txt zu schreiben, ist cat test.txt | sudo tee test1.txt die bessere Wahl.
tee Eine kleine Spielerei. Hier wird die Standardeingabe (Tastatur) zur Standardausgabe (Bildschirm) umgeleitet. Alle Eingaben werden wiederholt. Da die Standardeingabe kein EOF-Zeichen (End Of File) sendet, muss die Sache mit STRG+d beendet werden.

Die Umkehrfunktion von tee ist cat. Weitere Informationen zu tee gibt es mit der Eingabe von tee --help oder man tee.

zur Inhaltsübersicht


test - eine Gegebenheit prüfen

Beschreibung

Gerade in Skripten steht man oft vor dem Problem, dass man erst mal eine Gegebenheit abfragen muss, bevor das Skript weiter arbeiten kann. Beispiel: Das Skript benötigt den Ordner "temp_dat", ist er da, kann das Skript weiter machen, wenn nicht, muss dieser Ordner erstellt mit mkdir werden. Um so etwas abzufragen (zu testen), gibt es das Programm test.

Allerdings nutzt test alleine sehr wenig, da es sich um ein stilles Programm handelt und keine Ausgabe erzeugt, es erzeugt nur einen Rückgabecode (true oder false), der von anderen Befehlen verarbeitet werden kann. Besonders bei if-Anweisungen kommt test sehr oft zum Einsatz.

Für das Programm test gibt es 2 Syntaxe:

  1. test -Option Ausdruck
  2. [ -Option Ausdruck ]

Hierbei muss klar sein, dass es sich bei den eckigen Klammern um einen Programmaufruf handelt. Deshalb sind die Leerzeichen wichtig.

Beispiele

test -e test.txt Es wird geprüft, ob es einen Ordner oder eine Datei namens test.txt gibt. Es erscheint keine Ausgabe und keiner hat etwas davon.
test -e test.txt && echo test.txt existiert. Die gleiche Prüfung wieder. Existiert test.txt, wird mit echo die Ausgabe erzeugt. Existiert test.txt nicht, wird keine Ausgabe erzeugt.
if test -e test.txt;then echo Datei existiert.;else echo Datei existiert nicht.;fi Jetzt wird mittels if für beide Fälle eine Ausgabe erzeugt.
if [ -e test.txt ];then echo Datei existiert.;else echo Datei existiert nicht.;fi Das gleiche nochmal, nur mit der anderen Schreibweise.
test -f test.txt && echo test.txt ist eine Datei. Hier wird geprüft, ob test.txt wirklich eine Datei und kein Verzeichnis ist. Ist das so erscheint die Ausgabe.

einige Optionen

-e text Es wird geprüft, ob es einen Ordner oder eine Datei namens text gibt.
-f text Es wird geprüft, ob text eine Datei ist.
-d text Es wird geprüft, ob text ein Ordner ist.
-r text Es wird geprüft, ob die Datei text lesbar ist.
-w text Es wird geprüft, ob die Date text beschreibbar ist.
-x text Es wird geprüft, ob die Datei text ausführbar ist.
-O text Es wird geprüft, ob text dem angemeldeten Besitzer gehöhrt, der den test-Befehl gerade selbst ausführt (also ob es eine eigene Datei ist).
text1 -nt text2 Es wird geprüft, ob die Datei text1 neuer als die Datei text2 ist (newer than).
test1 -ot test2 Es wird geprüft, ob test1 älter als test2 ist (older than).

Mit test kann man auch Variablen un andere Werte vergleichen, mehr dazu auf der Skripte-Seite.

Weitere Informationen zu test gibt es unter man test.

zur Inhaltsübersicht


time - Ausführzeit von Programmen ermitteln

Beschreibung

Mit time kann man die Zeit ermitteln, die für das Ausführen von Programmen benötigt wird. Das ist zum Beispiel sinnvoll, wenn man eigene Programme oder Skripte geschrieben hat. Für kompliziertere Aufgaben sind unterschiedliche Programmcodes möglich, die dann das gleiche machen. Von time wird die Startzeit ermittelt, danach die Anwendung ausgeführt. Nun wartet time auf die Beendung der Anwendung. Danach wird die benötigte Zeit ermittelt und am Ende ausgegeben.

Beispiele

time ls -la ~ Das Programm ls wird ausgeführt und es erscheint dementsprechend die Ausgabe. Danach wird die benötigte Zeit ausgegeben.
time firefox Firefox wird gestartet. Jetzt kann man im Internet umherserven. Wenn Ihr fertig seit und firefox beendet habt, gibt Euch time die Zeit aus, wie lange Ihr im Internet ward.

Weitere Informationen zu time gibt es mit der Eingabe von man time.

zur Inhaltsübersicht


touch - Dateien erstellen

Beschreibung

Mit dem Kommando touch erstellt man neue Dateien. Der Inhalt der so erstellten Dateien ist leer (nur ein EOF-Zeichen). Jetzt werden sich viele fragen, wozu man dieses Komanndo braucht, die meisten Programme (Editoren usw.) erstellen Dateien selbst, wenn diese nicht vorhanden sind.
Ich erkläre den Sinn dieses Befehls mal an 2 Beispielen:

Man möchte eine kleine Protokolldatei erstellen, wann sich welcher Benutzer angemeldet hat. Diese legt man sinnvollerweise in /var/log ab. Um hier schreiben zu dürfen, braucht man Adminrechte. Wenn der 1. Benutzer sich anmeldet, kann das nicht protokolliert werden, weil die Datei nicht existiert und der Benutzer nicht das Recht hat in /var/log eine Datei anzulegen. Siehe hierzu das 3. Beispiel.

Einige Programme speichern Daten, z.Bsp. Protokolle, Konfigurationen, temporäre Daten, auf die Festplatte. Manche dieser Schreiboptionen sind so programmiert, dass sie einen oder mehere Einträge am Ende der Datei anfügen sollen. Wenn die Datei nicht da ist, tja.

Beispiele

touch test.txt Die Datei test.txt wird im aktuellen Ordner erstellt.
touch Dokumente/Bericht.txt Dokumente/Beschreibung.txt Dokumente/Inhalt.txt test1 test2 test3 Im Ordner Dokumente werden die Dateien Bericht.txt, Beschreibung.txt und Inhalt.txt erstellt. Weiterhin werden im aktuellen Ordner die Dateien test1, test2 und test3 erstellt. Es werden also 6 Dateien erstellt.
sudo touch /var/log/prot_anmeldung Im Ordner /var/log/ wird die Datei prot_anmeldung erstellt. Jetzt kann man mit sudo chmod 666 /var/log/prot_anmeldung Lese- und Schreibrechte für alle Benutzer setzen.

Weiter Informationen zu touch gibt es mit der Eingabe von touch --help oder man touch.

zur Inhaltsübersicht


umount - Geräte aus dem Dateisystem aushängen

Beschreibung

Mit dem Kommando umount hängt man Geräte, die zuvor mit mount eingehängt wurden, wieder aus. Es ist zum Beispiel sinnvoll, einen USB-Stick erst auszuhängen, bevor man diesem vom Rechner entfernt. Da umount auf das System zugreift, sind Administratorrechte erforderlich, z.Bsp. mit sudo. Weitere Erläuterungen findet Ihr unter mount auf dieser Seite.

Syntax: sudo umount <Gerät> oder sudo umount Einbindepunkt

Beispiele

sudo umount /dev/sdb1 Das Gerät, welches unter /dev/sdb1 am System angemeldet ist, wird ausgehängt, egal wo sich der Einbindepunkt befindet.
sudo umount ~/usb Das Gerät, welches mit mount unter ~/usb eingehängt wurde, wird ausgehängt.

Weiter Informationen zu umount gibt es mit der Eingabe von umount --help oder man umount.

zur Inhaltsübersicht


unset - Variablen löschen

Beschreibung

Hat man eine Variable angelegt und benötigt diese nicht mehr, kann man unset verwenden, um diese zu löschen. Dabei wird Speicher freigegeben, das sind aber nur ein paar Bytes.

Beispiel

Man kann auch eine Variable leeren, dazu gibt man andrea= ein. Der Inhalt von andrea ist nun leer, aber die Variable andrea bleibt weiterhin bestehen.

zur Inhaltsübersicht


users - Ausgabe der angemeldeten Benutzer

Beschreibung

Linux basiert auf Unix und ist damit multitastingfähig. Nicht nur mehrere Programme können gleichzeitig laufen, es können mehrere Benutzer gleichzeitig an einem System arbeiten. Ihr wisst sicherlich schon, dass Ubuntu standardmäßig 6 Textkonsolen und 3 grafische Konsolen beinhaltet, also kann man sich schon 9 mal anmelden. Man kann sich aber auch von einem entfernten Rechner anmelden, z.Bsp. mit ssh. Um zu erfahren, wer wie oft angemeldet ist, gibt es den Befehl users.

Beispiel

users Es wird eine Ausgabe erzeugt, welche Benutzer angemeldet sind. Hat man sich in mehreren Konsolen angemeldet, wird der eigene Benutzername mehrmals ausgegeben.

Wer mehr wissen möchte, kann users --help oder man users eingeben.

zur Inhaltsübersicht


watch - Einen Befehl wiederkehrend ausführen lassen

Beschreibung

Gerade bei der Ausgabe von Systeminformationen ist es manchmal sinnvoll, sich Informationen wiederkehrend ausgeben zu lassen. Wie heiß wird meine CPU, wenn ich ein Programm ausführe oder wieviel RAM-Speicher nutzt das System jetzt?

Man gibt einen entsprechenden Befehl ein und erhält die Antwort. Möchte man diese Information erneut, muss man den Befehl neu eingeben und ENTER drücken. Oder man bastelt sich eine Schleife: while(1);do;BEFEHL;sleep 1;done.

Einfacher geht das mit watch. Es wiederholt einen Befehl standardmäßig alle 2 Sekunden, bis man die Tastenkombination STRG+c eingibt. Außerdem leert watch den Bildschirm, bevor der Befehl erneut ausgeführt hat. Das hat zur Folge, dass die Ausgaben auf die gleichen Stellen in der Konsole geschrieben wird und nicht an einem vorbeirasseln.

Beispiele

watch sensors Das Programm sensors wird alle 2 Sekunden ausgeführt und gibt Informationen über Temperaturen und andere Sensoren aus.
watch -n 0,5 free -h Der Befehl free -h wird alle 0,5 Sekunden ausgeführt und gibt Informationen zur Belegung des RAM-Speichers und des Swap-Speichers aus. Möchte man die Wiederholungszeit (Sekunden) als Kommazahl angeben, muss ein Komma notiert werden. Eine Eingabe mit Punkt führt zu einem Fehler.
watch -n 3 'free -h; sensors' Beide Befehle werden alle 3 Sekunden ausgeführt. Wichtig ist hier, dass die Befehle zwischen den Apostrophen stehen, Anführungszeichen funktionieren auch. Ansonsten würde erst der Befehl watch -n 3 free -h ausgeführt und, wenn watch beendet, ist der Befehl sensors.

Weiter Informationen zu watch gibt es mit der Eingabe von watch -h oder man watch.

zur Inhaltsübersicht


wc - Zeilen, Wörter und Zeichen zählen

Beschreibung

Mit wc kann man Zeilen, Wörter und Zeichen einer Datei oder der Standardeingabe zählen lassen.

Beispiele

wc meintext.txt Ausgabe Anzahl der Zeilen, Wörte und Zeilen der Datei meintext.txt.
wc -l meintext.txt Ausgabe Anzahl der Zeilen, die in meintext.txt vorhanden sind.
wc -w meintext.txt Ausgabe Anzahl der Wörter.
wc -c meintext.txt Ausgabe Anzahl der Zeichen.
ls /usr/bin | wc -l Ausgabe Anzahl der Zeilen, die von ls /usr/bin erzeugt wird. So kann man erfahren, wieviele Dateien etwa in /usr/bin vorhanden sind.

Weiter Informationen zu wc gibt es mit der Eingabe von wc --help oder man wc.

zur Inhaltsübersicht


wget - Dateien aus dem Internet herunterladen

Beschreibung

Mit wget kann man im Terminal/Konsole eine oder mehrere Dateien aus dem Internet herunterladen, wie es heute so schön heißt: downloaden. Dazu muss man den Namen des Servers kennen und den Pfad, wo die entsprechenden Dateien abgelegt sind.

Anzumerken ist, das wget keine Platzhalter unterstützt, d.h. sowas wie *.jpg funktioniert nicht.

Beispiele

wget --no-check-certificate https://ulfbrueggemann.no-ip.org/bilder/loewe.jpg Die Bilddatei loewe.jpg wird von meinem Server heruntergeladen und im aktuellen Ordner gespeichert. Die Option --no-check-certificate bedeutet, das wget die Datei mittels sicherer Verbindung (https) trotz unbekanntem Sicherheitszertifikat herunterlädt.
wget -N https://ulfbrueggemann.no-ip.org/bilder/erdmaennchen.jpg Die Bilddatei erdmaennchen.jpg wird nur heruntergeladen, wenn diese neuer ist, als die lokal vorhandene Datei. Ist die Datei lokal nicht vorhanden oder unvollständig, dann wird sie auch heruntergeladen.
wget -O Bilder/Schiff.jpg https://ulfbrueggemann.no-ip.org/bilder/adlerx.jpg Die Datei adlerx.jpg wird heruntergeladen und im Ordner Bilder unter dem Namen Schiff.jpg abgespeichert. Leider funktioniert bei dieser Variante die Option -N (noch) nicht.
wget --limit-rate=2k http://ulfbrueggemann.no-ip.org/bilder/moewe.jpg Die Datei moewe.jpg wird mit einer maximalen Downloadgeschwindigkeit von 2 KB/s heruntergeladen. eine Begrenzung der Downloadgeschwindigkeit ist gerade bei großen Dateien sinnvoll, wenn das Netzwerk noch andere Verbindungen nutzt.

Damit alle hier beschriebenen Beispiele probiert werden können, habe ich diese Dateien zum Herunterladen bereit gestellt. Diese Bilder stammen alle von mir, es gibt keine Probleme mit Urrheberrechte und so.

Weiter Informationen zu wget gibt es mit der Eingabe von wget --help | more oder man wget.

zur Inhaltsübersicht


which - Speicherort eines Befehls ermitteln

Beschreibung

Mit which kann man den Speicherort eines Befehls ausgeben. Das ist zwar eher unwichtig, so kann man aber feststellen, ob es so einen Befehl gibt. Ein Skript oder anderes Programm sollte nie den Namen eines schon vorhandenen Befehls haben. Der Befehl muss in einem der Pfade liegen, die in der Variablen PATH abgelegt sind, sonst kann which den Befehl nicht finden. Diese Pfade kann man mit echo $PATH ausgeben.

Beispiele

which which Es erscheint eine Ausgabe, wo sich das Programm which befindet.
which pwd Diese Ausgabe beinhaltet den Pfad zum Befehl pwd.
which cp ls mv rm firefox Es werden alle gefundenen Pfade der Befehle aufgelistet. Nicht gefundene Befehle werden ignoriert.

Weiter Informationen zu which gibt es mit der Eingabe von man which.

zur Inhaltsübersicht


who - angemeldete Benutzer anzeigen

Beschreibung

Mit who (Wer?) erzeugt man eine Ausgabe, welcher Benutzer wo angemeldet ist inklusive weiterer Informationen.

Beispiele

who Ausgabe aller angemeldeten Benutzer mit Konsolennummer und Zeit, wann er sich eingeloggt hat.
who -b Ausgabe des letzten Systemstarts.
who -d Ausgabe aller toten Prozesse.
who -q Ausgabe aller Login-Namen und Anzahl der Benutzer.
who -a Es wird alles ausgegeben, was who ausgeben kann.

Weiter Informationen zu who gibt es mit der Eingabe von who --help oder man who.

zur Inhaltsübersicht


whoami - angemeldeten Benutzernamen anzeigen

Beschreibung

Mit whoami, abgeleitet von Who am i? Wer bin ich?, erzeugt man eine Ausgabe, die den Benutzernamen des angemeldeten Benutzers beinhaltet. Alternativ kann der Befehl id -un verwendet werden.

Wozu braucht man so einen Befehl?

Zum einen kann ein Systemadministrator prüfen, auf wessen Konsole er gelangt ist. Es gibt auch Systeme, wo eine Person verschiedene Benutzernamen hat. Falls er nicht mehr weiß, mit welchem Benutzernamen er sich angemeldet hat, kann er es so abfragen. Zum anderen ist das für das Programmieren interessant, falls angemeldete Benutzer eine Rolle spielen sollen. Siehe dazu das 2. und 3. Beispiel.

Beispiele

whoami Ausgabe des angemeldeten Benutzername auf den Bildschirm.
whoami > /tmp/benutzer.txt Der angemeldete Benutzername wird in die Datei /tmp/benutzer.txt geschrieben.
whoami in einem Perl-Skript #!/usr/bin/perl -w
use strict;
use warnings;

# Benutzername abfragen
my $benutzer = qx(whoami);

# Abfragen, ob andrea angemeldet ist
if ($benutzer ne 'andrea')
{
print "Nur Andrea darf das Proramm ausführen!\n";
exit;
}
# weitere Anweisungen

Weiter Informationen zu whoami gibt es mit der Eingabe von whoami --help oder man whoami.

zur Inhaltsübersicht


Übungen

Es folgen ein paar Übungen, die man ausprobieren kann. Nur vom Lesen dieser Seite bleibt nicht allzuviel im Gedächtnis hängen. Jeder Aufgabe habe ich anfangs ein Link mit eingebaut, wo man noch mal nachlesen kann. Wichtig ist, nicht einfach die Lösungen abzutippen sondern auch zu verstehen, was man eigentlich mit welchem Befehl gemacht hat. Und nun viel Spass.


Übung 1 - Im Dateisystem umher navigieren

In der 1. Übung geht es darum, das System kennenzulernen und sich Dateien und Verzeichnisse anzeigen zu lassen.

  1. Öffne ein Terminal. Bei Ubuntu kann man das mit der Tastenkombination STRG+ALT+t.
  2. Gehe in das Wurzelverzeichnis (cd).
  3. Lass Dir alle Einträge dieses Verzeichnisses anzeigen (ls).
  4. Gehe in das Verzeichnis tmp, wo temporäre Daten abgelegt sind(cd).
  5. Lass Dir alle Einträge dieses Verzeichnisses mit weiteren Informationen anzeigen (ls).
  6. Gehe in das übergeordnete Verzeichnis ohne dessen Namen anzugeben (cd).
  7. Gehe direkt in das Verzeichnis /usr/bin, wo sämtliche Befehle abgelegt sind(cd).
  8. Lass Dir alle Einträge dieses Verzeichnisses anzeigen (ls).
  9. Lass Dir alle Einträge dieses Verzeichnisses nochmal anzeigen, diesmal seitenweise, sodass du diese auch lesen kannst (ls).
  10. Lass Dir nur die Einträge dieses Verzeichnisses anzeigen, die die Zeichenfolge perl im Namen haben (ls und grep).
  11. Gehe in das Heimatverzeichnis (cd).
  12. Lass Dir alle normalen Einträge dieses Verzeichnisses anzeigen (ls).
  13. Lass Dir alle, auch die ausgeblendeten, Einträge dieses Verzeichnisses anzeigen (ls).
  14. Lass Dir alle Einträge des Verzeichnisses /usr/bin seitenweise anzeigen, ohne in dieses Verzeichnis zu wechseln (ls).

Befehle anzeigen


Übung 2 - Dateien und Verzeichnisse verwalten

In der 2. Übung geht es darum, wie man Dateien und Verzeichnisse anlegt, beschreibt, kopiert, löscht und Zugriffsrechte ändert.

  1. Gehe in Dein Heimatverzeichnis.
  2. Erstelle ein Verzeichnis namens Uebung_2. (mkdir)
  3. Gehe in dieses Verzeichnis Uebung_2.
  4. Lass Dir den Inhalt des Verzeichnisses anzeigen
  5. Erstelle jetzt hier Unterverzeichnisse namens Uebung_2_1, Uebung_2_2 und Uebung_2_3 mit einem Befehl. (mkdir)
  6. Prüfe, ob diese Verzeichnisse angelegt wurden.
  7. Lass Dir den Inhalt Deines aktuellen Verzeichnisses in eine Datei namens inhalt.txt schreiben. (ls)
  8. Prüfe, was in die Datei inhalt.txt geschrieben wurde. (cat oder more)
  9. Erstelle eine Sicherheitskopie der Datei inhalt.txt namens inhalt.bak. (cp)
  10. Setze die Datei inhalt.bak schreibgeschützt. (chmod)
  11. Füge am Ende der Datei inhalt.txt folgende Meldung ein: Diese Datei wurde von mir erstellt.. Bitte prüfe, ob das funktioniert hat. (echo und tee)
  12. Kopiere die Datei inhalt.txt in das Verzeichnis Uebung_2_1 und kontrolliere es. (cp)
  13. Lösche alle leeren Unterverzeichnisse. (rmdir)
  14. Setze die Rechte der Datei inhalt.bak so, dass jeder sie lesen aber nur Du sie beschreiben darfst. (chmod)
  15. Erstelle eine leere Datei namens all.txt (touch)
  16. Setze die Rechte der Datei all.txt so, dass jeder diese lesen und schreiben darf. (chmod)
  17. Lösche die Datei all.txt (rm)
  18. Erstelle 3 leere Dateien namens test1.txt, test2.txt und test3.txt. (touch)
  19. Gehe in das übergeordnete Verzeichnis und lösche das Verzeichnis Uebung_2 mit seinem gesamten Inhalt. Lass Dir dabei anzeigen, was alles gelöscht wird. (rm)

Befehle anzeigen


Übung 3 - mit externen Geräten arbeiten

Für diese Übung sind Administratorrechte notwendig. In der 3. Übung geht es darum, externe Geräte einzuhängen. Als Beispiel nehmen wir einen USB-Stick. Ideal wäre es, wenn er im FAT oder FAT32-Format formatiert wurde. Ansonsten kann es Problemen mit Schreib- und Leserechte geben. Da muss der Befehl chmod eingesetzt werden.

  1. Gehe in das Heimatverzeichnis und erstelle den Ordner usb-stick.
  2. Prüfe, welchen Inhalt der Ordner /dev hat.
  3. Stecke den USB-Stick in den Rechner und warte ca. 5 Sekunden.
  4. Prüfe erneut, welchen Inhalt der Ordner /dev hat. Ermittle den neuen Eintrag, das ist Dein Stick. Wir gehen davon aus, dass es sdb1 ist.
  5. Hänge den USB-Stick in das Verzeichnis usb-stick ein. (mount und sudo)
  6. Jetzt kannst Du Deine Daten lesen, schreiben, löschen, kopieren....
  7. Prüfe die Belegungen Deiner eingehängten Laufwerke. (df)
  8. Gehe in Dein Heimatverzeichnis.
  9. Hänge den USB-Stick aus. (umount)
  10. Entferne den USB-Stick aus Deinem Rechner.
  11. Schau Dir den Inhalt des Ordners usb-stick an.

Befehle anzeigen


Übung 4 - Prozesse im Vorder- und Hintergrund

Diese Übung soll helfen, wie man mit meheren Prozessen in einer Konsole umgeht.

  1. Lasse die Bash 10 Sekunden warten. (sleep) Warte 10 Sekunden.
  2. Lasse die Bash nun 2 Minuten warten. Aber warte nicht die Zeit ab.
  3. Halte den laufenden Prozess an. (bg)
  4. Schiebe diesen Prozess in den Hintergund. (bg) Warte ca. 2 Minuten und drücke ENTER.
  5. Starte 5 Prozesse mittels sleep mit unterschiedlichen Zeiten, diese Prozesse sollen sofort im Hintergrund laufen.
  6. Liste alle Prozesse auf. (jobs)
  7. Hole den am längsten Prozess in den Vordergrund und warte bis er fertig ist.

Befehle anzeigen

zur Inhaltsübersicht

Bald geht's weiter.

zurück zur Startseite