У меня есть довольно длинные команды и пути к файлам, которые я скопировал в буфер обмена и должен выполнить в TTY, однако пути к файлам слишком длинные для перепечатки, и я хотел бы просто вставить их после $
(я могу перепечатать команды раньше их тогда), есть ли способ сделать это?
Поэтому я хотел бы выполнить команду и $
поместить ее в следующую строку, начиная с текста, скопированного в буфер обмена, примерно так:
$ specialCommandToPasteText
$ pastedText
Я использую Ubuntu GNOME 16.04 с GNOME 3.20.
gpm
для поддержки мыши в VT, как это предлагается в вашем собственном ответе на предыдущий вопрос ?Ответы:
Все просто, но вам нужен дополнительный инструмент.
Установите пакет,
xsel
который предоставляет простую команду для доступа к буферу обмена:Узнайте, какой
$DISPLAY
рабочий стол используется. Обычно так и должно быть:0
, но вы можете проверить это, выполнив эту команду в эмуляторе терминала на рабочем столе GUI:Я предполагаю, что вывод будет
:0
заменен на фактический вывод в следующих командах, если он отличается.Скопируйте команду, которую вы хотите выполнить в TTY, например, используя Ctrl+ C.
Переключитесь на TTY, который вы хотите использовать, например, на TTY1, используя Ctrl+ Alt+ F1.
Войдите, введя ваше имя пользователя и пароль.
Введите полную команду, которую хотите запустить, но замените часть, которую хотите вставить из буфера обмена
$(DISPLAY=:0 xsel -ob)
.Например, если вы скопировали большой список пакетов для установки, вы можете ввести его в TTY:
Фрагмент буфера обмена не обязательно должен быть в конце вашей команды, хотя он может появиться где угодно.
Чтобы еще больше упростить ситуацию, давайте перенесем это все еще немного
DISPLAY=:0 xsel -ob
в сценарий. Я назову этоPASTE
(потому чтоpaste
уже занято), но вы также можете назвать это по-другому.Чтобы создать файл сценария в месте, где каждый пользователь может запустить его без указания полного пути (я рекомендую
/usr/local/bin
для этого), и сделать его исполняемым, просто запустите эти две команды:Теперь вы можете просто встроить
$(PASTE)
свои команды в TTY, чтобы вставить туда содержимое буфера обмена с вашего рабочего стола.источник
DISPLAY=:0 xsel -ob
как псевдоним Bash или небольшой скрипт где угодно (назовем егоPASTE
) и использовать только сокращенную форму, например,$(PASTE)
использовать содержимое буфера обмена в ваших командах.Лично я просто использую текстовые файлы:
В среде рабочего стола откройте терминал и
Бросьте к Tty и
источник
some-command '
shift + insert (для вставки).'
возвращение. Вставка внутри одинарных или двойных кавычек препятствует выполнению команды символами новой строки в вставленном тексте, прежде чем я смогу отредактировать ее, чтобы исправить любые проблемы. ИДК, что вы получаете, чтобы поместить текст в файл. Bash имеет очень мощные клавиши для редактирования строк, такие как ctrl-left или ctrl-right arrow для перемещения по словам. alt-backspace для удаления обратных слов. Alt-d, чтобы удалить слова вперед и т. Д. И т. Д.Другой возможный обходной путь, не указанный выше, включает использование
vim
, вставку и запуск:!unix_command
в командном режиме:vim
, перейти в командный режим Esc, ввести подсказку:источник