Вероятно, ответ Майка сработает. Но стоит отметить, что вы можете выполнить это, тщательно выбирая, какие файлы запуска добавить подробные данные. На странице руководства bash:
Когда bash вызывается как интерактивная оболочка входа в систему или как неинтерактивная оболочка с параметром --login, она сначала читает и выполняет команды из файла / etc / profile, если этот файл существует. После прочтения этого файла он ищет ~ / .bash_profile, ~ / .bash_login и ~ / .profile в указанном порядке, а также читает и выполняет команды из первой, которая существует и доступна для чтения. Опция --noprofile может использоваться, когда оболочка запущена, чтобы запретить это поведение.
Когда запускается интерактивная оболочка, которая не является оболочкой входа в систему, bash читает и выполняет команды из ~ / .bashrc, если этот файл существует. Это может быть запрещено с помощью параметра --norc. Опция --rcfile file заставит bash читать и выполнять команды из файла вместо ~ / .bashrc.
Инструменты sftp / scp запускают интерактивную оболочку без входа в систему, поэтому .bashrc будет получен. Многие дистрибутивы исходят из .bashrc из .bash_profile или наоборот, поэтому это может сбить с толку. Хорошим трюком для проверки чистоты среды входа в систему является использование команды ssh, которая имитирует подключение scp / sftp. Например: ssh myhost /bin/true
покажет вам, что именно видит scp / sftp при подключении.
Простая демонстрация:
insyte@mazer:~$ echo "echo Hello from .profile" > .profile
insyte@mazer:~$ echo "echo Hello from .bashrc" > .bashrc
sazerac:~ insyte$ ssh mazer /bin/true
Hello from .bashrc
sazerac:~ insyte$
insyte@mazer:~$ rm .bashrc
sazerac:~ insyte$ ssh mazer /bin/true
sazerac:~ insyte$
Первый тест приведет к сбою scp / sftp / rsync и т. Д. Вторая версия будет работать просто отлично.
.bashrc
будет дляscp
илиssh host command
.