Как копировать в терминале ubuntu

Обновлено: 02.07.2024

Терминал - один из самых мощных инструментов Linux. С помощью него можно настроить и сделать практически всё в этой операционной системе. Чтобы сделать работу в терминале ещё более удобной и продуктивной разработчики добавили различные сочетания клавиш.

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

Горячие клавиши терминала Linux

1. Tab

Без этого сочетания терминалом пользоваться невозможно, и поэтому его знают все. Одно нажатие клавиши Tab автоматически дополняет текущую команду или путь к файлу если возможен только один вариант. Два нажатия по ряд показывают возможные варианты автодополнения. Это делает набор команд и путей к файлам намного быстрее.

2. Ctrl + R

После нажатия Ctrl+R появляется строка поиска в которой вы можете начать вводить имя команды, которую надо выполнить. Система найдёт все команды, которые ранее выполнялись с таким началом и отобразит самую свежую. Вы можете уточнить поиск добавив ещё несколько символов. Для выполнения команды просто нажмите Enter, для редактирования Esc.


3. Ctrl + C

Это сочетание клавиш позволяет прервать работу любой программы, которая выполняется в терминале. После нажатия Ctr + C программе отправляется сигнал SIGINT и если она не обрабатывает его особым образом выполнение программы завершается. Некоторые программы перехватывают сигнал и перед завершением выполняют кое какие действия по сохранению данных и завершению операций, например пакетный менеджер zypper.

4. Ctrl + Z

С помощью Ctrl+Z вы можете перевести текущую программу в фоновый режим. Обычно, если вам надо чтобы программа выполнялась в фоновом режиме просто добавьте символ & после команды. Но если вы забыли это сделать поможет это сочетание клавиш. Чтобы посмотреть задачи, которые сейчас работают в фоне используйте команду jobs, а для возврата задачи в нормальный режим - команду fg.

5. Ctrl + D

Сочетание клавиш Ctrl+D можно считать альтернативой команды exit. Если вы подключены по SSH то сессия будет разорвана. Если вы работаете в терминале напрямую, то окно будет закрыто.

6. Ctrl + L

Альтернатива команды clear. Позволяет очистить вывод терминала. Очень удобно для создания снимков экрана и просто для очистки лишней информации.

7. Ctrl+P и Ctrl+N

Эти сочетания клавиш альтернативы клавишам стрелки вверх и вниз. Первое показывает предыдущую введенную команду, а второе следующую. Так вы можете перемещаться по истории команд. Это не удобнее стрелок, но иногда может быть полезно.

8. Ctrl + A и Ctrl + E

Перемещаться можно не только по истории команд, но и по текущей строке. Эти горячие клавиши - аналоги клавиш Home и End. Первая комбинация перемещает курсор в начало строи, а вторая в конец.

9. Ctrl + U и Ctrl + K

С помощью первого сочетания можно удалить весь текст от начала строки до позиции курсора, а с помощью второго - от позиции курсора и до конца строки. Это может быть полезно если вы ввели неверную команду и не хотите стирать её по одному символу.

10. Ctrl + W

Нажав Ctrl+W вы можете стереть слово перед курсором. Если курсор находится в середине слова, то будут стёрты все символы от курсора до начала слова. Удобнее всего ставить курсор после слова, которое нужно убрать.

11. Ctrl + Y

С помощью Ctrl + Y вы можете вставить текст вырезанный с помощью Ctrl + U, Ctrl + K и Ctrl + W. Текст будет вставлен туда, где находится курсор.

12. Ctrl + B и Ctrl + F

Аналог для клавиш стрелка вправо и стрелка влево. Первое сочетание позволяет перемещаться на один символ вправо, а второе на один символ влево.

13. Ctrl + T

Заменяет символ, находящийся под курсором на предыдущий символ. Или перемещает символ перед курсором к концу строки.

14. Ctrl +X затем Ctrl + E

Открывает текущую команду в текстовом редакторе. Если в переменной EDITOR редактор не задан, то будет использоваться nano. После редактирования и сохранения результата команда будет выполнена. Удобно для написания многострочных скриптов.

15. Alt +.

