Grundlegende Linux-Befehle
Bei der Eingabe wird alles hinter dem #-Zeichen wie ein Kommentar behandelt und nicht ausgeführt. Dateien mit einem führenden Punkt sind versteckt. Jeder Benutzer hat ein Homeverzeichnis, das mit ~ gekennzeichnet ist.
Bash:
clear # Bildschirm löschen
reset # Steuercodes resetten
Dateiverwaltung:
./datei.sh # Ausführbare Datei im aktuellen Verzeichnis starten
apropos # Man-Pages nach Thema durchsuchen
cat # Dateien Anhängen/anzeigen mit der Option -n zeigt cat Zeilennummern
cd # (bzw. cd ~) in das Home-Verzeichnis wechseln
cd / # in das höchste (root-) Verzeichnis wechseln
cksum # Prüfsumme berechnen
cp # Datei1 in Datei2 kopieren
csplit # Dateien an bestimmten Stellen aufteilen
dd # Dateien im Rohformat kopieren
du # Zeigt den Speicherverbrauch an, "du -hs verz." listet das in Mega- und Gigabytes auf
du -h --max-depth=1 # Zeigt den Speicherverbrauch einzelner Verzeichnisse an, "du -hs verz." listet das in Mega- und Gigabytes auf
df # Freier Platz des "Laufwerks" auflisten, df -h listet das in Mega- und Gigabytes auf
dos2unix # Text Dateiconverter
unix2dos # Text Dateiconverter
file -i datei # Den Dateityp bestimmen
fold # Bricht ueberlange Zeilen um
head # Die ersten Zeilen einer Datei anzeigen
ln # Aliasname für Dateinamen erzeugen
less # Dateien bildschirmweise anzeigen
locate "filename" # File suchen (falls Locate installiert ist)
ls # Dateien/Verzeichnis anzeigen
ls -l # Dateien im aktuellen Verzeichnis tabellarisch anzeigen
ls -a # die versteckten Dateien auch noch anzeigen
ln datei link # erzeugt man einen Hardlink. Der ist eine zweiter Eintrag und bleibt auch dann stehen wenn die eigentliche Datei gelöscht wird, daher funktioniert der auch nur für Dateien und auf der selben Platte.
ln -l datei link # erzeugt man einen Softlink. Der geht auch für Ordner und auf andere Partitionen. Löscht man die Datei, ist der Link auch weg.
ln -s datei link # symbolischer Link, er bleibt auch erhalten, wenn man die Datei oder den Ordner dahinter löscht. Er ist am ehesten mit der Verknüpfung unter Windows zu vergleichen und belegt auch Inodes auf der Partition.
merge # Änderungen in ver. Dateien zusammenführen
md # Verzeichnis erstellen
more # ähnlich less
multitail # wie Teil, nur das multitail mehrere Dateien überwachen kann
mv # Datei1 in Datei2 umbenennen bzw. verschieben
nano # einfacher Texteditor
newgrp # Die Aktuelle Gruppe ändern
pico # einfacher Texteditor
pwd # Arbeitsverzeichnis ausgeben
rcp # Dateien auf ein entferntes System kopieren
rm # Dateien löschen
rmdir # Verzeichnisse löschen
rm -rf # Verzeichnis ohne nachzufragen rekursiv löschen, VORSICHT!!!
split # Dateien gleichmässig aufteilen
tail # Die letzen zeilen einer Datei ausgeben
unix2dos # Text Dateiconverter
updatedb # locate-Datenbank (falls Locate installiert ist) aktualisieren
vi oder vim # der kompliziertere und mächtigere Texteditor
whereis # Shellprogramme schnell finden
which # Pfad zu einem Program ausgeben
Administrationsbefehle:
aptitude search paketname # Programm im Repository suchen (Volltextsuche)(Debian/Ubuntu)
aptitude install paketname # Programm aus dem Repository installieren(Debian/Ubuntu)
aptitude update # Lokale Repository Inhaltsliste akuallisieren(Debian/Ubuntu)
aptitude upgrade # Alle Pakete auf neue Version bringen (Debian/Ubuntu)
chmod a+r # Benutzerrechte setzen: Alle dürfen lesen
chmod g+rw # Benutzerrechte setzen: Gruppe darf lesen und schreiben
chmod u+rwx # Benutzerrechte setzen: Besitzer darf alles
chmod o+rwx # Benutzerrechte setzen: Welt darf alles
chgrp # Gruppenzugehörigkeit einer Datei ändern
chfn # Benutzerinfo für finger,E-Mail usw. ändern
chsh # Anmeldeshell ändern
crontab # Zeigt die userspezifische Cron-Tabelle an, bzw. oeffnet sie zum editieren
date # Zeigt Zeit & Datum an
/etc/group # Gruppenverwaltungsdatei der User (gruppenname:passwort:gid:mitglieder)
/etc/passwd # Benutzerverwaltungsdatei der User (Username: passwort: UID: GID: Info: Home: Shell)
/etc/shadow # Passwortdatei der User (Username: passwort : DOC : MinD : MaxD: Warn : Exp: Dis : Res)
dmidecode # Detaillierte Hardwaredaten auslesen
dos2unix # Text Dateiconverter
dpkg -i paketname # DEB Programm installieren
dpkg -r paketname # DEB Programm deinstallieren (Configdateien bleiben erhalten)
dpkg -P paketname # DEB Programm komplett deinstallieren
dpkg -l | grep paketname # Nachsehen ob ein DEB Paket installiert ist
finger # Zeigt infos über über die user aus
free # Zeigt die Speicherauslastung und die Auslastung des Swap bereichs an
groupadd # Anlegen einer neuen User-Gruppe
groupdel # Loeschen einer bestehenden User-Gruppe
groupmod # Aendern der Daten einer bestehenden User-Gruppe
groups # Die Gruppenzugehörigkeit ermitteln
id # Die UID eines Users anzeigen lassen
init 3 # In den Runlevel 3 wecheseln
init 5 # In den Runlevel 5 (Windows Manager) wecheseln
ldconfig # Erstellt die Cache-Datei für den Programmlader welche Bibliotheken im System sind.
ldd # Zeigt welche Bibliotheken in welchen Versionen ein Programm verwendet.
lspci # Gibt Informationen über Geräte auf dem PCI-Bus aus
lsusb # Gibt Informationen über Geräte auf dem USB-Bus aus
mkfs # Datenträger oder Partition formatieren
newgrp # Aendern der aktuellen Gruppe
/proc/cpuinfo # Informationen über die CPU
/proc/meminfo # Informationen über sen Speicher
passwd # Festlegen bzw. Aendern des Passwortes eines Useraccounts
pwd # Arbeitsverzeichnis ausgeben
export PATH=/usr/bin/:$PATH # Pfad neu setzen unter Beibehaltung der alten Pfade
useradd # einen Benutzer anlegen oder einer Gruppe zuordnen
userdel # einen Benutzer löschen
usermod # einen Benutzer bearbeiten
shutdown -h now # System herunter fahren
shutdown -r now # System neu starten
reboot # System neu starten
rpm -Uvh filename # RPM Paket installieren
rpm -qa | grep Paketname # Nachsehen ob ein RPM Paket installiert ist
rpm -qi filename # Informationen über das installierte RPM-Paket bekommen (oder nur -q für die Versionsnummer)
rpm -ev filename # RPM Paket deinstallieren
rpm -qlp filename # Alle Files in einem RPM Paket anzeigen
rpm -qf /usr/bin/setup # Welches File gehört zu welchem RPM Paket
runlevel # Zeigt einem den aktuellen Runlevel an
rwho # wer ist gerade remote eingeloggt ? (evtl. mit yum install rwho nachinstallen)
sfdisk # Partition table manipulator for Linux
unix2dos # Text Dateiconverter
w # wer ist gerade eingeloggt und wieviele Ressourcen nutzt er ?
who # wer ist gerade eingeloggt ?
whoami # als wer bin ich gerade eingeloggt ?
zypper install Paketname # RPM Paket aus dem Repository installieren (opensuse)
you # System updaten (opensuse)
yum update # RPM Paket(e) aus dem Repository updaten (Red Hat/Fedora)
yum info Paketname # Infos zum RPM Paket aus dem Repository (Red Hat/Fedora)
yum install Paketname # RPM Paket aus dem Repository installieren(Red Hat/Fedora)
yum list *suchwort* # Im Repository nach dem Suchwort im Paketnamen suchen (Sternchen nicht vergesen !)(Red Hat/Fedora)
yum search suchwort # Im Repository nach dem Suchwort suchen (Volltextsuche)(Red Hat/Fedora)
yum update # System updaten (Red Hat/Fedora)
Textverabeitung:
cat # Dateien Anhängen/anzeigen
comm # Vergleicht zwei Textfiles, Zeile für Zeile
cut # Schneidet Spalten aus einem Text aus
dos2unix # Text Dateiconverter
egrep 'floppy|cdrom' /etc/fstab # Erweiteres grep, sucht nach mehreren Begriffen
expand/unexpand # Expandiert Tabulatoren (8 Zeichen breit) in 8 Leerzeichen und umgekehrt
fold # Dieses Programm bricht Zeilen um
grep # Nach Dateinhalten suchen
head # Die ersten Zeilen einer Datei anzeigen
iconv --from-code=UTF-8 --to-code=ISO-8859-1 test.utf > test.latin # Umwandeln von UTF-8 nach Latin
iconv --from-code=ISO-8859-1 --to-code=UTF-8 test.latin > test.utf # Umwandeln von Latin nach UTF-8
join # Zusammenfügen von Dateien
more # Text Seitenweise angezeigen
less # Dateien bildschirmweise anzeigen
paste # Das Gegenteil zu cut. Fügt Dateien Spaltenweise zusammen
sort # Sortiert die Zeilen einer Textdatei
split # Das Gegenteil zu join. Dateien in Teile zerlegen
tail # Die letzen zeilen einer Datei ausgeben
tr # Wörter oder Zeichenfolgen durch andere ersetzen
uudecode # Dateien dekodieren, die mit uuencode bearbeitet wurden
uuencode # Dateien mit Binärzeichen zum Verschicken enkodieren
uniq # Stellt sicher, dass eine Zeile nur einmal vorkommt
unix2dos # Text Dateiconverter
wc # Zeilen/Wörter/Zeichen zählen
nl # Zeilennummern erzeugen
Prozessmanagment:
jobs # Zeigt alle laufenden Prozesse auf der laufenden Shell an
strg-z # Prozess anhalten
bg # Packt Prozesse in den Hintergrund der laufenden Shell
fg # Packt Prozesse in den Vordergrund der laufenden Shell
kill # Beendet den Prozess mit der uebergebenen Prozess-ID (PID)
kill -9 prozessid # Beendet den Prozess ohne auf Speicherungen zu warten (Brutalmethode !)
killall # Beendet alle Prozesse mit dem uebergebenen Namen
killproc # Beendet den Prozess, dessen ausfuehrbare Datei im uebergebenen Pfad zu finden ist
lsof # Welche Dateien sind im Moment geöffnet, und wer hat sie geöffnet
nice # Setzt die Prioritaet eines Prozesses
nohup # Startet ein Programm immun gegen SIGHUPs
pidof # Gibt die PID(s) des Prozesses mit dem uebergebenen Namen aus
ps # Zeigt alle Prozesse mit ihrer PID, der User-ID des ausfuehrenden Users, die Terminal-ID etc. an
ps ax | grep sshd # zeigt an ob der Prozess sshd noch läuft (Achtung, grep zeigt sich selbst auch einmal an, da er ja nach sshd sucht ;-))
pstree # Zeigt alle Prozesse in einer Baumdarstellung
Internet & eMail:
curl # Download Client
ftp # Kommandozeilen FTP Client
lynx # Text Browser
mail # Sendet eine E-Mail an einen User
mailq # Zeigt noch zu versendende Mails an
mutt # der kompliziertere eMailclient
echo hallo duda | mutt -s "Mein Betreff" -a prog.exe email@domain.de # Mail mit Anhang verschickt
pine # der einfache eMailclient
ssh # Kommandozeilen SSH Client
w3m # der Text Browser
wget # Download Client
wput # Upload Client
TCP/IP Administrationsbefehle:
dig NS xxx.xxx.xxx.xxx domain.de # macht einen Lookup auf einen Nameserver
host IP oder Domain # DNS Host+Zonen-Infoausgabe
hostname # Zeigt den Namen des Rechners an
ifconfig # Netzwerkkarte
netstat # Netzwerkzustand
netcat # Mächtiges TCP/IP-Tool
nmap # Portscanner
ping # Selbsterklärend
pppd # Aufbau einer Verbindung per ppp
traceroute # macht eine traceroute (ach was !)
route # Manipulation der Routingtabelle
Samba :
smbmount //xxx.xxx.xxx.xxx/"freigabename" /home/platte2 # Windowsplatte in Verzeichnissbaum einhängen
smbclient -L xxx.xxx.xxx.xxx # Alle Freigaben eines Rechners anzeigen
Vergleiche :
cmp # Zwei Dateien Byte für Byte vergleichen
comm # Elemente in zwei sortierten Dateien vergleichen
diff # Zwei Dateien Zeile für Zeile vergleichen
diff3 # Drei Dateien vergleichen
Drucken :
lpq # Den Status von Druckaufträgen anzeigen
lpr # Dateien an Drucker schicken
lprm # Druckjobs löschen
lpstat # Drucker-Status abfragen
Programmieren:
g++ # C++ Compiler
gcc # C Compiler
make # Programme erzeugen
Verwaltung von Programmen :
cvs # Verschiedene Versionen von Quelldateien verwalten
gdb # GNU-Debugger
imake # Makefiles für Make erzeugen
make # Programme erzeuge/Dateien verwalten
patch # Änderungen an Quelldateien Anbringen
size # Die Größe eines Objektes in Bytes ausgeben
strace # Systemaufrufen und Signalen folgen
touch # Änderungszeit einer Datei aktualisieren
Shell-Programmierung:
echo # Kommandozeilenargumente ausgeben
env # Gibt alle Umgebungsvariablen aus.
sleep # Die Verarbeitung für X Sekunden anhalten
test # Eine Bedingung prüfen
exit # Die aktuelle Schell verlassen / ausloggen
export # Shellvariablen exportieren
id # Ausgabe der Benutzernummer und der Gruppenzugehörigkeiten
set # Umgebungsvariable setzen
seq # Gibt eine Vordefinierte Zahlenliste aus
tee # Von Standardeingabe lesen und in Standardausgabe und Dateien schreiben
Tar/Rar-Archive:
tar -xvf Datei.tar -C destverz # zum Auspacken von .tar
tar -xzvf Datei.tar.gz -C destverz # zum Auspacken von .tar.gz oder .tgz
tar -xjvf Datei.tar.bz -C destverz # zum Auspacken von .tar.bz oder .tbz
tar -cvpf Datei.tar Dateiliste # zum Erstellen eines Tar's - .tar
tar -czvpf Datei.tar.gz Dateiliste # zum Erstellen eines Gzip Tar's - .tar.gz
tar -cjvpf Datei.tar.bz2 Dateiliste # zum Erstellen eines Bzip2 Tar's - .tar.bz2
rar a -r -v1000m -m1 archiv.rar /home/path # zum Erstellen eines rar mit Filegröße 1 Gb und Packstufe 1 (1-5)
rar x archiv.rar /home/path # zum Auspacken eines rar
Pipes:
cat Datei | more # Datei anzeiigen und beim Scrollen auf Enter warten
cat Datei1 Datei2 > Datei3 # Dateien 1 und 2 in 3 Schreiben
echo "Hallo" >> Datei # Hallo an Datei 3 anhängen
ls -l | grep "test" # in der Ausgabe von ls -l nur die Zeilen anzeigen, in denen test steht
tail -f Datei # Dateiende anzeigen und wenn etwas angefügt wird mitscrollen
ps ax | grep sshd # zeigt an ob der Prozess sshd noch läuft (Achtung, grep zeigt sich selbst auch einmal an, da er ja nach sshd sucht ;-))
Partitions Management:
badblocks # Durchsucht einen Partition nach beschaedigten Bloecken (BadBlocks)
dd # Kopiert Partitionen/Dateisysteme bytegenau
dumpe2fs # Gibt Informationen ueber das Dateisystem auf einer Partition aus
e2fsck # Prueft und repariert Linux ext2 Dateisysteme
e2label # Weist einem Dateisysten ein Label (Bezeichnung) zu, bzw gibt das Label aus
fdisk # Legt Partitionen an und loescht sie oder Anzeige der aktuellen Partitionstabelle
fdisk -l /dev/hda # Direkte Anzeige der aktuellen Partitionstabelle
fsck # Prueft und repariert Linux Dateisysteme
hdparm # Programm zum Einstellen verschiedener Parameter einer Festplatte u.a. DMA Modus
hdparm -I /dev/hda | grep size # Festplattengröße anzeigen
mkdosfs # Erzeugt ein Dos (FAT16 und FAT32) Dateisystem auf der angegebenen Partition
mke2fs # Erzeugt ein ext2 Dateisystem auf der angegebenen Partition
mkfs # Frontend zu verschiedenen Filesystem-Erstellern
mkswap # Erzeugt eine Linux Swap-Partition auf der angegebenen Partition
mount # Haengt ein Dateisystem (eine Partition, Diskette..) in den Verzeichnisbaum ein (an einen Mountpoint)
tune2fs # Pogramm zum Einstellen verschiedener Parameter des ext2 Dateisystems (zB maximal mount count)
umount # Loest ein Dateisystem aus dem Verzeichnisbaum
Nützliche Kombinationen:
grep -o "[[:alnum:]+\.\_\-]*@[[:alnum:]+\.\_\-]*" # alle emailaddys aus Textfile filtern
grep -o "^[[:alnum:]+\.\_\-]*@[[:alnum:]+\.\_\-]*" # nur die ersten emailaddys pro reihe aus Textfile filtern
sed 's/^/ /' # insert 5 blank spaces at beginning of each line (make page offset)
grep -l suchtext * | xargs rm # Sucht in allen Files den Suchtext und löscht diese Dateien
egrep -l 'scp|rsync' * # Sucht in allen Files den Suchtext und zeigt die Dateien an
df -h | grep sdb1 | awk {'print $5'} # Zeigt uns den 5.ten Tab von Diskfree /dev/sdb1 an. Also die Prozentzahl.
ssh -l root -L 5901:localhost:5900 192.168.0.xx # Nun kann ich mich per Localhost Port 5901 mit der Remotemaschine verbinden