18 января 2021

Скопировать и вставить текст в терминале Linux

 Копировать, вставить (англ. copy, paste) — набор функций для работы приложений с буфером обмена операционной системы. Копировать и перемещать можно файлы и части объектов (текста, изображения, звука и т. д.). С точки зрения пользователя, реализуется следующими функциями:
    Копировать (англ. copy) — помещает фрагмент в буфер обмена, оставляя документ без изменений.
    Вставить (англ. paste) — вставляет в текущий документ фрагмент, находящийся в буфере обмена.

Стандартно для копирования и вставки объектов в Linux также как и в Windows используются сочетания клавиш Ctrl+C и Ctrl+V. При копировании текст (или любой другой объект) в таком случае попадает в буфер обмена. Затем вы можете вставить этот текст в другом месте.
 
В терминале Linux для копирования и вставки не работают стандартные сочетания Ctrl+V, Ctrl+C. Это связано с тем, что исторически Ctrl+C — это сочетание клавиш для прерывания текущего процесса в терминале, которое было назначено задолго до того, как были разработаны графические оболочки. 
 
 Для чего нужно прервать процесс в терминале?

 Предположим, вы набрали следующую команду и нажали Enter.

ls -R /

Команда ls начнет рекурсивно (R) перечислять все файлы и каталоги, начиная с корневого каталога. Через пару мгновений вы понимаете, что это не то, что вам нужно, поэтому вы завершаете процесс, нажимая Ctrl+C:
 
 
 Процесс ls завершен. Видимое свидетельство Ctrl+C выделено на скриншоте. Он отображается как ^C.
 
Поэтому, для копирования и вставки при работе в терминале используются сочетания:  Ctrl+Shift+C и Ctrl+Shift+V, которые легко запомнить, т.к. они очень похожи на стандартные Ctrl+V и Ctrl+C.
 
Ctrl+Shift+C — копировать
 

 Ctrl+Shift+V — вставить
 

 Если вы выделите текст в окне терминала и нажмете Ctrl+Shift+C вы скопируете этот текст в буфер обмена. Вы можете использовать Ctrl+Shift+V чтобы вставить скопированный текст в то же или в другое окно терминала.
Но обратите внимание, когда вы вставляете скопированный текст из терминала в графическое приложение, а не в окно терминала, вы должны использовать Ctrl+V и наоборот.
 

 Другой пример. 
 
Я часто публикую статьи с терминальными командами, которые нужно скопировать в браузере и вставить у себя в терминал для выполнения.
Так вот, для копирования команды в браузере, её нужно выделить и нажать сочетание клавиш Ctrl+C, а для вставки в терминал - Ctrl+Shift+V.
 
Можно ли изменить сочетание  Ctrl+Shift+C и Ctrl+Shift+V на Ctrl+C и Ctrl+V?
 
 Комбинации клавиш для терминала находятся в Параметрах меню терминала:



Переназначить сочетание  Ctrl+Shift+C и Ctrl+Shift+V на Ctrl+C и Ctrl+V можно здесь же  в Параметры-Комбинации клавиш, кликом на строке и нажатием новой комбинации на клавиатуре, НО!, тогда вы лишитесь команды принудительно завершающей процесс в терминале в случае необходимости, т.к. переназначить её на другие клавиши НЕВОЗМОЖНО. Лучше оставить всё как есть и просто запомнить сочетание  Ctrl+Shift+C и Ctrl+Shift+V.
 
Удачи.
 
     P.S. Если у вас появились вопросы по данной статье, обсудить их можно на нашем форуме:

8 комментариев :

  1. Ещё прекрасно работает такая фича:
    - стрелкой вверх выбираете любую ранее введённую команду в Терминале или просто вводите команду на клаве, выделяете её мышом и, пока Терминал не закрыт, запись попадает в буфер обмена и простым нажатием на мыше на скролик она вставляется в любом месте на вашем РС и в том же Терминале...

    ОтветитьУдалить
  2. У Владимира есть прекрасный материал по выделению и копированию ("старожилы" его сайта знают):
    http://compizomania.blogspot.com/2017/02/linux.html#more и http://compizomania.blogspot.com/2013/05/linux.html
    Владимиру ещё много-много раз спасибо за его труд )))

    ОтветитьУдалить
  3. Ctrl+Insert - копируем, Shift+Insert - вставляем. Так же, как и в Windows.

    ОтветитьУдалить
  4. Maxsim Golota и Владимир Маслов, прежде всего спасибо за благодарность и второе, статья о комбинации клавиш Ctrl+Shift+C и Ctrl+Shift+V "Скопировать и вставить текст в терминале" и почему не Ctrl+C и Ctrl+V.

    ОтветитьУдалить
    Ответы
    1. я просто в купе к статье ещё один способ всем напомнить хотел.
      За статью огромный РЕСПЕКТ!!!

      Удалить
  5. Это работает ТОЛЬКО в эмуляторах терминала. В самих tty оно не робит.

    ОтветитьУдалить
    Ответы
    1. В самих терминальных сеансах можно поставить gpm и там её выделять нужный текст и вставлять куда нужно колесом мыши. Не забываем, ессно, gpm в автозагрузку добавлять после установки.

      Удалить