Аналог команды $!. Позволяет вставить последний аргумент предыдущей команды в позицию курсора. Удобно, если надо выполнить несколько команд с одинаковым аргументом.

16. Alt + B и Alt + F

Эти сочетания позволяют перемещаться по словам, также как их аналоги с Ctrl по символам. Alt + B перемещает курсор на слово влево, а Alt+F на слово вправо.

17. Alt + C, Alt + L и Alt + U

Следующие три сочетания клавиш позволяют играть с регистром символов команды. Первое сочетание - Alt + C делает символ под курсором прописным, а все остальные буквы до конца слова строчными. Alt + L делает все буквы до конца слова строчными, а Alt + U - прописными.

18. Ctrl + S и Ctrl + Q

Если команда выводит информацию слишком быстро, а вам надо прочитать её или скопировать, можно попросить терминал поставить на паузу вывод команды. Для этого нажмите Ctrl +S. Чтобы вернуть всё обратно нажмите Ctrl + Q.

Сочетания клавиш эмулятора терминала

Все сочетания клавиш, перечисленные выше будут работать во всех терминалах и эмуляторах терминала, которые используют командную оболочку Bash или другую популярную оболочку. Но у популярных эмуляторов терминала есть свои горячие клавиши, которые могут вам очень сильно пригодится при работе. Давайте рассмотрим их тоже. В этой статье будут использоваться горячие клавиши из Gnome Terminal, но в других терминалах они похожи.

1. Ctrl + Alt + T

С помощью этого сочетания клавиш можно открыть терминал в большинстве дистрибутивов, основанных на Ubuntu и Debian. Это просто, быстро и удобно.

2. Ctrl + Shift + С и Ctrl + Shift + V

Копирование и вставка - очень важные функции операционной системы. Сочетание клавиш Ctrl + C просто не может работать для копирования, потому что оно используется для завершения команды, поэтому для копирования и вставки была добавлена клавиша Shift.

3. Ctrl + Shift + F

Если вам надо выполнить поиск по выводу в терминале можно воспользоваться сочетанием Ctrl + Shift + F. После нажатия откроется окно ввода, в котором вы можете ввести искомое слово.


4. Shift + ЛКМ и Shift + ПКМ

Здесь ЛКМ и ПКМ - это правая и левая кнопка мышки. Такие программы, как screen и tmux в режиме поддержки работы мышью захватывают контроль мышки и вяжут на неё свои функции. Таким образом обычное копирование и вставка могут стать проблемой. Чтобы этого избежать можно выделять текст сочетанием клавиш Shift + ЛКМ и открывать контекстное меню с помощью Shift + ПКМ.

Выводы

В этой статье мы собрали лучшие сочетания клавиш терминала Linux, которые могут пригодится вам в работе с системой или во время её настройки. А какие горячие клавиши нравятся вам? Какие вы используете? Напишите в комментариях!

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Копирование файлов - одна из задач, наиболее часто возникающих перед пользователями персонального компьютера. Конечно, можно открыть файловый менеджер, войти в нужную папку и скопировать файл с помощью контекстного меню - тут не о чем говорить. Но в этой статье я хотел бы рассмотреть копирование файлов в Linux с помощью терминала.

Не всегда есть доступ к файловому менеджеру: из-за различных поломок графическая оболочка на домашнем компьютере может быть недоступна, а на серверах используется только консольный интерфейс. К тому же копирование файлов Ubuntu через терминал намного эффективнее, и вы сами в этом убедитесь. Сегодня мы рассмотрим не только обычное копирование командой cp Linux, но и не совсем обычное: с помощью tar и find.

Утилита копирования файлов cp

Название утилиты cp - это сокращение от Copy, что означает копировать. Утилита позволяет полностью копировать файлы и директории.

Синтаксис и опции

Общий синтаксис cp выглядит вот так:

$ cp опции файл-источник файл-приемник

$ cp опции файл-источник директория-приемник/

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

