Usecase
In o.g. Pfad soll durch Unterordner etwas Struktur reinkommen.
ChatGPTs Ansatz für Fish
🧠 Grundlegend
In Fish ist die PATH
-Variable eine Liste, nicht ein durch :
getrennter String wie in Bash.
Du bearbeitest sie so:
set -U fish_user_paths /mein/pfad $fish_user_paths
📍 Schritt für Schritt: z. B. /usr/local/bin/ssh
in den PATH
1. Ordner existiert und enthält deine Skripte
✅ Hast du schon:
/usr/local/bin/ssh/remoteaccess.ssh
2. Fish dauerhaft sagen, dass er dort suchen soll
set -U fish_user_paths /usr/local/bin/ssh $fish_user_paths
🔒 Das speichert Fish in ~/.config/fish/fish_variables
.
3. Neue Shell starten – oder:
exec fish
Jetzt kannst du in Fish direkt remoteaccess.ssh
tippen, Tab
-Vervollständigung funktioniert (sofern das Skript ausführbar ist), und du brauchst keinen Symlink.
✅ Kontrolle: Ist der Pfad drin?
echo $PATH
→ Sollte ... /usr/local/bin/ssh
enthalten
Oder:
contains /usr/local/bin/ssh $PATH
→ Gibt nichts aus = nein
→ Gibt Pfad aus = ja
🧽 Entfernen eines Eintrags
Falls du es rückgängig machen willst:
set -eU fish_user_paths
oder selektiv:
set -U fish_user_paths (string match -v /usr/local/bin/ssh $fish_user_paths)
🧠 Bonus: $fish_user_paths
vs $PATH
$PATH
= aktuelle Liste aller gültigen Pfade$fish_user_paths
= von dir definierte, benutzerbezogene Pfade, die beim Start automatisch in$PATH
eingemischt werden
Damit hast du dauerhaft saubere Kontrolle, ohne Systemdateien wie /etc/profile
oder /etc/environment
anfassen zu müssen. Ideal für eigene Skriptverzeichnisse.
ChatGPTs Ansatz für Bash
🔧 Vorgehen im Detail:
1. Ordnerstruktur anlegen
sudo mkdir -p /usr/local/bin/meine_tools
sudo chown -R root:root /usr/local/bin/meine_tools
sudo chmod 755 /usr/local/bin/meine_tools
2. Skript dort ablegen
sudo nano /usr/local/bin/meine_tools/myscript.sh
Und dann z. B. sowas reinschreiben:
#!/bin/bash
echo "Hallo Welt!"
Dann ausführbar machen:
sudo chmod +x /usr/local/bin/meine_tools/myscript.sh
3. Unterordner in den PATH
aufnehmen
Temporär (nur für aktuelle Shell):
export PATH="/usr/local/bin/meine_tools:$PATH"
Dauerhaft z. B. für alle Nutzer:
echo 'export PATH="/usr/local/bin/meine_tools:$PATH"' | sudo tee -a /etc/profile.d/meine_tools.sh
sudo chmod +x /etc/profile.d/meine_tools.sh
Nach einem Neustart (oder source /etc/profile
) ist dein Unterordner dann systemweit verfügbar.
💡 Alternative: Symbolische Links in /usr/local/bin
Wenn du dein Ordnerchaos lieber im Griff behalten willst, kannst du die eigentlichen Skripte in Unterordnern lassen, aber Symlinks ins /usr/local/bin
-Verzeichnis setzen:
sudo ln -s /usr/local/bin/meine_tools/myscript.sh /usr/local/bin/myscript
Dann brauchst du den Unterordner nicht zum $PATH
hinzufügen, und alles bleibt sauber und standardkonform.
Fazit
✅ Ja, geht.
📌 Besser: Unterordner mit Bedacht nutzen oder Symlinks setzen.
⚠️ Wenn du keine Änderungen an $PATH
willst, dann Symlinks bevorzugen.