Как скопировать команду терминала в буфер обмена без использования мыши?

Установка расширения pecl не работала для меня (кто знает почему), но я нашел альтернативу:

Я просто загрузил этот плагин через scp в свой VPS, и он решил проблему: https: / /wordpress.org/plugins/ssh-sftp-updater-support/

5
задан 25 May 2018 в 21:04

2 ответа

Вы можете использовать расширение истории bash, чтобы скопировать предыдущую командную строку в ваш буфер обмена, не выполняя подстановки, расширения и т. д.:

echo !!:q | xclip -sel clip # or respectively echo !!:q | xsel -ib

!! - это ярлык для !-1, ссылаясь на предыдущую команду. Colon : предшествует модификатору q, который позволяет расширять цитату замещенных слов одинарными кавычками, чтобы предотвратить дальнейшие подстановки.

Пример run

$ uname -r # run your command 4.10.0-35-generic $ echo !!:q | xclip -sel clip # copy the previous command to clipboard echo 'uname -r' | xclip -sel clip # this line shows what’s done $ xclip -sel clip -o # print clipboard content (just for testing) uname -r $ $(xclip -sel clip -o) # run command stored in clipboard (just for testing) 4.10.0-35-generic

Чтобы упростить это, может bash «Расширить историю» или установить комбинацию клавиш в настройках. Прочтите man bash / EXIST. ИСТОРИЯ и man history, чтобы узнать больше об истории расширения.

5
ответ дан 17 July 2018 в 13:26

Вы можете использовать расширение истории bash, чтобы скопировать предыдущую командную строку в ваш буфер обмена, не выполняя подстановки, расширения и т. д.:

echo !!:q | xclip -sel clip # or respectively echo !!:q | xsel -ib

!! - это ярлык для !-1, ссылаясь на предыдущую команду. Colon : предшествует модификатору q, который позволяет расширять цитату замещенных слов одинарными кавычками, чтобы предотвратить дальнейшие подстановки.

Пример run

$ uname -r # run your command 4.10.0-35-generic $ echo !!:q | xclip -sel clip # copy the previous command to clipboard echo 'uname -r' | xclip -sel clip # this line shows what’s done $ xclip -sel clip -o # print clipboard content (just for testing) uname -r $ $(xclip -sel clip -o) # run command stored in clipboard (just for testing) 4.10.0-35-generic

Чтобы упростить это, может bash «Расширить историю» или установить комбинацию клавиш в настройках. Прочтите man bash / EXIST. ИСТОРИЯ и man history, чтобы узнать больше об истории расширения.

5
ответ дан 20 July 2018 в 13:32
  • 1
    Добавлен добавленный. :) – dessert 26 May 2018 в 14:08
  • 2
    Это работает для некоторых простых случаев, но как только перенаправление ввода / вывода, замена команд или подобные вещи (то есть все, что интерпретируется оболочкой), вступают в игру, они не будут копировать буквенную команду в буфер обмена. – Lienhart Woitok 26 May 2018 в 14:23
  • 3
    @LienhartWoitok Вы совершенно правы, к счастью, есть модификатор q to [q] uote замещенные слова, избегая дальнейших подстановок - я отредактировал свой ответ. Большое спасибо за это полезное замечание! – dessert 26 May 2018 в 14:58

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

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