Dùng proxy khác cho một lệnh shell
Đặt các biến proxy trước một lệnh khi bạn muốn có tuyến tạm thời mà không thay đổi shell cha hay sửa các tệp khởi động.
Bạn muốn một lần tải xuống dùng proxy khác, rồi mọi thứ trở lại bình thường. Không cần sửa tệp khởi động của shell rồi hy vọng sẽ nhớ hoàn tác.
Với một lệnh bên ngoài trong shell kiểu POSIX, hãy đặt phép gán trước lệnh:
https_proxy=http://proxy.example:8080 curl https://example.com/
Hãy dùng điểm cuối HTTP dành cho lần tải xuống đó; danh sách proxy HTTP cung cấp các ứng viên cho tuyến công cộng được phép. Phép gán được cấp cho môi trường của lệnh đó. Các tiến trình con của nó có thể thừa hưởng giá trị, nhưng sau khi lệnh kết thúc, phép gán không thay thế giá trị sẵn có của shell cha.
Máy khách vẫn quyết định đọc gì
Cú pháp shell tạo ra một môi trường; nó không áp đặt tuyến mạng. Hãy dùng các tên biến mà ứng dụng hỗ trợ. Các biến bỏ qua sẵn có, tùy chọn lệnh rõ ràng hoặc cấu hình riêng của ứng dụng vẫn có thể ảnh hưởng đến kết quả.
Tài liệu về môi trường Bash giải thích hành vi của tiền tố lệnh. Các lệnh là hàm shell, lệnh dựng sẵn đặc biệt hoặc cú pháp shell có thể có thêm quy tắc phạm vi, vì vậy ví dụ đơn giản ở trên cố ý dùng một chương trình bên ngoài.
Với nhiều lệnh, hãy dùng shell con
(
export http_proxy=http://proxy.example:8080
export https_proxy=http://proxy.example:8080
command-one
command-two
)
Nhóm trong ngoặc chạy với môi trường shell riêng của nó. Thay tên lệnh minh họa bằng các chương trình bạn định chạy. Cách làm này tránh trình tự mong manh là lưu giá trị cũ, ghi đè rồi khôi phục thủ công sau mọi lỗi có thể xảy ra.
Giữ bí mật ngoài các ví dụ được sao chép vào lịch sử shell. Cũng nhớ rằng sudo có thể lọc môi trường; một biến mà lệnh bên ngoài nhìn thấy không tự động đi qua mọi ranh giới đặc quyền. Phạm vi tạm thời và việc chọn proxy thực tế vẫn là hai câu hỏi riêng.