Как мне сохранить экспортный путь?

2730
user2298896

Как я могу сделать ssh admin@nas commandработу, если commandв /opt/bin?

В моем файле NAS QNAP /root/.ssh/rc :

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

на моей машине:

~$ ssh admin@nas 'echo $PATH' 

возвращается

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 

поэтому переменная пути не сохраняется. Как я могу этого достичь?

Изменить: Как я уже говорил в моем комментарии под командой я пытаюсь использовать это мерзавец или, более конкретно git-upload-packи git-receive-packи, возможно, некоторые другие. Я хочу использовать их в разных местах и ​​случаях и не хочу настраивать git-конфигурацию на каждой машине, на которой я использую его, или учить свою среду IDE взаимодействовать с моим NAS, а скорее иметь свои стандарты, соответствующие NAS. Так что я решил, что все, что мне нужно, это установить право$PATH

Edit II: то, что я действительно пытался до сих пор также вставляя export PATH=..., а также добавление другого echo(чтобы убедиться, что они работать), чтобы ~/.bash_profile, to /etc/profileи ~/.bashrc. Очевидно, что ни один из них даже не выполняется, когда я запускаю неинтерактивную команду, как описано выше. Если я делаю, ssh admin@nasвсе они выполняются, но это не помогает

0
вставьте его в ~ / .bash_profile shorif2000 11 лет назад 0
я попробовал это, добавив еще одно эхо (чтобы убедиться, что они запущены) в `~ / .bash_profile`, в` / etc / profile` и в `~ / .bashrc`. Очевидно, что ни один из них даже не выполняется, когда я запускаю неинтерактивную команду, как описано выше. Если я сделаю `ssh admin @ nas`, все они будут выполнены, но это не поможет user2298896 11 лет назад 0
Как насчет `~ / .bashrc`? Scott 11 лет назад 0
Как описано в моем предыдущем комментарии, я попробовал это user2298896 11 лет назад 0
войти в систему с помощью `su -` shorif2000 11 лет назад 0
Я закончил тем, что создал символические ссылки на рассматриваемые команды в `/ bin`. Это подходит для меня. user2298896 11 лет назад 0

2 ответа на вопрос

1
Cipi

Если вы вошли в систему как администратор, ~/.bashrcне используется, но ~/.profileесть. Таким образом, вы можете добавить это в .profile:

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

И PATH будет загружаться так, когда вы входите в систему как администратор. То, что я сделал на моем nas, это то, что я добавил это в .bashrc и изменил .profile, чтобы иметь только 1 строку:

source ~/.bashrc 

Поэтому, когда вы входите в систему как администратор, вы по-прежнему настраиваете SH с помощью .bashrc.

РЕДАКТИРОВАТЬ: Теперь я понимаю, что вы хотите сделать ...

Просто создайте символические ссылки на эти два двоичных файла внутри / usr / bin. Например:

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

Вы можете ввести real addressкоманду вместо команды в ssh admin @ nas command. Как ниже:

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

спасибо за ответ, это работает, но я пытаюсь использовать команду git или, более конкретно, `git-upload-pack` и` git-receive-pack` и, возможно, некоторые другие. Я хочу использовать их в разных местах и ​​случаях и не хочу настраивать git-конфигурацию на каждой машине, на которой я использую его, или учить свою среду IDE взаимодействовать с моим NAS, а скорее иметь свои стандарты, соответствующие NAS. Итак, я решил, что все, что мне нужно, это установить правильное значение `$ PATH` user2298896 11 лет назад 0

Похожие вопросы