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