1

У меня есть машина, на которой установлен настроенный Linux, и я захожу в систему через PuTTY.

Оказалось, я использую bash . И PS1 это

sh-4.1# echo $PS1
\s-\v\$

когда я набираю следующее:

sh-4.1# ls a very long path i will not be able to see the rest of the command line

я увижу

sh-4.1#
< i will not be able to see the rest of the command line

Я могу использовать левую клавишу со стрелкой, чтобы двигаться вперед:

sh-4.1# ls a very long path i will not be able to see the rest of the command >

Это очень неудобно, так как вам нужно переместить курсор, чтобы увидеть остальную часть командной строки.

Как я могу показать всю командную строку?

3 ответа3

2

Никто больше не использует sh , это всегда символическая ссылка на специфичную для дистрибутива оболочку по умолчанию (ash , ksh , bash , dash , zsh и т.д.). Вы можете проверить с помощью readlink -e $(which sh)

Используете ли вы Virtual Terminal или эмулятор терминала, такой как gnome-terminal , xterm , konsole и т.д.?

В любом случае, вот хитрость: нажмите CTRL+X+E, чтобы инициализировать редактор (установленный переменной среды EDITOR), затем сохраните и выйдите, и ваша длинная команда будет выполнена.

Вы можете изменить редактор по умолчанию, используя export EDITOR="nano -w"

Источник: Commandlinefu - быстро вызвать редактор, чтобы написать длинную, сложную или хитрую команду

1

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

PuTTY , а? Быстрый поиск обнаружил сообщение об ошибке, касающееся упаковки. Я использую MobaXterm по случаю, когда я вынужден использовать Windows (ужас).

Однако при запуске виртуальной машины автоматически включается Auto wrap mode initially on который по умолчанию включен и работает. У вас включен этот параметр?

шпатлевка

0

Если вам абсолютно необходимо ввести путь за один раз, я могу предложить изменить подсказку. Если вы не против вернуться к bash, вы можете добавить новую строку в конце определения переменной PS1, которая переместит шаблон в отдельную строку, что даст вам больше возможностей для работы с ней. Это можно сделать, отредактировав ваш .bashrc , примерно так:

# Original line from ~/.bashrc:
PS1='\s-\v# '
# ^^ prints "bash-4.2# _" as the prompt on my system
# (Ignore parens, underscore shows cursor position)
# or insert '\n':
PS1='\s-\v\n# '
#         ^^ newline, now prints
# "bash-4.2
#  # _"

Недостатком этого является то, что ваше приглашение теперь занимает больше места на экране и, в зависимости от вашего исходного приглашения, может дать вам только несколько символов для работы с каждой строкой.

Сказав это, действительно ли обязательно, чтобы путь был введен сразу? Это может быть стоит cd ИНГ вниз на несколько уровней (так как вы уже знаете , их местоположение с пути) , то этот ls или что - то еще.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .