Команды, не работающие над xterm, но работой на ssh сессии

Я установил Ubuntu 16.04 с Xrdp и Xfce4 для удаленного доступа. Установленный рубин с помощью RVM. Когда я пытаюсь получить доступ к Ruby, Интерактивному (irb), он работает отлично от оболочки SSH (я ввожу irb, и я могу использовать интерактивную рубиновую среду). Однако, когда я делаю удаленный вход в систему и использую Xterm, он не может найти много команд (как irb, reboot, shutdown) Я запрашиваю использование RVM снова и вижу, что рубин установлен. Это не только о рубине, я вижу, что много других команд не доступны.

Когда я ввожу

echo $SHELL

Ясно

/bin/bash
0
задан 28 September 2017 в 13:59

2 ответа

Похоже, что Ваша переменная ПУТИ по-другому создается в зависимости от того, как ввести оболочку.

Вы могли проверить дважды с

echo $PATH

для различий.

у меня нет опыта со средой Ruby, но я мог предположить, что существует сценарий, получаемый, который настраивает все (например, как с node/npm).

Bash потенциально получает несколько сценариев как/etc/profile, ~/.profile ~/.bash_rc,/etc/bash.bashrc.

, Возможно, Ваша xterm конфигурация использует - noprofile или - norc, или она не вызывается как оболочка входа в систему и поэтому не получает соответствующую часть для установки Вашей среды Ruby.

От удара человека:

When bash is invoked as an interactive login shell, or as a  non-
inter-active  shell with the --login option, it first reads and 
executes com-mands from the file /etc/profile, if that file exists. 
After reading that file, it looks for ~/.bash_profile, ~/.bash_login, 
and ~/.profile, in that order, and reads and executes commands from 
the first one that exists  and  is  readable.  The --noprofile option 
may be used when the shell is started to inhibit this behavior.

и

When an interactive shell that is not a login shell is started, bash 
reads and executes commands from /etc/bash.bashrc  and  ~/.bashrc, if
these files exist. This may be inhibited by using the --norc option.

Редактирование: вот снимок экрана, показывающий что потребности быть настроенным для первоисточника xterm

enter image description here

здесь: https://rvm.io/integration/gnome-terminal

0
ответ дан 2 November 2019 в 05:01

bash поиски команды, которую Вы вводите (принятие команды НЕ является псевдонимом или встроенным и не запускается с"/") в каталогах, перечисленных в разделенном от двоеточия списке, содержавшемся в PATH переменная. echo $PATH показать его. Я не имею irb установленный, но reboot и shutdown находятся в /sbin/ каталог.

export PATH=$PATH:/sbin

сделает reboot и shutdown видимый.

Можно найти где irb расположен путем входа в систему с ssh, затем

type -p irb

Добавьте этот каталог к Вашему PATH.

Проверьте свой терминальный тип (echo $TERM) в каждой среде, и посмотрите если $TERM влияние Ваш ~/.bashrc.

0
ответ дан 2 November 2019 в 05:01

Другие вопросы по тегам:

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