Mọi người đã đề nghị thêm .
vào PATH
, điều này rất nguy hiểm vì nó tạo ra rủi ro rằng bạn sẽ vô tình chạy một chương trình độc hại được trồng trong một thư mục có thể ghi trên thế giới. Nhưng, nếu bạn có các chương trình thực thi trong một vài thư mục mà bạn sở hữu và chỉ có thể ghi được bởi bạn, thì có an toàn (khá an toàn không?) Để đưa các giám đốc đó vào PATH
, bằng cách thêm một dòng như
PATH=$PATH:~/dev/myprog1:~/dev/myprog2
vào ~/.bashrc
tập tin của bạn . Tất nhiên điều này có nghĩa là bạn có thể chạy một chương trình từ một trong những thư mục đó từ bất kỳ đâu trong hệ thống tập tin. Ví dụ, bạn có thể cd /etc
và gõ foo
, và nó sẽ chạy ~/dev/myprog1/foo
. Điều này có một nhược điểm nhỏ là bạn không thể có các chương trình cùng tên trong nhiều hơn một trong các thư mục. Cụ thể, nếu bạn có các chương trình được gọi foo
trong cả hai ~/dev/myprog1
và ~/dev/myprog2
, bạn sẽ không thể chạy chương trình thứ hai trừ khi chỉ định đường dẫn. Tương tự như vậy nếu bạn có một ~/dev/myprog1/cat
- nhưng tại sao bạn muốn?
Một cách tiếp cận khác, nếu bạn chỉ có một vài chương trình mà bạn thực hiện điều này, là xác định bí danh cho chúng:
alias gizmo='./gizmo'
alias gonzo='./gonzo'
Hoặc bạn có thể gọi các bí danh .gizmo
và .gonzo
nếu bạn thấy điều đó trực quan hơn.
Trên thực tế, điều này, ở một mức độ nào đó, rủi ro bảo mật tương tự như đưa .
vào của bạn PATH
. Nếu một người dùng độc hại có thể đọc .bashrc
và xem bí danh của bạn, thì anh ta có thể đặt phần mềm độc hại được gọi gizmo
và gonzo
trong các thư mục ngẫu nhiên với hy vọng rằng bạn sẽ chạy nó. Tốt hơn là làm cho chúng sử dụng tên đường dẫn tuyệt đối:
alias gizmo='~/dev/myprog1/gizmo'
alias gonzo='~/dev/myprog2/gonzo'
Nhân tiện, bạn nên tránh đặt tên một tệp thực thi test
, bởi vì đó là lệnh dựng sẵn shell và bạn chỉ có thể chạy một chương trình theo tên đó bằng cách chỉ định một đường dẫn hoặc một số mẹo khác.