# Sammlung Codes und Tricks
# iptables
### Eintrag löschen nach Nummer in der Chain
```bash
sudo iptables -L --line-numbers
```
Output:
```
Chain INPUT (policy DROP)
num target prot opt source destination
1 ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
2 ACCEPT all -- anywhere anywhere
3 DROP all -- anywhere anywhere ctstate INVALID
4 UDP udp -- anywhere anywhere ctstate NEW
5 TCP tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN ctstate NEW
6 ICMP icmp -- anywhere anywhere ctstate NEW
7 REJECT udp -- anywhere anywhere reject-with icmp-port-unreachable
8 REJECT tcp -- anywhere anywhere reject-with tcp-reset
9 REJECT all -- anywhere anywhere reject-with icmp-proto-unreachable
10 ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ctstate NEW,ESTABLISHED
```
```bash
sudo iptables -D INPUT 3
```
# chmod
## **Wert**
| ## **Rechte**
|
### 0
| ### Keine
|
### 1
| ### x
|
### 2
| ### w
|
### 3
| ### w+x
|
### 4
| ### r
|
### 5
| ### r+x
|
### 6
| ### r+w
|
### 7
| ### r+w+x
|
# In History suchen mit Bild nach oben und Bild nach unten
Hierzu muss in der Datei "/etc/inputrc" folgender Inhalt aktiviert werden unter Linux:
```shell
# alternate mappings for "page up" and "page down" to search the history
"\e[5~": history-search-backward
"\e[6~": history-search-forward
```
Ist die Aktivierung unter "/etc/inputrc" nicht möglich, kann im Homeverzeichnis des Users folgende Datei angelegt werden "$HOME/.inputrc" mit dem gleichen Inhalt wie oben angegeben.
Möchte man erreichen, dass sogar bei parallel geöffneten Tabs bzw. Fenstern die History aus allen Tabs nach jedem Befehl gespeichert und dadurch jedem bereits geöffneten anderen Tab sofort zur Verfügung gestellt wird, ohne dafür einen neuen Tab öffnen zu müssen, trägt man stattdessen folgende Zeile ein in ".bashrc" :
```shell
PROMPT_COMMAND="history -a; history -c; history -r"
```
# Vaultwarden Admin Passwort setzen
[](https://wiki.unixweb.net/uploads/images/gallery/2024-04/vaultwarden-logo.png)
Bei der Vaultwarden Docker Installation mit docker-compose erhält man einen Fehler wenn folgender Eintrag gemacht wird.
Die Variable "ADMIN\_TOKEN" wird nicht richtig als String gelesen und Vaultwarden ist über "./admin" nicht erreichbar oder das Passwort wird als falsch erkannt.
```yaml
services:
bitwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
ports:
- 8060:80
- 3012:3012
volumes:
- bw2-data:/data
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- bw2-data:/log
# - LOG_FILE=/home/joachim/docker/bitwarden/log/bitwarden.log
environment:
- WEBSOCKET_ENABLED=true
- SIGNUPS_ALLOWED=true
- SIGNUPS_VERIFY=true
#- ADMIN_TOKEN: "$argon2id$v=19$m=65540,t=3,p=4$u/fA7M86QrbBzN6eZjYOESs5EhLXQvYcuwBHTE1/gIE$23stGPt3z5CKQclPGH/p77VsvMl9ZOwkkr8ViP1JNq"
- ADMIN_TOKEN=${ADMIN_TOKEN}
- INVITATIONS_ALLOWED=true
- SHOW_PASSWORD_HINT=false
- DATABASE_URL=mysql://vaultwarden:xxxxxxx@192.168.XXX.XXX:3306/vaultwarden2
volumes:
bw2-data:
```
#### Abhilfe :
Erstelle im Installationsverzeichnis von Vaultwarden eine Datei ".env" mit folgendem Inhalt und ersetze in der "docker-compose.yml" die Variable "- ADMIN\_TOKEN=${ADMIN\_TOKEN}" :
```yaml
ADMIN_TOKEN="$argon2id$v=19$m=65540,t=3,p=4$u/fA7M86QrbBzN6eZjYOESs5EhLXQvYcuwBHTE1/gIE$23stGPt3z5CKQclPGH/p77VsvMl9ZOwkkr8ViP1JNq"
```
Der Token wird durch folgenden Befehl erstellt :
```shell
docker exec -it vaultwarden /vaultwarden hash
```
# Websocket in Nginx Proxy Manager
[](https://wiki.unixweb.net/uploads/images/gallery/2024-04/bildschirmfoto-2024-04-04-um-20-08-25.png)Einrichtung Websocket für Vaultwarden:
```plain
location: /notifications/hub
scheme: http
forward-hostname/ip: IPvonVaultwarden
port: 3012
zahnradmenü: proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
```
```plain
location: /notification/hub/negotiate
scheme: http
forward-hostname/ip: IPvonVaultwarden
port: 8080
```
# Tasmota Rules / Regeln
```shell
rule1 on Time#Minute|1 DO ping4 [IP-Adresse] ENDON
rule1 on Time#Minute|1 DO ping4 [IP-Adresse] ENDON ON ping#[IP-Adresse]#Success=4 DO tmsend Netzwerkverbindung von NAS-Speicher OK! ENDON
rule1 on Time#Minute|1 DO ping4 [IP-Adresse] ENDON ON ping#[IP-Adresse]#Success=0 DO tmsend Netzwerkverbindung von NAS-Speicher unterbrochen! ENDON
rule1 on Time#Minute|1 DO BACKLOG ping4 [IP-Adresse1]; ping4 [IP-Adresse2]; ping4 [IP-Adresse3] ENDON ON ping#[IP-Adresse1]#Success=4 DO tmsend Netzwerkverbindung [dein Gerät] ok! ENDON ON ping#[IP-Adresse2]#Success=4 DO tmsend Netzwerkverbindung [dein Gerät] ok! ENDON ON ping#[IP-Adresse3]#Success=4 DO tmsend Netzwerkverbindung [dein Gerät] ok! ENDON
rule1 on Time#Minute|1 DO BACKLOG ping4 [IP-Adresse1]; ping4 [IP-Adresse2]; ping4 [IP-Adresse3] ENDON ON ping#[IP-Adresse1]#Success=0 DO tmsend Netzwerkverbindung [dein Gerät] unterbrochen! ENDON ON ping#[IP-Adresse2]#Success=0 DO tmsend Netzwerkverbindung [dein Gerät] unterbrochen! ENDON ON ping#[IP-Adresse3]#Success=0 DO tmsend Netzwerkverbindung [dein Gerät] unterbrochen! ENDON
```
# Raspberry Pi 5 Lüfter Steuerung
In der Datei /boot/firmware/config.txt müssen folgende Parameter eingetragen werden. Die Beschreibung sollte selbsterklärend sein.
```shell
[all]
# Bei Temperatur 35 Grad Celsius Lüfter auf 0-250 / 100 setzen
dtparam=fan_temp0=35000
dtparam=fan_temp0_hyst=5000
dtparam=fan_temp0_speed=100
# Bei Temperatur 60 Grad Celsius Lüfter auf 0-250 / 125 setzen = Halber Speed
dtparam=fan_temp1=60000
dtparam=fan_temp1_hyst=5000
dtparam=fan_temp1_speed=125
# Bei Temperatur 67,5 Grad Celsius Lüfter auf 0-250 / 175 setzen = Dreiviertel Speed
dtparam=fan_temp2=67500
dtparam=fan_temp2_hyst=5000
dtparam=fan_temp2_speed=175
# Bei Temperatur 75 Grad Celsius Lüfter auf 0-250 / 250 setzen = Full Speed
dtparam=fan_temp3=75000
dtparam=fan_temp3_hyst=5000
dtparam=fan_temp3_speed=250
```
# Hetzner /etc/apt/sources.list
Es gibt auf verschiedenen Hetzner Server Fehler mit "apt update" und "apt upgrade". Ein "--fix-missing" ist leider nicht erfolgreich.
Lösung ARM64 ist nicht eingetragen und muss auf anderen Mirror umgestellt werden:
```
deb https://mirror.hetzner.com/ubuntu-ports/packages jammy main restricted
deb https://mirror.hetzner.com/ubuntu-ports/packages jammy-updates main restricted
deb https://mirror.hetzner.com/ubuntu-ports/packages jammy universe
deb https://mirror.hetzner.com/ubuntu-ports/packages jammy-updates universe
deb https://mirror.hetzner.com/ubuntu-ports/packages jammy multiverse
deb https://mirror.hetzner.com/ubuntu-ports/packages jammy-updates multiverse
deb https://mirror.hetzner.com/ubuntu-ports/packages jammy-backports main restricted universe multiverse
```
\# dpkg --print-architecture. zeigt die Architektur an.
# Nvidia Treiber unter Ubuntu 24.01 installieren
## Add Nvidia PPA
Ensure your system has the latest packages
```
sudo apt update && sudo apt upgrade -y
```
Add the Nvidia PPA
```
sudo add-apt-repository ppa:graphics-drivers/ppa
```
When prompted hit `ENTER` to continue. Pull the latest packages
```
sudo apt update
```
Check which drivers are available. I usually go with the 'recommended' version
```
ubuntu-drivers devices
```
## Install Drivers
Once you identify the driver you wish to install, use `apt` to install it
```
sudo apt install nvidia-driver-
```
Reboot for the changes to take effect
```
sudo reboot now
```
## Confirm Installation
Check `nvidia-smi` to see if the GPU is detected and the correct driver version is installed
```
nvidia-smi
```
I have the nvidia-driver-560 installed at the time of this guide, and my output reflects that
# Anleitung: Anaconda Installation
### **Anleitung: Anaconda installieren und nutzen**
Anaconda ist eine Open-Source-Distribution, die vor allem für Data Science, maschinelles Lernen und wissenschaftliches Computing verwendet wird. Sie vereinfacht die Verwaltung von Python- und R-Paketen und Umgebungen.
---
### **Was ist Anaconda und wofür ist es gut?**
1. **Python-Umgebungen:**
- Anaconda erleichtert die Verwaltung von Python-Versionen und -Bibliotheken, sodass Projekte mit unterschiedlichen Anforderungen problemlos parallel laufen können.
2. **Pakete und Tools:**
- Es enthält viele nützliche Tools wie **Jupyter Notebook**, **Spyder** und **conda** (Package- und Environment-Manager).
- Beliebte Bibliotheken wie NumPy, pandas, TensorFlow und Matplotlib sind vorkonfiguriert.
3. **Vorteile:**
- Kein Konflikt zwischen verschiedenen Bibliotheken.
- Ideal für Data-Science-Projekte.
- Erleichtert die Zusammenarbeit, da man leicht reproduzierbare Umgebungen erstellen kann.
---
[](https://wiki.unixweb.net/uploads/images/gallery/2024-12/grafik.png)
### **Anleitung: Installation von Anaconda**
#### **Schritt 1: Anaconda herunterladen**
1. Gehe auf die [offizielle Anaconda-Website](https://www.anaconda.com/).
2. Lade die Installationsdatei für dein Betriebssystem herunter (Windows, macOS oder Linux).
#### **Schritt 2: Installation unter Windows**
1. Starte den Installer.
2. Folge den Anweisungen:
- Wähle die Option "Just Me" für eine Einzelbenutzerinstallation.
- Empfohlen: Installiere Anaconda für deinen Benutzer (kein Admin-Zugang nötig).
- Lass den Anaconda-Installer den Pfad setzen.
3. Aktiviere die Option: "Add Anaconda3 to my PATH environment variable" **nur**, wenn du sicher bist, dass keine andere Python-Installation Probleme verursacht.
#### **Schritt 3: Installation unter macOS und Linux**
1. Öffne ein Terminal.
2. Führe den heruntergeladenen Installer mit: ```bash
bash Anaconda3-*.sh
```
3. Folge den Installationsanweisungen im Terminal.
#### **Schritt 4: Installation überprüfen**
Nach der Installation kannst du prüfen, ob alles funktioniert:
```bash
conda --version
```
Dies sollte die installierte Version anzeigen.
---
### **Erste Schritte mit Anaconda**
#### **1. Anaconda Navigator starten**
- **Windows/macOS:** Suche nach "Anaconda Navigator" und starte es.
- **Linux:** Gib im Terminal ein: ```bash
anaconda-navigator
```
Der Navigator bietet eine grafische Oberfläche, um Pakete zu installieren, Umgebungen zu verwalten und Tools wie Jupyter Notebook zu starten.
#### **2. Umgebung erstellen**
Du kannst separate Umgebungen für verschiedene Projekte erstellen:
```bash
conda create --name meine_umgebung python=3.9
conda activate meine_umgebung
```
#### **3. Pakete installieren**
Füge Bibliotheken hinzu:
```bash
conda install numpy pandas matplotlib
```
#### **4. Jupyter Notebook starten**
```bash
jupyter notebook
```
Dies öffnet eine Weboberfläche, auf der du Python-Skripte interaktiv ausführen kannst.
---
### **Nützliche Befehle für die Arbeit mit Anaconda**
**Befehl** | **Beschreibung** |
---|
`conda list` | Zeigt alle installierten Pakete in der Umgebung. |
`conda update conda` | Aktualisiert den Conda-Paketmanager. |
`conda deactivate` | Beendet die aktive Umgebung. |
`conda env list` | Listet alle verfügbaren Umgebungen. |
`conda remove --name meine_umgebung` | Löscht eine Umgebung. |
---
### **Fazit**
Anaconda ist ein leistungsstarkes Tool, das die Arbeit mit Python-Umgebungen erheblich erleichtert. Es ist besonders nützlich für Entwickler, die an Projekten im Bereich Data Science oder maschinelles Lernen arbeiten. Dank der integrierten Tools wie Jupyter Notebook und der einfachen Paketverwaltung ist es sowohl für Anfänger als auch für Experten geeignet.
# git clone verzeichnis
Wenn ich nur ein bestimmtes Verzeichnis aus einem git repository clonen möchte sind folgende Schritte nötig:
```shell
git clone --no-checkout git@git.local:gitbenutzer/clone-directory.git
```
**Sparse Checkout aktivieren:** Aktiviere Sparse Checkout:
```shell
git sparse-checkout init
```
**Unterverzeichnis auswählen:** Gib das Unterverzeichnis an, das du herunterladen möchtest. Zum Beispiel, wenn das Unterverzeichnis `releases/` heißt:
```shell
git sparse-checkout set releases/1/
```
project/
├── releases/
│ ├── file1.txt
│ └── file2.txt
├── anotherdir/
└── README.md
**Sparse Checkout Änderungen:** Falls du später ein weiteres Verzeichnis hinzufügen möchtest, kannst du den Befehl `git sparse-checkout set` erneut ausführen:
```shell
git sparse-checkout set releases/1 releases/2
```
# Datei Import bei Cryptpad
Bei Cryptpad gibt es das Problem, wenn Dateien in Word oder Excel Format hochgeladen werden, diese nicht in das integrierte OnlyOffice geöffnet werden.
In dem Bild unten wurde eine Datei "Mai-2025-Leistungsnachweis" im Excel Format hochgeladen. Man kann die Datei sehen, aber nicht das es eine Excel Datei ist. Beim klicken auf die Datei muss man die Datei lokal herunterladen und dann lokal bearbeiten.
[](https://wiki.unixweb.net/uploads/images/gallery/2025-05/bildschirmfoto-2025-05-16-um-15-35-35.png)
Hier wird beim anklicken der Download Dialog geöffnet. Was für ein Unsinn, da es voraussetzt, dass lokal auf den PC ein Office installiert sein muss. Warum kann man die Datei nicht in Excel bearbeiten, welches ja schon in Cryptpad integriert ist. Also ein Excel oder Word welches direkt im Browser läuft?
[](https://wiki.unixweb.net/uploads/images/gallery/2025-05/bildschirmfoto-2025-05-16-um-15-38-16.png)
Nun kommt der Trick das Excel doch im Browser geöffnet werden kann und man die Datei im Browser bearbeitet.
Voraussetzung ist, dass Tabelle, Dokument, Präsentation usw. installiert und aktiviert ist in CryptPad.
[](https://wiki.unixweb.net/uploads/images/gallery/2025-05/bildschirmfoto-2025-05-16-um-15-27-08.png)
Beim erstellen einer neuen Tabellen Datei gibt es links oben den Punkt "Datei" <- dort drauf klicken. Es öffnet sich ein Dialogfenster und dort den Menüpunkt "Importieren" auswählen. Es öffnet sich ein Dateibrowser wo man die zu importierende Datei als Excel Datei auswählt.
[](https://wiki.unixweb.net/uploads/images/gallery/2025-05/bildschirmfoto-2025-05-16-um-15-38-50.png)
Bei Erfolg kommt diese Meldung:
[](https://wiki.unixweb.net/uploads/images/gallery/2025-05/bildschirmfoto-2025-05-16-um-15-39-14.png)
Die Excel Datei wird nun in Cryptpad Dateiablage als Excel-Tabelle mit dem richtigen Icon angezeigt. In diesem Beispiel als "Tabelle Erfolgreich Import angezeigt.
[](https://wiki.unixweb.net/uploads/images/gallery/2025-05/bildschirmfoto-2025-05-16-um-15-40-03.png)
Die Datei lässt sich nun mit dem vollständigen Funktionsumfang von OnlyOffice direkt im Browser bearbeiten.
[](https://wiki.unixweb.net/uploads/images/gallery/2025-05/bildschirmfoto-2025-05-16-um-15-59-20.png)
Wünsche weiterhin viel Erfolg und Spaß mit CryptPad.