Khi bạn tạo script Bash và lưu trong thư mục, bạn thấy chỉ chạy được khi ở trong thư mục đó. Bạn bao giờ nhận ra ls, imagemagick, apache, và squid có thể cài ở thư mục khác nhau nhưng truy cập khắp nơi? Đó là vì đường dẫn riêng của chúng đã thêm vào biến "Path". Bằng thêm đường dẫn vào nó, bạn cũng làm script thực thi khắp nơi.
Thêm Đường Dẫn Vào Bash
Trước khi bắt đầu, giải thích nhờ cách bảo mật Linux hoạt động, bạn chỉnh Path trên ba cấp độ khác nhau. Bash là cấp đầu. Mọi thứ thấy ở đây ảnh hưởng Bash, và mọi thứ chạy trong nó, nhưng không ảnh hưởng "ngoài Bash".
Giả sử bạn có bộ script trong thư mục muốn truy cập từ mọi nơi.
Để làm được, thêm đường dẫn của chúng vào "~/.bashrc". Mở file ".bashrc" (nằm thư mục Home, mặc định ẩn) trong trình soạn thảo yêu thích, như gedit.
Đến cuối file và thêm:
export PATH="/path_of/the_folder_we/want_to_add_to:$PATH"
Ví dụ, nếu giữ script thực thi trong "/home/myname/scripts", lệnh là:
export PATH="/home/myname/scripts:$PATH"
Để đăng ký thay đổi, lưu file, thoát trình soạn thảo và gõ trong terminal:
source ~/.bashrc
Sau đó, chuyển thư mục khác và thử chạy script từ đó.
Thêm Đường Dẫn Vào Profile
Nếu muốn nội dung thư mục truy cập được ngoài giới hạn Bash, thêm vào biến Profile.
Mở file ".profile" với trình soạn thảo yêu thích.
Cuối file, nhập:
export PATH="$PATH:$HOME/scripts"
Bạn phải đăng xuất và đăng nhập lại để kích hoạt thay đổi.
Trong Ubuntu và dẫn xuất, khuyên sửa file ".pam environment" thay vì ".profile".
Mở file ".pam_environment" trong trình soạn thảo. Nếu file không tồn tại, tạo nó.
Trong đó, nhập:
PATH DEFAULT=${PATH}:/home/@{PAM_USER}/scripts
Lưu ý thay vì đường dẫn cứng hoàn toàn, khác với file profile, ở đây dùng biến. Cách này, thư mục "/home/USER_NAME/scripts" của mỗi user thêm vào path của họ.
Giống sửa file ".profile", phải đăng xuất và đăng nhập lại để thay đổi có hiệu lực.
Thêm Đường Dẫn Vào Môi Trường
Cách đúng để nội dung thư mục truy cập được từ nhiều user chia sẻ cùng máy là thêm vào biến path môi trường. Mở terminal và nhập:
sudo nano /etc/environment
Biến path đó chứa loạt thư mục trong ngoặc kép, phân cách bằng hai chấm, giống:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin"
Để đưa thư mục của bạn vào danh sách, ngay sau đường dẫn cuối, trước ngoặc kép đóng, nhập hai chấm và đường dẫn thư mục. Nếu thư mục, lại là "/home/your_username/scripts", trông như:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/YOUR_USERNAME/scripts"
Lưu ý không phải viết hoa – dùng chữ in hoa để nhấn mạnh, giúp xác định nơi và cách đưa thư mục.
Giống trước, đăng xuất và đăng nhập lại áp dụng thay đổi.
Với các mẹo trên, bạn chạy script từ bất cứ đâu trong Linux.
Liên quan:
- Cách Lấy Giải Thích Lệnh Trong Terminal Với Kmdr
- Cách Tốt Hơn Tìm Kiếm Lịch Sử Dòng Lệnh
- Các Lệnh Bash Cơ Bản Cho Người Mới Linux