Tastenkürzel
Kürzel |
Beschreibung |
Strg + a |
Cursor zu Zeilenanfang |
Strg + e |
Cursor zu Zeilenende |
Esc b |
Cursor ein Wort zurück |
Esc f |
Cursor ein Wort vor |
Strg + c |
Programm beenden (SIGINT-Signal an aktuelles Programm senden) oder Abbruch der Befehlseingabe |
Strg + l |
Bildschirmausgabe leeren |
Strg + r |
Befehlshistorie durchsuchen (Beispiel: ls -lahRt wurde kürzlich eingegeben. Mit Strg +r und tippen von ls werden alle zuletzt ausgeführten Befehle durchsucht, die ls enthalten. Zum rückwärts weitersuchen erneut Strg +r drücken) |
Vervollständigung
Die Bash kann standardmäßig Befehle und Dateien automatisch vervollständigen. Möchtest du z.B. den Befehl dmesg ausführen, reicht die Eingabe von dm und das Drücken der Tabulator-Taste (↹), esg wird automatisch angefügt.
Sollte es mehr als eine Übereinstimmung geben, wird durch zweimaliges Drücken der Tabulatortaste eine Liste mit möglichen Befehlen ausgegeben.
Diese Funktion ist genauso für Dateien gültig, so kann man sich etwa durch die gesamte Ordnerstruktur mit Hilfe von Tab leiten lassen. Um die Datei /var/log/syslog auszugeben, wäre eine einfache Möglichkeit:
catTAB/vTABlogTABsysTAB
Gibt es keine mehrfachen Übereinstimmungen wird automatisch
cat /var/log/syslog
angezeigt und mit Enter ausgeführt.
Hilfe / Info
Befehl |
Beschreibung |
man echo |
Handbuchseite (manpage) über das Programm "echo" aufrufen
Standardmäßig wird das "less" zum Anzeigen benutzt: navigieren mit Pfeiltasten, beenden mit q . Vollständige Verwendung siehe unter less
|
which echo |
kompletten Pfad des Programms echo ausgeben |
whereis echo |
kompletten Pfad zum Programm, zu seinen Konfigurationsdateien und zu seiner Handbuchseite ausgeben |
whatis echo |
kurze Funktionsbeschreibung zu echo |
time whereis echo |
whereis echo ausführen und Zeit ausgeben, die das Programm benötigt hat |
man --help |
Bei den meisten Programmen wird mit dem Parameter --help bzw. -h eine kurze Hilfe mit Syntax ausgegeben |
Navigation
Befehl |
Beschreibung |
cd /home/ |
zum Pfad /home/ navigieren (change directory) |
pwd |
aktuelles Arbeitsverzeichnis ausgeben (print working directory) |
cd |
zum Heimatverzeichnis (Standardmäßig /home/benutzername/) wechseln |
cd - |
zum letzten Verzeichnis wechseln |
ls |
Verzeichnisinhalt vom aktuellen Verzeichnis ausgeben
ls /home/ gibt den Inhalt von /home/ aus |
ls -l |
Verzeichnisinhalt vom aktuellen Verzeichnis als Liste mit Dateiinformationen ausgeben.
Weitere Optionen für ls
-A auch versteckte Dateien anzeigen (mit -a auch . und .. anzeigen)
-h Dateigrößen in lesbare Werte umrechenen (kByte, MByte, …)
--color=auto ausgabe Farbig darstellen
-S sortieren nach Größe
-t sortieren nach Zeit
-X sortieren nach Dateiendung
-r Sortierung umkehren (reverse)
ls -SArhl --color=auto einige der hier aufgeführten kombiniert: nach Größe, alle Dateien, Sortierung umkerhen, lesbare Größen, Liste
|
pushd . |
aktuellen Pfad zwischenspeichern |
popd |
zum zwischengespeicherten Pfad wechseln |
Dateioperationen
Befehl |
Beschreibung |
cp datei dateikopie |
datei nach dateikopie kopieren
Beispiel
cp -rv * /ziel/ Alle (* ) Dateien, Ordner und Unterordner vom aktuellen Verzeichnis rekursiv (-r ) nach /ziel/ kopieren, Status ausgeben (-v )
|
mv datei /ziel/ |
verschiebt datei in den Ordner ziel
Umbenennen
mv datei.txt neuername.txt datei in neuername umbenennen
|
ln -s original.txt link.txt |
erstellt eine Verknüpfung auf den relativen Pfad original.txt mit dem Namen link.txt
Wichtig: Wird die Verknüpfung verschoben, wird das Ziel unter dem Relativen Pfad wahrscheinlich nicht mehr gefunden.
ln -s /pfad/zu/original.txt link.txt erstellt die Verknüfung mit absolutem Pfad
|
mkdir verzeichnis |
erstellt den Ordner verzeichnis im aktuellen Pfad
mkdir -p /home/benutzer/backup/2013/01 erstellt den Ordner 01 und alle nicht existierenden Ordner darüber
|
rm datei |
datei löschen
rm -r ordner/ ordner/ mit gesamtem Inhalt löschen |
touch leer.txt |
erstellt die Datei leer.txt ohne Inhalt |
chmod 644 datei |
ändert die Rechte auf den oktalen Wert 644
Rechte
Bei der dreistelligen Angabe steht die erste Stelle für den Besitzer, die Zweite für die Gruppe und die Dritte für alle anderen.
Numerische Schreibweise
- 4
- lesen
- 2
- schreiben
- 1
- ausführen
- 0
- keine Rechte
Durch addieren der Zahlen werden die Rechte zusammengefasst. So ergibt sich bei 640:
- Besitzer darf Lesen & Schreiben, aber nicht ausführen (6 = 4 + 2)
- Gruppe darf nur Lesen (4 = 4)
- Jeder andere hat keinerlei Zugriff (0 = 0)
Symbolische Schreibweise
Bei der Symbolischen Schreibweise wird zunächst die Entität festgelegt:
- u
- Besitzer
- g
- Gruppe
- o
- Andere
- a
- Alle (u, g und o)
Die Rechte werden mit folgenden Buchstaben festgeleggt:
- r
- Lesen
- w
- Schreiben
- x
- Ausführen
Das setzen der Rechte geschieht jeweils pro Kategorie. Mit + werden Rechte hinzugefügt, mit - gelöscht und mit = überschrieben.
Beispiele symbolische Schreibweise
chmod a+wx datei datei für alle schreib- und lesbar machen (ist read bei einer Kategorie gesetzt, bleibt der Lesezugriff bestehen
chmod u=r datei für Besitzer beschreibbar machen (darf nicht mehr ausführen oder schreiben!)
chmod o-rwx datei andere haben keine Rechte
Rekursiv
chmod -R 644 ordner/ verändert Rechte von ordner/ und allen darin enthaltenen Elementen (rekursiv)
|
chown root datei |
ändert den Besitzer von datei auf den Benutzer root
chown root:users datei ändert zusätzlich die Gruppe auf users
chown -R root:users ordner/ ändert ordner/ und Unterelemente rekursiv
|
chgrp users datei |
ändert die Gruppe von datei auf die Gruppe users
chgrp users ordner/ ändert ordner/ und Unterordner rekursiv
|
Umleitungen (Pipes)
Befehl |
Beschreibung |
ls -l > liste.txt |
Ausgabe von ls nicht ausgeben, sondern in die Datei liste.txt schreiben
Wichtig: ist liste.txt nicht vorhanden, wird sie erstellt; ist sie vorhanden, wird der Inhalt überschrieben!
|
> liste.txt |
Inhalt von liste.txt leeren |
ls -l | less |
Ausgabe von ls -l wird an less umgeleitet (| = Pipe)
Weitere Pipe-Beispiele
ls -lA | grep jpg Verzeichnisinhalt auflisten, nur Elemente, die jpg enthalten ausgeben
ls -lA | grep jpg | grep -v foto wie voriges, jedoch Elemente, die foto enthalten nicht ausgeben
du -s * | sort -nr | less Größe aller Dateien / Ordner im aktuellen Pfad nach Größe sortiert in less anzeigen
|
Dateibetrachtung
Befehl |
Beschreibung |
cat datei.txt |
Inhalt von datei.txt ausgeben |
more datei.txt |
Datei Seitenweise ausgeben, Navigieren mit Pfeiltasten, Leertaste für nächste Seite. |
less datei.txt |
wie more , jedoch mehr Funktionen (siehe manpage: man less ). q zum beenden |
tail datei.txt |
die letzten 10 Zeilen von datei.txt ausgeben
Optionen
-n 40 die letzten 40 Zeilen ausgeben
-f Datei beobachten, sinnvoll z.B. für Logdatei-Betrachtung (STRG + c zum Beenden)
|
nano datei.txt |
öffnet datei.txt in nano , ein einfaches Textbearbeitungsprogramm (Strg + X zum Beenden) |
vi datei.txt |
öffnet datei.txt in vi , ein sehr umfangreiches Textbearbeitungsprogramm (Esc :q! ENTER zum Beenden) |
sort datei.txt |
gibt datei.txt sortiert aus |
Suchen
Befehl |
Beschreibung |
locate palita |
sucht nach Dateien / Ordner mit palita im Dateinamen |
find -iname palita |
sucht nach Dateien & Ordnern im aktuellen Verzeichnis (und darunter) mit palita im Namen, ignoriere Groß- / Kleinschreibung. |
find -type f ! -iname '*.jpg' |
sucht nach Dateien, die nicht mit .jpg enden |
find -type f ! -perm -444 |
sucht nach Dateien, die nicht von allen Benutzern lesbar sind |
grep "palita" * --color |
sucht zeilenweise nach dem Vorkommen des Wortes palita in jeder Datei im aktuellen Verzeichnis mit farbiger Hervorhebung des Treffers
Optionen
-i ignoriert Groß- / Kleinschreibung (insensitive)
-C 2 gibt jeweils 2 Zeilen vor und nach dem Vorkommen aus
-B 2 -A 4 gibt 2 Zeilen davor und 4 Zeilen nach dem Vorkommen aus
-n fügt Zeilennummern an
-v gibt nur Zeilen aus, die das Ergebnis nicht enthalten
|
vi datei.txt |
öffnet datei.txt in vi , ein sehr umfangreiches Textbearbeitungsprogramm (Esc :q! ENTER zum Beenden) |
sort datei.txt |
gibt datei.txt sortiert aus |
Datenanalyse, Speicher & Prozesse
Befehl |
Beschreibung |
wc -l datei.txt |
Anzahl der Zeilen von datei.txt ausgeben.
Zählweisen
-l Zeilen zählen
-w Wörter zählen
-m Buchstaben zählen |
lsattr |
Dateiattribute anzeigen |
diff datei1 datei2 |
Unterschiede zwischen zwei Dateien anzeigen |
df -h |
Festplattenspeicher Analysieren (-h = human readable / In größtmögliche Einheit umrechnen) |
du -h |
Dateigrößen (disk usage) des aktuellen Verzeichnis seinen Dateien anzeigen (-human readable)
du -hs zeigt eine Zusammenfassung der Ordner an
|
free -m |
gibt die Speicherauslastung (RAM) in Megabyte aus |
file datei.txt |
Dateityp von datei.txt ermitteln |
md5sum datei.txt |
gibt die md5-Prüfsumme von datei.txtaus |
lsof |
liste aller geöffneter Dateien |
top |
Prozessviewer, mit q beenden |
ps aux |
alle Prozess anzeigen |
who |
eingeloggte Benutzer auflisten |
Netzwerk tools
Befehl |
Beschreibung |
ifconfig |
Netzwerkschnittstellen & -Status anzeigen |
ifconfig eth0 |
Infos zur ersten Netzwerkkarte (eth0) anzeigen |
netstat |
alle Netzwerkverbindungen anzeigen
netstat -tup Aktive Internetverbindungen ausschließlich Server anzeigen
netstat -tupl Aktive Serververbindungen ausgeben
|
iptraf |
Programm zur Datenverkehrsanalyse
Hinweis: ist selten vorinstalliert |
host palita.net |
Informationen über Hostname / IP von palita.net |
traceroute palita.net |
Weg zu palita.net verfolgen |
ping -c 5 palita.net |
palita.net 5 mal einen Ping senden, um zu sehen, ob der Rechner erreichbar ist und wie lange er für eine Antwort benötigt (manche Server geben, trotz Erreichbarkeit, aus Sicherheitsgründen keine Antwort) |
hostname |
eigenen Hostnamen ausgeben |
nslookup palita.net |
Nameserver-Infos zu palita.net ausgeben |
dig palita.net |
Nameserver zu palita.net abfragen
dig @google.de palita.net wie voriges, jedoch google.de befragen
dig palita.net AAAA AAAA-Record abfragen (ipv6)
|
ip addr show |
Informationen zu Netzwerkkarten und zugehörigen Adressen ausgeben |
iftop |
zeigt aktuelle Verbindungen und Datenraten an
Hinweis: ist selten vorinstalliert |
Textmanipulation
Befehl |
Beschreibung |
sed 's/string1/string2/g' datei.txt |
ersetzt string1 durch string2 in datei.txt |
sed '/ *#/d; /^ *$/d' datei.txt |
entfernt Kommentare, die mit # beginnen und Leerzeilen aus datei.txt |
tr '[:lower:]' '[:upper:]' < datei.txt |
Gibt datei.txt in Großbuchstaben aus |
Downloads (wget)
Befehl |
Beschreibung |
wget http://palita.net/empty.txt |
datei empty.txt von palita.net herunterladen und im aktuellen Verzeichnis abspeichern |
wget -c http://palita.net/empty.txt |
Vorher abgebrochenen Download fortsetzen (-continue) |
Datum / Zeit
Befehl |
Beschreibung |
cal -3 |
Kalender mit 3 Monaten ausgeben (letzter, aktueller und nächster Monat) |
date |
aktuelles Datum + Uhrzeit ausgeben |
uptime |
information über die Laufzeit des Systems |
Archivierung / Komprimierung (zip, tar)
Befehl |
Beschreibung |
tar cf archiv.tar ordner/ |
ordner/ im aktuellen Verzeichnis in die Datei archiv.tar packen (Linux-Tar Archiv)
Weitere Befehle für tar
-v verbose (Status ausgeben)
-c create (Archiv erstellen)
-x extract (Archiv entpacken)
-z gzip Komprimierung
-j bzip Komprimierung
-f Datei
Beispiele
tar -xf archiv.tar archiv.tar entpacken
tar -cfz archiv.tar.gz ordner/ ordner/ packen und mit gzip komprimieren
tar -vcjf archiv.tar ordner/datei bzip-Archiv aus datei erstellen und details ausgeben
|
zip archiv.zip * |
alle Dateien und Ordner im aktuellen Pfad in archiv.zip packen |
unzip archiv.zip |
archiv.zip hier entpacken |
Backup & Synchronisation (rsync)
RSync ist ein mächtiges Tool um Verzeichnisse zu Sichern, Backups zu erstellen, Ordner über mehrere Rechner zu teilen, usw.
RSync sucht nach Unterschieden von der Quelle zum Ziel und kopiert veränderte und neue Dateien zum Ziel.
Mit verschiedenen Parametern können auch nicht mehr vorhandene Dateien der Quelle im Ziel gelöscht werden, um immer zwei identische Verzeichnisse zu haben.
Wenn sowohl Quelle als auch Ziel verändert werden und synchron bleiben sollen, eignen sich möglicherweise Programme wie Unison besser und sind einfacher in der Handhabung.
Befehl |
Beschreibung |
rsync -aP --delete --stats /quelle /ziel |
Sichert den Ordner /quelle nach /ziel.
Erklärung
--delete gab es vorher bereits eine Sicherung, werden in /quelle nicht mehr vorhandene Dateien in /ziel gelöscht
-P während dem Kopieren wird der Fortschritt angezeigt
--stats nach dem Kopieren wird eine Statistik ausgegeben, abgebrochenen Transfer fortsetzen
-a es werden die Standardeinstellungen zum Sichern verwendet (u.A. Dateirechte übernehmen, Zeitstempel übernehmen, Links mitkopieren, ...)
|
rsync -aze ssh /quelle benutzer@rechner.de:/ziel |
Sichert den Ordner /quelle nach ziel auf den entfernten Rechner rechner.de mit der Anmeldung als benutzer über SSH. Die Dateien werden komprimiert übertragen (-z ). |
Hinweis: rsync ist sehr vielseitig, es lohnt sich die manpage durchzulesen. Beim experimentieren kann man mit der Option -n
einen "dry-run" durchführen - dieser simuliert nur, was passieren würde, ohne tatsächlich etwas zu tun.
SSH / Tunneling
SSH steht für Secure Shell und meint ein Protokoll und dazugehörige Programme, um sich über das Netzwerk auf einem sicheren Kanal auf der Konsole eines anderen Rechners zu verbinden.
Mit SSH können außerdem sichere Tunnel für andere Protokolle erstellt werden.
Befehl |
Beschreibung |
ssh hostname |
verbindet zur Konsole des Rechners hostname (alternativ kann auch die IP-Adresse angegeben werden) |
ssh user@hostname
oder
ssh hostname -l user
|
verbindet sich als Benutzer user |
ssh -L 90:localhost:80 hostname |
leitet Port 80 von Rechner hostname auf den lokalen Port 90 weiter
in diesem Beispiel wird der Webserver (Port 80) von hostname lokal über Port 90 erreichbar (http://localhost:90); alle Daten werden dabei verschlüsselt übertragen
|
ssh -R 5901:localhost:5900 hostname |
Leitet den Lokalen Port 5900 (VNC) über einen sicheren SSH-Kanal auf den Rechner hostname weiter
hostname kann jetzt eine verschlüsselte VNC-Verbindung auf den lokalen Rechner über seinen Port 5901 herstellen
dies ist auch sinnvoll, wenn Port 5900 durch eine Firewall gesperrt wird, der Datenverkehr läuft bei einem Tunnel immer über den SSH-Port 22! |
scp lokal.txt benutzer@hostname:/home/kopie.txt |
kopiert die lokale Datei lokal.txt auf den entfernten Rechner hostname in das Verzeichnis /home/ als kopie.txt |
scp benutzer@hostname:/home/kopie.txt . |
Kopiert die entfernte Datei /home/kopie.txt von hostname auf den lokalen Rechner ins aktuelle Verzeichnis ( . ) |
Windows-Netzwerke Samba
Samba fasst eine Reihe von tools zusammen, die mit dem Microsoft-Protokoll SMB (Server Message Block), auch bekannt als CIFS / NetBios, kommunizieren.
Hinweis: ist selten vorinstalliert
Befehl |
Beschreibung |
smbtree |
SMB Netzwerk-Scanner – listet Windows-Freigaben / Arbeitsgruppen / Domains auf |
findsmb
|
findet Rechner, die Windows-Freigaben bereitstellen |
smbclient -L hostname |
listet alle verfügbaren Freigaben von hostname auf |
mount -t smbfs -o fmask=666,guest //hostname/share /mnt/share |
bindet die Freigabe share von hostname im lokalen Rechner als Laufwerk unter /mnt/share ein |
Paketverwaltung
Viele Linux-Distributionen verwenden Paketverwaltungsprogramme, um Software auf dem System zu installieren, aktualisieren und löschen.
Je nach Distribution gibt es dazu verschiedene Programme, die bekanntesten sind dpkg und rpm. Für dpkg kann apt-get
, für rpm kann yum
als einfaches Installationstool verwendet werden.
dpkg / apt-get
Befehl |
Beschreibung |
apt-get install firefox |
installiert firefox und alle dazu benötigten Zusatzpakte / Bibliotheken auf dem System |
apt-get update |
aktualisiert die Paketliste |
apt-get upgrade |
aktualisiert alle installierten Programme |
apt-get dist-upgrade |
aktualisiert alle installierten Programme, Kernel-Updates, Distributions-Updates, … |
apt-get remove firefox |
deinstalliert firefox |
apt-get purge firefox |
deinstalliert firefox und all seine Konfigurationsdateien |
apt-get autoremove |
deinstalliert nicht mehr benötigte Software / Bibliotheken |
rpm / yum
Befehl |
Beschreibung |
yum install firefox |
installiert firefox und alle dazu benötigten Zusatzpakte / Bibliotheken auf dem System |
yum update |
aktualisiert die Paketliste und aktualisiert vorhandene Software nach Bestätigung |
yum info firefox |
gibt Informationen über das Paket firefox aus |
yum search firefox |
sucht nach Paketen, die firefox im Namen oder in der Beschreibung enthalten |
yum remove firefox |
deinstalliert firefox |
yum help |
gibt mögliche Befehle aus |
Historie
Befehl |
Beschreibung |
sudo !! |
den letzten Befehl wiederholen, jedoch den Befehl sudo (als root ausführen) voranstellen. |
history |
die letzten ausgeführten Befehle ausgeben |