Как скопировать консоль линукс

Буфер обмена в Linux (копирование и вставка)

Хочу рассказать о некоторых особенностях буфера обмена в Linux. О буфере копирования и про буфер выбора (первичный буфер), а также про копирование и вставку текста в терминале.

Буфер копирования

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

Буфер выбора (первичный буфер)

В Linux существует еще буфер выбора или первичный буфер. Текст, который вы выделяете в любой программе, автоматически попадает в буфер обмена! Это удобно, выделил текст, открыл другое окно и вставил этот кусок текста. Есть некоторые исключения, но они незначительны. Например, у меня в Ubuntu это не работает, если программа использует JVM (Java Virtual Machine).

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

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

В терминале для копирования и вставки не работают стандартные сочетания Ctrl+V, Ctrl+C. Это связано с тем, что исторически Ctrl+C это сочетание клавиш для прерывания текущего процесса. Поэтому, для копирования и вставки при работе в терминале используются сочетания Ctrl+Insert и Shift+Insert соответственно. В Gnome терминале и, наверное, во многих других также работают сочетания Shift+Ctrl+C и Shift+Ctrl+V. Они же указаны в главном меню программы в разделе Правка.

Также в терминале работают сочетания клавиш Ctrl+U, чтобы вырезать текст; и Ctrl+Y для вставки текста. Сочетание Ctrl+U работает особенным образом — в буфер копируется вся текущая строка, введенная в терминале, независимо от того, выбрали вы какой-нибудь текст мышкой или нет, а сама строка пропадает с экрана.

Источник

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

Буфер обмена операционной системы и возможность копировать и вставлять текст из одного места в другое очень сильно облегчает работу в терминале. Теперь вам необязательно искать команду в истории или набирать её вручную. Вы можете скопировать текст с другого терминала, файла или браузера, а затем выполнить его. Сложно представить как передать команде длинные и сложные параметры без возможности копирования и вставки.

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

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

1. Обычный терминал

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

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

Если программа выводит данные слишком быстро и вы не успеваете их отметить и скопировать, можно нажать сочетание клавиш Ctrl+S для того чтобы приостановить программу. Некоторые программы полностью останавливаются, некоторые останавливают только вывода, но теперь у вас будет достаточно времени для того чтобы скопировать нужные данные. Для того чтобы возобновить работу программы используйте сочетание Ctrl+Q. Теперь вы знаете как копировать текст в терминале linux.

2. Редактор Vim

Если в редакторе включена поддержка мыши, то копировать текст, описанным выше способом у вас не получится. Для того, чтобы всё же иметь возможность скопировать текст средствами операционной системы необходимо зажать кнопку Shift во время выделения мышкой. Для копирования можно использовать то же сочетание клавиш Ctrl+Shift+C или же вызвать контекстное меню с зажатой клавишей Shift и выбрать пункт Скопировать:

Читайте также  Что такое словарь на убунту

Однако при таком способе копирования может быть скопировано много лишнего, например, номера строк. В текстовом редакторе Vim есть встроенная функциональность копирования. Если включена поддержка мыши, вы можете выделить текст мышью. Если нет, для перехода в режим выделения нажмите клавишу V в командном режиме. Затем используется стрелки для выделения нужной области:

Для копирования во внутренний буфер Vim следует использовать клавишу y, а для вставки — p. Если надо выйти с режима выделения без осуществления каких-либо действий — нажмите Esc. Такой способ копирования работает только внутри программы, нигде в системе скопированный текст вставить вы не сможете.

Однако Vim умеет работать и с буфером обмена операционной системы. Вообще у Vim очень широкие возможности копирования и вставки. Здесь поддерживается такая вещь как регистры, в которые можно сохранять данные и извлекать их оттуда. Всего таких регистров 26. По умолчанию используется безымянный регистр. Именно в него попадает текст при копировании с помощью клавиши y или удалении с помощью x. У большинства регистров есть своё предназначение. Однако есть именованные регистры с именами от a до z, в которые вы можете складывать произвольные данные.

Для доступа к регистрам используется символ » в командном режиме или режиме выделения. Если вы редактируете текст, то нужно нажать Esc для выхода в командный режим или выделить нужный текст, затем нажать Shift и кнопку, которая отвечает за « на клавиатуре, а затем кнопку имени регистра. Например, для того чтобы скопировать текст в регистр a используйте такую последовательность «ay.

