Skip to main content

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 
mit dem befehl wird das Verzeichnis erstellt

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 
/ Verzeichnis

* 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
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

bunzip2 firefox.tar.bz2

bzip2 -d 

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)

tar -czf firefox-gzip.tar.gz firefox

tar -cjf firefox-gzip.tar.bz2 firefox

Pakt den Ordner firefox in ein Archiv und komprimiert mit gzip

komprimierung mit bz2

tar -xzf firefox-gzip.tar.gz

tar -xjf firefox-zip.tar.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 
Optionen: defaults, rw,auto,relatime (man mount)

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

pvcreate /dev/sdb1

pvcreate /dev/sdb2

Physical Volume create

pvs

übersicht

vgcreate system /dev/dsb1 /dev/sdc1

Volume Group erstellen

vgs

Volume Groups übersicht

lvcreate -L3g -n home system

Logical Volume erstellen

-L3g = Größe 3 GB

-n = Name

aus der Gruppe System

lvs

Logical Volumes Übersicht

Logical Volumes formatieren und mounten


mkfs.ext4 /dev/system/home

das Logical Volume in ext4 formatieren

mount /dev/system/home /home

das Volumen mounten

Erweitern


vgextend storage /dev/sdc3

dabei wird die Volume Group storage um eine weitere Partition erweitert

umount /video

Vor dem einbinden muss das Volume unmounted werden

lvresize -L 9g /dev/storrage/video

Die Größe wird auf 9 GB festgelegt. 

mit -L +4g kann das Volume um 4 GB erweitert werden. (besser nicht verwenden)

resize2fs /dev/storage/video 9g

Dateisystem anpassen

mount /dev/storage/video /video

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

nmcliKonfiguration vor nehmen
nmcli connection edit Kabelgebundene Verbindung 1

um das Interface Kabelgebundenen Verbindung 1 zu bearbeiten

> help

hilfe

> print

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