Befehle, Kommandoketten, reguläre Ausdrücke, Variablen, Prozesse

shell und Kommandoketten
Streams, Pipes, Umleitungen
reguläre Ausdrücke
Variablen
Befehle alphabetisch sortiert
Prozesse
Suchen
scripts
Zeit und zeitgesteuerte Abläufe
Geräte

 

shell und Kommandoketten

 

Die Shell(meist bash) interpretiert das eingegebene Kommando/Befehl, ersetzt bestimmte Muster durch Dateinamen oder Variableninhalte und führt erst dann das Kommando aus. Das Kommando sollte im Pfad liegen und der Benutzer braucht das Ausführungsrecht. Ansonsten ruft man das Programm mit ./Befehl auf oder . Pfad/Befehl. Wenn der Pfad mit genannt wird braucht es ein Leerzeichen zwischen dem Punkt und dem Pfad-Befehl.

Programm --langeOption1 --langeOption2 Datei Dem aufzurufenden Programm können meherere Optionen mitgegeben werden
Programm -option1option2 Datei Kurze Optionen wie -z -v -f können als -zvf zusammengefasst werden

 

Die login-shell ist die shell bei der man sich einloggt. Sie arbeitet verschiedene Konfugurationsdateien ab. Alle Sub-shells erben ihre Eigenschaften. Die Sub-shells kann man auch noch separat konfigurieren. Dazu definiert man Variablen. Sollen diese an weitere Subshells weitergereicht werden muß man diese Variablen exportieren.

Login-shells arbeiten 2 scripts ab. das 3. und 4. script wird nur abgearbeitet, wenn das jeweils Vorige nicht existiert.
1. /etc/profile
2. ~/.bash_profile
3. ~/.bash_login
4. ~/.profile

Eine Nicht-Login-shell arbeitet nur die ev. vorhandene ~/.bashrc ab.

Will man für die Ausführung eines scriptes keine Sub-shell aufrufen, dann erreicht man das durch das Voranstellen eines Punktes vor dem Scriptaufruf. Jetzt bleiben im script gesetzte Variablen erhalten. In dem script darf aber kein "exit" vorkommen, da dieses nicht nur das script, sondern auch die shell beenden würde.

Befehle kann man auch verketten.

Befehl1 ; Befehl2 das Kommando2 wird nach Kommando1 ausgeführt
Befehl1 & Befehl2 das Kommando1 und Kommando2 werden gleichzeitig ausgeführt (K1 im Hintergrund, K2 im Vordergrund)
Befehl1 && Befehl2 das Kommando2 wird nur dann ausgeführt, wenn Kommando1 fehlerfrei abgeschlossen wurde (Rückgabewert 0)
Befehl1 || Befehl2 das Kommando2 wird nur dann ausgeführt, wenn Kommando1 nicht fehlerfrei abgeschlossen wurde (Rückgabewert ungleich 0)


Befehl1 || Befehl2 && Befehl3 , (Befehl1 || Befehl2) && Befehl3 , Befehl1 || (Befehl2 && Befehl3) - egal ob und wo eine Klammer gesetzt wird, der Befehl3 wird auf jeden Fall abgearbeitet

Im Kommandospeicher werden gespeicherten Befehle in die Datei ~/.bash_history im Heimatverzeichnis des jeweiligen Users abgelegt.
Mit der Hoch-,Runter-Taste und der Bild-Hoch-Taste kann man die letzten Befehle wiederholen.
Mit der Umschalt+Bild-Hoch-Taste kann man die letzten Ausgaben in der shell wiederholen.
Kopieren von Textstellen mit Markieren mit der Maus, Einfügen mit der mittleren Maustaste.

Programme lassen sich mit Strg-c abschießen, mit Strg-z anhalten und angehaltene Programme mit bg Programm in den Hintergrund schieben. Die bash-shell kann man mit exit verlassen.

$(Befehl) entspricht 'Befehl'

Beispiele

cat /tmp/.bashrc | sed -e "s/you/du/g" g=global you mit du in der bashrc ersetzen
   
   
   

 

 

Seitenanfang oder Hauptseite

 

Streams, Pipes, Umleitungen


Es gibt 3 Kanäle für die Datenein- und ausgabe: stdin(meist Tastatur), stdout(meist Bildschirm), stderr(Fehler werden meistens nicht am Monitor angezeigt).

ls -l | sort pipes können nur bei Programmen mit Standard-Output benutzt werden, hier wird die Ausgabe des ls-Kommandos für die Eingabe des sort-Kommandos benutzt
find / Datei > /tmp/ergebnis Die Ausgabe erfolgt nicht über den Bildschirm, sondern nur in die Datei ergebnis.
find / Datei >> /tmp/ergebnis Die Ausgabe wird bei schon bestehender Datei hintenangehängt
find / Datei | tee /tmp/ergebnis Mit tee wird das Ergebnis sowohl in die Datei, als auch auf den Bildschirm ausgegeben.
ls -l / | xargs tar -czf /dev/sl0 xargs liest von Std-out und übergibt es einem Befehl als Argument
Befehl 1> Datei 1> und > schreiben std-out(Bildschirm oderDrucker) in eine Datei
Befehl 2> Datei 2> schreibt alle Fehler in eine Datei
Befehl 2>&1 Datei std-out und Fehler werden in eine Datei umgeleitet
Befehl < Datei der Befehl erhält seine Argumente aus einer Datei, nicht von der Tastatur

 


 

