Câu trả lời của Mike có thể sẽ hoạt động. Nhưng thật đáng để chỉ ra rằng bạn có thể thực hiện việc này một cách cẩn thận khi chọn các tệp khởi động để đặt nội dung dài dòng vào. Từ trang bash man:
Khi bash được gọi dưới dạng shell đăng nhập tương tác hoặc dưới dạng shell không tương tác với tùy chọn --login, trước tiên, nó sẽ đọc và thực thi các lệnh từ tệp / etc / profile, nếu tệp đó tồn tại. Sau khi đọc tệp đó, nó tìm ~ / .bash_profile, ~ / .bash_login và ~ / .profile, theo thứ tự đó, đọc và thực thi các lệnh từ lệnh đầu tiên tồn tại và có thể đọc được. Tùy chọn --noprofile có thể được sử dụng khi trình bao bắt đầu ngăn chặn hành vi này.
Khi một vỏ tương tác không phải là vỏ đăng nhập được khởi động, bash sẽ đọc và thực thi các lệnh từ ~ / .bashrc, nếu tệp đó tồn tại. Điều này có thể bị ức chế bằng cách sử dụng tùy chọn --norc. Tùy chọn tệp --rcfile sẽ buộc bash đọc và thực thi các lệnh từ tệp thay vì ~ / .bashrc.
Các công cụ sftp / scp bắt đầu một vỏ không đăng nhập tương tác, vì vậy .bashrc sẽ có nguồn gốc. Nhiều bản phân phối nguồn .bashrc từ .bash_profile hoặc ngược lại, vì vậy nó có thể gây nhầm lẫn. Một mẹo hay để kiểm tra sự sạch sẽ của môi trường đăng nhập của bạn là ssh in bằng một lệnh, mô phỏng giống như cách kết nối scp / sftp. Ví dụ: ssh myhost /bin/true
sẽ cho bạn thấy chính xác những gì scp / sftp nhìn thấy khi chúng kết nối.
Một bản demo đơn giản:
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$
Thử nghiệm đầu tiên sẽ khiến scp / sftp / rsync, v.v. Phiên bản thứ hai sẽ hoạt động tốt.
.bashrc
sẽ được source'd choscp
hayssh host command
.