Утилита имеет несколько интересных опций, которые могут сильно помочь при нестандартных задачах копирования, поэтому давайте их рассмотрим:

  • --attributes-only - не копировать содержимое файла, а только флаги доступа и владельца;
  • -f, --force - перезаписывать существующие файлы;
  • -i, --interactive - спрашивать, нужно ли перезаписывать существующие файлы;
  • -L - копировать не символические ссылки, а то, на что они указывают;
  • -n - не перезаписывать существующие файлы;
  • -P - не следовать символическим ссылкам;
  • -r - копировать папку Linux рекурсивно;
  • -s - не выполнять копирование файлов в Linux, а создавать символические ссылки;
  • -u - скопировать файл, только если он был изменён;
  • -x - не выходить за пределы этой файловой системы;
  • -p - сохранять владельца, временные метки и флаги доступа при копировании;
  • -t - считать файл-приемник директорией и копировать файл-источник в эту директорию.

Примеры копирования файлов в linux

Теперь, когда вы знаете основные опции, можно перейти к практике. Например, мы хотим скопировать некую картинку из домашней папки в подкаталог pictures:

Или можем явно указать имя новой картинки:

Копирование папок осуществляется с помощью ключа -r:

После выполнения этой команды копирования

/папка будет скопирована в папку

/Документы. Главное, не забывайте поставить слэш в конце выражения или использовать опцию -t. Иначе папка

/документы будет перезаписана.

По умолчанию команда cp Linux перезаписывает существующие файлы или папки, но можно заставить утилиту спрашивать, нужно ли перезаписывать каждый файл, если вы не уверены в правильности составления команды:

Есть и противоположная опция -n, означающая "никогда не перезаписывать существующие файлы".

Опция -u полезна в следующем случае: вы знаете или предполагаете, что в директории, куда копируется файл, есть старая его версия, тогда оператор -u выполнит замену на новую версию:

Сp также поддерживает специальные символы замены * и ?. Например, следующая команда скопирует все файлы, начинающиеся на test:

Если нужно применить более сложные регулярные выражения, придётся комбинировать утилиту cp с find или egrep.

В случае, если важно сохранить права доступа к файлу и его владельца, нужно использовать опцию -p:

Для упрощения использования команды можно применять синтаксис фигурных скобок. Например, чтобы создать резервную копию файла, выполните:

Будет создан файл с таким же именем и расширением .bak

По умолчанию в cp не отображается прогресс копирования файла, что очень неудобно при работе с большими файлами, но его можно легко посмотреть с помощью утилиты cv.

Копирование файлов по регулярным выражениям в Linux

В утилите find можно применять различные условия и регулярные выражения для поиска файлов. Я уже немного писал о ней в статье как найти новые файлы в Linux. Мы можем скопировать все найденные с помощью find файлы, вызвав для каждого из них команду cp. Например, копируем все файлы в текущей директории, содержащие в имени только цифры:

find . -name 9 -exec cp <>

Здесь точка указывает на текущую директорию, а параметр name задает регулярное выражение. Параметром exec мы задаем, какую команду нужно выполнить для обнаруженных файлов. Символ <> - подставляет имя каждого файла.

Но не find'ом единым такое делается. То же самое можно получить, запросив список файлов директории в ls, отфильтровав его по регулярному выражению egrep и передав имена файлов по очереди в cp с помощью xargs:

/ | egrep '[a-zA-Z]' | xargs cp -t

Это не совсем удобный способ копировать файлы Linux, но всё же он возможен. Будут скопированы все файлы из домашней директории, содержащие в имени только английские буквы.

Копирование содержимого файлов в Linux

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

cat файл1 > файл2

Если файл был не пустым, он будет перезаписан. Или мы можем склеить два отдельных файла в один:

cat файл1 файл2 > файл3

Специальное копирование файлов в Linux с помощью tar

Linux интересен тем, что позволяет выполнять одно и то же действие различными путями. Копирование в Linux тоже может быть выполнено не только с помощью cp. При переносе системных файлов в другой каталог, резервном копировании системных файлов и т.д. важно чтобы сохранились атрибуты, значения владельцев файлов и символические ссылки как они есть без какой-либо модификации.

tar cf - /var | ( cd /mnt/var && tar xvf - )

Здесь мы полностью копируем содержимое папки /var в папку /mnt/var. Так вы можете копировать папку Linux, причём абсолютно любую или даже целую операционную систему.

