Клавиши со стрелками, Home, End, tab-полные клавиши, не работающие в оболочке

Я установил ubuntu minimal(mini.iso ) на моей виртуальной машине. Затем я использовал режим восстановления, чтобы войти в систему как root и создать учетную запись с useradd -m admin а затем установите пароль с помощью passwd admin.

Когда я вхожу в новую учетную запись, вместо обычного приглашения я вижу только $ знак. Если я попытаюсь ввести команду или имя файла с вкладкой, он выведет обычную вкладку. Если я попытаюсь использовать клавиши со стрелками, он напечатает ^[[A, ^[[B, ^[[C или ^[[D. Также, ls больше не добавляет цветов.

Ни одна из этих проблем не была в режиме восстановления. Как я могу это исправить?

Вероятно, это означает, что новая учетная запись пользователя была создана с помощью /bin / sh в качестве оболочки входа (которая по умолчанию ссылается на оболочку dash) вместо /bin /bash - вы можете изменить оболочку входа пользователя с помощью команды 'chsh'

chsh -s /bin/bash

или изменить оболочку входа другого пользователя (очевидно, для этого нужно быть root)

sudo chsh -s /bin/bash <username>

(вам нужно будет начать новый сеанс входа в систему, чтобы изменения вступили в силу). Вам также может потребоваться скопировать файл default .bashrc из /etc/skel, чтобы получить цветовое приглашение.

В будущем вы, возможно, захотите использовать команду 'adduser' вместо 'useradd' - она настраивает более полную пользовательскую среду, включая такие вещи, как default .profile и .bashrc, а также устанавливает оболочку входа в систему на 'bash'

Я не смог использовать завершение вкладки при подключении через VNC к безголовому XFCE4. Приведенный здесь ответ не сработал, но это сработало:

Редактирование сочетаний клавиш в xml-файле:

sudo nano ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml

Найди:

<property name="&lt;Super&gt;Tab" type="string" value="switch_window_key"/>

Измените его на:

<property name="&lt;Super&gt;Tab" type="empty"/>

Выход из системы / перезагрузка, и все должно быть хорошо

Я только что установил Vim, и все было решено. Сначала я подумал, что он был установлен в оригинальной версии Ubuntu, так как я смог использовать Vi command, но это было не так.

sudo apt-get install vim 

решил проблему.

sudo sh -c "if [ -e $(which bash) ]; then rm $(which sh) && ln -s $(which bash) /bin/bash; fi"

Моя проблема заключалась в том, что /bin/sh был символически связан с /bin/dash.

В моем случае это оказалась функция, которую я создал в своем .bash-aliases файл называется "тест". Если у вас все еще возникают эти ошибки, просмотрите свои пользовательские псевдонимы в .bashrc, .bash_profile, и .bash_aliases, временно удалив все подозрительные дополнения и повторите попытку автозаполнения bash.

Если все остальное работает, но только некоторые попытки завершения имени файла (автозаполнения) завершаются неудачей, возможно, вам не хватает разрешения на поиск в каталоге, который является компонентом пути.

Предположим, вам нужен список для какого-то другого пользователя .bash_profile файл. Следующий ls команда будет работать; потому что sudo запускает ls команда с требуемым разрешением.

$ sudo ls -al /home/someone_else/.bash_profile    

Однако, если вы попытаетесь использовать завершение имени файла, завершение вкладки ничего не даст.

$ sudo ls -al /home/someone_else/.bash_pr<tab>   # does not complete

Это происходит потому, что bash завершение работает до sudo вызывается. Команда с таким же успехом могла бы быть:

$ ls -al /home/someone_else/.bash_pr<tab>   

Поскольку разрешение на поиск в этом каталоге отсутствует, завершение команды ничего не делает.

Чтобы временно запустить с более широкими разрешениями, вы можете запустить новую оболочку с помощью sudo.

$ sudo bash

То ls команда теперь может быть запущена без sudo предикат, и автозаполнение работает. (Обратите внимание, что приглашение переключается с $ к #.)

# ls -al /home/someone_else/.bash_pr<tab>   

Просто убедитесь, что вы уничтожили снаряд, когда ваша задача будет выполнена; снаряд с такой большой мощностью опасен.

# exit

Это решит все: вставьте и нажмите . После этого вы сможете выполнить автозаполнение из истории, используя стрелку вверх.

bind '"\e[A": history-search-backward'

Взято из:https://unix.stackexchange.com/questions/5366/command-line-completion-from-command-historyТакже вы можете использовать Ctrl + R, чтобы просмотреть свою историю.

@SimplySimon Клавиши со стрелками вверх и вниз предназначены для переключения между предыдущими командами, клавиши со стрелками влево и вправо предназначены для прокрутки текущей команды, а вкладка должна завершать команду или имя файла. Путь должен быть записан слева от $…

Приглашение $ предназначено для пользователя. подсказка root - это #. Клавиши со стрелками не работают в терминале, вам нужно ввести что-то вроде “unity”, чтобы запустить оболочку Unity

Очень верно, конечно, они это делают. извините

sudo chsh -s /bin / bash root работает для меня