Поиск по сайту:

Как копировать и вставлять текст в оболочку Linux Bash


Хотите скопировать и вставить в командной строке оболочки Bash? Мы покажем вам несколько методов, предпочитаете ли вы клавиатуру или мышь. Они работают независимо от того, находитесь ли вы на графическом рабочем столе или на традиционном текстовом телетайпе.

Обычные сочетания клавиш не работают

Копирование и вставка текста является основной частью использования компьютера. Когда люди впервые используют компьютер с Linux, независимо от того, пришли ли они из мира Windows или macOS, они часто сбиваются с толку при попытке скопировать и вставить в окне терминала.

В Windows вы используете Ctrl+C, чтобы скопировать часть выделенного текста, и Ctrl+V, чтобы вставить его. В macOS вы используете Command+C, чтобы скопировать его, и Command+V, чтобы вставить его. Они следуют одному и тому же соглашению C для копирования и V для вставки.

Те же самые сочетания клавиш работают в большинстве графических приложений Linux, таких как редактор gedit или офисный пакет LibreOffice. Ctrl+C копирует выделенный текст и Ctrl+V вставляет его в курсор. Наш новичок в Linux, вероятно, даже не задумывается о том, что эти соглашения были перенесены в эти приложения. Они используют нажатия клавиш из мышечной памяти и продолжают свою работу.

Как только наш новичок открывает окно терминала и пытается скопировать и вставить в командной строке оболочки Bash, все меняется. Ctrl+C и Ctrl+V были назначены функциям задолго до того, как стало известно о копировании и вставке. На самом деле, эти нажатия клавиш были набраны задолго до того, как были изобретены графические оболочки, когда телетайп (TTY) был физической вещью.

Ctrl+C и Ctrl+V в TTY

Когда TTY был физическим устройством, Ctrl+C была выбрана как удобная комбинация клавиш для генерации сигнала. Это сигнал SIGINT, который сообщает текущему процессу о завершении. Поскольку окно терминала является эмулируемым TTY, эта комбинация клавиш (и многие другие) была сохранена и воспроизведена в эмуляции. Обратите внимание, что эмуляцией является окно терминала. Оболочка Bash — это программа, работающая в этом эмулированном TTY.

Мы можем легко увидеть функции, назначенные Ctrl+C и Ctrl+V. Предположим, вы набираете следующую команду и нажимаете «Enter».

ls -R /

Поскольку мы используем параметр -R (рекурсивный), команда ls начнет перечислять все файлы и каталоги, начиная с корневого каталога. Через пару секунд вы понимаете, что это не то, что вам нужно, поэтому завершаете процесс, нажимая Ctrl+C.

Ctrl+C

Процесс ls завершается. На снимке экрана выделены видимые признаки Ctrl+C. Он отображается как ^C.

Комбинация клавиш Ctrl+V вызывает «дословную вставку». Это позволяет вам вводить представление ключа в то, что вы печатаете, вместо того, чтобы получать эффект ключа. Чтобы увидеть это, попробуйте выполнить следующие команды (не вводите запятые). (Например, чтобы попробовать первый, нажмите Ctrl+V, а затем Enter.)

Ctrl+V, Enter
Ctrl+V, PgDn
Ctrl+V, RightArrow
Ctrl+V, Esc

Кстати, вы можете заметить, что Enter представлен как ^M. Ранее мы видели, что  Ctrl+C отображается как ^C. Казалось бы, ^ представляет собой Ctrl. Таким образом, Ctrl+M скорее всего означает то же, что и Enter. Означает ли это, что мы можем ввести Enter, набрав Ctrl+M? Попробуйте в окне терминала. Вы увидите, что это так.

Таким образом, очевидно, что мы не можем ожидать, что Ctrl+C и Ctrl+V будут выполнять копирование и вставку текста, когда им уже назначены проверенные временем функции. Итак, что мы можем использовать?

Ctrl+Shift+C и Ctrl+Shift+V

Легко запоминающиеся, потому что они очень похожи на свои аналоги, Ctrl+Shift+C и Ctrl+Shift+V являются прямой заменой Ctrl+C. и Ctrl+V.

Если вы выделите текст в окне терминала с помощью мыши и нажмете Ctrl+Shift+C, вы скопируете этот текст в буфер обмена.

Ctrl+Shift+C

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

Ctrl+Shift+V

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

А можно пойти и другим путем. Вы можете выделить текст в gedit и нажать Ctrl+C , а затем вставить его в окно терминала с помощью Ctrl+Shift+V.

Комбинация клавиш Ctrl+Insert аналогична Ctrl+Shift+C , а комбинация Shift+Insert аналогична Ctrl+Shift+V. Предостережение здесь заключается в том, что их можно использовать только в одном и том же окне терминала.

Использование мыши: щелкните правой кнопкой мыши

Вы можете использовать мышь для копирования и вставки в окне терминала. Вы должны использовать мышь, чтобы выделить текст, который собираетесь копировать, так почему бы не использовать ее для выполнения действий копирования и вставки?

