Как выбрать и скопировать контент с терминала (ATL + CTRL + F1)

Когда в «терминале нижнего уровня» (не уверен, как это называется), тот открывался нажатием Ctrl + Alt + F1 как я могу скопировать содержимое команды, которую я там использовал, поскольку мыши нет, и я не могу переместить курсор для командной строки?

4
задан 5 January 2014 в 14:00

5 ответов

Вы можете просто перенаправить вывод в файл с > или &> ... Меня попросили переместить его из комментариев в ответы, так что вот оно.

Кстати, пара замечает:

Помещение > между командой и именем файла перезапишет текущее содержимое файла со стандартным выходом.

Помещение >> добавляет к файлу.

Помещение & перед перенаправителем также отлавливает стандартную ошибку (в Bash> 4).

0
ответ дан 5 January 2014 в 14:00
sudo apt-get install gpm

GPM - это то, что вам нужно & amp; очень полезно. Находясь в консоли (ctrl+alt+f1), вы можете copy, перетаскивая левую кнопку мыши, а затем paste, щелкая правой кнопкой мыши.

0
ответ дан 5 January 2014 в 14:00

Чтобы отправить вывод команды в файл, вы можете использовать перенаправление .

Например, вы можете отправить свою команду dmesg в файл с помощью

dmesg > ~/Documents/output.txt

Тогда выходные данные будут записываться в этот файл вместо экрана. Когда вы вернетесь в графический интерфейс, вы сможете найти файл в папке «Документы» и получить доступ к его содержимому.

0
ответ дан 5 January 2014 в 14:00

История последних использованных команд обычно сохраняется в файле истории (.bash_history). Вы можете открыть этот файл в любом редакторе и скопировать содержимое.

Что касается манипулирования командной строкой окна консоли, вы можете положиться на функции редактирования командной строки оболочки bash. Они обсуждаются в разделе READLINE страницы руководства Bash (man bash). Но они не позволят вам вставить скопированную часть в редактор.

Другой способ обойти это - использовать утилиту screen . В сети есть несколько вводных учебных пособий . Экран имеет функцию копирования и вставки:

  1. Нажмите CTRL + A , затем ESC , чтобы перейти в режим копирования.
  2. Перемещая клавиши курсора, вы можете перемещаться к первому символу выбранной вами области, а затем нажать Пробел . Теперь вы установили первую отметку.
  3. Переместите курсор в конец текста, который вы хотите выделить, и нажмите Пробел . Вы скопировали выбранную область в буфер.
  4. Чтобы вставить буфер, нажмите CTRL + A , а затем ] .
0
ответ дан 5 January 2014 в 14:00
1137 Есть несколько способов обойти это. Самое простое с xclip, и я сохранил для последнего.

Ответ hbdgaf представляет одно решение - перенаправление. Вот две вариации темы - перенаправление с именованным каналом и byobu. Сначала не требуется установка дополнительного программного обеспечения, в то время как byobu должен быть установлен.

Опция 1: именованный канал

Когда вы запускаете команду и используете конвейер | для перенаправления ее вывода в другую команду, которая называется анонимным каналом - она ​​существует для установить момент времени. Именованный канал, с другой стороны, представляет собой особый вид файла, в который данные входят, а затем выходят.

Вот шаги, чтобы заставить его работать:

  1. создайте именованный канал с помощью mkfifo /tmp/myPipe

  2. запустите команду, которую вы хочу и перенаправить вывод на /tmp/myPipe. Например, sudo apt-get install byobu > /tmp/myPipe. Обратите внимание, что команда будет ждать, пока вы не освободите вывод из myPipe. Используйте &, чтобы заставить его ждать в фоновом режиме, и позвольте вам продолжать использовать терминал, например, sudo apt-get install byobu > /tmp/myPipe &. Также обратите внимание, что стандартный вывод войдет в канал, но стандартный вывод перейдет на экран. Если вам нужны и stderr, и stdout в канале, используйте &> вместо >

    1. , вернитесь в GUI и освободите вывод из этого канала с помощью cat /tmp/myPipe. Теперь вы можете скопировать вывод с помощью мыши и клавиатуры.

Вариант 2: общий сеанс в byobu

Что касается byobu, основная идея состоит в том, что он создает общий сеанс. Вы запускаете byobu в терминале TTY и GUI, и вы видите один и тот же вывод там и там. Я бы предложил сначала запустить TTY, потому что так он чище. Допустим, я запускаю byobu в TTY2 run df;free, иду в GUI, запускаю gnome-terminal, затем вызываю byobu и вуаля - я вижу тот же вывод, который видел в TTY!

Вариант 3: xclip, самый простой способ

Предположим, я хотел скопировать вывод команды df. Все, что мне нужно сделать с xclip, это:

$ export DISPLAY=:0 ; df | xclip -sel clip

И это будет уже в вашем буфере обмена с графическим интерфейсом!

Однако есть небольшой улов - xclip не родное приложение, и должно быть установлено через sudo apt-get install xclip

Конечно, ввод всего, что в нем может стать повторяющимся, поэтому вы можете создать функцию .bashrc для выполнения этой работы. Просто скопируйте и вставьте нижеприведенную функцию в файл .bashrc, сохраните файл, и теперь каждый раз, когда вы входите в систему, у вас есть простая команда для копирования вывода в буфер обмена

function toClipboard
{
  export DISPLAY=:0
  "$@" | xclip -sel clip

}

И вы запускаете это как $ toClipboard df -h, поэтому обратите внимание, что вы можете запустить команду с параметрами.

Опция 4: скрипт

Существует команда с именем script, которая имеет именно эту цель - записать то, что вы видите в командной строке, в файл. Вы можете либо запустить его сначала, а затем набрать output в его оболочке и затем выйти; или вы можете вызвать экран с флагом --command, например, script --command "df -h"

Однако есть недостаток - выходной файл может содержать специальные символы. Здесь приведена информация о том, как очистить вывод

Опция 5: / dev / vcsX

Как показано Джайлсом [ 1131] с сайта U & amp; L можно фактически вывести содержимое tty на стандартный вывод другого терминала. Предположим, мы хотим сбросить tty2. Для этого используется команда

 cat /dev/vcs1

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

0
ответ дан 5 January 2014 в 14:00

Другие вопросы по тегам:

Похожие вопросы: