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

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

Когда я набираю

echo $SHELL

, я вижу

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

4 ответа

Похоже, что ваша переменная 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

Исходный источник здесь:

0
ответ дан 18 July 2018 в 06:04

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
ответ дан 18 July 2018 в 06:04

Похоже, что ваша переменная 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

Исходный источник здесь:

0
ответ дан 24 July 2018 в 18:30

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
ответ дан 24 July 2018 в 18:30

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

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