Shell-Spickzettel: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
K (hat Bash-Spickzettel nach Shell-Spickzettel verschoben: Befehle gelten allgemein für GNU.)
(→‎Benutzerverwaltung: adduser -> useradd)
 
(47 dazwischenliegende Versionen von 15 Benutzern werden nicht angezeigt)
Zeile 2: Zeile 2:


== Hilfe ==
== Hilfe ==
''man [section] Befehl'' -> Handbuchseite zu Befehl[(section)] anzeigen<br>
{|border="1" style="width:100%"
''whatis Befehl'' -> Kurzinfo zu Befehl<br>
|style="width:30%;background-color:#E5E5E5"|'''Befehl'''
''apropos Befehl'' -> whatis-Datenbank nach Befehl durchsuchen<br>
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''
|-
|man [section] Befehl  
|Handbuchseite zu Befehl[(section)] anzeigen
|-
|whatis Befehl
|Kurzinfo zu Befehl
|-
|apropos Befehl
|whatis-Datenbank nach Befehl durchsuchen
|-
|}
 
== Verzeichnisverwaltung ==
{|border="1" style="width:100%"
|style="width:30%;background-color:#E5E5E5"|'''Befehl'''
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''
|-
|''ls [-l] [-a] [-la] [Pfad]''
|Verzeichnis Inhalt anzeigen, ohne Angabe eines Pfades wird das aktuelle Verzeichnis gelistet; -l: ausführliche Liste, -a: auch versteckte Dateien Zeigen
|-
|''cd [Pfad]''
|gehe zu [Pfad]
|-
|''cd''  
|ins home Verzeichnis des aktuellen users wechseln
|-
|mkdir [gewünschter Name]
|Verzeichnis erstellen
|-
|pwd
|aktuelles Arbeitsverzeichnis anzeigen
|-
|rmdir [Pfad]
|Verzeichnis löschen
|-
|}


== Dateiverwaltung ==
== Dateiverwaltung ==
''mkdir [gewünschter Name]'' -> Verzeichnis erstellen<br>
{|border="1" style="width:100%"
''rmdir [Pfad]'' -> Verzeichnis löschen<br>
|style="width:30%;background-color:#E5E5E5"|'''Befehl'''
''pwd'' -> aktuelles Arbeitsverzeichnis anzeigen<br>
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''
''cp [-a] [-R] Quelle Ziel'' -> Datei kopieren<br>
|-
''mv [-f] Quelle Ziel'' -> Datei verschieben bzw. innerhalb eines Verzeichnisses angewendet = umbenennen<br>
|chmod Rechte Datei
''rm [-r] [-f]'' -> Dateien / Verzeichnisse löschen<br>
|Rechte für Datei/Verzeichnis ändern
''chmod Rechte Datei'' -> Rechte für Datei ändern<br>
|-
''chown User Datei'' -> Besitzer der Datei ändern<br>
|chgrp Gruppe Datei
|Gruppenzugehörigkeit für Datei/Verzeichnis ändern
|-
|chown User[:Gruppe] Datei
|Besitzer [und Gruppe] der Datei/Verzeichnis ändern
|-
|cp [-a] [-R] Quelle Ziel
|Datei kopieren
|-
|mv [-f] Quelle Ziel
|Datei verschieben bzw. innerhalb eines Verzeichnisses angewendet = umbenennen
|-
|rm [-r] [-f]
|Dateien / Verzeichnisse löschen
|-
|}


== Suchen ==
== Suchen ==
''find [Pfad] -name 'Name' ''-> sucht Name (kann Wildcards enthalten) rekursiv unter Pfad<br>
{|border="1" style="width:100%"
''find [Pfad] -exec Befehl '{}' \;'' -> ruft Befehl mit jeder gefundenen Datei auf<br>
|style="width:30%;background-color:#E5E5E5"|'''Befehl'''
''locate Name'' -> schnelle (indexbasierte) Suche<br>
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''
''updatedb'' -> Index erneuern<br>
|-
|find [Pfad] -name 'Name'
|sucht Name (kann Wildcards enthalten) rekursiv unter Pfad
|-
|find [Pfad] -iname 'Name'
|wie oben aber mit 'i'gnorieren der Groß/Klein Schreibung (-iname bla, findet Bla, bLA, bla ...)
|-
|find [Pfad] -exec Befehl '{}' \;
|ruft Befehl mit jeder gefundenen Datei auf
|-
|locate Name
|schnelle (indexbasierte) Suche
|-
|updatedb
|Index erneuern
|-
|which [Befehl,Skriptname,ausführbare Datei]
|wo befindet sich das Skript/die Datei
|-
|grep 'Ausdruck' [Datei/Wildcard]
|sucht nach 'Ausdruck' in der/den angegebenen Datei/en oder Verzeichnis/sen
|}


