Каждый раз я вхожу в SSH, я должен вручную получить bashrc файл для установки моих переменных пути путем, я хочу. Как у меня есть удар, делают это автоматически? Разве это не должно быть автоматически?
Существует ~/.profile
(или ~/.bash-profile
) файл, который работает при каждом входе в систему. Необходимо установить переменные среды там (с export
команда). И существует ~/.bashrc
файл, который выполняется при открытии каждого, продает. Команды, которые не наследованы ко всем подоболочкам, как псевдоним, могут быть установлены здесь (хотя для хорошей практики, псевдонимы должны быть установлены в ~/.aliases
, который автоматически получен ~/.bashrc
).
Если это не работает на Вас, Вы ни одно использование неправильное имя файла (отсутствующий "." с начала?), или Вы не используете удар в качестве своей оболочки. В последнем случае попробовать passwd -s /bin/bash
(или chsh -s /bin/bash
, В зависимости от ОС), или вызов SSH следующий путь:
ssh username@host bash`
Необходимо также знать о $BASH_ENV.
То, какие файлы читаются ударом, когда он запускает, зависит от того, если сессия является интерактивной или нет. Иногда может быть проблема, где не ясно, является ли сессия интерактивной. Таким образом помимо ~/.bashrc Вы могли бы хотеть также экспортировать и установить переменный BASH_ENV для указания на файл, содержащий ПУТЬ и другие настройки, в которых Вы нуждаетесь. BASH_ENV может быть установлен указать на Ваш .bashrc файл (иногда, это - .bash_rc), пока нет никаких интерактивных команд там (чтобы быть безопасным использованием отдельный файл, скажите ~/.bash_env). Из страниц справочника удара:
Когда интерактивная оболочка, которая не является оболочкой входа в систему, запускается, удар читает и выполняет команды от ~/.bashrc, если тот файл существует. Это может быть запрещено при помощи - norc опция. - rcfile опция файла вынудит удар считать и выполнить команды из файла вместо ~/.bashrc.
То, когда удар запускается нев интерактивном режиме, для выполнения сценария оболочки, например, он ищет переменный BASH_ENV в среде, разворачивает ее значение, если это появляется там и использует расширенное значение в качестве названия файла, чтобы читать и выполниться. Bash ведет себя, как будто следующая команда выполнялась:
if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
но значение переменной ПУТИ не используется для поиска имени файла.
Я знаю, что это старо, но я думаю на новой оболочке входа в систему, удар ищет единственный файл для выполнения. Это ищет .bash_profile, затем .profile, затем .bashrc. Если это найдет .bash_profile или .profile, то это не будет далее искать .bashrc.
Решение, вставленное в Ваш .profile:
[ -f $HOME/.bashrc ] && . $HOME/.bashrc