20 Linux-Befehle für Einsteiger (Basics)

linux-commands

Neu in der Linux-Welt und keine Ahnung welche Befehle Du für was benötigst? Dann bist Du nicht allein: Aller Anfang ist schwer, aber hier zeige ich Dir die Top 20 Linux-Befehle für Einsteiger!

Egal, ob Du neuer System/Server Administrator, neu der Informatikwelt oder einfach von einem anderen Betriebssystem auf Linux umsteigen willst, Du kommst um die Linux-Befehle in der Konsole nicht drum rum. Auch bei der Programmierung eines Raspberry PIs ist Linux allgegenwärtig. Und sind wir mal ehrlich: man fühlt sich schon ziemlich cool, wenn man schnell und sicher mit der Linux Kommandozeile umgehen kann. 😉 Wenn Du diese Top 20 wichtigen Linux-Befehle sicher beherrscht, bist Du gut vorbereitet.

Zu jedem Befehl habe ich verschiedene Anwendungsmöglichkeiten angegeben. Daran sieht man, dass man die Befehle fast beliebig miteinander kombinieren und einsetzen kann. Die meisten Befehle kannst Du auch mit weiteren Parametern (Einstellungen) ausführen. Um diese anzeigen zu lassen, schaue Dir den man Befehl genauer an.

1. Grundbefehle

1.1. cd – Navigieren

Am wichtigsten ist es, sicher und schnell durch die Verzeichnisstruktur eines Rechners zu navigieren. Hier habe ich Dir verschiedene Möglichkeiten aufgelistet, auch um mehrere Verzeichnisse gleichzeitig zu wechseln:

# Go to "directory1" folder
cd directory1

# Go to "directory1" and in this folder go to "subdir1"
cd directory1/subdir1

# Go to ".ssh" in the root directory
cd ~/.ssh

# Go to the parent directory
cd ..

# Go two directories up
cd ../..

1.2. ls – Dateien auflisten

Der ls Befehl listet Dir Dateien in einem Verzeichnis auf. Diesen Befehl wirst Du wohl mit Abstand am meisten verwenden.

# List files
ls

# List files in a vertical list with more details
ls -l

# List files in the "dir1" folder
ls -l dir1

1.3. nano/vim – Datei bearbeiten

Um eine Datei zu bearbeiten gibt es verschiedene Texteditoren. Nano und Vim sind zwei Bekannte, die auf den meisten Linux-Distributionen vorinstalliert sind. Welchen Du nutzen möchtest ist Dir überlassen. Da es bei der Bedienung noch etwas Erklärung bedarf, habe ich Dir dazu zwei Beiträge verlinkt. Zum Öffnen der verschiedenen Editoren verwendest Du folgende Befehle:

# Open yourfile.txt with nano
nano yourfile.txt

# Open yourfile.txt with vim
vim yourfile.txt

Nano bedienen

Vim bedienen

1.4. pwd – Aktuelles Verzeichnis anzeigen

Mit pwd kannst Du Dir das aktuelle Verzeichnis anzeigen lassen, nicht mehr und nicht weniger:

# e.g. output: /var/www/vhosts/webdeasy.de/httpdocs
pwd

1.5. clear – Konsole leeren

Der clear Befehl löscht das Konsolenfenster. Es werden also keine Eingaben gelöscht, sie sind nach wie vor über history erreichbar, nur der sichtbare Bereich wird aufgeräumt.

1.6. cat – Inhalte auf der Konsole ausgeben

Dieser Befehl gibt Dir den Inhalt einer Datei auf der Konsole aus. Bei großen Datei bekommst Du manchmal sehr lange Ausgaben welche die Konsole vollspammen. Da bekommt man manchmal Angst was man denn getan hat. Aber keine Sorge.

# print the content of .htaccess
cat .htaccess

# print the content of index.php in the httpdocs directory
cat httpdocs/index.php

Wusstest Du, dass man mit STRG+C einen laufenden Befehl abbrechen kann?

1.7. sudo – Befehl als Administrator ausführen

Oftmals bist Du nicht als Administrator in deinem Terminal unterwegs. Wenn Du dann z.B. eine vom Administrator angelegte Datei bearbeiten möchtest, hast Du keine Berechtigungen dazu. Abhilfe schafft hier der sudo Befehl. Dieses kleine Wörtchen kannst Du jedem Kommando voran stellen um ihn mit Administrator Rechten auszuführen. Sei vorsichtig, was Du damit machst. Beim ersten Ausführen musst Du natürlich das Administrator Passwort eingeben:

# Print content of the .htaccess (with administrator permissions)
sudo cat .htaccess

# Go to dir2
sudo cd dir2

# Edit .htaccess
sudo nano .htaccess

1.8. grep – Ausgaben filtern

Du hast eine 500MB große Log-Datei und suchst nach einer bestimmten IP-Adresse? Mit grep kann Dir eine stundenlange Suche erspart bleiben. Der Befehl kann Dir alle Zeilen nach einem Suchmuster durchsuchen und hervorgehoben ausgeben. Du kannst auch reguläre Ausdrücke verwenden:

# Get all lines with "AddType" from .htaccess
grep AddType .htaccess

# get all lines with "AddType" from the application mime-type
grep "AddType application/.*" .htaccess

# Alternative: Combine the cat and grep command with a pipe
cat .htaccess | grep AddType

Im dritten Beispiel habe ich eine Pipe eingebaut. Das ist dieser gerade vertikale Strich: |.

Damit lassen sich Ausgaben von einem Befehl an den nächsten weitergeben. Dort nehmen wir die komplette Ausgabe vom ersten Befehl (cat .htaccess) und lassen uns nur Zeilen mit „AddType“ ausgeben. Cool, oder? Du kannst Befehle beliebig kombinieren, probier‘ es doch einfach mal mit anderen Befehlen aus.

1.9. history – Letzte Befehle anzeigen

Letzte Woche hast Du Dir einen sehr wichtigen und langen Befehl zusammengebaut, aber vergessen ihn Dir zu notieren? Nicht schlimm, gib einfach mal history in die Konsole ein. Mit diesem Befehl erhältst Du eine Auflistung der letzten Befehle und kannst Dir diese rauskopieren.

In vielen Konsolenanwendungen, z.B. das Terminal unter macOS oder Putty unter Windows wird Text kopiert, sobald Du ihn mit der linken Maustaste ganz normal markiert hast und eingefügt, wenn Du mit der rechten Maustaste einfach wieder in die Konsole klickst.

1.10. man – Hilfeseite

Endlich! Wir sind bei meinem Lieblingsbefehl angekommen. Mal sehen wie viele ich von ihm überzeugen kann. 🙂

Mit man kannst Du Dir zu jedem Befehl eine Hilfeseite mit allen möglichen Parametern und Erklärungen anzeigen lassen. Auch für z.B. C oder C++ lassen sich entsprechende Befehle nachschauen:

# manual for ls
man ls

# manual for wget
man wget

# manual for the pthread function (c, c++)
man pthread

Das Manual kannst Du mit dem Drücken der Taste „q“ verlassen.

Wenn Du also nicht mehr genau weißt, wie ein Befehl funktioniert, kannst Du einfach diesen Befehl nutzen und kann Dir viel Zeit sparen.

1.11. wget – Dateien aus dem Internet laden

Dieser Befehl kann Dir jegliche frei zugängliche Datei aus dem Internet oder Intranet auf Deinen Server/Rechner laden. Für was? Gerade bei der Serveradministration hat man oft nur eine Konsole und keine GUI zur Verfügung und dann ist dieser Befehl die schnellste und einfachste Möglichkeit eine Datei herunterzuladen:

# download the thumbnail of this post
wget https://webdeasy.de/wp-content/uploads/2021/04/linux-commands.jpg

Um eine solche Domain (webdeasy.de) in eine IP aufzulösen, wird DNS benötigt. Was DNS ist und wie es funktioniert, erfährst Du in diesem Beitrag zum Thema Domain-Name-System.

2. Dateiwerkzeuge

2.1. mkdir – Verzeichnis erstellen

Mit diesem Befehl kannst Du Verzeichnisse erstellen – ganz einfach:

# make directory "newDir"
mkdir newDir

2.2. touch – Datei anlegen

Dieser Befehl aktualisiert den Zeitstempel der angegebenen Datei. Das braucht man relativ selten. Was man eher mehr braucht und weshalb ich diesen Befehl auch vorstelle ist, dass man damit auch Dateien anlegen kann, wenn diese nicht existieren:

# create file phpinfo.php (if the file does not exist)
touch phpinfo.php

# update timstamp of phpinfo.php (if the file exists)
touch phpinfo.php

2.3. du – Datei-/Verzeichnisgröße berechnen

