Khi bạn nhập một lệnh trên dòng lệnh, về cơ bản, bạn đang báo cho shell chạy một tệp thực thi với tên đã cho. Trong Linux những chương trình thực thi ls
, find
, file
và những câu lệnh khác thường là được thực hiện bên trong nhiều thư mục khác nhau trên hệ thống của bạn. Bất kỳ tệp nào có quyền thực thi được lưu trữ trong các thư mục này có thể được chạy từ bất kỳ vị trí nào. Các thư mục phổ biến nhất mà tổ chức chương trình thực thi được /bin
, /sbin
, /usr/sbin
, /usr/local/bin
và /usr/local/sbin
.
Nhưng làm thế nào để shell biết, thư mục nào để tìm kiếm các chương trình thực thi hoặc shell tìm kiếm trong toàn bộ hệ thống tập tin?
Đáp án đơn giản. Khi bạn gõ một lệnh, shell sẽ tìm kiếm thông qua tất cả các thư mục được chỉ định trong biến $PATH
của user cho một tệp thực thi của tên đó.
Bài viết này cho thấy cách thêm thư mục $PATH
vào hệ thống Linux của bạn .
Có gì trong $PATH
Linux
Biến $PATH
môi trường là một danh sách các thư mục được phân định bằng dấu hai chấm cho shell biết thư mục nào cần tìm kiếm các tệp thực thi.
Để kiểm tra thư mục nào trong bạn $PATH
, bạn có thể sử dụng lệnh printenv
hoặc echo
:
echo $PATH
Đầu ra sẽ trông giống như thế này:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Nếu bạn có hai tệp thực thi chia sẻ cùng tên nằm trong hai thư mục khác nhau, shell sẽ chạy tệp nằm trong thư mục xuất hiện đầu tiên trong $PATH
.
Thêm một thư mục vào $PATH
Có những tình huống mà bạn có thể muốn thêm các thư mục $PATH
khác biến. Ví dụ: một số chương trình có thể được cài đặt ở các vị trí khác nhau hoặc bạn có thể muốn có một thư mục dành riêng cho các tập lệnh cá nhân của mình, nhưng có thể chạy chúng mà không chỉ định đường dẫn tuyệt đối đến các tệp thực thi. Để làm điều này, bạn chỉ cần thêm thư mục vào $PATH
.
Giả sử bạn có một thư mục được gọi bin
trong thư mục Home của bạn, trong đó bạn giữ các tập lệnh shell của mình. Để thêm thư mục vào $PATH
của bạn:
export PATH="$HOME/bin:$PATH"
Lệnh export
sẽ xuất biến đổi đến môi trường trong process của shell.
Bây giờ bạn có thể chạy các tập lệnh của mình một cách đơn giản bằng cách nhập tên tập lệnh thực thi mà không cần chỉ định đường dẫn đầy đủ thực thi.
Tuy nhiên, thay đổi này chỉ là tạm thời và chỉ có hiệu lực trong phiên shell hiện tại.
Để thay đổi vĩnh viễn, bạn cần xác định biến $PATH
trong tệp cấu hình shell. Trong hầu hết các bản phân phối Linux khi bạn bắt đầu một phiên mới, các biến môi trường được đọc từ các tệp sau:
- Các tập tin cấu hình cụ thể shell global như
/etc/environment
và/etc/profile
. Sử dụng tệp này nếu bạn muốn thêm thư mục mới cho tất cả người dùng hệ thống$PATH
. - Mỗi tệp người dùng cấu hình shell cụ thể. Ví dụ: nếu bạn đang sử dụng Bash, bạn có thể đặt biến
$PATH
trong tệp~/.bashrc
và nếu bạn đang sử dụng Zsh thì tên tệp là~/.zshrc
.
Trong ví dụ này, chúng tôi sẽ đặt biến trong tệp ~/.bashrc
. Mở tệp bằng trình soạn thảo văn bản của bạn và thêm dòng sau vào cuối tệp:
nano ~/.bashrc
~ / .bashrc
export PATH="$HOME/bin:$PATH"
Lưu tệp và tải mới $PATH
vào phiên shell hiện tại bằng source
lệnh:
source ~/.bashrc
Để xác nhận rằng thư mục đã được thêm thành công, hãy in giá trị của bạn $PATH
bằng cách nhập:
echo $PATH
Phần kết luận
Thêm thư mục mới cho user hoặc $PATH
biến toàn cục khá đơn giản. Điều này cho phép bạn thực thi các lệnh và tập lệnh được lưu trữ trên các vị trí không chuẩn mà không cần phải nhập đường dẫn đầy đủ đến tệp thực thi.
Các hướng dẫn tương tự áp dụng cho mọi phân phối Linux, bao gồm Ubuntu, CentOS, RHEL, Debian và Linux Mint.
Hãy để lại nhận xét nếu bạn có bất kỳ câu hỏi nào.