Seitenanfang oder Hauptseite

reguläre Ausdrücke


für reguläre Ausdrücke werden Wildcards benutzt:
?
ein Fragezeichen bedeutet ein Zeichen
A*
ein Stern bedeutet kein oder beliebig viele Zeichen, hier A
.
Ein Punkt steht für genau einen beliebigen Buchstaben, außer das Zeilenende.
[ a-zA-Z0-9 ]
Ein Zeichen aus der Menge Klein- und Großbuchstaben und Ziffern , oder [ a,3-6 ]
A/+
Das dem Operator \+ voranstehende Zeichen ein mal oder öfter, hier A
A/?
Das A null- oder 1-Mal.
$
Zeilenende
\<
Wortanfang
\>
Wortende
/.
edes Zeichen nach dem Backslash verliert seine Sonderbedeutung, hier ist ein Punkt nur ein Punkt
!A
alle Zeichen außer A

Reguläre Ausdrücke dürfen beliebig miteinander verknüpft werden. So spricht das Konstrukt

[A-Z]*.[0-9][0-9][0-9]_[!B]
jede Datei an, deren Name mit einem Großbuchstaben [A-Z] beginnt. Danach folgt irgendwas *, beliebig lang, dann folgt ein Punkt , gefolgt von drei Ziffern ([0-9]). Danach kommt ein Unterstrich und dann ein beliebiges Zeichen - außer B.


Seitenanfang oder Hauptseite

Variablen

Umgebungsvariablen werden mit der Anweisung Variablenname=Wert angelegt, bzw. verändert. Angezeigt wird sie mit einem führenden $-Zeichen $Variablenname. Variablennamen werden üblicherweise in Großbuchstaben geschrieben. Inhalt können Zahlen(ohne Komma) und Strings "mit Leerzeichen und dann Anführungszeichen herum" sein.

Beispiel:
NAME=schubert
VORNAME=Franz
echo Hallo $VORNAME $NAME
Hallo Franz Schubert
ist dann die Ausgabe in der shell.
Mit set erhält man alle definierten Variablen und deren Funktionen. Mit unset NAME wird die Variable NAME gelöscht.

Wird eine neue shell z.B. mit bash neu erzeugt, werden nur die StandardVariablen übernommen. Selbst kreierte Variablen kann man deshalb für die Subshells exportieren oder gleich so definieren.
export Variablenname
export Variablenname=Wert
Wird diese Variable in der Obershell verändert, verändert sich die Variable in der subshell nicht(Kopie).
Variablen, die immer wieder benötigt werden, können in der Datei ~/.profile im Homeverzeichnis jedes Users definiert werden.

env -i Programm ruft das Proggramm in einer Sub-shell ohne Umgebungsvariablen auf.

