Если вы хотите скопировать вывод из команды, вы можете использовать pbcopy
. Чтобы получить конкретный вывод, используйте grep
.
Например, чтобы скопировать весь вывод netstat -an
:
netstat -an | pbcopy
Чтобы только скопировать вывод открытых портов (прослушивание):
netstat -an | grep LISTEN | pbcopy
Сам Terminal.app не имеет возможности использовать клавиатуру для выбора текста, но используя мультиплексор терминала, такой как screen или tmux, вы можете сделать это в "режиме копирования". По умолчанию Screen устанавливается в OS X, а tmux можно установить с помощью стороннего инструмента, такого как Homebrew или Macports. Страница man для обеих программ описывает режим копирования и как выбрать текст для копирования в буфер обмена. На странице справки экрана больше информации о режиме копирования можно найти в разделе CUSTOMIZATION
под copy
. Выдержка ниже:
copy
Enter copy/scrollback mode. This allows you to copy text from the cur-
rent window and its history into the paste buffer. In this mode a vi-
like `full screen editor' is active:
Movement keys:
h, j, k, l move the cursor line by line or column by column.
0, ^ and $ move to the leftmost column, to the first or last non-
whitespace character on the line.
H, M and L move the cursor to the leftmost column of the top, center
or bottom line of the window.
+ and - positions one line up and down.
G moves to the specified absolute line (default: end of buffer).
| moves to the specified absolute column.
w, b, e move the cursor word by word.
B, E move the cursor WORD by WORD (as in vi).
C-u and C-d scroll the display up/down by the specified amount of
lines while preserving the cursor position. (Default: half screen-
full).
C-b and C-f scroll the display up/down a full screen.
g moves to the beginning of the buffer.
% jumps to the specified percentage of the buffer.
Это по-прежнему не взаимодействует с системным буфером обмена, поэтому вам придется каким-то образом скопировать вывод, возможно, путем вывода содержимого буфера вставки в pbcopy. Пример рабочего процесса:
(Ca [означает «удерживать нажатой кнопку управления A, а затем нажать [», то же самое для]. См. Справочную страницу экрана.)
- Запустите экран и сделайте там работу.
- Войдите в режим копирования: Ca [
- Перемещайтесь с помощью сочетаний клавиш vi (или используйте привязки emacs для каждой страницы руководства).
- Начать выделение текста с пробела.
- Нажмите Enter, чтобы скопировать выделение, чтобы вставить буфер. Это выходит из режима копирования.
- Вставьте буфер с Ca]
эхо 'Ca]' | pbcopy
(буквально не вводите Ca], используйте связывание клавиш, как описано выше, используйте кавычки, где это необходимо)
Выбранный вами текст должен находиться в системном буфере обмена, и вы можете вставить его в другое окно. Например следующее:
paste [registers [dest_reg]]
Write the (concatenated) contents of the specified registers to the
stdin queue of the current window. The register . is treated as the
paste buffer. If no parameter is given the user is prompted for a sin-
gle register to paste. The paste buffer can be filled with the copy,
history and readbuf commands. Other registers can be filled with the
register, readreg and paste commands. If paste is called with a second
argument, the contents of the specified registers is pasted into the
named destination register rather than the window. If . is used as
the second argument, the displays paste buffer is the destination.
Note, that "paste" uses a wide variety of resources: Whenever a second
argument is specified no current window is needed. When the source
specification only contains registers (not the paste buffer) then there
need not be a current display (terminal attached), as the registers are
a global resource. The paste buffer exists once for every user.
Был с экрана man-страницы из вышеперечисленного :).
Теперь все, что сказано, и вы упомянули Terminal.app, в частности, новую функцию iTerm2 версии 0.20.20101102, которая находится в альфа-тестировании, показывает:
- Выбор без мыши: Вы часто копируете и вставляете текст в одно и то же окно? Теперь вы можете сделать это без использования мыши. Откройте панель поиска с помощью cmd-f и найдите текст, который вы хотите скопировать. Когда часть текста совпадает, используйте клавишу табуляции, чтобы расширить выделение вправо на целое слово, и клавишу Shift, чтобы развернуть его влево до предыдущей границы слова. Он автоматически копируется в буфер обмена, или вы можете использовать opt-Enter, чтобы немедленно вставить выбор.
Хотя это альфа, я использую его для всей работы терминала примерно полтора месяца, и он достаточно стабилен.
Домашняя страница iTerm2