Мысли
May 22, 2021

Дебиан 10, запуск файлов из "~/.local/bin" из эмулятора терминала

Мне в дебиан 10 понадобился запуск файлов из "~/.local/bin" из эмулятора терминала. В https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html описано, что же загружается при запуске интерактивных оболочек, и что это вообще такое.

В interactive login shell можно попасть через ctrl-alt-f1, и при использовании этого там вот эти пути в $PATH прописываются, то есть я могу ввести команду, которая запустит исполняемый файл из "~/.local/bin"
Почему прописываются и откуда? Потому что запускается "~/.profile", где указано

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi


(Вернуться обратно: ctrl-alt-f7)

Замечательно. Но в эмуляторе терминала этого нет, потому что он interactive non-login shell! И там загружается только "~/.bashrc". Который, кстати, вызывается и внутри сценария "~/.profile", поэтому просто так добавить что-то типа ". "$HOME/.profile"" в "~/.bashrc" будет плохой идеей, так как эти сценарии будут вызывать друг друга. Поэтому я просто перенёс ту часть с "~/.local/bin" из "~/.profile" в "~/.bashrc". В interactive login shell всё так же остаётся, потому что там только чуть изменился порядок вызываемых блоков инструкций, а в interactive non-login shell — эмуляторе терминала — при его запуске в переменную $PATH записывается то, что нужно.