Es gelten die Variablen ($1 - $9, $#, $*, $@) innerhalb einer Funktion als lokale Parameter. $1 bezeichnet den ersten übergebenen Parameter, $2 den zweiten usw. $*, $@ und $# beziehen sich auf die Parameter der Funktion und nicht mehr auf die des Scripts. $0 bezeichnet das Kommando selbst.

Seitenanfang oder Hauptseite

Befehle alphabetisch sortiert

A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z 

Befehle A

alias Wunschname="Befehl" alias anlegen , Datei erhält damit neuen Namen, keine Parameter oder Rekursion
alien --to-rpm wandelt DebianPakete zu rpm's, auch --to-dep=wandelt rpmPakete zu DebianPaketen
apropos suche nach Begriffen in ManPages
at
Kommandos erst später ausführen lassen
   
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle B

bg Jobnummer
schiebt Prozess in den Hintergrund und gibt ihm wieder Rechenzeit, nachdem er mit Strg-Z gestoppt wurde, mit fg holt man ihn wieder vor
   
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle C

cat Datei1 Datei2 > film.mpg
Dateien anzeigen lassen, hier aus 2 Dateien eine Große machen  
cd .. in ein Verzeichnis wechseln, hier ein Verzeichnis höher, auch nach /verzeichnis wechseln oder ~=home, /=root
chattr +a Datei Sonderrechte für ext2-Filesystem setzen, hier auf Datei das a-Attribut ergänzen, siehe Rechte
chgrp users /home Gruppenzugehörigkeit von Dateien ändern
chmod -R :users /home Zugriffsrechte von Dateien ändern, hier Gruppenzugehörigkeit ändern, siehe Rechte
chown -R fred:groups Eigentümer von Dateien ändern, hier fred mit Gruppe users
clear Löschen des ganzen Bildschirms
cksum berechnet die CRC. Prüfsumme einer Datei
cp Kopieren von Dateien
cpio Kopieren von Dateien und Verzeichnisbäumen in bzw. aus Archiven
crontab Kommandos in Zeitintervallen ausführen lassen
cut -d: -f1 /etc/passwd schneidet Felder aus Zeilen aus hier schneidet cut alle Usernamen aus der Datei /etc/passwd
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle D

dd if=media/cdrom/disk/bootdisk of=dev/fd0
Konvertieren und Kopieren von Dateien, hier bootdisk mit CDrom erstellen, siehe auch MBR
dd_rescue wie dd, bricht aber bei Fehlern nicht ab, hat andere Syntax
df freien Speicherplatz einer Datei ausgeben
dfspace freien Speicherplatz auf einem Dateisystem ausgeben
diff Vergleich von 2 Dateien und Anzeigen der Unterschiede
du disk usage, belegten Speicherplatz ausgeben
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle E

e2fsck bzw. fsck.ext2 für das Überprüfen des Second Extended Filesystem, siehe auch Partitionierung und Formatierung
echo Hallo | wall
Text ausgeben, hier ein Hallo an alle user senden, echo $?=Returncode des letzten Kommandos
ed editieren von Textdateien
edquota quotaeinträge hinzufügen oder ändern, siehe auch Quotas
egrep suchen in Dateien
exit beendet die shell, auch Strg-d oder logout
expand macht Tabs zu Leerzeichen
export Variablen werden in Subshells übernommen
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle F

fdupes sucht doppelt vorhandene Dateien
fg JobID schiebt Job in den Fordergrund(nachdem er mit bg in den Hintergrund geschoben wurde )
file Anzeige des Dateityps
fmt -80 Datei formatiert Text, hier zu 80 Zeichen Breite
find /verzeichnis -name "Dat*"
Suchen nach Dateien , hier in /verzeichnis nach Name Dat-irgendwas,
auch find -perm 2755=Suche nach Dateien mit Recht 2755
finger Informationen zu anderem Benutzer ausgeben
format Formatieren von Floppy-Disks
fsck -f /dev/hda7 Partition überprüfen, f= force(Überprüfung auch bei gesetztem Valid-Flag), auch fsck.vfat oder fsck.xfs, siehe auch Partitionierung und Formatierung
ftp Kopierenvon Dateien auf fremde Systeme
fuser zeigt Prozesse an, die auf Dateien undDateisysteme zugreifen
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle G

gcc c-compiler, zur Installation von Programmen aus Quellcode, siehe sourcecode
grep "^[^#]" Suchen in Dateien, hier alle Zeilen ohne # am Anfang
groups Gruppenzugehörigkeit eines Benutzers ausgeben
groupadd –G gruppe1,gruppe2 fred fred wird Mitglied der Gruppe 1 und 2(Eintrag in /etc/group), siehe auch Benutzer und Gruppen
groupmod GruppenID, siehe auch Benutzer und Gruppen
gpasswd -a fred steintal Gruppenpasswort anlegen, hier fred als admin festlegen , siehe auch Benutzer und Gruppen
   
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle H

head -c20 Datei
Ausgeben von Anfangszeilen in Dateien, hier die ersten 20 Zeilen, Standard 10 Zeilen
howto Handbücher in /usr/share/doc/howto, wie Aufgaben gelöst werden, muß installiert werden
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle I

id
eigene UID und GID ausgeben, siehe auch Benutzer und Gruppen
ifconfig eth0:1 IP-Adr netmask Netzmaske broadcast Br-cast-Adr Netzwekeinstellung anschauen und Ändern,
hier die 2.logische Karte am 1. Anschluß, mit IP-Adresse, Netzwerkmaske und BroadcastAdresse
insmod mii Netzwerktreiber mii aktivieren
isapnp /etc/isapnp.conf schreibt die Einstellungen aus seiner Konfigurationsdatei wieder zurück an die Karten. Dieser Vorgang muß nach jedem Booten wiederholt werden. Das Programm isapnp sollte über ein Startscript bei jedem Systemstart aufgerufen werden, siehe pnpdump sowie linux-praxis
iptables FirewallEinstellungen
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle J

jobs Liste aller Jobs, Vordergrund- Hintergrund und gestoppte Jobs mit ihren JobIDs
join
Mischen von 2 Dateien , indem je zwei Zeilen mit identischen Schlüsselfeldern zu einer Ausgabezeile verbunden werden.
   
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle K

kill -Signalnummer PID
Beenden von Prozessen ,
Signalnummern: 15=Standard=Programm kann noch abschließen, 9=kill=Holzhammer, 1=HUB=reload
killall Befehl alle Prozesse, die zu Befehl gehöhren werden geschlossen (Eltern + Kind)
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle L

last
An- und Abmeldezeiten von Benutzern ausgeben
ldconfig integriert alle Libraries die gefunden werden in die Datei /etc/ld.so.cache, siehe auch shared libraries
ldd /pfad/Datei benötigte Bibliothek einer Binärdatei anzeigen, siehe auch shared libraries
less Datei Anzeigen von Datei
ln -s Ziel Linkname Anlegen von Links, -s=symbolic Link, siehe Dateitypen und Flags
lp Drucken von Dateien
lpstat Drucker-StatusInformationen ausgeben
ls -lai Auflisten von Dateinamen hier -la=lange Version + alles + inodeNummer, siehe Dateitypen und Flags
lsattr Datei Attribute(Sonderrechte) von Datei anzeigen, siehe Rechte
lsmod Anzeige aktiver Treiber
lsof Anzeige geöffneter Dateien
lspci ermöglicht es zu bestimmen, welche Karten am PCI-Bus angeschlossen sind und als was sie sich ausgeben
lsusb Infos über angeschlossene USB-Geräte
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle M

mail $Empfänger -s $Betreff < Datei
Mail schicken und empfangen, hier mail senden mit Betreff und Inhalt aus Datei
make erzeugt makefile zum Installieren von QuellcodeProgrammen, siehe auch sourcecode
makeswap Swap-Partition formatieren , siehe auch Partitionierung und Formatierung
man man HilfeInformation abrufen, hier wird der Umgang mit den man-pages beschrieben
mc Norton-Clone
md5sum erzeugt und überprüft MD5 Prüfsummen(128 Bit, RFC 1321)
mkdir Verzeichnis erstellen
mkfs -t reiserfs /dev/hda1 Formatieren, hier auf hda1 das Dateisystem reiserFS erstellen , siehe auch Partitionierung und Formatierung
modprobe usbcore Einhängen eines Treibers, hier des USB-Treibers, dazu ist noch der Aufruf von usb-ohci.o oder usb-uhci.o nötig
more Seitenweises Anzeigen von Dateien
mount Einbinden von Geräten und Dateisystemen , siehe mounten
mv Umbenennen und Bewegen von Dateien , Dateisystegrenzen beachten , bei mehreren Dateien oder einem Baum muß das Ziel ein Verzeichnis sein
   
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle N

newgrg
Gruppenzugehörigkeit wechseln
nice -n PrioZahl Befehl Starten von Programmen mit veränderter Priorität, Nettigkeit zum Prozessor , 0 bis 20 für user, -19 bis 20 für root
ni Nummerieren der Zeilen von Dateien
nl Datei nummeriert die Zeilen einer Datei
nohup Befehl startet einen Befehl und ignoriert dann das Hangup-Signal (SIGHUP) für diesen Prozeß, std-out > nohup.out
nslookup Namen zu IP-Adresse und umgekehrt herausfinden
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle O

od
gibt Dateien oder einen Eingabedatenstrom als dezimalen, oktalen oder hexadezimalen Dump aus
   
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle P

PATH=$PATH:/usr/local Pfad festlegen, hier den Pfad um /usr/local erweitern, Suchreihenfolge:alias, Pfad, Anzeige mit $PATH
passwd fred
Passwort für fred vergeben und ändern, wird in /etc/shadow verschlüsselt gespeichert
paste verknüpft zwei oder mehrere Dateien zeilenweise
pg Seitenweises Ausgeben von Dateien
pinfo Befehl Kurzhilfe zu Befehl, muß nachinstalliert werden
ping -c1 -W1 10.0.0.1 &> /dev/null Verbindung von entfernten Systemen testen, hier nur 1 Ping innerhalb 1 Sekunde, Ausgabe umgeleitet in Mülleimer
pnpdump > /etc/isapnp.conf scannt ISA-Bus nach PnP-Karten und gibt die Ergebnisse in für Menschen lesbarer Form aus, hier schreiben in eine Datei, siehe isapnp
pr Datei druckformatiert ausgeben
ps -h Prozesse ausgeben , human-like=Kilo, Mega, Giga, -uax=alle Prozesse ansehen, incl. user, f=Baum mit Eltern
pstree -p Prozesse in Abhängigkeit zeigen
pwd aktuelles Verzeichnis ausgeben
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle Q

quota Quota ansehen, siehe auch Quotas
quotacheck -avug Quotaanalyse, siehe auch Quotas
quotaon avug
Quotaeinträge aktivieren, siehe auch Quotas
quotaoff Quota deaktivieren, siehe auch Quotas
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle R

readlink zeigt das symbolische Ziel eines Links
renice PrioZahl PID Priorität eines laufenden Befehls verändern, Priorität kann nur 1* verändert werden
repquota -a Quotabericht erstellen, siehe auch Quotas
rpc
Kopieren von Dateien auf entfernte Systeme
rlogin Anmelden auf entfernten Rechner
rm -r Verzeichnis löschen von Dateien , Option -r=Verzeichnis rekursiv löschen
rmdir Löschen von leeren Verzeichnissen
rmmod 8139too Netzwerktreiber 8129too deaktivieren
route add default gw 10.0.0.1 Routingtabelle anzeigen(-n=ohne DNS), hier wird das default Gateway auf 10.0.0.1 gesetzt
rpm qpi xnc-5.0.2-1.i386.rmp Red Hat Packet Management, q=Query, p=packages, i=infos, siehe auch rpm
rsh Shell auf entfernten Rechner starten
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle S

scp Qelle Ziel secure copy
sed -e "s/8139too/treiber/" streaming editor, bearbeitet in Kombination mit anderen Programmen Dateien , hier ersetzen von 8139too mit treiber
:1,$, s/.../.../g =Anfangszeile bis Ende, in der ganzen Datei, Punkt-aktuelle Position, [...]+=ein oder mehrmals
\<=Wortanfang, \>=Wortende
setserial /dev/ttyS0 spd_vhi Konfigurationsinformation einer seriellen Schnittstelle setzen oder lesen, hier , hier wird die Geschwindigkeit der 1. seriellen Schnittstelle auf 115kb eingestellt
sleep
Stilllegen von Prozessen
shred sicheres Löschen von Dateien
sort Sortieren von Dateien, gebräuchlich: ls -l | sort
split -b 1m netscape.tgz Zerteilen von Datei in Dateien mit vorgegebener Größe, hier 1 MB, zusammenbauen mit cat
ssh IP-Adresse login in remote-Rechner mir ssh-Server, möglich auch mit loginname und hostname , Kennwort ist nötig
startx xserver :1 Starten der grafischen Oberfläche mittels eines xservers wie z.B.KDE, hier auf Terminal1, zu erreichen mit Alt- F8 ,
siehe auch X
stty Terminal-Einstellung setzen und ausgeben
su Benutzer wechseln , auch -=behalte Umgebung oder -l=behalte root-Umgebung oder sux=behalte Umgebung in X
sum Prüfsumme von Dateien berechnen (16 Bit)
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle T

tac gibt wie cat Dateien aus, nur diesmal in umgekehrter Reihenfolge, Zeile für Zeile
tail -f -n 5 /var/log/messages
Letzte Zeilen einer Datei ausgeben, Gegenteil von head,
f=hier wird die sich ändernde Fehleranzeige laufend überprüft, n 5= die letzten 5 Zeilen
tar xzf archiv.tar.gz -c /usr/local Kopieren von Dateien und Verzeichnisbäumen , hier entpacken nach /usr/local
x=extract=entpacken(c=compare=packen), z=gzip-Archivv, f=file, -c=Ziel, siehe Sichern
tcpdump -nti ippp0 port !22 Mitlesen des Netzwerkverkehrs, n=ohne DNS, t=timestamp, i=interface, ipp0=Internet , port !22=außer port 22
tee Aufspalten der Ausgabe für eine Pipe
telnete Remote Login auf anderen Rechenr
top Anzeige laufender Prozesse in Echtzeit, Optionen im Programm mit h aufrufen ,
Anzeige:s=sleeping, r=running, T=stopped, Z=Zombie, D=uninteruptable sleep, ??w=Systemprozesse, nicht auslagerbar
tftp vereinfachtes FTP
time Befehl Zeitmessung für Programme , wie lange braucht der Befehl für seine Abarbeitung?
touch Datei Zeitstempel, existiert die Datei noch nicht, wird eine leere Datei angelegt, auch möglich mit >Datei oder cp /dev/null Datei
tr Löschen oder Ändern von Zeichen in einem Text
traceroute -n 10.0.0.1 Verfolgen der Strecke, die ein Datenpacket nimmt, -n=ohne DNS
tree Anzeige eines Verzeichnisbaums
tty Terminalnamen ausgeben
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle U

umask 022
Rechte-Maske zum Anlegen und Anzeigen von Dateien und Verzeichnissen, hier bekommen Dateien die Rechte 644, Verzeichnisse 755, siehe Rechte
uname Systemname ausgeben
unexpand macht aus Leerzeichen Tabs
uniq löscht hintereinanderliegende gleiche Zeilen, z.B. Leerzeilen
usbmgr ein Daemon, der benötigte USB-Module etsprechend seiner Konfigurationsdateien läd und entläd, siehe usb
usbmodules Programm für den usb-Agenten, siehe usb
useradd –m -c "Fred Feuerstein" user fred wird incl. Voreinstellungen im /home –Verzeichnis angelegt(/etc/users, mit -m), er erhält den langen Namen "Fred Feuerstein"(mit -c) , siehe auch Benutzer-Verwaltung
userdel -r fred Löschen des User fred incl. seines Homverzeichnisses , siehe auch Benutzer-Verwaltung
usermod -g 101 user ändern, hier Gruppenzugehörigkeit eintragen, siehe auch Benutzer-Verwaltung
usermod -G 101,102,103 Hannes user Hannes wird Mitglied der Gruppen 101, 102, 103, siehe auch Benutzer und Gruppen
   
   
   
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle V

vi
StandardEditor, zum Schreiben erst in den Eingabemodus wechseln, i=einf=a=Eingabemodus, Esc=Kommandomodus
yy=Zeile kopieren, p=einfügen, dd=Zeile löschen, dw=Zeichen löschen, /text=text suchen,
h=Zeichen nach rechts, j=zeichen nach oben, k=Zeichen nach unten, l=Zeichen nach Links, 7l=7Zeichen nach Links
Esc:q!=vi verlassen ohne zu speichern, Esc:wq=Datei speichern und verlassen , siehe vi
   
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle W

wall
Nachrichten an Benutzer schicken
wc Zeilen, Wörter und Zeichen einer Datei zählen
whatis Befehl Kurzbeschreibung
which Befehl findet Pfad eines Befehls
who Anzeigen dere aktiven Benutzer
wipe sicheres Löschen von Dateien und Verzeichnissen
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle X

xinit
Initialisierung von X, siehe X
xnc Norton Clone im grafischen Modus
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle Y

   
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Befehle Z

zcat
zeigt eine komprimierte Textdatei an
   
   

 

Befehle alphabetisch sortiert, Seitenanfang oder Hauptseite

 

Prozesse

Befehl& der Befehl startet im Hintergrund
jobs -l Liste aller Jobs, Vordergrund- Hintergrund und gestoppte Jobs mit ihren JobIDs, l=auch ProzessIDs werden angezeigt
bg Jobnummer schiebt Prozess in den Hintergrund und gibt ihm wieder Rechenzeit, nachdem er mit Strg-Z gestoppt wurde, mit fg holt man ihn wieder vor
fg Jobnummer oder fg Befehl schiebt Job in den Vordergrund(nachdem er mit bg in den Hintergrund geschoben wurde)
nice -n PrioZahl Befehl Starten von Programmen mit veränderter Priorität, Nettigkeit zum Prozessor , 0 bis 20 für user, -19 bis 20 für root
renice PrioZahl PID Priorität eines laufenden Befehls verändern, Priorität kann nur 1* verändert werden, kann alle Prozesse eines Users gleichzeitig ändern
ps h
ps ax | grep Befehl
Prozesse ausgeben , h=human-like=Kilo, Mega, Giga, -uax=alle Prozesse ansehen, incl. user, f=Baum mit Eltern
ps ax | grep Befehl wenn man einen bestimmten Befehl oder mehrere Prozesse sucht
kill -Signalnummer PID Beenden von Prozessen ,
Sinalnummern: 15=Standard=Programm kann noch abschließen, 9=kill=Holzhammer, 1=HUB=reload
killall Befehl alle Prozesse, die zu Befehl gehöhren werden geschlossen(Eltern + Kind)
top Anzeige laufender Prozesse in Echtzeit, Optionen im Programm mit h aufrufen , aktivste Programme sind oben, Ende mit q Anzeige:s=sleeping, r=running, T=stopped, Z=Zombie, D=uninteruptable sleep, ??w=Systemprozesse, nicht auslagerbar
nohup Befehl startet einen Befehl und ignoriert dann das Hangup-Signal (SIGHUP) für diesen Prozeß, std-out > nohup.out
   

ls -R / > datei 2>&1 & schreibt std-out und Fehler in Datei und tut das im Hintergrund.
ping 127.0.0.1

Konfigurationsdateien und Pfade werden der Reihe nach abgearbeitet. Der erste passende Eintrag wird benutzt.

Seitenanfang oder Hauptseite

 

Suchen

echo Path Ausgabe des aktuellen Pfades
wich Befehl gibt das erste passende Kommando incl. Pfad aus
type Befehl arbeitet wie which, aber etwas ausführlicher
whereis Befehl findet Programm, Handbücher und Quellcode
find /usr -size +12k -name "M*" -exec cp {} /tmp \; sucht die angegebene Datei, hier kopiere alle Dateien des ganzen /usr Verzeichnisses, die größer als 12 Kilobyte sind und deren Namen mit M beginnt in das Verzeichnis /tmp
locate Befehl durch sucht sehr schnell die Datenbank, die durch updatedb erstellt wurde, bei Neuinstallation muß dafür vorher updatedb aufgerufen werden (normalerweise 1* täglich mittels cron-job)

 

Fehlersuche

Mit der Datei /var/log/messages kann man Fehlern auf den Grund gehen. Zur Laufzeit hilft hier der Befehl
tail -f /var/log/messages
Die Eintragungen, welche dort erfolgen sollen, werden über den syslog-daemon(syslogd muß gestartet sein), in der Datei /etc/syslog.conf in Regeln, in Form von Herkunft.Priorität Aktion, festgelegt.
Herkunftskategorien sind

kern Systemmeldungen direkt vom Kernel
auth Meldungen vom Sicherheitsdienst des Systems
authpriv Vertrauliche Meldungen der internen Sicherheitsdienste
mail Meldungen des Mail-Systems
news Meldungen des News-Systems
uucp Meldungen des UUCP-Systems
lpr Meldungen des Druckerdaemons
cron Meldungen des Cron-Daemons
syslog Meldungen des syslog-Daemons selbst
daemon Meldungen aller anderer Daemon-Prozesse
user Meldungen aus normalen Anwenderprogrammen
local0-local7 frei verwendbar

Prioritäten in absteigender Reihenfolge:

emerg Der letzte Spruch vor dem Absturz
alert Alarmierende Nachricht, die sofortiges Eingreifen erforderlich macht
crit Meldung über eine kritische Situation, die gerade nochmal gut gegangen ist
err Fehlermeldungen aller Art aus dem laufenden Betrieb
warn Warnungen aller Art aus dem laufenden Betrieb
notice Dokumentation besonders bemerkenswerter Situationen im Rahmen des normalen Betriebs
info Protokollierung des normalen Betriebsablaufes
debug Mitteilungen interner Programmzustände bei der Fehlersuche
none Ist keine Priorität im eigentlichen Sinn, sondern dient zum Ausschluß einzelner Herkünfte

Steht vor der Priorität kein Gleichheitszeichen, bedeutet die Angabe der Priorität immer diese und alle höheren.

Als Aktion können die Meldungen in eine Datei geschrieben, dem syslog-daemon übergeben, auf den Bildschirm eines bestimmten Users oder an aller User geschrieben werden.

Beispiele:
*.*;authpriv.none /var/log/messages
kern.warn root,foo
kern.warn;*.err;authpriv.none /dev/tty10
*.*;authpriv.none @admhost
wobei beim letzten Beispiel der zentrale Server admhost die logs speichert.

Die Datei kann schell wachsen. Deshalb sollte man per cron-job den Befehl logrotate ausführen lassen, der die Datei komprimiert.

 

Seitenanfang oder Hauptseite

scripts

Ein script beginnt immer mit der Zeile
#!/bin/bash
damit die richtige shell zum script aufgerufen wird. Beginnende Zeilen mit Doppelkreuz werden ansonsten nicht interpretiert. Es braucht Ausführungsrechte, die mit
chmod +x script
gesetzt werden. Es können Parameter(Variablen) übergeben werden:

Kommando Parameter1 Parameter2
addiere 10 20

  #!/bin/bash
# Addition von 2 Zahlen
let Summe=$1+$2
echo $1 + $2 = $Summe

 

Script Parameter1 Parameter2 Parameter3 Parameter4 alle Parameter Anzahl der Parameter Parameterangabe über 9
$0 $1 $2 $3 $4 $*, $@ $# ${n}

Der Befehl shift verschiebt die ganze Kette der Kommandozeilenparameter um eines nach links. Das bedeutet, der Parameter 2 wird zum Parameter1, der Parameter3 zum Parameter2 usw. Der erste Parameter fällt weg.

Start-Stop-script

Start-Stop-scripte werden zum Beispiel für die RunlevelVerwaltung benutzt:
#!/bin/bash
case &1 in
start) /usr/local/thttpd
;;
stop) killall thttpd
;;
esac

if then else elif fi case while for done

Die if-Anweisung überprüft einen Wahrheitsgehalt und gibt bei erfüllter Bedingung eine 0 aus. Ansonsten wird nochmal die elif-Bedingung abgefragt. Trifft Beides nicht zu wird nichts oder der else-Befehl wird ausgeführt..

if [ Ausdruck ]
then
Kommandos
elif [ Ausdruck ]
then
Kommandos
else
Kommandos
fi

Etwas vereinfachen kann man die Abfrage nach unterschiedlichen Bedingungen mit case.

case Variable in
Muster1) Kommando1 ;;
Muster2) Kommando2 ;;
Muster3) Kommando3 ;;
...
esac

Eine for-Schleife durchläuft die Schleife so oft, wie die Liste Elemente hat. Bei jedem Schleifendurchlauf bekommt die Variable den Wert des jeweiligen Listenelements.

for Variable1 Variable2
do
Kommando
done

 

Die Aufgabe von Funktionen in Programmiersprachen ist, wiederkehrende Aufgaben oder logisch zusammenhängende Teile eines Programms zu einzuteilen. Funktionen können sich rekursiv selbst aufrufen. Einer Funktion können Parameter übergeben werden. Funktionen werden mit abschließender leeren Klammer aufgerufen. die Shell erkennt an der leeren Klammer den Funktionsaufruf und braucht damit nicht notwendigerweise den Befehl funktion.

