CentOS Server
Installieren ganz normal
Nach der Installation:
Hostnamen festlegen
hostnamectl set-hostname centos-server.linux.local
Netzwerkkonfiguration
Es gibt skripte mit denen die Netzwerkkonfigurationen vorgenommen werden können.
/etc/sysconfig/network-scripts
Konfigdatei: ifcfg-eth0 (Kann unterschiedlich heißen)
in der Datei steht unter ONBOOT = no dadurch wird der DHCP beim Boot nicht geladen.
um die neuen Einstellungen zu aktivieren muss man den service neu starten.
service network restart
Statische IP-Adresse einstellen
ifcfg-eth0
BOOTPROTO=static
IPADDR=172.16.1.25
NETMASK=255.255.255.0
GATEWAY=172.16.1.1
#DEFROUTE=yes (auskommentieren)
#IPV6 (auskommentieren)
DNS Server Anlegen
/etc/resolf.conf
nameserver 8.8.8.8
Pfadparameter
which cat
gibt den Parameter zu dem Programm zurück. Damit kann man nachschauen, wo programme gespeichert werden.
Umgebgungsvariablen
$PATH
Umgebungsvariable anpassen
export PATH=$PATH:~/bin
Setzt die Variable auf den bisherigen Inhalt plus ~/bin
Diese Variable werden nur Temporär gespeichert
Damit auch überall die Umgebungsvariablen verwendet werden geht man folgendermaßen vor:
Ein Terminal hat Startup files in der das abgespeichert werden kann.
.bashrc
muss umb den Befehl export PATH=$PATH:~/bin
erweitert werden. Dann funktionert das überall.
Paketmanager
in CentOs wird Yum als Paketmanager verwendet
yum install htop
# Paketquelle aktualisieren
# Weiteres Reposotry
yum install epel-release
yum remove htop
yum downgrade htop # Vorherige version
yum search php # suchen
yum install https://abc.npm # Damit kann man direkt von einer Website eine Datei installieren
Texteditoren
Nano
Tastenkombination | Beschreibung |
Strg + g | Hilfe |
Strg + k | Ausschneiden |
Strg + U | Einfügen |
Strg + W | Suchen |
ALT + a |
Markieren |
ALT + U |
Rückgängig |
ALT + Y |
Highlighting ausschalten |
Nano Anpassen
/etc/nanorc (global)
Für den jeweiligen Benutzer kann man im Homeverzeichnis eine datei erstellen und Einstellungen vornehmen: .nanorc
- set regexp (Reguläre expressions beim suchen verwenden)
- .* um Wildcards zu verwenden
Syntax Highlighting
In CentOs muss das Highlighting durch Einkommentieren in der Datei: /etc/nanorc aktiviert werden
Vim
Tasten | Beschreibung |
i | Einfügen (Bearbeiten) |
A | Einfügen am ende der Zeile |
o | Neue Zeile einfügen |
O | Über dem Corser eine neue Zeile einfügen |
dd | löscht eine ganze Zeile |
3 dd | löscht 3 Zeilen auf einmal |
u | Rückgängig machen |
v | Visual Mode: Markieren |
d | Markierten bereich ausschneiden |
p oder P | zum einfügen |
y | Kopieren |
:set number | Zeigt die Zeilennummer an |
:set nonumber | Zeilennummern ausblenden |
:set nocp | erweiterter Modus |
Erweiterte Funktionen
:3 | Springt in die Zeile |
G | Spring in die Letze Zeile |
0 (null) | Springt zum ersten Zeichen einer Zeile |
:x | Speichern und schließen |
/gulu n N |
Suchen nach gulu zum nächsten suchergebnis zum vorherigen Suchergebnis |
:set ignorecase |
Groß und Kleinschreibung bei der Suche ignorieren |
|
Die wichtigsten Grundeinstellungen vornehmen: /home/benutzer/.vimrc
erstellen
- set nocp
- set number
- set ignorecase
Bessere vim version
sudo install vim-runtime
sudo install vim-gnome (Starten mit gvim)
Shell-Umgebung
Dateien die die Shell konfiigurieren:
- /etc/profile
- /etc/bash.bashrc oder /etc/bashrc
Variable erstellen
GREETING="Hallo Welt"
echo $GREETING
# Globale Variable erstellen
export GREETINGE="Hallo Welt"
echo $GREETINGE
# mit env kann man sich Umgebungsvariablen erstellen
# Variable entfernen
unset GREETINGE
Standardprogramme
update-alternatives --get-selections
(anzeigen)
sudo update-alternatives --config editor
(Editor bearbeiten)
Benutzerverwaltung
Befehl | Beschreibung |
sudo useradd asterix | Benutzer hinzufügen (nicht ideal, kein Homelaufwerk) |
sudo useradd -m -s /bin/bash -c "Kommentar" obelix |
Benutzer erstellen -m erstellt ein Homeverzeichnis -s legt die Standard Shell fest -c Erstellt einen Kommentar, im normalfall der Name |
sudo passwd asterix |
Erstellt ein Passwort für Asterix |
sudo cp -r /etc/skel /home/asterix |
Das Standard-Homeverzeichnis befindet sich in /etc/skel |
sudo chown -R asterix:asterix /home/asterix |
Das Homelaufwerk dem Nutzer asterix zuordnen |
sudo usermod -s /bin/bash -c "kommentar" asterix |
Um die restlichen Anpassungen vorzunehmen. Sie Erstellung obelix |
adduser falbala |
user erstellen mit Optionen /etc/adduser.conf |
deluser --remove-all-files falbala |
User löschen mit optionen |
Benutzerinformationen
/etc/passwd
Loginname:Passwort:User-ID:GruppenID:Kommentar:Home-verz.:Login-Shell
Passwort wird abgespeichert in
/etc/shadow
Loginname:Hashwert(InklusiveSalt):LetztePasswortänderung:Min.anzahl.Passwortänderung:maxanzahl.passwortänderungen:Warnungpasswortablauf:::
Shadow besser ansehen
chage -l asterix
Asterix anzeigen lassen
Gruppen
/etc/login.defs
alle Gruppen sind zu finden in
/etc/group
Befehl | |
groups | zeigt an in welcher gruppe der Benutzer ist |
groups hermann asterix | |
id | Zeigt den User an |
grep hermann /etc/group | Zeigt an in welchen Gruppen der User ist |
groupadd projekt_zaubertrank | erstellt eine neue Gruppe |
groupdell projekt_zaubertrank | löscht die Gruppe |
groupadd -g 20000 projekt_zaubertrank | erstellt eine Gruppe mit der ID 20000 |
groupadd projekt_hinkelstein | wenn schon gruppen ids angelegt sind, dann wird die id ab 20000 aufgezählt |
usermod -G projekt_zaubertrank asterix | fügt asterix der Gruppe hinzu |
usermod -g 10000 -G projekt_zaubertrank idefix |
fügt idefix zu Gruppe praktikanten und Zaubertrank hinzu g gibt die Hauptgruppe an G gibt weitere Gruppen an |
Dateien und Verzeichnisse
Befehle zum anzeigen von Verzeichnissen
ls -a |
Zeigt auch versteckte Dateien an |
ls -F |
Zeigt an um welche Einträge es sich handelt * Ausführbare Datei |
ls -t |
Nach Änderung sortieren |
ls -r |
Rückwärts sortieren |
ls -R |
Gesamtes Verzeichnis anzeigen |
ls -d |
Verzeichnisse anzeigen |
ls -ld /projekte |
Zeigt einen Eintrag genau an |
Links
ln liste.txt liste-hardlink.txt |
Erstellt einen Link liste-hardlink.txt auf die Datei liste.txt |
ln -s /projekte/projekt_zaubertrank/zutaten/liste.txt liste-absolut |
erstellt einen link liste-absolut auf die Datei liste (softlink) |
Archive
.tar |
Tape-Archiver ist ein Unkomprimiertes Archiv |
|
Datei Entpacken |
bzip2 firefox.tar |
Datei Komprimieren |
gzip -d firefox.tar.gz |
Datei entpacken |
tar -xf firefox.tar |
Datei entpacken |
tar -cf datei1.pdf datei2.pdf |
Dateien zu einem Archiv zusammenfügen (cf = create file) |
|
Pakt den Ordner firefox in ein Archiv und komprimiert mit gzip komprimierung mit bz2 |
|
Entpacken der jeweiligen Archive |
Zugriffsrechte
groupadd |
Gruppe hinzufügen |
/etc/group |
Gruppen bearbeiten |
chown miraculix:zaubertrank projekt_zaubertrank |
Verzeichniseigentümer ändern |
chmod u=rwx,g+w,o-rx /projekte/projekt_zaubertrank |
Besitzer: Alle rechte Gruppe erhält zusätzlich schreibrechte Welt werden lese und Ausführungsrechte entzogen |
chmod o= /projekte/projekt_zaubertrank |
Welt werden alle Rechte entzogen |
r = 4 w = 2 x = 1 |
chmod 750 User alles / gruppe lesen und ausführen / alle nix chmod 644 user lesen und schreiben / gruppe alle lesen |
chown -R |
um rekursiv zu ändern |
Finden
ls "02 - Erste Schritte"/ |
Pfad anzeigen |
ls * |
Zeigte alle unterodner und dateien im aktuellen Ordner an |
ls \*/\.\.txt |
Zeigt alle dateien mit Fhem in allen unterordnern an. |
find . -name "*.js" |
findet im aktuellen Pfad alles was im Namen ".js" enthält |
find . -size +1M |
findet alle Dateien die größer als 1 Megabyte sind |
find . -size +1M -and -name "*skype*" |
|
find . -name "*.JPG" -delete |
findet alle Bilder und löscht sie (-iname wenn die groß und kleinschreibnung ignoriert werden soll) |
find . -maxdepth 1 -and -name "*.jpg" -or -name "*.cr3" |
Dadurch wird nur der aktuelle Ordner durchsucht |
find . -iname "ubuntu*.iso" 2>/dev/null |
|
locate "*fhem*" |
Parameter: -i Groß und kleinschreibung |
sudo updatedb |
Datenbank von locate updaten |
locate -i --regex "ubuntu(.*).ISO" |
reguläre ausdrücke |
grep "money" * |
suche nach money im Ordner * |
grep -E -i 'Subject:(.*)money' * |
Sucht nach allem was Subject: irgendewas Money beinhaltet |
Ersetzen
mit dem Programm sed kann man inhalt in datein ersetzen
sed 's/Welt/Linux/' hallo.txt |
Ersetzt den Text Welt durch Linux s = ersetzen |
sed 's/Welt/Linux/g' hallo.txt |
g = ersetzt alles (global) |
mit dem Parameter -i wird die änderung gespeichert | |
sed "3d" hallo.txt |
Entfernt die 3. Zeile $d entfernt die letzte Zeile 2,3d entfernt Zeile 2 und 3 '/CentOS/d' entfernt Zeilen in denen CentOS vorkommt |
sed -n 's/Ubuntu/Kubuntu/p' hallo.text |
zeigt nur die änderungen auf der Konsole an. p = Zeigt Änderungen an -n = Zeigt den ganzen text nicht an |
Reguläre audrücke
sed -n 's/model/m/p' /proc/cpuinfo |
ersetzt Model durch m in der cpuinfo datei |
sed -n -E 's/model(\s*):(\s)//p' /proc/cpuinfo |
|
sed -n -E 's/model name(\s*):(.*)@(.*)/\2/p' /proc/cpuinfo |
\2 ersetzt den entfernten text mit der 2. Klammer |
Ausdrücke generieren: https://regexr.com
Bootloader bearbeiten
Datei die zu bearbeiten ist: /etc/default/grub
grub_timeout = Startmenü anzeigen
Änderungen übernehmen mti dem Befehl
grub-mkconfig -o /boot/grub/grub.cfg
CentOS
grub2-set-default 1 # setzt den Default wert auf 1
grub2-mkconfig -o /boot/grub2/grub.cfg
Partitionierung
/dev | Gerätedateien |
fdisk -l /dev/sda | Fdisk erstellt partitionen in MBR |
fdisk /dev/sdb p n p w (schreibt die Änderung auf die Platte) |
Neue Partition erstellen Speicherplatz festlegen: +2G erstellt eine 2 Gigabyte große
|
gdisk /dev/sdb o n |
mit Gdisk kann man GPT erstellen erstellen einer neuen GPT Partitionstabelle neue Partition anlegen |
gdisk -l /dev/sdb |
zum überprüfen der Festplatte |
Dateisysteme
ext4 | Standard für Linux |
btrfs | Standard für Suse. Schnell aber fehleranfällig |
xfs | Alt, stabil |
zfs | Leistungsfähiges für Servern |
ntfs | Microsoft |
blkid -o list |
Zeigt die Festplatten mit id an |
lsblk |
Übersicht über festplatten und partionen |
Dateiformate erstellen
parted -l /dev/sdb |
Partitionen anschauen |
mkswap /dev/sdb6 |
Swap bereich erstellen (Auslagerungspartition) |
swapon /dev/sdb6 |
Swap aktivieren |
cat /proc/swaps |
anzeigen welche partition als swap verwendet wird |
mkfs.ext4 /dev/sdb1 |
Formatieren in Ext4 |
mkfs -t ext3 /dev/sdb2 |
Formatieren in ext3 (andere schreibweise) |
mkfs.xfs /dev/sdb4 |
bei xfs muss vorher mit apt install xfsprogs das programm dafür installiert werden |
Partitionen überprüfen
fsck /dev/sdb1 | Prüfung der Partion. (Nur möglich, wenn nicht eingehängt) |
fsk -f /dev/sdb1 | Gleichzeitige Reparatur bei Fehlern und detailiertere Ausgabe |
Mounten
mount -t xfs /dev/sdb5 /gulugulu |
mountet laufwerk im -t (Type) xfs mit der Partition sdb5 im Ordner /gulugulu |
umount |
Unmounten von Laufwerken |
mount /dev/sdb1 /gulugulu |
Ext4 wird automatisch erkannt und muss nicht angegeben werden. |
/etc/fstab |
Automatische Mountpunkte festlegen Typ: ext4, auto, swap |
mount -a |
Einstellung von fstab übernehmen |
Speicherplatz
df |
Diskfree |
df -h |
Human readable |
du -h |
Diskusage |
du -h /etc |
Ordner anzeigen |
du -ha /etc |
Alle Dateien anzeigen |
sudo du -h / | sort -h |
Sortiert die Plattennutzung nach Größe |
sudo du -h / 2>&1 | sort -hr | head -n5 |
Die 5 größten Ordner anzeigen |
Festplattenanalyse als Admin starten sudo baobab
Logical Volume Manager (LVM)

