2 votes

Les mots de lancement vers mon ".profil" ne s'exécutent pas

J'essaie d'ajouter des mots de lancement à mon profil, mais je reçois le message suivant "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"

Localisation de la .sh des fichiers :

./.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

5voto

heemayl Points 85741

Points :

  • En faisant sudo vi ~/.profile vous avez ouvert et modifié votre .profile c'est-à-dire "$HOME"/.profile comme root c'est parce que Shell fait tilde ( ~ ) d'abord, de sorte que sudo vi obtient le chemin complet du fichier. L'intérieur $HOME L'expansion dépend de l'utilisateur qui appelle.

  • ~/.profile est seulement lu pour le login Shell (donné ~/.bash_profile y ~/.bash_login n'existe pas), pas pour tout interactive Shell, ~/.bashrc est lu pour toute session interactive de Shell.

Donc, vous devez mettre le alias dans votre ~/.profile (juste faire vi ~/.profile , baisse sudo ), et pour obtenir les définitions dans la session courante source その ~/.profile fichier par source ~/.profile . IMO, vous feriez mieux de mettre les définitions en ~/.bashrc .


La valeur par défaut ~/.bashrc d'Ubuntu a :

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

pour que vous puissiez mettre le alias définitions dans ~/.bash_aliases aussi, juste pour les garder séparés et facilement maintenables.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X