function Funktionsname()
{
Kommando1
...
}

Vergleichsoperatoren

-gt > greater than
-ge > = greater equal
-eg = equal
-le < = lower equal
-lt < lower than
$?   Vergleichsoperator letzter Befehl
== = = ZeichenkettenVergleich gleich
!= != ZeichenkettenVergleich ungleich

 

Seitenanfang oder Hauptseite

 

Zeit und zeitgesteuerte Abläufe

Beim booten wird die Hardwareuhr des Motherboards gelesen. Danach verwaltet Linux die Zeit unabhängig davon in einer Softwareuhr. Die Hardwareuhr wird mit dem Befehl hwclock, die Softwareuhr mit dem Befehl date angezeigt und gestellt. Normalerweise wird die Hardwareuhr nach GMT gestellt und dann mittels script tzselect auf die Zeitzone zugewiesen oder in der Datei /etc/timezone eingetragen. Statt tzselect kann man auch manuell die Zeit mit dem Befehl
ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime
einstellen.

Genauere Zeiten lassen sich über das NTP(Netware Time Protokoll) realisieren. Mit dem Daemon ntpd kann man sowohl timeserver, als auch client sein. Ansonsten läßt sich in der crontab z.B. auch dieser Eintrag machen:
30 * * * * root /usr/sbin/ntpdate ntp3.fau.de
Nur Eine der beiden Möglichkeiten kann zeitgleich laufen. Eine Liste von Zeitservern gibt es beispielsweise hier. Die eingestellte Zeit darf 1000 Sekunden Unterschied zur Hardwarezeit nicht überschreiten.

 

Wiederkehrende Abläufe kann man mittels cron-Daemon automatisieren. Einmalig zeitgesteuerte Befehle kann man mit dem at-Befehl absetzen.

cron prüft jede Minute seine Konfigurationsdateien nach Einträgen, die abgearteitet werden sollen. User können Anweisungen mit dem Befehl crontab eintragen. Systemweite Eintragungen trägt man mit einem Editor in die Datei /etc/crontab(bzw. ev. Dateien im Verzeichnis /etc/cron.d) ein. Außerdem gibt es die Verzeichnisse(dessen Dateien auch mit crontab benannt werden) /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly und /etc/cron.monthly, welche scripe enthalten können, die entsprechend stündlich(immer Halb), täglich(0:00), wöchentlich(Sa 0:00)oder monatlich(am 1. 0:00) ausgeführt werden.

Zuerst werden in crontab verschiedene Variablen definiert. Das Format der eigentlichen Einträge lautet:
Minute(0-59) Stunde(0-23) Tag(0-31) Monat(1-12) Wochentag(0-7[0 und 7 entsprechen Sonntag]) Kommando
Erlaubt sind Bereiche(2-6), Listen(1,4,15-17,31) und Schrittweiten( 0-23/2).

* * 13 * 5 username Befehl heißt nicht Freitag, der 13., sondern jeden Freitag und jeden 13. des Monats

Wenn das Stundenformat gewählt wurde müssen auch Minuten gewählt werden, da ansonsten in der angegebenen Stunde der Befehl jede Minute(*) ausgeführt wird.

Die Verwendung von crontab kann mit den Dateien
/etc/cron.allow
/etc/cron.deny
eingeschränkt werden. Jeder Username belegt eine Zeile.

Anacron führ Kommandos auch aus, wenn der Rechner zur angegebenen Zeit nicht lief. Die zugehörige /etc/anacrontab hat folgende Form:
Periode Verzögerung Job-Identifikation Kommando
7 14 logrotate logrotate /etc/logrotate.conf
Die Periode kann täglich(1), wöchendlich(7) oder monatlich(31) angegeben werden. Die Verzögerung wird in Minuten angegeben. Wenn die Verzögerungszeit abgelaufen ist wird der Befehl abgearbeitet. Mit Hilfe der Verzögerungszeit können gleichzeitige Befehle zeitversetzt gestartet werden. Mit dem Namen der Job-Identifikation wird eine Zeitmarkendatei erstellt.

Mit at lassen sich einmalige zeitgesteuerte Abläufe starten.
at Zeit < Datei
at -f Datei Zeit
atq zeigt die Aufträge, atrm löscht sie und atd ist der zugehörige Daemon. Nach der Abarbeitung wird dem user eine Mail geschickt. Mit den Dateien
/etc/at.allow
/etc/at.deny
wird der Zugriff auf die at-Kommandos geregelt.

 

Seitenanfang oder Hauptseite

Geräte

Server werden oft ohne Tastatur betrieben. Hier muß man im BIOS "Halt on all errors, but keyboard" einstellen.
Die angeschlossenen Geräte findet man im /proc Verzeichnis wieder. Entsprechend ihren Erfordernissen gibt es Unterverzeichnisse:
/dma, /ioports, /interrupts, /pci, /iomem, /cpuinfo, /devices, /partitions und viele andere mehr. Es gibt weiterhin die Möglichkeit mit Befehlen an die Informationen zu kommen: lspci, pnpdump, isapnp.

 

 

Seitenanfang oder Hauptseite