X11 - протокол работы с окнами (сеть, прозрачная между прочим) и ее реализация (X-сервер и низкоуровневые библиотеки для доступа к нему). Дескрипторы "только" основной вход (клавиатура, мышь...) и вывод (тянущий прямоугольники), но делает это довольно абстрактным способом, так, чтобы можно было запустить программу на одной машине и управлять ею от другого, подписаться на различные события и т.д. Существует на самом деле только одна применимая реализация с открытым исходным кодом, а именно, Основой X.org.
QT, GTK, Мотив... - первоначально библиотеки виджета, которые обеспечивают высокоуровневую абстракцию выше библиотек X11 (например, диалоговые окна создания, кнопки и другие графические элементы). Однако, например, QT идет путем кроме того и имеет интерфейсы для большого количества других вещей также (базы данных, мультимедиа...). Это также допускает объединенный дизайн UI. Подобный тому, что Swing находится в Java.
lxdm, lightdm, gdm, kdm, xdm...-менеджеры по оформлению: специализированные программы, которые отображают экран входа в систему (некоторые могут сделать это по сети также) и позволяют пользователю войти в систему в его предпочтительную сессию настольной среды.
compiz, kwin, метагород, xfwm, openbox... - менеджеры окон: программы, предоставляющие основную функциональность оконной среды как рисование художественных оформлений к висячим строкам (текст заголовка и кнопки), изменение размеров, движущиеся окна, перемещение их в стопке окна (повышение/понижение или мозаичное размещение их на экране). Они иногда также обрабатывают "рабочий стол" (фон и значки, помещенные в него) также.
KDE, Gnome, XFCE, LXDE... - настольные среды: более или менее полные наборы инструментов. Они обычно включают менеджер окон, менеджера по оформлению, своего рода "панель" (вещь, где значки, список в настоящее время открываемых окон, часов и другого материала отображены), файловый менеджер, мультимедийное средство просмотра, редактор и "положительные герои" как календарь/напоминание и различные настольные расширения),
Можно (до некоторой степени) смешать приложения от другого DES (менеджеры по оформлению хорошо работают, так как они довольно автономны однако, особенно kdm и gdm, который они вытягивают в большом количестве зависимостей что их дубликаты более легкого веса). Основная проблема смешать приложения состоит в том, что их настройки часто переплетаются с DE и таким образом могут потребовать, чтобы некоторые сервисы работали (которые не находятся под другим DE). Стиль мог бы также отличаться, когда другой инструментарий (например, QT по сравнению с GTK) используется. И это - дублирование - несколько приложений, служащих той же цели, имеют свое отдельное и в некотором смысле избыточные опции.
Завершение Bash является модульным; различные пакеты обеспечивают свои собственные расширения завершения. Другой пакет, вероятно, содержит ошибку. Попробовать mv /etc/bash_completion.d{,.old}
и посмотрите, фиксирует ли это его. Если так, сделайте mv /etc/bash_completion.d{.old,}
положить обратно его снова и затем переместить отдельные файлы из /etc/bash_completion.d
каталог один за другим для идентификации файла, который вызывает проблему. (Каталог можно было бы назвать чем-то немного отличающимся на Мяте.)
Еще не может официально прокомментировать, таким образом, я предложу частичный ответ, указывающий в другое направление. Вы могли проверить свои привязки клавиш?
$ bind -p | grep -i tab
Я столкнулся со средами в прошлом, где люди решили связать клавишу Tab с функциональностью. Другая опция состоит в том, чтобы разветвиться от оболочки удара с помощью "-x" параметра, как так:
$ bash -x
Повторите свой тест. Это происходит также, если Вы используете echo
вместо cd
?
$ echo b <tab>
echo
не производил тот же эффект. Первая команда, которую Вы дали, возвратилась # tab-insert (not bound)
. Разветвление оболочки удара было интересно (никогда не делавшийся что прежде). Я повторил тест после ветвления и получил длинный список строк в ответ и в особенности заметил этот комментарий: # TODO: I have removed a "[ -n $tmp ] &&" before 'printf ..', # and everything works again. If this bug suddenly # appears again (i.e. "cd /b<TAB>" becomes "cd /"), # remember to check for other similar conditionals (here # and _filedir_xspec()). --David
– guypursey
07.11.2013, 21:23
complete -p
и удалите преступника, использующего complete -r <culprit>
. Другая опция состоит в том, чтобы отключить его полностью в рабочем использовании оболочки shopt -u progcomp
. Поскольку Вы упомянули выполнение дистрибутива Linux который, кажется, основан на Ubuntu 13.04, я предполагаю, что другие люди споткнутся через этот тип ошибки, и это должно быть зафиксировано в мгновение ока. Другая опция состояла бы в том, чтобы переустановить завершение удара: blog.onetechnical.com/2012/06/19 / …
– Moreaki
07.11.2013, 22:43
/etc/bash_completion.d
в моем экземпляре Мяты и я смог переименовать/переместить, как Вы предположили, но проблема остается, как описано. – guypursey 27.10.2013, 18:59