(Ich spreche von der Shell Fisch , insb. Des Fisches Fisch .)
Für Bash / ZSH hatte ich ~/.profile
mit einigen Exporten, Aliasen und anderem Zeug zu tun .
Ich möchte keine separate Konfiguration für Umgebungsvariablen für Fish haben, ich möchte my wiederverwenden ~/.profile
. Wie?
In den FAQ wird angegeben, dass ich diese zumindest über importieren kann /usr/local/share/fish/tools/import_bash_settings.py
, aber ich mag es nicht wirklich, das für jede Fisch-Instanz auszuführen.
usermod -s /usr/local/bin/fishlogin $USER
istchsh -s /usr/local/fishlogin $USER
chsh: /usr/local/bin/fishlogin: non-standard shell
hinzufügen müssen/etc/shells
fish "$@"
sollte durch ersetzt werdenexec -l fish "$@"
.exec
Ersetzt den Bash-Prozess durch Fisch, während für Fisch-l
bewirktargv[0]
wird-fish
, dass dies eine Anmelde-Shell ist.Meine aktuelle Lösung (siehe hier für eine möglicherweise neuere Version):
quelle
Für eine viel sauberere Lösung können Sie das fremde Env- Plugin verwenden:
quelle
Sie können Bass , ein Plugin, verwenden, um Bash-Befehle in Fischen auszuführen.
Bass einbauen .
Und dann geben Sie dies einfach ein
config.fish
:quelle
.profile
, die zu viel los ist.bass
Auf der anderen Seite werden alle Bash-Shell-Skripte interpretiert und in Fisch ausgeführt. Es wird sicherlich etwas mehr Aufwand haben, aber meiner Erfahrung nach völlig vernachlässigbar, aber Ihre Laufleistung kann variieren.Ich habe versucht, .profile beim Fischstart zu beschaffen, und es hat wie ein Zauber für mich funktioniert.
mach einfach :
Starten Sie terminal oder iterm2 neu und testen Sie einen Alias von
.profile
bis test.Hinweis: Funktioniert nicht mit komplexeren .profile-Dateien, deren Syntax in fish-credit @erb nicht verfügbar ist
quelle
.profile
Dateien, deren Syntax für Fische nicht verfügbar ist.Installieren Sie
dash
und fügen Sie diese Zeile zu Ihremconfig.fish
:quelle
dash
- wird nursh
tun (was wahrscheinlich Bindestrich ist)Das kannst du nicht.
fish
Die Syntax von unterscheidet sich zu stark von der von Bourne shell (/bin/sh
). Dies ist der gleiche Grund, warum Sie ihn nicht für.profile
andere nicht von Bourne abgeleitete Shells verwenden können, z. B.csh
undtcsh
.quelle
.profile
. Ich will nur alleexport
s von dort bekommen. Ein einfacher Weg wäre der,egrep "^export"
der mir schon gut genug wäre. Eine andere, korrektere Lösung wäre dies . Außerdem könnte ich zB diesesimport_bash_settings.py
Skript ausführen, das wahrscheinlich etwas Ähnliches macht. Es gibt also offensichtlich viele Möglichkeiten, dies zu tun. Mit meiner Frage hier habe ich mich gefragt, wie andere dies gelöst haben.Wenn Ihre Distribution PAM verwendet , können Sie Ihre Umgebungsvariablen in Ihrer
~/.pam_environment
Datei festlegen .quelle
Sie können Fisch von Bash starten. In diesem Fall erbt Fish alle Umgebungsvariablen (
export FOO=bar
) von Bash. Zu diesem Zeitpunkt hat Bash Ihr.profile
(oder ähnliches) bereits gelesen .quelle