Wie bewahre ich den Export PFAD auf?

2790
user2298896

Wie kann ich ssh admin@nas commandarbeiten, wenn in commandist /opt/bin?

In meiner QNAP NAS-Datei /root/.ssh/rc :

echo "old path is $PATH" export PATH=/opt/bin:/opt/sbin:$PATH echo "new path is $PATH" 

auf meinem Rechner:

~$ ssh admin@nas 'echo $PATH' 

kehrt zurück

old path is /usr/bin:/bin:/usr/sbin:/sbin new path is /opt/bin:/opt/sbin:/usr/bin:/bin:/usr/sbin:/sbin /usr/bin:/bin:/usr/sbin:/sbin 

Die Pfadvariable wird also nicht beibehalten. Wie kann ich das erreichen?

Edit: Wie ich in meinem Kommentar unter dem Befehl erwähnte ich versuche zu verwenden git oder, präziser git-upload-packund git-receive-packwahrscheinlich einige andere. Ich möchte sie an verschiedenen Orten und zu unterschiedlichen Anlässen verwenden und möchte nicht die Einrichtung einer git config auf jeder Maschine, auf der ich sie benutze, machen oder meiner IDE beibringen, wie sie mit meinem NAS kommuniziert, sondern eher meine NAS-konformen Standards. Also habe ich mir gedacht, dass ich alles richtig machen muss$PATH

Edit II: Was ich bisher versucht hat, wurde auch das Einfügen export PATH=...sowie das Hinzufügen einer anderen echo(zu überprüfen, sie laufen) zu ~/.bash_profile, to /etc/profileund ~/.bashrc. Anscheinend wird keiner von ihnen ausgeführt, wenn ich einen nicht interaktiven Befehl wie oben ausführte. Wenn ich das tue, werden ssh admin@nasalle hingerichtet, aber das hilft nicht

0
klebe es in ~ / .bash_profile shorif2000 vor 11 Jahren 0
Ich habe das zusammen mit dem Hinzufügen eines weiteren Echos (um zu überprüfen, ob sie ausgeführt werden) zu `~ / .bash_profile`, zu` / etc / profile` und zu ~ / .bashrc` versucht. Anscheinend wird keiner von ihnen ausgeführt, wenn ich einen nicht interaktiven Befehl wie oben ausführte. Wenn ich `ssh admin @ nas` mache, werden alle ausgeführt, aber das hilft nicht user2298896 vor 11 Jahren 0
Wie wäre es mit ~ / .bashrc? Scott vor 11 Jahren 0
Wie in meinem vorherigen Kommentar beschrieben, habe ich das versucht user2298896 vor 11 Jahren 0
Loggen Sie sich mit `su -` in root ein shorif2000 vor 11 Jahren 0
Am Ende habe ich Symlinks zu den betreffenden Befehlen in `/ bin` erstellt. Das ist für mich in Ordnung. user2298896 vor 11 Jahren 0

2 Antworten auf die Frage

1
Cipi

Wenn Sie als Admin angemeldet sind, ~/.bashrcwird dies nicht verwendet ~/.profile. So können Sie dies zu .profile hinzufügen:

export PATH=\ /bin:\ /sbin:\ /opt/bin:\ #<--- HERE IT IS NOW /usr/bin:\ /usr/sbin:\ /usr/bin/X11:\ /usr/local/bin 

PATH wird so geladen, wenn Sie sich als Administrator anmelden. Was ich an meinem NAS gemacht habe, ist, dass ich dies .bashrc hinzugefügt habe und .profile so geändert habe, dass es nur eine Zeile hat:

source ~/.bashrc 

Wenn Sie sich also als Administrator anmelden, wird SH immer noch mit .bashrc konfiguriert.

EDIT: Ich verstehe jetzt, was Sie wollen ...

Erstellen Sie einfach symbolische Links zu diesen beiden Binärdateien in / usr / bin. Zum Beispiel:

cd /usr/bin && ln -s /opt/bin/git-upload-pack 
0
Sepahrad Salour

Sie können real addressBefehl anstelle von Befehl in ssh admin @ nas eingeben command. Wie unten:

ssh admin@nas /opt/bin/command-name

Vielen Dank für die Antwort, das funktioniert, aber der Befehl, den ich verwenden möchte, ist git oder, genauer gesagt, git-upload-pack und git-receive-pack und wahrscheinlich einige andere. Ich möchte sie an verschiedenen Orten und zu unterschiedlichen Anlässen verwenden und möchte nicht die Einrichtung einer git config auf jeder Maschine, auf der ich sie benutze, machen oder meiner IDE beibringen, wie sie mit meinem NAS kommuniziert, sondern eher meine NAS-konformen Standards. Also dachte ich mir, dass ich nur den richtigen "$ PATH" einstellen muss user2298896 vor 11 Jahren 0