apt install lvm2 |
Unter Ubuntu installieren |
fdisk -l |
Datenträger überprüfen |
|
Physical Volume create |
|
übersicht |
|
Volume Group erstellen |
|
Volume Groups übersicht |
|
Logical Volume erstellen -L3g = Größe 3 GB -n = Name aus der Gruppe System |
|
Logical Volumes Übersicht |
Logical Volumes formatieren und mounten |
|
|
das Logical Volume in ext4 formatieren |
|
das Volumen mounten |
Erweitern |
|
|
dabei wird die Volume Group storage um eine weitere Partition erweitert |
|
Vor dem einbinden muss das Volume unmounted werden |
|
Die Größe wird auf 9 GB festgelegt. mit -L +4g kann das Volume um 4 GB erweitert werden. (besser nicht verwenden) |
|
Dateisystem anpassen |
|
Zum einhängen |
USB-Speichersticks
lsusb |
Alle angeschlossenen USB-Sticks anzeigen lassen |
usb-devices |
Details anzeigen |
dmesg |
gibt Kernel Informationen aus |
Netzwerk-Kommunikation

Wireshark installieren
Vorher Gnome Desktop installieren mit yum groupinstall GNOME-Desktop
GUI als Default einstellen: systemctl set-default graphical.target
Wirehark als root starten aus dem Terminal: wireshark &
VLSM und CIDR
Variable Length Subnet Mask
Classless Inter-Domain Routing
ARP und MAC-Adressen
Wireshark-Mitschnitt:
Capture Filter: host 192.168.1.15 and (arp or icmp) um ping oder ARP mitzuschneiden
arp -d 192.168.1.15
löscht den Arp-Cache zu der Adresse
arp -a
Arp-Cache anzeigen
netstat -nr
Anzeige der Routing Tabelle
TCP und UDP
Aktive Ports anzeigen lassen sudo netstat -tlpn
zeigt alle Ports an
Alle Ports sind zu finden unter nano /etc/services
IPv6