== tar-Befehle ==
== tar-Befehle ==
''tar cvf bla.tar /blub'' -> tar-Datei mit dem Namen "bla.tar" des Ordners "/blub" erstellen<br>
{|border="1" style="width:100%"
''tar xvf bla.tar'' -> tar-datei "bla.tar" entpacken<br>
|style="width:30%;background-color:#E5E5E5"|'''Befehl'''
''tar cjvf bla.tar.bz2 /bla/'' -> bz2-komprimierte tar-Datei mit dem Namen "bla.tar.bz2" des Ordners "blub" erstellen<br>
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''
''tar xjvf bla.tar.bz2'' -> bz2-komprimierte tar-Datei mit dem Namen "bla.tar.bz2" entpacken<br>
|-
|tar cvf bla.tar /blub
|tar-Datei mit dem Namen "bla.tar" des Ordners "/blub" erstellen
|-
|tar xvf bla.tar
|tar-datei "bla.tar" entpacken
|-
|tar cjvf bla.tar.bz2 /bla/
|bz2-komprimierte tar-Datei mit dem Namen "bla.tar.bz2" des Ordners "bla" erstellen
|-
|tar xjvf bla.tar.bz2
|bz2-komprimierte tar-Datei mit dem Namen "bla.tar.bz2" entpacken
|-
|tar xf bla.Endung
|Entpackt ein beliebiges Archiv (Endung=tar, tar.gz, tar.bz)
|-
|tar --bzip2 -tvf bla.tar.bz2
|Zeigt den Inhalt des Archives bla.tar.bz2 an
|}


== Bash-Vereinfachung ==
== Bash-Vereinfachung ==
''alias [name[=befehl]]'' -> Alternative (z.B. Abkürzung) für "befehl" einrichten. <br>
{|border="1" style="width:100%"
''unalias [name des alias]'' -> Alias löschen<br>
|style="width:30%;background-color:#E5E5E5"|'''Befehl'''
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''
|-
|''alias [name[=Befehl]]''
|Alternative (z.B. Abkürzung) für "Befehl" einrichten.
|-
|''unalias [name des alias]''
|Alias löschen
|-
|}


== Benutzerverwaltung ==
== Benutzerverwaltung ==
''adduser [username]'' -> neuen User [username] erstellen<br>
{|border="1" style="width:100%"
''passwd'' -> Passwort des aktuellen Benutzers ändern<br>
|style="width:30%;background-color:#E5E5E5"|'''Befehl'''
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''
|-
|''useradd [username]''
|Benutzer [username] erstellen, z.B. {{ic|useradd -m -g users -s /bin/bash [username]}}
|-
|''userdel -r [username]''
|Benutzer [username] löschen inkl. Home-Verzeichnis und Mail-Spooler
|-
|''id''
|Benutzername und dazugehörige Gruppen anzeigen inkl. UID und GID
|-
|''passwd''
|Passwort des aktuellen Benutzers ändern
|-
|''who''
|Es wird angezeigt wer alles auf dem System eingeloggt ist
|-
|''whoami''
|Es wird angezeigt als welcher Benutzer man eingeloggt ist
|-
|''gpasswd -a [username] [group]''
|Benutzer [username] zur Gruppe [group] bzw. zu den Gruppen [group1,group2,group3] hinzufügen
|-
|}


