Чому на піктограмі папки в моєму терміналі нанесений знак запитання?


16

Час від часу я помічаю, що піктограма папки на панелі заголовків одного з моїх вікон терміналів на ній накладається знак питання, наприклад, цей:

введіть тут опис зображення

Що це означає? Здається, це не мало жодного ефекту чи проблем, які я помітив - мені просто цікаво.

Я використовую OS X 10.8 (Mountain Lion).

Відповіді:


18

Знак питання (та відключені пункти меню спливаючого меню) вказує на те, що Terminal вважає, що робочий каталог знаходиться на віддаленому комп’ютері, і тому ви не можете перейти до нього в Finder за допомогою спливаючого меню. Якщо ви подивитеся на останній пункт у спливаючому меню (Command-Click на піктограмі проксі), ви побачите комп'ютер / хост, на якому Terminal думає, що працює робочий каталог. Ви повинні виявити, що це не поточне ім'я комп'ютера.

Якщо ви використовуєте bash (оболонку за замовчуванням на macOS), за замовчуванням вона надсилає керуючу послідовність до терміналу при кожному запиті, щоб повідомити Terminal про поточний робочий каталог. Оскільки контрольні послідовності можуть надходити з локальних або віддалених комп'ютерів, він надсилає URL-адресу схеми "файл:", що включає ім'я хоста, і Terminal перевіряє, що ім'я відображається на поточній машині. Якщо цього не відбувається, термінал вимикає пункти меню спливного контуру, оскільки вони не відповідають місцевим каталогам.

Ви можете бачити код, який надсилає керуючу послідовність у /etc/bashrc_Apple_Terminal(або /etc/bashrcна старих версіях macOS).

[Зверніть увагу, що якщо ви не використовуєте bash, або ви налаштували його так, що поведінка за замовчуванням не виникає, але ваша оболонка (або інша програма, яку ви запустите) надсилає контрольні послідовності для встановлення вікна або вкладки ( icon) title, Термінал перевірить, чи містить він те, що схоже на ім'я шляху, а потім перевірить, чи відповідає це дійсне локальне ім'я шляху. Якщо ні, то зовсім не відображається значок проксі-вікна.]

Сценарій, коли термінал не може розпізнати, що URL-адреса "файл:" знаходиться на поточному хості, це якщо ви зміните конфігурацію мережі під час роботи оболонки. Поширений випадок - покласти портативний комп'ютер спати та переїхати в інше місце, а потім прокинути його. Ім'я та адреса локального хоста будуть змінені, але $HOSTNAMEзмінна середовища оболонки все ще має стару назву хоста, і це те, що вона надсилає в керуючій послідовності. Щоб виправити це, оновіть змінну середовища за допомогою:

 HOSTNAME=$(hostname)

Інший сценарій - це те, коли ви закриваєте термінал, змінюєте конфігурації мережі та відкриваєте термінал із увімкненою функцією відновлення. Термінал відновить вікна та вкладки разом з останньою URL-адресою робочого каталогу, який було надіслано. Якщо ви зіткнетеся з цим випадком, $HOSTNAMEвін буде актуальним - оскільки він запускає нову оболонку - але термінал все ще може мати застарілу URL-адресу, поки ви не отримаєте оболонку для її оновлення знову. Якщо відображення командного рядка не усуває проблему, спробуйте змінити каталоги, cdщоб отримати оболонку для її оновлення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.