После того, как вы выделили текст, щелкните правой кнопкой мыши и выберите «Копировать» в контекстном меню.

Чтобы вставить скопированный текст, щелкните правой кнопкой мыши еще раз и выберите «Вставить» из контекстного меню.

Текст вставляется в позицию курсора в командной строке. В этом примере относительный путь указан неправильно, и Bash не может изменить каталог. Пользователь пропустил ~/ в начале пути. Они набрали «~/», а затем скопировали остаток пути из предыдущей попытки и вставили его во вторую командную строку.

Когда они нажимают Enter, они перемещаются в каталог.

В этом примере показана вставка в одно и то же окно терминала, но вы можете использовать эту технику щелчка правой кнопкой мыши для вставки в разные окна терминала. Вы также можете вставлять в графические приложения, используя этот метод.

Использование мыши: средняя кнопка

Есть еще более быстрый способ копирования и вставки с помощью мыши, если у вашей мыши есть средняя кнопка. Если вы нажмете на колесо прокрутки (осторожно!) и оно щелкнет, у вас есть средняя кнопка.

Выделите текст в окне терминала, а затем нажмите среднюю кнопку. Выделенный текст вставляется в позицию курсора в командной строке. Копирование и вставка происходят одновременно.

Итак, выделите текст:

Затем нажмите среднюю кнопку:

Вы можете использовать этот метод для вставки между окнами разных терминалов, а также в графические приложения. Просто выделите текст, перейдите в другое окно терминала или приложение и нажмите среднюю кнопку.

Старая школа – без мыши

А если нет мышки? Если вы не можете выделить какой-либо текст, как вы можете его скопировать и вставить?

Серверы Linux часто настраиваются без графической среды рабочего стола (GDE), что означает, что у вас нет доступа к мыши. Даже на компьютере с Linux, на котором работает графическая среда рабочего стола, такая как GNOME, и у вас есть мышь, будут случаи, когда вы не сможете использовать мышь для выделения текста.

Например, вы могли переключиться на один из дополнительных TTY. В современных дистрибутивах они расположены от Ctrl+Alt+F3 (TTY3) до Ctrl+Alt+F6 (TTY6). (Ctrl+Alt+F2 вернет вас в сеанс GDE, а Ctrl+Alt+F1 — на экран входа в систему GDE.)

Возможно, вы даже используете подлинное аппаратное устройство TTY для подключения к компьютеру Linux или Unix.

В любом случае, эти методы будут работать для вас. Здесь следует помнить, что это не копирование и вставка, это вырезание, копирование и вставка, и вы можете вырезать и копировать только из текущей командной строки. . Конечно, вы можете использовать клавиши со стрелками для прокрутки своей истории, чтобы найти командную строку, из которой вы хотите вырезать, копировать и вставлять.

Нажатия клавиш, которые вы можете использовать:

  • Ctrl+W: вырезать слово перед курсором и добавить его в буфер обмена.
  • Ctrl+K: вырезать часть строки после курсора и добавить ее в буфер обмена. Если курсор находится в начале строки, он вырежет и скопирует всю строку.
  • Ctrl+U: вырежьте часть строки перед курсором и добавьте ее в буфер обмена. Если курсор находится в конце строки, он вырежет и скопирует всю строку.
  • Ctrl+Y: вставка последнего вырезанного и скопированного текста.

Перейдем к TTY3. (Используйте Ctrl+Alt+F1, чтобы потом вернуться на рабочий стол.)

Ctrl+Alt+F3
tty

У нас есть файл, который мы хотим удалить, давайте проверим, что он здесь.

ls -l file_to_delete.txt

Если мы используем клавишу со стрелкой вверх, мы будем вызывать последнюю использованную команду из истории команд. Мы могли бы просто отредактировать эту строку, но цель состоит в том, чтобы продемонстрировать вырезание, копирование и вставку, поэтому мы выполним нашу задачу по удалению файла немного затянувшимся образом.

Мы переместим курсор на первую букву имени файла, а затем нажмем Ctrl+K. Это удалит эту часть строки и скопирует текст в буфер обмена.

Нажимаем Backspace, пока не очистим строку.

Мы введем rm, чтобы удалить файл.

Теперь мы можем нажать Ctrl+Y и вставить оставшуюся часть строки.

Это завершает нашу команду, и мы можем нажать Enter, чтобы удалить файл.

Этот тип вырезания, копирования и вставки нельзя использовать между дополнительными TTY. Например, вы не можете вырезать, копировать и вставлять между TTY3 и TTY4.

Дополнительные TTY лучше всего рассматривать как ряд физических TTY, расположенных рядом. Невозможно копировать и вставлять между различными физическими терминалами, и в этих эмуляциях это невозможно.

Копируй это, контролируй

В какой бы ситуации вы ни оказались при использовании компьютера с Linux, всегда найдется способ скопировать и вставить. У вас есть варианты. Некоторые из них странные варианты, но по крайней мере есть варианты.

RELATED: Best Linux Laptops for Developers and Enthusiasts