Каталог $ HOME / bin не входит в $ PATH

Я только что сделал это в Fedora 24 с помощью blueman-manager. Во-первых, в blueman удалите устройство с известных устройств. Повторите поиск, и когда появится ваше устройство, запустите настройку. Выберите «Подключиться к источнику звука» (это не так. это важно для меня).

На основании , это , вам необходимо включить obex (obexd является зависимостью blueman).

systemctl --user start obex
sudo systemctl --global enable obex

После этого вы сможете отправлять файлы в обоих направлениях.

enter image description here

10
24.07.2017, 13:28
4 ответа

С вершины~/.profile:

# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

Итак, (если вы используете bashв качестве оболочки ), я предполагаю, что в вашей системе установлен либо ~/.bash_profile, либо ~/.bash_login. Выберите один и отредактируйте его, чтобы включить:

export PATH=$PATH:$HOME/bin

Затем сохраните и source ~/.bash_loginили выйдите из системы и войдите снова.

Редактировать:

Вы говорите, что оба ~/.bash_profileи ~/.bash_loginотсутствуют в вашем $HOME. Я думаю, нам нужно подтвердить несколько вещей. Пожалуйста, опубликуйте результаты следующего в исходном вопросе:

echo $0
echo $HOME
whoami
less /etc/*-release

Редактировать 2:

Лично я не знаю, почему ~/.profileне включен в ваше дело на основании предоставленной информации и документации. Во время тестирования я заметил, что мой ~/.profileсканируется, когда я sshвхожу, но не когда я запускаю новый терминал.

Но есть простое решение, позволяющее включить $HOME/binв вашу интерактивную оболочку. Отредактируйте (создайте, если нет)~/.bashrcи добавьте к нему следующую строку:

export PATH=$PATH:$HOME/bin

Сохранить, выйти и снова войти или source ~/.bashrc.

Строка exportможет быть расширена для проверки существования $HOME/bin, если хотите, с помощью:

if [ -d "$HOME/bin" ]
then
    export PATH=$PATH:$HOME/bin
fi

Почему ~/.bashrcвместо другого файла? Лично предпочтение и кажется более надежным тоже.

11
27.01.2020, 20:01

Правила для поиска файлов запуска оболочки в -сложны . Вполне вероятно, что с вашей настройкой .profileне включается, когда вы открываете новый терминал в X-сеансе (попробуйте поместить echo.profileвнутри .profileи посмотрите, появляется ли сообщение при запуске оболочка ).

.  "$HOME/.profile"

следует перезагрузить профиль вручную.

Вход и выход из X также должен вызывать загрузку .profile.

Кроме того, вы можете выполнить . $HOME/.profileиз .bashrc(, используя защиту на основе переменной -, чтобы предотвратить двойное включение ), чтобы убедиться, что .profileвсегда включается при каждом запуске оболочки.

(Вам не нужно export PATH, так как PATHуже является экспортируемой переменной, и изменение ее значения не изменит ее статус export.)

6
27.01.2020, 20:01

Эта ссылка также содержит некоторую полезную информацию.

0
27.01.2020, 20:01

Если вы хотите загрузить .profile, все, что вам нужно, это запустить оболочку входа в систему:

$ bash -l

Этого должно быть достаточно для работающего сеанса. Вы можете сравнить PATH до и после запуска входа в систему, чтобы подтвердить разницу.

Для более постоянного решения вам нужно, чтобы оболочка входа в систему была запущена в какой-то момент до запуска консоли вашего терминала (). Вход в систему в качестве конкретного пользователя происходит в некоторых dm (диспетчере отображения)(gnome, kde, xfce, lxde и т. д. ). В обязанности каждого из них должно входить изменение переменной окружения PATH в соответствии с вашими потребностями.

Например, для xfce решение состоит в том, чтобы изменитьxinitrc:

$ cat >"$HOME/.config/xfce4/xinitrc" <<-\_EOT_
#!/bin/sh

# Ensure programs in ~/bin are available for the X session.
p="$HOME/bin";
[ "$p" != "${PATH%%:*}" ] && export PATH=$p:$PATH
_EOT_
cat "/etc/xdg/xfce4/xinitrc" | tail -n+2 >> "$HOME/.config/xfce4/xinitrc"

Для gnome кажется, что файл для изменения — это ~/.pam_environment.

А для KDE следуйте этому руководству , чтобы создать файл, вы можете использовать этот код:

$ file='$HOME/.config/plasma-workspace/env/path.sh'
$ code='export PATH=$HOME/bin:$PATH'
$ echo "$code" >> "$file"
1
27.01.2020, 20:01

Теги

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