Подтвердить что ты не робот

Автоматически chdir в бродячий каталог на "бродяжничестве ssh"

Итак, у меня есть куча бродячих виртуальных машин с некоторым вкусом Linux (centos, ubuntu, что угодно). Я хотел бы автоматически гарантировать, что "бродячий ssh" также будет "cd/vagrant", так что никто не должен помнить об этом, когда они войдут в систему.

Я выяснил (duh!), что echo "\n\ncd /vagrant" >> /home/vagrant/.bashrc сделает трюк. Я не знаю, как это сделать, если команда cd еще не существует. Я не эксперт по оболочке, поэтому я совершенно смущен.:)

4b9b3361

Ответ 1

cd является встроенной оболочкой Bash, если установлена ​​оболочка, она должна быть там.

Кроме того, имейте в виду, что ~/.bash_profile для интерактивной оболочки входа, если вы добавили cd /vagrant в ~vagrant/.bashrc, он НЕ МОЖЕТ РАБОТАТЬ.

Так как у дистрибутивов, таких как Ubuntu, этот файл не имеет → ~/.bash_profile по умолчанию и вместо этого используйте ~/.bashrc и ~/.profile

Если кто-то создает ~/.bash_profile для бродячего пользователя в Ubuntu, ~vagrant/.bashrc не будет считаться.

Ответ 2

Я положил

echo "cd /vagrant_projects/my-project" >> /home/vagrant/.bashrc

в моем provision.sh, и он работает как шарм.

Ответ 3

Вы можете добавить cd /vagrant к вашему .bashrc, и он будет запускать команду, когда вы ssh. /bashrc вы хотите в /home/vagrant (пользователь, которого вы входите в систему, как при vagrant ssh.) Вы можете просто вставить новую строку в нижней части файла.

Ответ 4

Может быть, это может помочь. Отредактируйте Vagrantfile, замените свое имя пользователя vagrant

`
 config.vm.provision "shell" do |s|
 s.inline = <<-SHELL
 # Change directory automatically on ssh login
 if ! grep -qF "cd /home/vagrant/ansible" /home/vagrant/.bashrc ;
 then echo "cd    /home/vagrant/ansible" >> /home/vagrant/.bashrc ; fi
 chown vagrant. /home/vagrant/.bashrc
`