Как я могу поместить последнюю команду zsh в истории в буфер обмена?

2

Со мной часто случается, что я просто использовал команду, и мне нужно скопировать / вставить ее в другое окно терминала / IM или что-то еще.

На Mac я могу использовать pbcopyкоманду, чтобы получить что-то в буфере обмена, но я не уверен, как мне получить команду. Что я придумал

history | tail -n 1 | perl -ple 's/\d+\s+//' | pbcopy

который работает, но это не похоже на чистое решение. Есть ли лучший способ добраться до последней команды? Я использую zsh, но я думаю, если есть решение для bashэтого тоже будет работать zsh.

Якуб Арнольд
источник

Ответы:

8

В качестве разового взноса для последней команды:

echo !! | pbcopy 

поместит точно последнюю команду в буфер обмена.

Свен
источник
Это очень хороший трюк! +1
Яник Жируард
0

Вы можете использовать xclip для этой задачи.
Смотрите здесь. Вы
можете просто вставить что-то в буфер обмена следующим образом:

history 2 | xclip
Нико С.П.
источник
Xclip требует сеанса X11 ...
Яник Жируард
1
Если вы внимательно прочитаете вопрос, вы заметите эту часть первого предложения: «Мне нужно скопировать / вставить его в другое окно терминала / IM или в другое место». Разве это не означает, что у него есть X-сессия?
Нико С.П.
Нет, это подразумевает, что у него есть сеанс окна, который может быть X, но это также может быть Unity, NeWS, Finder.app или любой другой графический интерфейс, который может иметься в системе.
HD1