====== Befehle ======
Wie fängt man in Linux an? Hier die Befehle, die mir als erstes einfallen und die man eventuell mal (in der Konsole!) braucht:1
===== awk =====
ist ein programmierbarer Stream-Editor.
awk 'awk-Programm' [Eingabedateien]
awk -f 'Programm-Datei' [Eingabedateien]
Beispiele
* ls -al | awk '{print $3 " " $9}' | sort -k2 listet alle Dateinamen des aktuellen Verzeichnisses mit Besitzernamen und sortiert nach Dateinamen auf.
* awk -F':' '{print $1 "\n2.: " $2}' datei.txt
* awk -F':' '/^root/ || /^man/ {print $1}' /etc/passwd sucht Benutzer ''root'' und ''man'' heraus.
* awk -F: '/^root|man/ { print $1 "->" $6 }' /etc/passwd sucht die Benutzer ''root'' und ''man'' heraus und gibt sie mit ihren Standardshells aus.
* awk -F':' '$7=="/bin/bash" {print $1}' /etc/passwd sucht alle Benutzer heraus, deren Standardshell die ''bash'' ist.
===== cd =====
Wechselt das Verzeichnis. (change directory)
* ''cd ..'' wechselt in der Verzeichnishierarchie eine Ebene nach oben. Aber nur, wenn das auch möglich ist.
* Die zwei Punkte stehen also für die nächst höhere Ebene. Ein einzelner Punkt steht für das Verzeichnis, in dem man sich befindet.
===== chmod =====
Ändert die Zugrifffsrechte auf Dateien und/oder Verzeichnisse.
chmod -R a+rX,u+w /Pfad/zu/Verzeichnis
Ändert rekursiv Verzeichnisrechtte auf 755 und die Dateirechte auf 644 im angegebenen Pfad.
===== cp =====
Kopiert Dateien. (copy)
* ''cp Quelle Ziel'' Quelle ist mindestens eine Datei, Ziel ist ein Pfad.
* ''cp *.pdf /home/claudius/Kram'' kopiert alle pdf-Dateien aus dem aktuellen Verzeichnis nach ''/home/claudius/Kram''
* ''cp -a ...'' kopiert alles nach Möglichkeit mit Beibehaltung der Attribute, folgt keinen symbolischen Links, folgt rekursiv Unterverzeichnissen
===== df =====
Gibt an, wieviel Speicherplatz noch auf den gemounteten Datenträgern frei bzw. belegt ist.
* ''df -h'' gibt dabei die Daten in ''human readable format'' an, also in GB, MB, ... statt Bytes.
===== find =====
Findet Dateien.
* ''find . -name "*.pdf"'' findet alle pdf-Dateien im aktuellen Verzeichnis und in den Unterverzeichnissen.
* ''find /home -name "*.bak" -print0|xargs -0 /bin/rm'' löscht alle ''bak''-Dateien im kompletten ''/home''-Verzeichnis
===== free =====
Gibt den momentan freien Speicherplatz aus.
===== fsck =====
Verifiziert Partitionen von Festplatten. Meist genügt ein
fsck /dev/hdb1
um z.B. die erste Partition der slave-0 Festplatte zu überprüfen. Die Partition sollte dabei nicht gemountet sein!
===== grep =====
Filtert Texte.
* ''ps ax | grep firefox'' zeigt z.B. alle Prozesse an, die irgendwas mit firefox zu tun haben.
===== hdparm =====
Konfiguriert Festplatten - nicht Partitionen. dma-Modus kann dadurch beispielsweise ein- oder ausgeschaltet werden.
===== ifconfig =====
Gibt Informationen über die Netzwerkkonfiguration aus. Nur als ''root'' ausführbar. (Unter Windoofs: ''ipconfig'')
''ifconfig -a'' gibt mehr aus.
===== ip =====
ip a
ip r
''ip'' zeigt und ändert Einstellungen zur routing, Geräten, policy routing, ...
===== kill =====
Beendet Prozesse.
Hat man mit ''ps'' herausgefunden, wie die PID (process ID oder Prozessnummer) eines Prozesses lautet, kann man diesen Prozess mit
* ''kill PID''
beenden. Will der Prozess nicht, dass man das tut, so kann man ihn mit
* ''kill -9 PID''
trotzdem beenden. Standardmäßig wird dem Prozess mit ''kill'' ein Signal Nr. 15 (''SIGTERM'') zu geschickt, dass ihn dazu veranlassen soll, sich selbst freiwillig zu beenden. Übergibt man das Signal Nr.9 (''SIGKILL''), so beendet der Kernel das Programm - ohne Rücksicht auf Verluste. Man kann nur eigene Prozesse beenden, es sei dann, man ist root.
* ''killall firefox-bin''
kann übrigens Prozesse an Hand ihres Namens beenden. Je nachdem ist nur nicht immer ganz klar, wie das Programm heißt, das man beenden möchte. Hier ist man auf ''ps'' oder ''top'' angewiesen.
===== less =====
Zeigt Textdateien an. Aber komfortabel, sodass man mit ''Bild rauf'' und ''Bild runter'' darin herumblättern und mit ''/'' auch suchen kann. Muss evtl. erst noch installiert werden. (Debian: ''aptitude install less'')
* ''less -S name.txt'' zeigt die Datei ohne umrochene Zeilen an. Sehr praktisch für log-Dateien, deren Zeilen fast immer länger sind, als der Platz groß ist, den man zur Verfügung hat ;-)
===== lpr =====
Ein Relikt aus älteren Zeiten. ''xpdf'' druckt allerdings nur damit und ''xpdf'' ist nun mal der beste PDF-Betrachter...
lpr [-P] [-#n] [-h] [-o
===== ls =====
Listet den Inhalt des Verzeichnisses auf, in dem man sich gerade befindet.
* -l zeigt Attribute der Dateien an (long)
* -a zeigt alle Dateien an (all)
===== man =====
Ruft die legendären manages auf. Es gibt für nahezu jeden Befehl eine Hilfedatei die mit man befehl angezeigt werden kann. Die Navigation dort ist die gleiche wie in Textdateien, die mit ''less'' angezeigt werden.
===== mc =====
Midnight Commander. Ein textbasierter Dateimanager, dem Norton Commander nachempfunden. Über ''ssh'' schon mal schwierig, wenn verschiedene Textkodierungen aufeinander stoßen... Ansonsten sehr schön! Kann auch ''ftp'' und ''sftp''. Muss meist noch installiert werden. (Debian: ''aptitude install mc'')
===== mkdir =====
Erstellt ein leeres ;-) Verzeichnis. (make directory)
===== mmls =====
Listet viele Inhalte über Partitionen auf. (mehr als fdisk...)
===== mount =====
In Linux wird jedem Gerät eine Gerätedatei zugeordnet (''device file''). Festplatten, Sticks, DVD-Laufwerke, Diskettenlaufwerke o.ä. heißen z.B.
hda, hdb, hdc, hdd, sda, sdb, sdc, sr, ...
Möchte man auf eine bestimmte Partition zugreifen, spricht die Nummer dieser Partition an. Bsp.:
hda1, hdb3, hdc1, hdd, sda1, sdb1, sdc1, sr0...
Soll auf eine dieser Partitionen zugegriffen werden, so muss sie ins System eingebunden (''gemountet'') werden. Dabei wird die Gerätedatei, der Zielordner und evtl. weitere Optionen angegeben:
mount /dev/sda1 /media/sda1
(Der Ordner ''/media/sda1'' muss vorher schon existieren.)
Danach kann über das Verzeichnis ''/media/sda1'' mit dem Datenträger gearbeitet werden.
==== Platte schreibgeschützt remounten ====
mount -o remount,ro /media/hda1
===== nmap =====
sudo su
nmap -sP 10.16.1.0/24
sucht alle Rechner im Subnetz 10.16.1.0.
===== pwd =====
Gibt den Namen des momentanen Verzeichnisses aus. (print working directory)
===== ps =====
Listet momentan laufende Prozesse mit PID (process ID oder Prozessnummer) und mehr auf. (processes)
* ''ps'' zeigt nur eigene Prozesse der momentanen (!) shell an. Also fast nichts.
* ''ps ax'' zeigt alles wichtige an.
* ''ps e'' zeigt alles an.
===== resolv.conf =====
Konfigurationsdatei für den Resolver. \\
Enthält Information, die beim ersten Aufruf eingelesen werden. Scheinen also DNS-Einträge zu sein, die man selbst steuern kann!?
===== rm =====
Löscht Dateien. (remove)
* ''rm *'' löscht alle Dateien im aktuellen Verzeichnis.
* ''rm -R Verzeichnisname'' löscht das angegebene Verzeichnis mit allem was drin ist.
===== rmdir =====
Löscht ein leeres Verzeichnis. (remove directory)
Ein volles Verzeichnis löscht man mit ''rm -R name''.
===== sed =====
**s**tream-oriented **ed**itor ist ein Textfilter, der bestimmte Zeichen oder Zeichenkombinationen sucht und ersetzt. Stream-oriented bedeutet, dass von ''stdin'' Daten entgegengenommen, bearbeitet und auf ''stdout'' wieder ausgegeben werden.
sed s/suche/ersetze/g datei.txt
sed -f sedfile datei.txt
Beispiele:
sed `s/Text/Test/g datei.txt
Regular Expression/Reguläre Ausdrücke
abc genau diese Zeichenkette: "abc"
[abc] eines dieser Zeichen: a, b oder c
[^abc] keines der Zeichen darf auftauchen
[a-c] eines der Zeichen von a bis c
. ein beliebiges Zeichen
? das Muster vor dem ? darf einmal oder gar nicht auftreten
* das Muster darf beliebig oft oder gar nicht auftreten
+ das Muster darf beliebig oft, muss aber mindestens einmal auftreten
{n} das Muster muss genau n-mal auftreten
{,n} das Muster darf höchstens n-mal auftreten
{n,} das Muster muss mindestensn-mal auftreten
{n,m} das Muster muss mindestens n-mal und höchstens m-mal auftreten
===== sftp =====
''ftp'' über ''ssh''
===== sort =====
Sortiert Textdateien.
sort -t: -k3 -n /etc/password
sortiert die accounts nach der Größe der userID.
* ''-t:'' benutzt den Doppelpunkt als Spaltentrenner.
* ''-k3'' sortiert an Hand der 3. Spalte.
* ''-n'' sortiert numerisch statt lexikalisch.
===== ssh =====
Öffnet eine Konsole auf einem entfernten Rechner. Wohl dem, der seinen Rechner ohne grafische Benutzeroberfläche administrieren kann. Das ist sogar über ISDN richtig bequem! Muss evtl. noch installiert werden. (Debian: ''aptitude install ssh'')
* ''ssh benutzer@rechner.domaene.de''
===== su =====
Wechselt die Identität.
* ''su'' versucht ''root'' zu werden. Klappt nur mit gültigem Passwort.
* ''su - sysadm'' versucht sysadm zu werden. Das Minuszeichen sorgt für korrekte Umgebungsvariablen. (Oder so... irgendwie war das notwendig)
===== top =====
Liefert aktuelle laufende Prozesse mit CPU-Last, Speicherverbrauch, PID, ... Wird automatisch alle paar Sekunden akualisiert.
* Leertaste ruft frühere Aktualisierung auf.
* k killt Prozess - siehe unten.
===== tr =====
''tr'' tauscht Zeichenketten in Textdateien aus.
echo Klaudius | tr ´K´ ´C´
korrigiert beispielsweise einen Rechtschreibfehler.
tr ´a-z´ ´A-Z´
oder
tr [:lower:] [:upper:]
wandelt Klein- in Großbuchstaben.
tr -s [:blank:] ´ ´
tauscht (squeeze-repeats) vielfache Leerzeichen gegen eines.
tr -d ´\r´
löscht (delete) alle ''carriage returns'' (Linux).
tr -c -d ´A-Z a-z´
löscht alles **außer** (complement) Buchstaben.
===== whereis =====
Gibt den Speicherort eines Programms aus.
===== wget =====
Läd die danach angegebene Datei herunter. Natürlich muss der komplette URL angegeben werden.
===== whoami =====
Sagt einem, wer man ist ;-) Ist schon mal ganz nützlich, wenn man sich über ''ssh'' auf einem entfernten Rechner einloggt.