
07 Juni 2024
Credits: http://vedslinux.blogspot.com/ [1]
Eine Shell (Hülle (um das Betriebssystem)) ist eine Benutzerschnittstelle. Benutzer können darüber mit dem Betriebssystem interagieren.
Es gibt viele Shells (auch graphisch). Dieser Überblick bezieht sich jedoch auf die CLI-Shell bash
Eine CLI-Shell wird ausgeführt:
direkt nach dem Shell-Login (siehe auch: /etc/passwd)
als *terminal aus einer graphischen Oberfläche
oder in einem Skript (erste Zeile "shebang")
Typische Eigenschaften einer Shell sind:
stellt Umgebung (Prompt, Pfade, Variablen…) zur Verfügung
Build-in Befehle, Operatoren, Funktionen, Variablen, …
Ausführen von externen Befehlen/Programmen
Kommandozeileninterpreter
Konfiguration der bash
über:
/etc/bash.bashrc (global)
~/.bashrc (lokal)
ggf. noch weiter aufgesplittet, je nach Distribution unterschiedlich
(Zur Vollständigkeit: daneben gibt es noch /etc/profile (global) bzw. ~/.bash_profile (lokal) für die Login shell. Sieht auch: shopt login_shell
)
Important
|
*nix Shells sind case sensitive! |
Befehl | Beschreibung |
---|---|
cd [DIR] |
ChangeDirectory |
ls [OPTION]… [FILE]… |
LiSt directory |
cp [OPTION]… <SOURCE>… <DEST> |
CoPy: Datei kopieren |
mv [OPTION]… <SOURCE>… <DEST> |
MoVe: Datei(en) verschieben |
rm [OPTION]… [DATEI]… |
ReMove: Datei(en) löschen (Aufpassen, insb. mit Wildcards!) |
pwd [OPTION] |
PrintWorkingDirektory |
file [OPTION…] <FILE>… |
Art der FILEs bestimmen |
alias [-p] [name[=value] … ] |
ALIASnamen definieren oder anzeigen |
echo [OPTION]… [STRING]… |
Zeichenkette ausgeben |
… |
siehe /bin/* und /usr/bin/ sowie /sbin |
Wildcards/Platzhalter | Beschreibung |
---|---|
* |
alle Zeichen, beliebige Länge |
? |
genau ein beliebiges Zeichen |
[ ] |
Zeichenmengen |
{ } |
Klammerexpansion, z.B. Wertebereich |
Legende:
<mandatory> : in spitzer Klammer = obligatorisch
[optional] : in eckiger Klammer = optional
… : weitere
Weitere Infos:
BEFEHL --help
man BEFEHL
(wiki)
Pfadangabe | Beschreibung |
---|---|
/ |
root-Verzeichnis (absolut) |
. |
aktuelles Verz. (relativ) |
# ohne Argument: nach $HOME wechseln
cd
#
cd .
cd /
cd
# CDPATH setzten
CDPATH=$HOME
# nach /tmp wechseln
cd /tmp
# Verz. bin erzeugen
mkdir bin
# in verzeichnis bin wechseln
cd bin
# -> $HOME/bin
unset CDPATH
cd
ls .bash*
cp .bashrc /tmp
mv /tmp/.bashrc /tmp/.bashrc-neu
cd /tmp
rm .bashrc-neu
cd
unset CDPATH
cd
ln -s /bin/ping ./pingpong
ls ./ping*
./pingpong -c 1 lug-vs.org
file ./pingpong
file /bin/ping
file /bin/ping?
file /bin/ping*
rm ./pingpong
Einschub: Prioritäten der Ausführung beachten: [3]
build-in Befehle
alias
Reihenfolge im Pfad ($PATH)
Eigene aliase ansehen:
alias
Eigenen alias erstellen
alias 1ping="ping -c 1"
1ping google.de
unalias 1ping
Siehe auch [4]
alias "cd.."="cd .."
alias ".."="cd .."
alias "..."="..; .."
cd
...
env
pstree -a