Я установил Ubuntu 16.04 с Xrdp и Xfce4 для удаленного доступа. Установленный рубин с использованием RVM. Когда я пытаюсь получить доступ к Ruby Interactive (irb), он отлично работает с оболочкой SSH (я набираю irb, и я могу использовать интерактивную среду ruby). Однако, когда я делаю удаленный вход в систему и использую Xterm, он не может найти много команд (например, irb, reboot, shutdown). Я снова запрашиваю RVM и вижу, что Ruby установлен. Это не только о рубине, я вижу, что многие другие команды недоступны.
Когда я набираю
echo $SHELL
, я вижу
/bin/bash
Похоже, что ваша переменная PATH по-разному построена в зависимости от того, как вводить оболочку.
Вы можете дважды проверить с помощью
echo $PATH
отличия.
У меня нет опыта работы с средой Ruby, но я могу представить, что есть сценарий, который создает все (например, с узлом / npm).
Bash потенциально может использовать несколько сценариев, таких как / etc / profile, ~ / .profile ~ / .bash_rc, /etc/bash.bashrc.
Возможно, ваша конфигурация xterm использует -noprofile или -norc, или она не вызывается в качестве оболочки входа и, следовательно, не является
От человека bash:
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
bash выполняет поиск команды, которую вы вводите (если команда НЕ является псевдонимом или встроенной и не начинается с «/») в каталогах, перечисленных в списке разделенных двоеточиями, содержащемся в PATH. echo $PATH, чтобы показать это. У меня нет irb, но reboot и shutdown находятся в каталоге /sbin/.
export PATH=$PATH:/sbin
сделает reboot и shutdown видимыми.
Вы можете найти, где irb находится, войдя в систему с ssh, затем
type -p irb
Добавьте этот каталог в свой PATH.
Проверьте свой (echo $TERM) в каждой среде и посмотрите, влияет ли $TERM на ваш ~/.bashrc.
Похоже, что ваша переменная PATH по-разному построена в зависимости от того, как вводить оболочку.
Вы можете дважды проверить с помощью
echo $PATH
отличия.
У меня нет опыта работы с средой Ruby, но я могу представить, что есть сценарий, который создает все (например, с узлом / npm).
Bash потенциально может использовать несколько сценариев, таких как / etc / profile, ~ / .profile ~ / .bash_rc, /etc/bash.bashrc.
Возможно, ваша конфигурация xterm использует -noprofile или -norc, или она не вызывается в качестве оболочки входа и, следовательно, не является
От человека bash:
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
bash выполняет поиск команды, которую вы вводите (если команда НЕ является псевдонимом или встроенной и не начинается с «/») в каталогах, перечисленных в списке разделенных двоеточиями, содержащемся в PATH. echo $PATH, чтобы показать это. У меня нет irb, но reboot и shutdown находятся в каталоге /sbin/.
export PATH=$PATH:/sbin
сделает reboot и shutdown видимыми.
Вы можете найти, где irb находится, войдя в систему с ssh, затем
type -p irb
Добавьте этот каталог в свой PATH.
Проверьте свой (echo $TERM) в каждой среде и посмотрите, влияет ли $TERM на ваш ~/.bashrc.