Dieser Befehl berechnet Dir die Größe eines Verzeichnisses oder einer Datei. Hier kannst Du viel mit den Parametern für eine schöne Darstellung rumspielen. Für meine Fälle benutze ich meist die folgenden Befehle:

# size of the htaccess in bytes. output e.g. 12 .htaccess
du .htaccess

# size of the htaccess (-h = human readable). output e.g. 12K .htaccess
du -h .htaccess

# size of EVERY SINGLE file inside the httpdocs directory (bad :c)
du httpdocs/

# size of the httpdocs directory (-s = summarize, -h = human readable). output e.g. 876M httpdocs/
du -sh httpdocs/

2.4. mv – Datei verschieben/umbenennen

Mit diesem Befehl werden meist zwei Aktionen durchgeführt: Verschieben und Umbenennen von Dateien. Denn wenn Du mal genau überlegst, ist das Verschieben in das gleiche Verzeichnis mit einem anderen Namen im Prinzip umbenennen einer Datei. 😉

# rename file1.txt to file2.txt
mv file1.txt file2.txt

# rename file1.txt to file2.txt (in dir1 folder)
mv dir1/file1.txt dir1/file2.txt

# move file1.txt to httpdocs folder
mv file1.txt httpdocs

2.5. cp – Datei/Verzeichnis kopieren

Ähnliches Verhalten wie beim Verschieben/Umbenennen von Dateien. Zu beachten ist hier der -R Parameter beim Kopieren von Verzeichnissen:

# copy file1.txt to file1-copy.txt
cp file1.txt file1-copy.txt

# copy httpdocs directory to httpdocs_BAK directory
cp -R httpdocs/ httpdocs_BAK

# copy httpdocs directory to httpdocs_BAK directory in the parents directory
cp -R httpdocs/ ../httpdocs_BAK

2.6. rm – Datei/Verzeichnis löschen

Dateien müssen manchmal gelöscht werden, dafür gibt es diesen Befehl. Auch hier muss der -R Parameter beim Löschen eines Verzeichnisses angegeben werden:

# remove file1.txt
rm file1.txt

# remove BAK directory
rm BAK/ -R

Achtung: Dieser Befehl ist nicht rückgängig zu machen! Kontrolliere den Befehl bevor Du ihn ausführst.

2.7. tar – Archive packen/entpacken

Eine .tar, .tar.gz oder .tgz Datei ist eine Archivdatei unter Linux – äquivalent zu einer .zip oder .rar Datei unter Windows. Mit dem tar Befehl kann man diese Archive packen und entpacken. Schau gern mit man tar alle Parameter an. Die folgenden Befehle sind in einer Kombination, in der ich sie nutze:

# pack httpdocs into archive.tgz
tar -czf archive.tgz httpdocs

# unpack archive.tgz into the current directory
tar -xvzf archive.tgz

3. Rechteverwaltung

3.2. chmod – Rechte anpassen

Mit diesem Befehl kannst Du die sogenannten Dateimodusbits verändern. Diese geben an, ob eine Datei lesbar, beschreibbar und aus ausführbar ist. Sie sind in 8 Stufen eingeteilt:

  • 0: No permission
  • 1: Execute
  • 2: Write
  • 3: Write and execute
  • 4: Read
  • 5: Read and execute
  • 6: Read and write
  • 7: Read, write, and execute

Damit lassen sich Berechtigungen für Dateien und Ordner genau einstellen:

# all permissions for all files and directories in this directory (don't use this in public! e.g. webservers)
chmod 777 * -R

# set default permissions (good solution :))
chmod 755 .htaccess

Wenn Du mehr zu diesem Befehl wissen willst, kannst Du das hier nachlesen.

3.1. chown – Besitzer/Gruppe anpassen

Mit dem letzten Befehl kannst Du den Besitzer und die Gruppe einer Datei oder Verzeichnis anpassen. Bei Rechnern mit mehreren Benutzer ist das unbedingt notwendig:

# set the owner to user1 and the group psaserv to file1.txt
chown user1:psaserv file1.txt

# set the owner and group root to the httpdocs directory and all files and directories in it
chown root:root httpdocs -R

Fallen Dir noch weitere Kommandos ein, die hier nicht fehlen dürfen? Schreib‘ Sie gern in die Kommentare. Danke für’s Lesen! 🙂

Ähnliche Beiträge
Beteilige dich an der Unterhaltung

4 Kommentare

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

bold italic underline strikeThrough
insertOrderedList insertUnorderedList outdent indent
removeFormat
createLink unlink
code

Das könnte dich auch interessieren