Я пытаюсь добавить слова запуска к своему профилю, однако я получаю "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
Точки:
Путем выполнения 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
также, только для разделения их и легко удобный в сопровождении.