== Prozesse ==
== Prozesse ==
''ps'' -> Prozesse anzeigen<br>
{|border="1" style="width:100%"
''ps aux'' -> alle Prozesse anzeigen<br>
|style="width:30%;background-color:#E5E5E5"|'''Befehl'''
''pgrep Prozess'' -> "Prozess" suchen (liefert PID)<br>
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''
''pkill PID'' -> sendet SIGTERM an PID, beendet sanft<br>
|-
''pkill -KILL'' -> sendet SIGKILL an PID, beendet gewaltsam<br>
|''ps''
''top'' -> Live-Prozesstabelle anzeigen<br>
|Prozesse anzeigen
''jobs'' -> Prozesse der laufenden Sitzung anzeigen<br>
|-
''Befehl &'' -> Befehl im Hintergrund starten<br>
|''ps aux''
''Strg-Z'' -> laufenden Prozess unterbrechen<br>
|alle Prozesse anzeigen
''fg'' -> setzt den zuletzt unterbrochenen Prozess fort<br>
|-
''bg'' -> setzt den zuletzt unterbrochenen Prozess im Hintergrund fort<br>
|''pgrep Prozess''
''Strg-C'' -> laufenden Prozess beenden<br>
|"Prozess" suchen (liefert PID)
''killall [-SIG] Prozess'' -> SIGnal (default: SIGTERM) an alle gefundenen Prozesse senden (VORSICHT auf anderen Systemen!)<br>
|-
|''pkill PID''
|sendet SIGTERM an PID, beendet sanft
|-
|''pkill -KILL PID''
|sendet SIGKILL an PID, beendet gewaltsam
|-
|''top''
|Live-Prozesstabelle anzeigen
|-
|''jobs''
|Prozesse der laufenden Sitzung anzeigen
|-
|''Befehl &''
|Befehl im Hintergrund starten
|-
|''Strg-Z''
|laufenden Prozess unterbrechen
|-
|''fg''
|setzt den zuletzt unterbrochenen Prozess fort
|-
|''bg''
|setzt den zuletzt unterbrochenen Prozess im Hintergrund fort
|-
|''Strg-C''
|laufenden Prozess beenden
|-
|''killall [-SIG] Prozess''
|SIGnal (default: SIGTERM) an alle gefundenen Prozesse senden (VORSICHT auf anderen Systemen!)
|-
|}


