Path trong linux là gì

Path trong linux là gì

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 lsfindfile 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 .

Nội dung chính

  • 1 Có gì trong $PATH Linux
  • 2 Thêm một thư mục vào $PATH
  • 3 Phần kết luận
    • 3.1 Share this:
    • 3.2 Like this:

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/environmentvà /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 sourcelệ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.