OnWorks Linux và Windows Online WorkStations

Logo

Lưu trữ trực tuyến miễn phí cho máy trạm

<Trước | Nội dung | Tiếp theo>

3.2. Định hướng trong hệ thống tệp‌‌


3.2.1. Con đường


Khi bạn muốn hệ thống thực thi một lệnh, bạn hầu như không bao giờ phải cung cấp đường dẫn đầy đủ cho lệnh đó. Ví dụ, chúng tôi biết rằng ls lệnh nằm trong / thùng rác thư mục (kiểm tra với cái nào -a ls), nhưng chúng ta không phải nhập lệnh / bin / ls để máy tính liệt kê nội dung của thư mục hiện tại.


Sản phẩm PATH biến môi trường đảm nhận việc này. Biến này liệt kê các thư mục đó trong hệ thống nơi có thể tìm thấy các tệp thực thi, và do đó tiết kiệm cho người dùng rất nhiều vị trí nhập và ghi nhớ các lệnh. Vì vậy, đường dẫn tự nhiên chứa rất nhiều thư mục chứa bin ở đâu đó trong tên của họ, như người dùng dưới đây chứng minh. Các bỏ lỡ lệnh được sử dụng để hiển thị nội dung ("$") của biến PATH:


rogier:> echo $ PATH

/ opt / local / bin: / usr / X11R6 / bin: / usr / bin: / usr / sbin /: / bin

rogier:> echo $ PATH

/ opt / local / bin: / usr / X11R6 / bin: / usr / bin: / usr / sbin /: / bin

Trong ví dụ này, các thư mục / opt / local / bin, / usr / X11R6 / bin, / usr / bin, / usr / sbin

/ thùng rác sau đó được tìm kiếm chương trình yêu cầu. Ngay sau khi tìm thấy kết quả trùng khớp, quá trình tìm kiếm sẽ bị dừng lại, ngay cả khi không phải mọi thư mục trong đường dẫn đã được tìm kiếm. Điều này có thể dẫn đến những tình huống kỳ lạ. Trong ví dụ đầu tiên bên dưới, người dùng biết có một chương trình được gọi là gửi tin nhắn để gửi tin nhắn SMS và người dùng khác trên cùng hệ thống có thể sử dụng tin nhắn này, nhưng cô ấy không thể. Sự khác biệt là trong cấu hình của PATH biến:


[jenny @ blob jenny] $ gửi tin nhắn bash: sendms: command not found [jenny @ blob jenny] $ echo $ PATH

/ bin: / usr / bin: / usr / bin / X11: / usr / X11R6 / bin: / home / jenny / bin [jenny @ blob jenny] $ su - tony

Mật khẩu: tony: ~> mà sendms

sendms là / usr / local / bin / sendms


tony: ~> echo $ PATH

/home/tony/bin.Linux: / home / tony / bin: / usr / local / bin: / usr / local / sbin: \

/ usr / X11R6 / bin: / usr / bin: / usr / sbin: / bin: / sbin

[jenny @ blob jenny] $ gửi tin nhắn bash: sendms: command not found [jenny @ blob jenny] $ echo $ PATH

/ bin: / usr / bin: / usr / bin / X11: / usr / X11R6 / bin: / home / jenny / bin [jenny @ blob jenny] $ su - tony

Mật khẩu: tony: ~> mà sendms

sendms là / usr / local / bin / sendms


tony: ~> echo $ PATH

/home/tony/bin.Linux: / home / tony / bin: / usr / local / bin: / usr / local / sbin: \

/ usr / X11R6 / bin: / usr / bin: / usr / sbin: / bin: / sbin

Lưu ý việc sử dụng su (chuyển đổi người dùng), cho phép bạn chạy một trình bao trong môi trường của người dùng khác, với điều kiện bạn biết mật khẩu của người dùng.


Dấu gạch chéo ngược biểu thị sự tiếp tục của một dòng ở dòng tiếp theo, không có dấu đăng ký hạng mục thi ngăn cách dòng này với dòng kia.


Trong ví dụ tiếp theo, người dùng muốn gọi trên wc (đếm từ) để kiểm tra số dòng trong một tệp, nhưng không có gì xảy ra và anh ta phải dừng hành động của mình bằng cách sử dụng Ctrl+C sự kết hợp:


jumper: ~> kiểm tra wc -l


(Ctrl-C)

jumper: ~> wc nào

wc được băm (/ home / jumper / bin / wc)


jumper: ~> echo $ PATH

/ home / jumper / bin: / usr / local / bin: / usr / local / sbin: / usr / X11R6 / bin: \

/ usr / bin: / usr / sbin: / bin: / sbin

jumper: ~> kiểm tra wc -l


(Ctrl-C)

jumper: ~> wc nào

wc được băm (/ home / jumper / bin / wc)


jumper: ~> echo $ PATH

/ home / jumper / bin: / usr / local / bin: / usr / local / sbin: / usr / X11R6 / bin: \

/ usr / bin: / usr / sbin: / bin: / sbin

Việc sử dụng các cái nào lệnh cho chúng tôi thấy rằng người dùng này có bin-directory trong thư mục chính của anh ấy, chứa một chương trình cũng được gọi là wc. Vì chương trình trong thư mục chính của anh ấy được tìm thấy đầu tiên khi tìm kiếm


đường dẫn khi có lời kêu gọi wc, chương trình "nhà làm" này được thực thi, với input chắc là nó không hiểu nên chúng ta phải dừng nó lại. Để giải quyết vấn đề này, có một số cách (luôn có một số cách để giải quyết vấn đề trong UNIX / Linux): một câu trả lời có thể là đổi tên người dùng wc chương trình hoặc người dùng có thể cung cấp đường dẫn đầy đủ đến lệnh chính xác mà họ muốn, có thể được tìm thấy bằng cách sử dụng -a tùy chọn cho cái nào chỉ huy.


Nếu người dùng sử dụng các chương trình trong các thư mục khác thường xuyên hơn, anh ta có thể thay đổi đường dẫn của mình để tìm lần cuối trong các thư mục của chính mình:


jumper: ~> xuất PATH = / usr / local / bin: / usr / local / sbin: / usr / X11R6 / bin: \

/ usr / bin: / usr / sbin: / bin: / sbin: / home / jumper / bin

jumper: ~> xuất PATH = / usr / local / bin: / usr / local / sbin: / usr / X11R6 / bin: \

/ usr / bin: / usr / sbin: / bin: / sbin: / home / jumper / bin


hình ảnhNhững thay đổi không phải là vĩnh viễn!

Điện toán đám mây hệ điều hành hàng đầu tại OnWorks: