PATH hoạt động như thế nào trong Bash

How Does Path Work Bash



Khi bạn đang nhập một lệnh trong thiết bị đầu cuối Linux, bạn thường gọi một chương trình để thực hiện một công việc nhất định, chẳng hạn như ls , đĩa CD , rm , mkdir , v.v. Tất cả các chương trình này đều nằm ở đâu đó trong hệ thống tệp, phải không? Làm sao bash biết những chương trình này ở đâu?

Ở đây, các biến môi trường sẽ hoạt động, đặc biệt là biến PATH. Biến này chịu trách nhiệm cho bash biết nơi tìm các chương trình đó. Hãy cùng xem cách hoạt động của PATH và cách xem / sửa đổi PATH.







Biến môi trường và $ PATH

Trong thuật ngữ shell, môi trường là một khu vực mà shell xây dựng mỗi khi nó bắt đầu một phiên làm việc. Để quản lý môi trường, có các biến môi trường biểu thị các phần khác nhau của môi trường. Giá trị của biến có thể là chuỗi, vị trí thư mục, giá trị hoặc các giá trị khác.



PATH là một biến môi trường theo dõi các thư mục nhất định. Theo mặc định, biến PATH chứa các vị trí sau.



  • / usr / bin
  • / usr / sbin
  • / usr / local / bin
  • / usr / local / sbin
  • /là
  • / sbin
  • / snap / bin (nếu Snap được cài đặt)

Bạn muốn xem những thư mục nào hiện được đăng ký theo PATH? Kích hoạt một thiết bị đầu cuối và chạy lệnh sau.





$quăng đi $ PATH

Ở đây, dấu $ là để biểu thị một biến. Các quăng đi lệnh in ra giá trị của biến PATH.



Bây giờ, tại sao biến môi trường cụ thể này lại quan trọng đến vậy? Đó là vì cách shell và toàn bộ hệ thống xử lý nó. Biến PATH lưu trữ nơi có thể tìm thấy các tệp thực thi. Bất cứ khi nào bất kỳ lệnh nào được chạy, trình bao sẽ tìm kiếm các thư mục PATH cho tệp thực thi đích và chạy nó.

Ví dụ: hãy thử nghiệm với quăng đi chỉ huy. Đây, tôi đang chạy lệnh echo.

$quăng điChào thế giới!

Tệp thực thi của quăng đi ? Chạy lệnh tiếp theo để tìm hiểu.

$cái mà quăng đi

Như chúng ta có thể thấy, quăng đi tệp thi hành được đặt tại / usr / bin / echo. Nó nằm ở đâu? Hãy cùng tìm hiểu.

$cái mà cái mà

Nó cũng được đặt tại / usr / bin / which. Hầu hết các công cụ lệnh đều nằm trong thư mục / usr / bin. Ở đây, bash đang tham khảo PATH cho các vị trí để tìm kiếm (các) lệnh thực thi.

Sửa đổi PATH

Trước khi chúng tôi sửa đổi giá trị của PATH, điều quan trọng là phải hiểu cấu trúc của nó. Chạy lại lệnh để kiểm tra giá trị của PATH.

$quăng đi $ PATH

Chú ý rằng mỗi thư mục được phân tách bằng dấu:.

Thêm thư mục vào PATH

Để thêm thư mục tùy chỉnh vào PATH, chúng tôi sẽ nhờ sự trợ giúp của tệp bashrc. Đó là một tập lệnh bash đặc biệt, bash tải mỗi khi bắt đầu một phiên bash mới. Lưu ý rằng tệp bashrc là duy nhất cho mọi người dùng trong hệ thống Linux.

Mở tệp bashrc trong trình soạn thảo văn bản. Nếu tệp bashrc chưa có, thì trình chỉnh sửa sẽ tự động tạo tệp đó.

$tôi đã đến~/.bashrc

Đây là bashrc mặc định đi kèm với Ubuntu. Chuyển đến phần cuối cùng của tệp (nếu nó tồn tại) và thêm dòng sau.

$xuất khẩu CON ĐƯỜNG='$ PATH: / '

Ở đây, giá trị mới của biến PATH sẽ là biến cũ cùng với thư mục mới mà chúng ta vừa thêm vào.