Выводы

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

Favorite

Добавить в избранное

Как скопировать файлы с помощью команды ср в Linux

Э то руководство покажет вам, как копировать файлы и каталоги в вашей системе с помощью командной строки Linux.

Команда cp используется для копирования файлов.

Как скопировать файл из одной директории в другую с помощью Linux

Синтаксис для копирования файла с одного места на другое выглядит следующим образом:

Например представьте, что вы имеете следующую структуру папок:

Если вы хотите скопировать file_one из текущего местоположения в /home/andreyex/documents/folder_one в /home/andreyex/documents/folder_two, то вы должны ввести следующую команду в командной строке:

Ярлыки вы можете сделать здесь.

Главная часть может быть заменена на тильду (

), что объясняется в этой статье. Это изменяет команду на:

Вы можете просто опустить имя файла для цели, если вы собираетесь использовать то же имя файла

Если вы уже в целевой папке вы можете просто заменить путь к цели с полной остановкой.

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

Как сделать резервную копию перед копированием файлов в Linux

В предыдущем разделе folder_one содержит файл с именем file_one и folder_two не делает. Представьте себе, что folder_two имеет файл с именем file_one и вы запустили следующую команду:

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

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

) в конце, которая является резервной копией оригинального файла.

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

Имя файла для резервных копий будет меняться: file_one.

Как запросить перед перезаписью файлов при копировании в Linux

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

Для этого используйте следующий синтаксис:

Для перезаписи файла нажмите Y на клавиатуре или для отмены нажмите N или CTRL и C одновременно.

Что происходит при копировании символьных ссылок в Linux

Символическая ссылка немного походит на ярлык на рабочем столе. Содержимое символической ссылки является адрес физического файла.

