Tại sao biểu tượng thư mục trong Terminal của tôi có dấu chấm hỏi?


16

Thỉnh thoảng, tôi phát hiện ra rằng biểu tượng thư mục trong thanh tiêu đề của một trong các cửa sổ Terminal của tôi có một dấu hỏi được phủ lên trên nó, ví dụ: cái này:

nhập mô tả hình ảnh ở đây

Điều đó có nghĩa là gì? Nó dường như không có bất kỳ ảnh hưởng hoặc vấn đề nào mà tôi nhận thấy - Tôi chỉ tò mò.

Tôi đang sử dụng OS X 10.8 (Mountain Lion).

Câu trả lời:


18

Dấu hỏi (và các mục menu bật lên bị vô hiệu hóa) cho biết Terminal nghĩ rằng thư mục làm việc nằm trên một máy tính từ xa, và do đó bạn không thể điều hướng đến nó trong Finder bằng menu bật lên. Nếu bạn nhìn vào mục cuối cùng trong menu bật lên (Nhấp chuột vào biểu tượng proxy proxy), bạn sẽ thấy máy tính / máy chủ mà Terminal nghĩ rằng thư mục làm việc đang bật. Bạn sẽ thấy rằng đó không phải là tên hiện tại của máy tính.

Nếu bạn đang sử dụng bash (shell mặc định trên macOS), theo mặc định, nó sẽ gửi một chuỗi điều khiển đến thiết bị đầu cuối tại mỗi dấu nhắc để báo cho Terminal thư mục làm việc hiện tại. Do các chuỗi điều khiển có thể đến từ các máy tính cục bộ hoặc từ xa, nên nó sẽ gửi một tệp tin: URL lược đồ có tên là máy chủ lưu trữ và Terminal xác minh rằng tên ánh xạ tới máy hiện tại. Nếu không, Terminal sẽ vô hiệu hóa các mục menu bật lên đường dẫn, vì chúng không tương ứng với các thư mục cục bộ.

Bạn có thể thấy mã gửi chuỗi điều khiển trong /etc/bashrc_Apple_Terminal(hoặc /etc/bashrctrên các phiên bản cũ hơn của macOS).

[Lưu ý rằng nếu bạn không sử dụng bash hoặc bạn đã tùy chỉnh nó để hành vi mặc định không xảy ra, nhưng trình bao của bạn (hoặc một số chương trình khác bạn đang chạy) đang gửi các chuỗi điều khiển để đặt cửa sổ hoặc tab ( biểu tượng) tiêu đề, Terminal sẽ kiểm tra xem nó có chứa tên giống như tên đường dẫn hay không, và sau đó nó kiểm tra xem nó có tương ứng với tên đường dẫn cục bộ hợp lệ hay không. Nếu không, nó hoàn toàn không hiển thị biểu tượng proxy cửa sổ.]

Một tình huống trong đó Terminal có thể không nhận ra rằng tập tin: URL URL nằm trên máy chủ hiện tại là nếu bạn thay đổi cấu hình mạng của mình trong khi trình bao đang chạy. Một trường hợp phổ biến là đặt một máy tính xách tay để ngủ và di chuyển đến một vị trí khác, sau đó đánh thức nó. Tên và địa chỉ máy chủ lưu trữ cục bộ sẽ thay đổi, nhưng $HOSTNAMEbiến môi trường của shell vẫn có tên máy chủ cũ và đó là những gì nó gửi trong chuỗi điều khiển. Để khắc phục điều này, hãy cập nhật biến môi trường với:

 HOSTNAME=$(hostname)

Một kịch bản khác là bạn thoát Terminal, thay đổi cấu hình mạng, sau đó mở Terminal khi bật Resume. Terminal sẽ khôi phục các cửa sổ và tab, cùng với URL thư mục làm việc cuối cùng mà mỗi URL được gửi. Nếu bạn gặp phải trường hợp này, $HOSTNAMEsẽ cập nhật liên tục vì nó bắt đầu một shell mới, nhưng Terminal vẫn có thể có một URL cũ cho đến khi bạn có được shell để cập nhật lại. Nếu hiển thị dấu nhắc lệnh không giải quyết được vấn đề, hãy thử thay đổi thư mục cdđể lấy shell để cập nhật nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.