Beruflich Dokumente
Kultur Dokumente
UNIX/Linux- Befehlshandbuch
Benutzerverwaltung
Passwort/Gültigkeitsdauer
Passwort ändern:
- passwd
- changing password for ........
- Old password:________ Eingabe „altes“ Passwort
- New password:_______ Eingabe „neues“ Passwort
- Re-enter new password:______ Wdh. des neuen Passworts zur Kontrolle
- Passwd –d benutzer Löschung des Passwort
1
WS15/16
Terminal-Einstellungen
Online-Hilfe anzeigen
2
WS15/16
I. Dateisysteme in LINUX
Eigenschaften von Dateinamen und Verzeichnissen
unterschiedliche Groß- und Kleinschreibung (ist erlaubt muss nur beachtet werden)
max. 255 Zeichen lang
.Dateiname.txt -> dot files = versteckte Datei
!!! Verboten: Leerzeichen, Tabulator, Zeilenende, *,?,“,’,`, /, Umlaute, Sonderzeichen !!!
3
WS15/16
Kontrolle:
- pwd Anzeige des akt. Pfadverzeichnisses
Kopieren von Dateien (dupliziert Quelldatei (von = 1.Datei) -> Zieldatei (nach = 2.Datei)
1. Möglichkeit:
- cp (copy) Kopieren von Dateien und Verz. (von Quelle nach Ziel)
4
WS15/16
2. Möglichkeit:
- mv (move) Verschieben/Umbenennen von Dateien
- mv [option] quelle ziel ähnlich wie cp, allerdings wird die Quelldatei nach dem
- mv [option] quelleN zielverz. Kopieren gelöscht, handelt sich also eigentlich um ein
Verschieben mit der Möglichkeit der Umbenennung
der Datei
Sollte die Zieldatei bereits existieren, so wird sie i.allg.
(ohne Rückfrage!) beim Kopieren überschrieben!
mv frucht garten Kopiere die Datei frucht innerhalb des aktuellen
Verzeichnisses, die Kopie heißt garten und das Original
frucht wird gelöscht
mv fruechte garten ../sub1 2 Dateien nach ../sub1 verschieben
mv ../obst . Datei obst vom übergeordneten Verzeichnis ins aktuelle
Verzeichnis verschieben
ls –aF Kontrolle: Datei obst im akt. Verz.
mv sub2 sub3 Unterverzeichnis sub2 k omplett nach sub3 verschieben
5
WS15/16
Kontrolle:
- ls Kontrolle auf Existenz der Protokolldatei
- cat protokoll Anzeige des Inhalts der Protokolldatei
6
WS15/16
7
WS15/16
Weitere Umleitungsbeispiele:
8
WS15/16
- ls [-option]
ls –a (oder ls --all) Anzeige aller Dateien (all), inklusive der „dot-files“
ls –l wie ls, aber Langform mit einigen zusätzlichen Infos
(z.B. Zugriffsrechte, Besitzer, Zeichen, Änderungsdatum)
ls –long Anzeige aller Dateiverzeichnisse in Langform ohne
Besitzerangabe
ls –a –l Anzeige aller Dateienverzeichnisse und in Langform mit
zusätzl.Infos (z.B. Zugriffsrechte und versteckte Dateien)
ls –al wie siehe Kommando: ls –a –l
ls –a Anzeige aller Dateiverzeichnisse inkl. .versteckter Dateien
ls –F wie ls, aber Verzeichnisse und ausführbare Dateien hinter
dem Namen markiert (ohne versteckte Dateienanzeige)
ls –aF Anzeige aller Dateiverzeichnisse inkl. Markierung von
Unterverzeichnisverweise /
ls –t wie ls, aber nach Datum der letzten Modifikation(Änderung)
geordnet
- ls [option] [parameter]
ls –al mydir Anzeige aller Dateiverzeichnisse mit zusätzl. Infos und
dem Argument des Verzeichnisses „mydir“
9
WS15/16
10
WS15/16
11
WS15/16
12
WS15/16
13
WS15/16
- Achtung: chmod wirkt nur auf bereits vorhandene Dateien! umask wirkt nur unmittelbar
auf neu erzeugte Dateien aus, d.h. nicht auf bereits schon vorhandene Dateien/Verz. ,
ansonsten nur mit chmod
- umask prüfen oder ändern 2.umask ändern 3. Neuanlegung von Datei/verz. 4. Anzeige
der Rechte der neuen Datei/Verz.
14
WS15/16
- Hardlinks [ln]: Erstellung von Verweislinks (Verknüpfung) mittels weiterer synonymer (Alias)-
Dateinamen für die bereits bestehende Datei, d.h. es gibt nun also ein direkten Link und
weitere Alias-Link(s) zu dieser bestehenden Datei
15
WS15/16
Inodes
16
WS15/16
Dateien lokalisieren/identifizieren
17
WS15/16
- Filter: Programme lesen aus Standardeingabe stdin und schreiben nach Standardausgabe
stdout z.B.: more, less, most, grep, find, tee, sort
- Arbeitsweise für Filter-Programme: Wird eine Datei als Parameter angegeben, so wird diese
Datei anstelle der Standardeingabe benutzt!
Filtertypen:
more, less, most Pager zur zeilen-/seitenweise Anzeige
von Texten
cat Leitet Eingabe nach Ausgabe
grep Sucht nach Zeichen(folgen), Mustern
find Sucht Dateien
sort Sortiert Zeilen in einer Textdatei
wc Zählt Zeichen,Wörter,Zeilen
sed Stream-Editor,sucht und ersetzt z.B.
awk Wörter
Programmiersprache zur Verarbeitung
von Zeichenketten
- 1. Kommando | 2. Kommando [-option] datei | .. Pipe aus zwei oder mehreren
Kommandos und Optionen/Parameter
ls | sort –r Pipe aus ls und sort mit Ausgabe auf dem
Bildschirm
ls | sort -r >inhaltsverz Pipe aus ls und sort mit EA-Umlenkung der
Standardausgabe in die Datei inhaltsverz
ls | wc –w liefert Anzahl der Dateien im aktuellen Verzeichnis
ls | tee inhaltsverz | wc –w wie eben, aber Ausgabe von ls wird zusätzlich in
die Datei inhaltsverz kopiert (tee als „T-Stück“ in
der Pipe)
- Kontrolle: cat datei
18
WS15/16
- sort [–option] dateiname sortiert den Text der Datei zeilenweise und
alphabetisch ab dem 1. Feld
sort lager sortiert den Text aus Datei lager zeilenweise und
alphabetisch ab dem 1. Feld(1.Spalte)
sort –k 2,2 lager Sortierung erfolgt alphabetisch nur bzgl. dem 2. Feld
sort –k 2 lager Sortierung erfolgt alphabetisch ab dem 2. Feld
sort +1 –2 lager entspricht sort –k 2,2 lager
sort –k 3,3 -n lager „numerische“ Sortierung bzgl. dem 3. Feld
sort –k 3,3 –n –u lager mehrfache Zeilen mit gleichem Eintrag im Sortierbereich
eliminieren
sort –k 3 -n -r lager Sortierung (absteigend) ab dem 3. Feld
ls -al | sort –k 5 Pipe zur Sortierung der ls-Ausgabe bzgl. dem 5. Feld
(„Dateigröße“) klappt nicht
ls -al | sort –k 5 -n Pipe zur numerischen Sortierung der ls-Ausgabe bzgl. dem
5. Feld („Dateigröße“) klappt
19
WS15/16
Die zu löschenden bzw. ersetzenden Zeichen oder Zeichenfolgen können beschrieben werden
durch:
- ein einzelnes Zeichen oder einfache Aufzählung mehrerer Zeichen, z.B. abx oder ()
- [Zei1-Zei2] alle Zeichen zwischen Zei1 und Zei2 (inklusive Zei1 und Zei2), z.B. [3-7]
- [:Zeichenklasse:] für Zeichenklasse kann z.B. stehen:
- [:alnum:] alle Buchstaben und Ziffern
- [:alpha:] alle Buchstaben
- [:blank:] alle horizontalen LZ/TAB
- [:cntrl:] alle Kontrollzeichen
- [:digit:] alle Ziffern
- [:graph:] alle druckbaren Zeichen, einschl. LZ
- [:lower:] – alle Kleinbuchstaben
- [:upper:] – alle Großbuchstaben
- [:print:] alle druckbaren Zeichen, einschließlich LZ
- [:space:] alle horizontalen od vertikalen LZ/TAB
- \Steuerzeichen für spezielle Steuerzeichen zB. \012 (ENTER) = \n für Zeilenvorschub, \t
für horizontaler TAB, \v für vertikaler TAB,
- einfache Hochkomma (‘): Umschließung in ’ ’ entwertet alle dazwischen stehenden
Sonderzeichen
- Optionen:
- -c: erstes Komplement MENGE1
- -d: Löschen Zeichen der MENGE1, nicht umwandeln
- -s: jede Eingabefolge eines wdh Zeichens, das in MENGE1 enthalten und es ersetzt
- tr '[:upper:]' '[:lower:]' <lager Eingabetext aus Datei lager, Ersetzung aller Groß-
durch Kleinbuchstaben
- tr '[A-Z]' '[a-z]' <lager hat die gleiche Wirkung wie oben
- tr -d '\t' <lager Option -d für Löschen aller horizontaler Tabulatoren
aus der Datei lager
- cat lager | tr -d '\t' gleiche Wirkung, hier als Pipe
Hinweis: Beachten Sie die "etwas andere Art" von cut bei der Interpretation der Begriffe Spalte
bzw. Feld im Vergleich zum sort-Kommando!
20
WS15/16
-E erweiterte Syntax
-c gibt nur Anzahl der passenden Zeilen aus
-f datei liest Muster aus Datei
-i ignoriert Groß-/Kleinschreibung
-q keine Ausgaben, Ende nach erstem Treffer
-F Zeichenfolge wird als normaler Suchtext, statt regulärer Ausdruck
gewertet
Achtung: (Such-)Muster in ’ ’ setzen, damit diese nicht durch Shell ausgewertet werden!
konstante Suchausdrücke:
- grep Textmuster in Textdateien suchen -> sucht Treffer
- option:
- -L nur die Namen von Dateien ausgeben, die keinen
passenden Inhalt haben
- -l nur die Namen von Dateien mit passendem Inhalt
- -c nur die Anzahl der passenden Zeilen pro Datei
ausgeben
Achtung: (Such-)Muster in ’ ’ setzen, damit diese nicht durch Shell ausgewertet werden!
21
WS15/16
- grep [-option] Suchausdruck dateiname Suche alle Zeilen in der Datei, die das
Suchausdruck enthalten
grep Block lager Suche alle Zeilen in der Datei lager, die die
Zeichenfolge „Block“ enthalten
grep -i block lager Suche nach „block“, aber ohne Unterscheidung
von Groß- und Kleinbuchstaben (Option -i)
grep -ci block lager wie eben, aber nur Anzahl der gefundenen Zeilen
anzeigen (Option -c)
grep 2. Lager Versuch, alle Zeilen zu erhalten, die die Angabe
"2." enthalten scheitert, da der Punkt hier als
regulärer Ausdruck interpretiert wird (beliebiges
Zeichen)
grep -F 2. Lager Option -F bewirkt, dass die Zeichenfolge "2." Nicht
als regulärer Ausdruck, sondern nur als "normaler"
Suchtext gewertet wird
grep Meier /etc/passwd Suche in der lokalen Passwortdatei des Systems
nach der Zeichenfolge Meier (gibt Auskunft über
alle Meiers unter den Nutzern)
Spezifizierung der Suchmuster durch regulärer Ausdrücke (Sonderzeichen), d.h. die zu einem
„Treffer“ beim Kommando grep führen:
- Punkt (.) steht für ein beliebiges Zeichen, „trifft“ also jedes beliebige Zeichen
- Stern (*) keine, eine oder mehrmalige Wiederholung des vor dem Stern
stehenden regulären Ausdrucks
z.B. der Ausdruck .* ersetzt eine beliebige Zeichenfolge, a* bedeutet
beliebig viele „a“ hintereinander
- \{1,\} eine oder mehrmalige Wiederholung
- \{0,1\} keine oder eine Wiederholung
- \{n,\} mindestens n-malige Wiederholung
- \{n\} n-malige Wiederholung
- \{n,m\} n- bis m-malige Wiederholung
- [] die innerhalb der Klammern aufgeführten Zeichen
- [^ ] nicht die in Klammern aufgeführten Zeichen
- ^RA Treffer nur dann, wenn der reguläre Ausdruck RA am Zeilenanfang
- RA$ Treffer nur dann, wenn der reguläre Ausdruck RA am Zeilenende
- grep '^U..' datei1 Treffer, wenn reg. Ausdruck U am Zeilenanfang gefolgt von
2 beliebigen Zeichen in der Datei datei1
- grep '^[A-Z]' datei2 Treffer, wenn aufgeführte Zeichen A-Z am Zeilenanfang von
datei2
- grep '^[A-Z].*' datei3 Treffer, wenn wie oben und mit keiner, ein-mehrmaliger
wdh. beliebiger Zeichen in datei3
- grep '^[A-Z].*\.c$' datei4 wie oben , nur mit reg. Ausdruck c am Zeilenende in datei4
- grep '^[0-9A-Fa-f][0-9A-Fa-f]*$' datei5 Treffer, sucht beliebig viele Hexadezimalzahlen am
Zeilenanfang, wobei keine, eine oder mehrmalige
Wiederholung am Zeilenende erlaubt in datei5
22
WS15/16
23
WS15/16
comm -23 lager lager.neu wie eben, aber Ausblenden der Spalten 2 und 3,
daher Anzeige aller Zeilen, die in der ersten, aber
nicht in der zweiten Datei enthalten sind
Dateierstellung:
1. dat1.txt mit den Zeilen:
maier
mueller
2. dat2.txt mit den Zeilen:
1234
5678
Prozessverwaltung
24
WS15/16
exec- Ersetzung des Programmcode der Shell mittels Kommando durch den neuen
Programmcode des Kommandos
25
WS15/16
- Signale: unterrichten Prozesse über Ereignisse, führen meist zum Abbruch des
Prozesses
- Signal 9 (SIGKILL): Mit Signal 9 kann mittels Kommando kill an einen Prozess mit PID
gesendet und zum sofortigen Abbruch (vorzeitiges Beenden) gebracht werden. Der Abbruch
kann weder abgefangen noch ignoriert werden (schweres Geschütz).
- ps Prozessanzeige, merke PID der Shell
- bash Erzeugung und Start einer Subshell als
Sohnprozess der Shell
- ps PID der Subshell merken
26
WS15/16
Prozesspriorität
Mit Leerzeichen:
PS1=“Befehl?“ Befehl? _
=“Gebe bitte einen Befehl ein:..“
PS1=“===>“ Wertveränderung der Variable PS1
===>set Kontrolle, evt. Besser mit set I more
===>PS1=...... Zurücksetzen PS1 auf alten Wert
III. Shell
bash-Kommandozeilen (Editor)
- Zeileneditor Pfeiltasten (rechts/links): Einfügen- und Überschreibmodus bevor ENTER
- Befehlseditor Pfeiltasten (oben/unten): Abruf/Rückruf der letzten bereits eingegeben
Kommandos (Rückholtaste für Kommandos)
- Kommando-Vorschläge: CTRL+TAB Taste (VT: lange Kommandos schneller finden, nur
bis zur Eindeutigkeit eintippen)
Kommentarzeilen im Skript:
- # oder : Kommentarzeilen einleiten
(Vorsicht: 1.Zeile Leerzeile, beginnend ab 2.Zeile, da die Shell diese sonst in der 1.Zeile als
Befehle auswertet) Achtung: Kommandozeile keine Umlaute erlaubt!!!
27
WS15/16
/etc/profile
~.bashrc
~/.bash_profile
~/.bash_login
~.profile
Befehlsalias („Gleichsetzung“)
Zusätzliche Vergabe von Aliasnamen für Kommando- oder Pfadangaben setzen (nur in bash,ksh,csh
außer sh)
Fortsetzungsprompt
28
WS15/16
Shell Variablen
Standardvariablen: (Verweise)
- für wichtige Einstellungen ; sie werden
GROSS geschrieben und von der Shell in
vielen Kommandos verwendet
Home-Verzeichnis des Nutzers
- HOME
Suchpfad für Programme und Kommandos
- PATH
Absoluter Pfad zum ausführbaren Code der
- SHELL
Shell akt. Login-Kennung, Anmeldename
- LOGNAME
des Nutzers
- USER
Akt. Benutzername (Login-Shell)
- TERM
Typ-Erkennung des Terminals
- EDITOR
Standardeditor des Nutzers (jedit, vi,
gedit,...)
- PAGER
Standard-Pager(Anzeigeprog.) des Nutzers
- HOSTNAME
(z.B.more)
- PS1, PS2
Name des Rechners
Anzeige mit dem Kommando echo $ bzw. env
Primärer und sekundärer Prompt der Shell
(z.B $)
PS1=“===>“ Wertveränderung der Variable PS1
===>set Kontrolle, evt. Besser m it set I m ore
===>PS1=...... Zurücksetzen PS1 auf alten Wert
Systemvariablen (vordefiniert):
- werden von der Shell selbst angelegt und
mit einem Wert versehen, nur vom Benutzer
lesbar
z.B. ?, -, !, $, @, ...
29
WS15/16
Benutzervariablen
- für individuelle Einstellungen, sie werden
von Nutzer nach Bedarf angelegt und
verändert und im allg. klein geschrieben
z.B. 0,1-9,#,*,$,?,!......
Benutzervariablen:
30
WS15/16
- varname=Wert
alter=20
- varname=Wert
alter=20
- export varname Bekanntmachen der Variable varname
export alter
oder
- varname=wert
alter=20
- declare –x varname
declare –x alter
bzw
- typeset –x varname
typeset –x alter
oder
- export varname=Wert
export alter=20 (nicht bei Bourne-Shell!!)
- variable=wert alter=20
- readonly variable readonly alter
31
WS15/16
Befehlsersetzung erlaubt es, die Ausgabe eines Kommandos direkt an eine Variable zu
übergaben (direkte Wertausgabe)
Shell Ersetzung
Kommandoersetzung:
Die Shell wertet Jokerzeichen schon vorher aus, bevor das Kommando ausgeführt.
Joker/Metazeichen in Dateinamen:*,?, [a-z], [!a-z]
Tilde [~]-Ersetzung:
- Die Shell ersetzt ~durch das Home-Verzeichnis des Nutzers.
- Bsp.:
- Kommando: cat ~/Texte/witze.txt (cat= Anzeige der Dateien)
entspricht: cat $HOME/Texte/witze.txt
- Kommando: ls ~/docs
Shell führt aus: ls /home/ameier/docs (für den Nutzer ameier)
Variablen-Ersetzung:
- Die Shell ersetzt $varname durch den akt. Inhalt(Wert) der Variablen.
- Bsp: echo Hallo $USER! (echo gibt Textinhalt von $USER aus!)
- Anzeige: Hallo ameier! -> wenn die Variable USER den Wert ameier hat
Brace-(Klammern-)Ersetzung:
- Muster der Form: pre{m1, m2, m3}post
- werden expandiert zu: prem1post, prem2post, prem3post
- Bsp: ls *.{txt, TXT, doc}
- Entspricht: ls *.txt *.TXT *.doc
32
WS15/16
Problem: Mitunter sind Ersetzungen durch die Shell vor der Kommandoausführung
unerwünscht! -> Entwertung durch „Schutz-Zeichen“!
Quotierung: Behält seine Bedeutung bei Zeichen wie \$,\’,\“,\ ...wird entwertet
- Backslash (Fluchtsymbol) (\): entwertet nur das ihm unmittelbar folgende Zeichen nach
Backslash (ist dies kein Sonderzeichen bleibt Backslash
wirkungslos)
- einfache Hochkomma (‘): Umschließung in ’ ’ entwertet alle dazwischen
stehenden Sonderzeichen
Bsp.: Entwertungszeichen
weitere Beispiele:
echo Das kostet $10.00 Das kostet 0.00
echo "Das kostet $10.00" Das kostet 0.00
echo 'Das kostet $10.00' Das kostet $10.00
echo Das kostet \$10.00 Das kostet $10.00
echo 'Das ist der Backslash: \' Das ist der Backslash: \
echo "Das ist der Backslash: \" Das ist der Backslash: “
>“
echo "Das ist der Backslash: \\" Das ist der Backslash: \
33
WS15/16
Arithmetische Ausdrücke:
Shellvariablen enthalten i.allg. Zeichenketten das können auch ganze Zahlen sein
34
WS15/16
35
WS15/16
36
WS15/16
37
WS15/16
38
WS15/16
39
WS15/16
40
WS15/16
41