Слова запуска к моему “.profile”, не выполняющемуся

Я пытаюсь добавить слова запуска к своему профилю, однако я получаю "hstart: command not found"

sudo vi ~/.profile
alias hstart="$HOME/.linuxbrew/Cellar/hadoop/2.7.3/libexec/sbin/start-dfs.sh;$HOME/.linuxbrew/Cellar/hadoop/2.7.3/libexec/sbin/start-yarn.sh"
alias hstop="$HOME/.linuxbrew/Cellar/hadoop/2.7.3/libexec/sbin/stop-yarn.sh;$HOME/.linuxbrew/Cellar/hadoop/2.7.3/libexec/sbin/stop-dfs.sh"

Местоположение .sh файлы:

./.linuxbrew/Cellar/hadoop/2.7.3/libexec/sbin

find -iname "start-dfs.sh"
./.linuxbrew/Cellar/hadoop/2.7.3/libexec/sbin/start-dfs.sh
./.linuxbrew/Cellar/hadoop/2.7.3/sbin/start-dfs.sh
2
задан 25 September 2016 в 13:51

1 ответ

Точки:

  • Путем выполнения sudo vi ~/.profile, Вы открыли и отредактировали Ваш .profile т.е. "$HOME"/.profile как root, это вызвано тем, что оболочка делает тильду (~) расширение сначала, таким образом, sudo vi получает полный путь в файл. Внутренняя часть $HOME расширение зависело бы от вызывающего абонента.

  • ~/.profile только читается из оболочки входа в систему (данный ~/.bash_profile и ~/.bash_login не существует), не для любой интерактивной оболочки, ~/.bashrc читается из любой интерактивной сессии оболочки

Так, необходимо поместить alias определения в Вашем ~/.profile (просто сделайте vi ~/.profile, отбрасывание sudo), и получить определения на текущей сессии source ~/.profile файл source ~/.profile. IMO, Вы были бы более обеспеченным помещением определений в ~/.bashrc.


Значение по умолчанию ~/.bashrc из Ubuntu имеет:

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

таким образом, можно поместить alias определения в ~/.bash_aliases также, только для разделения их и легко удобный в сопровождении.

5
ответ дан 2 December 2019 в 01:56

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

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