Lưu tệp và yêu cầu bash tải lại.

$nguồn~/.bashrc

Hãy xác minh xem đường dẫn mới đã được thêm thành công hay chưa.

$quăng đi $ PATH

Thì đấy! Đã cập nhật PATH thành công! Bây giờ, bash cũng sẽ tìm kiếm đường dẫn mới cho (các) tệp thực thi. Tôi đã có một kịch bản demo.sh trên máy tính để bàn. Hãy xem liệu bash có thể gọi nó mà không chỉ định vị trí chính xác hay không.

$demo.sh

Yup, bash có thể trực tiếp gọi nó mà không có vấn đề gì.

Xóa thư mục khỏi PATH

Không có cách nào đơn giản để thêm / xóa thư mục khỏi PATH. Hãy để tôi giải thích.

Giá trị của PATH thực sự là cố định. Sau đó, những gì về thủ thuật bashrc? Bashrc là một tập lệnh bash mà bash tải mỗi khi nó bắt đầu một phiên. Trong bashrc, chúng tôi vừa khai báo rằng giá trị mới của PATH sẽ là giá trị mặc định của nó và là thư mục do người dùng định nghĩa. Bây giờ, mỗi khi tải bash, nó thấy rằng bashrc đang yêu cầu gán một giá trị mới của PATH và đó là những gì nó làm.

Tương tự, nếu chúng ta muốn xóa một thư mục khỏi PATH, chúng ta phải gán lại một giá trị khác của PATH trong bashrc để mỗi khi bash bắt đầu, nó sẽ sử dụng giá trị đã sửa đổi.

Hãy xem ví dụ này. Tôi sẵn sàng xóa thư mục ~ / Desktop khỏi PATH.

$quăng đi $ PATH | quyến rũ -Và 's /: ~ / Máy tính để bàn $ //'

Nếu thư mục là / home / false / dir, lệnh sẽ như thế này.

$quăng đi $ PATH | quyến rũ -Và 's /: / home / sai / dir $ //'

Ở đây, phần thú vị là công cụ sed. Tìm hiểu thêm về sed ở đâyở đây . Câu chuyện ngắn, sử dụng sed, chúng tôi đang sửa đổi đầu ra của quăng đi chỉ huy. Bây giờ, chúng ta có thể sử dụng đầu ra đã sửa đổi này để thay đổi giá trị của PATH.

Mở bashrc trong trình soạn thảo văn bản và thêm các dòng sau. Tôi cố ý giữ những dòng trước đó để chứng minh rằng nó đang hoạt động.

$xuất khẩu CON ĐƯỜNG='$ (echo $ PATH | sed -e 's /: ~ / Desktop $ //')'

Ngoài ra, bạn cũng có thể đặt giá trị của PATH theo cách thủ công. Đó là một quá trình lao động nhưng đơn giản và dễ hiểu hơn.

$xuất khẩu CON ĐƯỜNG=/usr/địa phương/sbin:/usr/địa phương/là:/usr/sbin:/usr/là:/sbin:/là:
/usr/Trò chơi:/usr/địa phương/Trò chơi:/búng tay/

Tại đây, giá trị của lệnh sẽ được gán cho PATH. Lưu tệp và tải lại bashrc.

$nguồn~/.bashrc

Hãy xác minh kết quả.

$quăng đi $ PATH

Giá trị PATH được cập nhật!

Suy nghĩ cuối cùng

Trong bash, biến PATH là một biến quan trọng. Bất kỳ chương trình nào chạy qua phiên bash đều kế thừa biến, vì vậy điều quan trọng là PATH chỉ bao gồm các thư mục cần thiết. Việc thêm nhiều thư mục sẽ chỉ thêm dự phòng cho hệ thống.

Để xem tất cả các biến môi trường cho bash, hãy chạy lệnh này. Phần lệnh đầu tiên sẽ trả về tất cả các biến môi trường và phần thứ hai sẽ sắp xếp đầu ra theo thứ tự tăng dần.

$env | loại

Bạn muốn thêm gia vị cho trải nghiệm bash của mình? Bí danh Bash cung cấp một cách độc đáo để tăng tốc và đẩy nhanh mọi thứ. Tìm hiểu thêm về bí danh bash .

Thưởng thức!