Для вставки надо будет использовать подобный синтаксис «ap. Аналогично всему этому есть регистр, связанный с буфером обмена операционной системы. Его имя +. Но для того чтобы он работал, необходимо чтобы в системе был установлен пакет vim-gtk3 или gvim. В Ubuntu команда установки будет выглядеть вот так:

sudo apt install vim-gtk3

Затем вы сможете скопировать текст в системный буфер с помощью такой последовательности: «+y. После чего его можно будет вставить в любой программе вне Vim. Если надо вставить такой текст в Vim, используйте последовательность «+p.

3. Терминальный сервер tmux

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

Если поддержки мыши нет, нажмите управляющее сочетание клавиш, по умолчанию Ctrl+b, а затем символ [ для того чтобы войти в режим выделения. Используйте стрелки для перемещения по тексту. Переместите курсор к началу текста для копирования и нажмите Ctrl+Пробел. Затем переместите курсор к концу фрагмента. Выделенный текст будет подсвечен:

Затем нажмите сочетание клавиш Alt+W для того чтобы скопировать текст в буфер. Для вставки скопированного текста используйте сочетание клавиш Ctrl+b затем ].

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

Выводы

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

Источник

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

допустим такой сценарий:
1) есть флешка с установочным образом(только терминал!)
2) также на флешке(или на компе) текстовой файл(файлы) со списком команд
3) компьютер подключенный к интернету

нужно копировать вставить команды из файла в консоль

Вроде screen и tmux позволяют копировать и вставлять в консоли.

Лично я не пробовал.

Читайте также  Как установить apk на убунту

Ниhера не понял. Кто на ком стоял? Определитесь с терминологией, а то «консоль», «терминал» и пр. могут трактоваться весьма вольно.

И почему команды надо копировать, а не запустить их как скрипт?

Установочный образ с только с терминалом эт чо , сервер? А так копировать или вставлять можно с одной консоли в другую (их же 6) , или из одного окна терминала в другое.

не все команды нужны, иногда нужно в произвольном месте добавить что то «консоль», «терминал» — голый «сервер»

пробовал в одном tty открыть текст и копировать из него команды на другой tty
не получается или не осилил

может быть куча решений.
навскидку:
1) сделать из текстового файла bash-скрипт
2) mc (mcedit) — в нем есть буфер для копипасты
3) gpm и ctrl+insert / shift+insert

Лорчую screen/tmux. Открываешь, сплитишь, в одном pane оставляешь сосноль, в другом vim filename и начинаешь.

Можешь попробовать средсвами vim или GNU/emacs, но не совсем то будет.

как то сложновато(я можно сказать нуб)

Во , тоже вспомнил про gpm , это вроде мыша консольная.

только что поставил tmux и nano
не вставляет пока что, сижу разбираюсь

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

Несколько вариантов тебе подсказали. Но, если у тебя есть рядом полноценный компьютер с настроенной системой, то я бы предложил ещё вариант доступа по ssh. Установщик — это по сути уже запущенный Linux с программой установки. Переключаешься в консоль, устанавливает и запускаешь ssh сервер и вводи свои команды с другого компьютера.

На серверах часто вообще нет монитора, установку делают либо по сети, либо подготовкой настроенного образа.

тут немного другой случай
например установка arch, gentoo, freebsd. (не на сервер)

Если у тебя такие сложности, то начни с user friendly дистрибутивов.

все зависит от того, есть у тебя ГУЙ или нет.

если есть, то: как открываешь файл с командами? в гуевой аппликухе или тут же в консоли?

если в гуевой, то в ней копируешь в буфер, а в консоли Shift+Insert

если без гуевой, то cat file.txt выведет содержимое файла в консоль. дальше — копируешь своим терминалом (мышкой выделить, меню-скопировать или как-то так, может ПКМ скопирует), вставлять тоже Shift+Insert

если ты совсем без гуев, то либо ты пользуешься текстовым редактором, либо нет.

если не пользуешься, то, подозреваю, что с помощью tail и head можно «вычленить» нужную тебе строку из списка команд, и направить ее в какой-нибудь bash .

если пользуешься редактором, то… ну тут нужно вспомнить, какие редакторы в буфер умет копировать и как, а дальше — Shift+Insert

man cat
man pipe

gui и мышки нет