Представьте себе, вы имеете следующую структуру папок:

  • home
    • andreyex
      • documents
        • folder_one
          • file_one
          • file_one (symbolic links points to folder_one/file_one)

          Посмотрите на следующую команду:

          Здесь не должно быть ничего нового, так как он копирует физический файл из одной папки в другую.

          Что происходит, однако, если скопировать символическую ссылку из folder_two в folder3?

          Файл, который копируется в folder3 не будет символической ссылкой. Это на самом деле файл, на который указывает символическая ссылка, так на самом деле вы получите тот же результат, как если бы путем копирования file_one из folder_one.

          Кстати вы можете получить тот же результат с помощью следующей команды:

          Просто чтобы быть уверенным, хотя есть еще один переключатель, который абсолютно заставляет копировать файл, а не символическую ссылку:

          Если вы хотите скопировать символическую ссылку необходимо указать следующую команду:

          Чтобы символическую ссылку скопировать, а не физический файл с помощью следующей команды:

          Как создавать жесткие ссылки с помощью команды ср

          В чем разница между символической ссылкой и жесткой связи?

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

          Это руководство расскажет вам все, что вам нужно знать о жестких ссылках .

          Вы можете создать жесткую ссылку с помощью команды ср.

          В качестве примера того, почему вы могли бы использовать жесткую ссылку учесть, что у вас есть папка под названием видео и в этой папке видео у вас есть действительно большой видео файл с именем honeymoon_video.mp4. Теперь представьте, что вы также хотите, чтобы видео быть известным как barbados_video.mp4, потому что он также имеет кадры Барбадоса.

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

          Вы могли бы вместо того, чтобы создать символическую ссылку с именем barbados_video.mp4, которая указывает на файл honeymoon_video.mp4. Это будет работать хорошо, но если кто-то удалил honeymoon_video.mp4 вы остались бы со ссылкой и ничего другого и связь по-прежнему занимает дисковое пространство.

          Единственное отличие состоит в том, что они содержат разное количество индексных дескрипторов. (уникальные идентификаторы). Удаление файла honeymoon_video.mp4 не удаляет файл, но только снижает количество для этого файла на 1. Файл будет удален только если все ссылки на этот файл будут удалены.

          Чтобы создать ссылку вы могли бы сделать что-то вроде этого:

          Как создать символические ссылки с помощью команды ср

          Если вы хотите создать символическую ссылку вместо жесткой ссылки вы можете использовать следующую команду:

          Опять же я бы лично вообще используют команду ln -s, но вместо этого работает хорошо.

          Как скопировать файлы, если они новее

          Если вы хотите скопировать файлы в папку, но только с перезаписью файлов назначения, если исходный файл новее, то вы можете использовать следующую команду:

          Стоит отметить, что если файл не существует на целевой стороне, то копия будет иметь место.

          Как скопировать несколько файлов

          Вы можете предоставить более одного исходного файла внутри команды копирования следующим образом:

          Приведенная выше команда будет копировать file_one, file_two и file_three в целевую папку.

          Если файлы соответствуют определенному шаблону, то вы можете также использовать групповые символы следующим образом:

          Приведенная выше команда будет копировать все файлы с расширением .mp3 в папку music2.

          Как скопировать папки

          Копирование папок такое же, как копирование файлов.

          Например представьте, что вы имеете следующую структуру папок:

          Представьте, что вы хотите переместить папку folder_one в папку folder_two следующим образом:

          Вы можете использовать следующую команду:

          Кроме того, можно использовать следующую команду:

          Это копирует содержимое folder_one, а также любые суб-каталоги и файлы в пределах подкаталогов.

          Резюме

          Это руководство дало вам инструменты требующиеся для копирования файлов в Linux. Для всего остального вы можете использовать команду Linux man.

          Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

          Favorite

          Добавить в избранное

          Главное меню » Linux » Как скопировать и вставить в терминал Linux и Ubuntu

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

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

          Даже когда vsмы портировали на Ubuntu из Windows десять лет назад, мы изо всех сил пытались скопировать и вставить строки в терминале Linux. В то время мы думали, что мы единственные пользователи, которому трудно скопировать и вставить. Однако, поискав в Интернете, мы поняли, что это глобальная проблема.

          Причина в том, что сочетание клавиш и клавиши мыши для копирования и вставки строк в окнах терминала Linux не такие, как те, которые мы используем в Windows.

          Привязки клавиш для операций копирования и вставки зависят от конкретного эмулятора терминала, который вы используете. В Linux по умолчанию привязка клавиш CTRL + C используется для отправки сигнала прерывания команде, выполняющейся на переднем плане. Следовательно, терминалы Linux не используют стандартные CTRL + C и CTRL + V для операций копирования и вставки.

          Использование сочетания клавиш

          В Ubuntu и других дистрибутивах Linux вы должны использовать комбинацию клавиш CTRL + SHIFT + C для копирования текста из терминала или текстового редактора.

          Чтобы скопировать текст или строку кода из браузера, вы можете использовать общую комбинацию CTRL + C или CTRL + SHIFT + C. Затем, чтобы вставить эту строку кода в терминал, вам нужно использовать клавиши CTRL + SHIFT + V.

          Вы должны использовать эти комбинации клавиш в Ubuntu для выполнения операций копирования и вставки, особенно в терминале Linux.

          Использование контекстного меню, вызываемого правой кнопкой мыши

          Чтобы скопировать текст или строку в терминале, выберите текст, затем щелкните правой кнопкой мыши и выберите copy. Теперь, чтобы вставить выделенный текст, щелкните правой кнопкой мыши и выберите paste в контекстном меню.

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

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

          Вот как вы можете копировать и вставлять текст в терминал Linux. Это просто, но сбивает с толку новых пользователей Linux, особенно тех, кто переходит на Linux с Windows или Mac. Упомянутые методы могут работать или не работать в различных дистрибутивах Linux по причине, упомянутой ранее в этой статье.

          Заключение

          Команды копирования и вставки в терминалах Linux и Ubuntu отличаются от Microsoft Windows и Mac. Есть три метода копирования и вставки в терминале Linux и Ubuntu. Эти методы включают использование определенных сочетаний клавиш, использование контекстного меню мыши и использование средней клавиши мыши. Когда вы реализуете предоставленные методы, вы можете успешно скопировать и вставить терминалы Linux и Ubuntu. Надеюсь, эта статья помогла вам эффективно использовать команду копирования и вставки.

          Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

          Читайте также: