Когда в «терминале нижнего уровня» (не уверен, как это называется), тот открывался нажатием Ctrl kbd> + Alt kbd> + F1 kbd > как я могу скопировать содержимое команды, которую я там использовал, поскольку мыши нет, и я не могу переместить курсор для командной строки?
Вы можете просто перенаправить вывод в файл с >
или &>
... Меня попросили переместить его из комментариев в ответы, так что вот оно.
Кстати, пара замечает:
Помещение >
между командой и именем файла перезапишет текущее содержимое файла со стандартным выходом.
Помещение >>
добавляет к файлу.
Помещение &
перед перенаправителем также отлавливает стандартную ошибку (в Bash> 4).
sudo apt-get install gpm
GPM - это то, что вам нужно & amp; очень полезно. Находясь в консоли (ctrl+alt+f1
), вы можете copy
, перетаскивая левую кнопку мыши, а затем paste
, щелкая правой кнопкой мыши.
Чтобы отправить вывод команды в файл, вы можете использовать перенаправление .
Например, вы можете отправить свою команду dmesg
в файл с помощью
dmesg > ~/Documents/output.txt
Тогда выходные данные будут записываться в этот файл вместо экрана. Когда вы вернетесь в графический интерфейс, вы сможете найти файл в папке «Документы» и получить доступ к его содержимому.
История последних использованных команд обычно сохраняется в файле истории (.bash_history
). Вы можете открыть этот файл в любом редакторе и скопировать содержимое.
Что касается манипулирования командной строкой окна консоли, вы можете положиться на функции редактирования командной строки оболочки bash. Они обсуждаются в разделе READLINE страницы руководства Bash (man bash
). Но они не позволят вам вставить скопированную часть в редактор.
Другой способ обойти это - использовать утилиту screen . В сети есть несколько вводных учебных пособий . Экран имеет функцию копирования и вставки:
xclip
, и я сохранил для последнего.
Ответ hbdgaf представляет одно решение - перенаправление. Вот две вариации темы - перенаправление с именованным каналом и byobu
. Сначала не требуется установка дополнительного программного обеспечения, в то время как byobu
должен быть установлен.
Опция 1: именованный канал
Когда вы запускаете команду и используете конвейер |
для перенаправления ее вывода в другую команду, которая называется анонимным каналом - она существует для установить момент времени. Именованный канал, с другой стороны, представляет собой особый вид файла, в который данные входят, а затем выходят.
Вот шаги, чтобы заставить его работать:
создайте именованный канал с помощью mkfifo /tmp/myPipe
запустите команду, которую вы хочу и перенаправить вывод на /tmp/myPipe
. Например, sudo apt-get install byobu > /tmp/myPipe
. Обратите внимание, что команда будет ждать, пока вы не освободите вывод из myPipe
. Используйте &
, чтобы заставить его ждать в фоновом режиме, и позвольте вам продолжать использовать терминал, например, sudo apt-get install byobu > /tmp/myPipe &
. Также обратите внимание, что стандартный вывод войдет в канал, но стандартный вывод перейдет на экран. Если вам нужны и stderr, и stdout в канале, используйте &>
вместо >
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
cat /dev/vcs1
Недостатком этого метода является то, что если ваш терминал настроен на определенный уровень линий прокрутки, вы можете получить только частичный вывод.