есть xclip tmux screen vim nano
вроде как должно работать но не работает)

вот это интересно, спасибо работает

все совсем не так как я думал) пошел читать про head и tail

сделал commands.txt с таким содержимым:
ls
nano ./text.txt
top
echo «23» > ./text1.txt

очевидно что
head -n 1 commands.txt | tail -n 1 | bash
должен запустить ls, что оно и делает
а вот
head -n 2 commands.txt | tail -n 1 | bash
head -n 3 commands.txt | tail -n 1 | bash
уже не работают

а вот это опять работает
head -n 4 commands.txt | tail -n 1 | bash

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

если тебе нужно выполнить весь файл целиком, то ты бы так и написал.

и нии тут всем мозги. формулируй свои хотелки четко

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

к сути — я и написал что ваш вариант работает, НО
команды ls и echo работают
а top и nano не работают

Читайте также  Hp pavilion 17 f152nr драйвера

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

Если надо прямо из текстового редактора, выкинь этот выкидыш Nano, возьми нормальный. Например в Vim. Копируешь команду в буфер (навести курсора на строку с командой и нажать yy). Затем выполняешь вот такую команду:

То есть в целом вот так: yy:’ w !sh

я пробовал ранее через vim
но сейчас попробую точно по вашим инструкциям

Для удобства можно в виме это замапить на какую-нибудь клавишу, например из F1-F12. Тогда достаточно будет просто навести курсор на строку и нажать одну клавишу.

Прошу прощения, yy не будет работать. но будет работать визуальное выделение. V (большая) и enter.

достаточно поставить курсор на нужную строку в vim и

У ls и echo есть законченность выполнения , а у nano и top только открытие , их надо или в фон запускать или завершать как нибудь. (имхо)

это .w !bash и это :’ w !sh через vim работают но все непрозрачно, например если нужно установить что то или удалить или что нибудь еще нестандартное
вобщем неполноценно или правильнее — доработать нужно

я ожидал что можно легко взять копировать команду из текстового файла. выше писали про — head -n 2 commands.txt | tail -n 1 | bash но он тоже не выполняет команды типа top или nano.. для примера

Запускаешь gpm и копируешь мышкой. Без мышки твой лучший вариант наверно будет взять tmux.

извини за грубость

я тут попробовал и понял, что я не знаю, как выполнить nano или top из pipe

c gpm пока разбираюсь, как то оно не так работает или я делаю не так
tmux я тоже ставил, терминалы делаются а вот копирование из одного(там открыт текстовой файл) на другой не работает почему то

nano ./test.txt & top & ls echo и тд.

В твоём случае (ничего не настроено) проще всего с tmux будет.

В gpm вставка кажись клик колесом мыши)

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

Too many errors from stdin

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

  1. запускаешь tmux tmux
  2. добавляешь панель справа ctrl+b %
  3. возвращаешься на первую панель ctrl+b o
  4. получаешь список команд: cat commands.txt
  5. включаешь режим копирования: ctrl+b [
  6. стрелочками ставишь курсор на начало нужной строки
  7. переходишь в режим выделения текста: space
  8. стрелочками выбираешь нужный текст для копирования
  9. копируешь выбранный тобой текст: enter
  10. переключаешься на вторую панель ctrl+b o
  11. вставляешь скопированный текст: ctrl +b ]

в итоге у тебя на левой панели открыт список команд и из него ты их копируешь, а на правой — выполняешь команды по списку

с 5ого пункта неполучается, режим копирвания включается(курсор ходит по всему экрану, а сам ничего не копирует)

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

вообще ничего не менялось, перезагрузился, теперь даже ctrl + b и % — не работает, can’t find window

А там случайно не can’t find window 5 ?

Если ты случайно вместо % нажал 5, то tmux попытается перейти на окно с номером 5, не найдет его и выдаст вот такую ошибку.

посыпаю голову пеплом, я жал 5
теперь нормальные 2 панели с терминалами, но все равно пробел или ентер ничего не меняют
и сверху в углу — [0/0] — все время

В tmux жамкни ctrl+b ? Выведет список хоткеев, там ищи

благодарю за помощь, это работает, сложно как то все сделано с терминалами, в плане — копировать вставить

Всем спасибо за расширение моего кругозора в контексте работы с консольными командами)

Источник

Mac OS X Hints
Adblock
detector