Як копіювати та вставляти текст у Bash Shell Linux

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

Звичайні комбінації клавіш не працюють

Копіювання та вставка тексту є основною частиною використання комп’ютера. Коли люди користуються комп’ютером 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.

  Як подвійне завантаження Linux і Windows 10

Комбінація клавіш 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. Застереження тут полягає в тому, що їх можна використовувати лише в одному вікні терміналу.

За допомогою миші: клацніть правою кнопкою миші

Ви можете використовувати мишу для копіювання та вставки у вікно терміналу. Ви повинні використовувати мишу, щоб виділити текст, який збираєтеся скопіювати, то чому б не використати її для виконання дій копіювання та вставки?

  Як встановити Linux на Chromebook за допомогою Crouton

Після виділення тексту клацніть правою кнопкою миші та виберіть «Копіювати» з контекстного меню.

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

Текст вставляється в позицію курсору в командному рядку. У цьому прикладі відносний шлях вказано неправильно, і Bash не може змінити каталог. Користувач пропустив «~/» з початку шляху. Вони ввели «~/», а потім скопіювали залишок шляху з попередньої спроби та вставили його у свій другий командний рядок.

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

У цьому прикладі показано вставлення в одне і те саме вікно терміналу, але ви можете використовувати цю техніку клацання правою кнопкою миші, щоб вставити в різні вікна терміналу. Ви також можете вставити в графічні програми за допомогою цього методу.

Використання миші: Середня кнопка

Існує ще швидший спосіб копіювання та вставки за допомогою миші, якщо миша має середню кнопку. Якщо ви натиснете на колесо прокрутки (м’яко!) і воно клацне, ви отримаєте середню кнопку.

Виділіть текст у вікні терміналу, а потім натисніть середню кнопку. Виділений текст вставляється в позицію курсору в командному рядку. Копіювання та вставка відбуваються одночасно.

Отже, виділіть деякий текст:

Потім натисніть середню кнопку:

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

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

Що робити, коли у вас немає миші? Якщо ви не можете виділити текст, як його скопіювати та вставити?

Сервери Linux часто налаштовуються без a графічне середовище робочого столу (GDE), що означає, що у вас немає доступу до миші. Навіть на комп’ютері Linux, на якому працює графічне середовище робочого столу, як-от GNOME, і у вас є миша, бувають випадки, коли ви не зможете використовувати мишу для виділення тексту.

Наприклад, ви могли перейти на один із додаткових TTY. У сучасних дистрибутивах вони розташовані від Ctrl+Alt+F3 (TTY3) до Ctrl+Alt+F6 (TTY6). (Ctrl+Alt+F2 поверне вас до сеансу GDE, а Ctrl+Alt+F1 переведе вас на екран входу в GDE.)

  Як грати в ігри Nintendo DS на Linux за допомогою MelonDS

Можливо, ви навіть використовуєте справжній апаратний пристрій 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, є спосіб скопіювати та вставити. У вас є варіанти. Деякі з них дивні варіанти, але принаймні є варіанти.