Netzwerkeinstellungen
ip a # IP-Adressen anszeigen
ip l # Interfaces
ip r # Routingtabelle
ip n # ARP-Einträge
ss -t # Alle TCP verbindungen
route -n # Routingtabelle in numerischer Darstellung
sudo netstat -tulpn # Zeigt alle TCP/UDP verbindungen an
# Viele infos zusammengefasst
nmcli dev show
DNS Resolver
Ist der Lokale DNS eintrag
Bearbeitung unter /etc/resolf.conf
IP-Konfiguration im Terminal
/etc/network/interfaces | # Einstellungen der Interfaces |
/etc/netplan |
hier wird bestimmt wer die Konfiguration verwaltet renderer: ist das Gerät was das Netzwerk verwaltet |
nmcli | Konfiguration vor nehmen |
nmcli connection edit Kabelgebundene Verbindung 1 |
um das Interface Kabelgebundenen Verbindung 1 zu bearbeiten |
> help |
hilfe |
anzeigen |
|
> remove ipv4.addresses > set ipv4.addresses 192.168.1.111/24 |
ipv4 adresse festlegen |
> set ipv4.gateway 192.168.1.1 |
Gateway ändern |
> remove ipv4.dns > set ipv4.dns 8.8.8.8 |
DNS speidchern |
> save |
Speichern |
> quit |
Beenden |
nmcli connection down Kabelgebundene Verbindung 1 nmcli connection up Kabelgebundene Verbindung 1 |
Initialisieren |
CentOS |
|
cd /etc/libvirt/qemu/networks/autostart |
wenn hier ein Link drin ist, dann ist das ein Interface was CentOS zu virtualisierungszwecken benötigt. Diese kann man löschen mit Beispielhaft: rm default.xml Nach einem Neustart sind die Verbindungen nicht mehr vorhanden |
cd /etc/sysconfig/network-scripts/ |
beinhaltet die Netzwerkkonfiguration |
nano ifcfg-enp0s3 |
|
nmcli connection modify enp0s3 ipv4.addresses 192.168.1.120/24 ipv4.gateway 192.168.1.200 ipv4.dns 8.8.8.8 |
Damit werden die Parameter gesetzt |
nmcli connection down enp0s3 |
|
nmcli connection up enp0s3 |
|
nmcli connection mod enp0s3 ipv4.method manual |
um von Dynamisch auf Statisch umzuschalten |
nmcli dev |
Anzeigen der Netzwerkverbindungen |