== Filter ==
== Filter ==
''less'' -> zeigt seitenweise an (z.B. ls | less)<br>
{|border="1" style="width:100%"
''grep Ausdruck'' -> gibt Zeilen aus, die Ausdruck "matchen"<br>
|style="width:30%;background-color:#E5E5E5"|'''Befehl'''
''sort'' -> sortiert alphabetisch<br>
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''
|-
|''less (Datei)''  
|Interaktives Betrachten von Dateien oder Streams (kann auch als Pipe verwendet werden - zB.: ls -l <nowiki>|</nowiki> less
|-
|''grep Muster''  
|gibt Zeilen aus, die auf Muster passen
|-
|''sort''  
|sortiert Zeilen alphabetisch
 
|-
|}


== Arch-Spezifische Befehle ==
== Arch-Spezifische Befehle ==
''makepkg'' -> Paket aus einer PKGBUILD erstellen
{|border="1" style="width:100%"
''abs'' -> abs-tree updaten
|style="width:30%;background-color:#E5E5E5"|'''Befehl'''
''makeworld'' -> system mit Hilfe von abs komplett neu compilieren
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''
''pacman -Syu'' -> komplettes Systemupdate
|-
''pacman -S (paket)'' - Programm mittels pacman installieren. Um mehrere Pakete zu installieren, einfach die Namen durch Leerzeichen getrennt hintereinander auflisten
|''makepkg''  
''pacman -Sc'' -> veraltete Pakete aus dem pacman-cache löschen
|Paket aus einer PKGBUILD erstellen
''pacman -Scc'' -> alle Pakete aus dem pacman-cache löschen
|-
''pacman -Qe'' -> verwaiste Pakete anzeigen (Vorsicht: manuell installierte Pakete werden NICHT mit aufgelistet!)
|''abs''  
''pacman -Rs'' -> Paket incl. seiner Abhängigkeiten deinstallieren (Vorsicht: manuell installierte Pakete werden NICHT mit deinstalliert!)
|abs-tree updaten
''pacman -V (paket)'' -> Versionsnummer eines Paketes ermitteln
|-
 
|''makeworld''  
|system mit Hilfe von abs komplett neu compilieren
|-
|''pacman -Syu''  
|komplettes Systemupdate
|-
|''pacman -S (paket)''
|Programm mittels pacman installieren. Um mehrere Pakete zu installieren, einfach die Namen durch Leerzeichen getrennt hintereinander auflisten
|-
|''pacman -Sc''  
|veraltete Pakete aus dem pacman-cache löschen
|-
|''pacman -Scc''  
|alle Pakete aus dem pacman-cache löschen
|-
|''pacman -Qe''  
|verwaiste Pakete anzeigen (Vorsicht: manuell installierte Pakete werden NICHT mit aufgelistet!)
|-
|''pacman -Rs''  
|Paket incl. seiner Abhängigkeiten deinstallieren (Vorsicht: manuell installierte Pakete werden NICHT mit deinstalliert!)
|-
|''pacman -Q''
|Alle installierten Pakete inklusive Versionsnummer anzeigen
|-
|''pacman -Qq''
|Alle installierten Pakete ohne Versionsnummer anzeigen
|-
|''pacman -V (paket)''  
|Versionsnummer eines Paketes ermitteln
|-
|''pacman -Rcsn `pacman -Qdtq`''
|alle verwaisten Pakete löschen
|-
|}


== noch nicht eingeordnet ==
== noch nicht eingeordnet ==
''ls [-l] [-a] [-la] [Pfad]'' -> Verzeichnis Inhalt anzeigen, ohne Angabe eines Pfades wird das aktuelle Verzeichnis gelistet<br>
{|border="1" style="width:100%"
''df [-h]'' -> Plattenbelegung anzeigen<br>
|style="width:30%;background-color:#E5E5E5"|'''Befehl'''  
''du -sch'' -> Größe aller Dateien des aktuellen Verzeichnisses anzeigen<br>
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''
''cd [Pfad]'' -> gehe zu [Pfad]<br>
|-
''cd'' -> ins home Verzeichnis des aktuellen users wechseln<br>
|''df [-h]''  
''who'' -> anzeigen wer alles eingeloggt ist<br>
|Plattenbelegung anzeigen
''whoami'' -> anzeigen, als welcher User man eingeloggt ist<br>
|-
|''df -T[h]''
|Plattenbelegung mit Typ anzeigen
|-
|''du -sch''  
|Größe aller Dateien des aktuellen Verzeichnisses anzeigen
|-
|''free''
|zeigt den Status des physikalischen und virtuellen Arbeitsspeichers an
|-
|''watch -d (Befehl)''
|führt ''Befehl'' alle zwei Sekunden aus und hebt Änderungen in der Ausgabe hervor
|}


== Siehe auch ==
* [[bash|Wikiartikel zur Bourne Again Shell]]


[[Kategorie:Tipps und Tricks]]
[[Kategorie:Konsole]]
[[Kategorie:Konfiguration]]

Aktuelle Version vom 5. Februar 2013, 18:08 Uhr

Dieser Artikel soll eine kurze Übersicht über die wichtigsten Bash-Befehle für administrative Aufgaben geben.

Hilfe

Befehl Beschreibung
man [section] Befehl Handbuchseite zu Befehl[(section)] anzeigen
whatis Befehl Kurzinfo zu Befehl
apropos Befehl whatis-Datenbank nach Befehl durchsuchen

Verzeichnisverwaltung

Befehl Beschreibung
ls [-l] [-a] [-la] [Pfad] Verzeichnis Inhalt anzeigen, ohne Angabe eines Pfades wird das aktuelle Verzeichnis gelistet; -l: ausführliche Liste, -a: auch versteckte Dateien Zeigen
cd [Pfad] gehe zu [Pfad]
cd ins home Verzeichnis des aktuellen users wechseln
mkdir [gewünschter Name] Verzeichnis erstellen
pwd aktuelles Arbeitsverzeichnis anzeigen
rmdir [Pfad] Verzeichnis löschen

Dateiverwaltung

Befehl Beschreibung
chmod Rechte Datei Rechte für Datei/Verzeichnis ändern
chgrp Gruppe Datei Gruppenzugehörigkeit für Datei/Verzeichnis ändern
chown User[:Gruppe] Datei Besitzer [und Gruppe] der Datei/Verzeichnis ändern
cp [-a] [-R] Quelle Ziel Datei kopieren
mv [-f] Quelle Ziel Datei verschieben bzw. innerhalb eines Verzeichnisses angewendet = umbenennen
rm [-r] [-f] Dateien / Verzeichnisse löschen

Suchen

Befehl Beschreibung
find [Pfad] -name 'Name' sucht Name (kann Wildcards enthalten) rekursiv unter Pfad
find [Pfad] -iname 'Name' wie oben aber mit 'i'gnorieren der Groß/Klein Schreibung (-iname bla, findet Bla, bLA, bla ...)
find [Pfad] -exec Befehl '{}' \; ruft Befehl mit jeder gefundenen Datei auf
locate Name schnelle (indexbasierte) Suche
updatedb Index erneuern
which [Befehl,Skriptname,ausführbare Datei] wo befindet sich das Skript/die Datei
grep 'Ausdruck' [Datei/Wildcard] sucht nach 'Ausdruck' in der/den angegebenen Datei/en oder Verzeichnis/sen

tar-Befehle

Befehl Beschreibung
tar cvf bla.tar /blub tar-Datei mit dem Namen "bla.tar" des Ordners "/blub" erstellen
tar xvf bla.tar tar-datei "bla.tar" entpacken
tar cjvf bla.tar.bz2 /bla/ bz2-komprimierte tar-Datei mit dem Namen "bla.tar.bz2" des Ordners "bla" erstellen
tar xjvf bla.tar.bz2 bz2-komprimierte tar-Datei mit dem Namen "bla.tar.bz2" entpacken
tar xf bla.Endung Entpackt ein beliebiges Archiv (Endung=tar, tar.gz, tar.bz)
tar --bzip2 -tvf bla.tar.bz2 Zeigt den Inhalt des Archives bla.tar.bz2 an

Bash-Vereinfachung

Befehl Beschreibung
alias [name[=Befehl]] Alternative (z.B. Abkürzung) für "Befehl" einrichten.
unalias [name des alias] Alias löschen

Benutzerverwaltung

Befehl Beschreibung
useradd [username] Benutzer [username] erstellen, z.B. useradd -m -g users -s /bin/bash [username]
userdel -r [username] Benutzer [username] löschen inkl. Home-Verzeichnis und Mail-Spooler
id Benutzername und dazugehörige Gruppen anzeigen inkl. UID und GID
passwd Passwort des aktuellen Benutzers ändern
who Es wird angezeigt wer alles auf dem System eingeloggt ist
whoami Es wird angezeigt als welcher Benutzer man eingeloggt ist
gpasswd -a [username] [group] Benutzer [username] zur Gruppe [group] bzw. zu den Gruppen [group1,group2,group3] hinzufügen

Prozesse

Befehl Beschreibung
ps Prozesse anzeigen
ps aux alle Prozesse anzeigen
pgrep Prozess "Prozess" suchen (liefert PID)
pkill PID sendet SIGTERM an PID, beendet sanft
pkill -KILL PID sendet SIGKILL an PID, beendet gewaltsam
top Live-Prozesstabelle anzeigen
jobs Prozesse der laufenden Sitzung anzeigen
Befehl & Befehl im Hintergrund starten
Strg-Z laufenden Prozess unterbrechen
fg setzt den zuletzt unterbrochenen Prozess fort
bg setzt den zuletzt unterbrochenen Prozess im Hintergrund fort
Strg-C laufenden Prozess beenden
killall [-SIG] Prozess SIGnal (default: SIGTERM) an alle gefundenen Prozesse senden (VORSICHT auf anderen Systemen!)

Filter

Befehl Beschreibung
less (Datei) Interaktives Betrachten von Dateien oder Streams (kann auch als Pipe verwendet werden - zB.: ls -l | less
grep Muster gibt Zeilen aus, die auf Muster passen
sort sortiert Zeilen alphabetisch

Arch-Spezifische Befehle

Befehl Beschreibung
makepkg Paket aus einer PKGBUILD erstellen
abs abs-tree updaten
makeworld system mit Hilfe von abs komplett neu compilieren
pacman -Syu komplettes Systemupdate
pacman -S (paket) Programm mittels pacman installieren. Um mehrere Pakete zu installieren, einfach die Namen durch Leerzeichen getrennt hintereinander auflisten
pacman -Sc veraltete Pakete aus dem pacman-cache löschen
pacman -Scc alle Pakete aus dem pacman-cache löschen
pacman -Qe verwaiste Pakete anzeigen (Vorsicht: manuell installierte Pakete werden NICHT mit aufgelistet!)
pacman -Rs Paket incl. seiner Abhängigkeiten deinstallieren (Vorsicht: manuell installierte Pakete werden NICHT mit deinstalliert!)
pacman -Q Alle installierten Pakete inklusive Versionsnummer anzeigen
pacman -Qq Alle installierten Pakete ohne Versionsnummer anzeigen
pacman -V (paket) Versionsnummer eines Paketes ermitteln
pacman -Rcsn `pacman -Qdtq` alle verwaisten Pakete löschen

noch nicht eingeordnet

Befehl Beschreibung
df [-h] Plattenbelegung anzeigen
df -T[h] Plattenbelegung mit Typ anzeigen
du -sch Größe aller Dateien des aktuellen Verzeichnisses anzeigen
free zeigt den Status des physikalischen und virtuellen Arbeitsspeichers an
watch -d (Befehl) führt Befehl alle zwei Sekunden aus und hebt Änderungen in der Ausgabe hervor

Siehe auch