Копировать вставить из текстового файла команду в консоль и выполнить
допустим такой сценарий:
1) есть флешка с установочным образом(только терминал!)
2) также на флешке(или на компе) текстовой файл(файлы) со списком команд
3) компьютер подключенный к интернету
нужно копировать вставить команды из файла в консоль
Вроде screen и tmux позволяют копировать и вставлять в консоли.
Лично я не пробовал.
Ни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
есть 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 не работают
но я вас понимаю) сам бываю грубоват когда ко мне лезут с нубскими вопросами по моему профилю
Если надо прямо из текстового редактора, выкинь этот выкидыш 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? Все же это более удобный способ, чем заморачиваться с выполнением текущей строки в вим.
- запускаешь tmux tmux
- добавляешь панель справа ctrl+b %
- возвращаешься на первую панель ctrl+b o
- получаешь список команд: cat commands.txt
- включаешь режим копирования: ctrl+b [
- стрелочками ставишь курсор на начало нужной строки
- переходишь в режим выделения текста: space
- стрелочками выбираешь нужный текст для копирования
- копируешь выбранный тобой текст: enter
- переключаешься на вторую панель ctrl+b o
- вставляешь скопированный текст: ctrl +b ]
в итоге у тебя на левой панели открыт список команд и из него ты их копируешь, а на правой — выполняешь команды по списку
с 5ого пункта неполучается, режим копирвания включается(курсор ходит по всему экрану, а сам ничего не копирует)
Все верно. Ты должен поставить курсор на начало строки, которую хочешь скопировать и нажать пробел. Включится режим, в котором ты будешь стрелочками же выбирать, что именно из этой строки ты копируешь (выбранный текст будет менять цвет)
вообще ничего не менялось, перезагрузился, теперь даже ctrl + b и % — не работает, can’t find window
А там случайно не can’t find window 5 ?
Если ты случайно вместо % нажал 5, то tmux попытается перейти на окно с номером 5, не найдет его и выдаст вот такую ошибку.
посыпаю голову пеплом, я жал 5
теперь нормальные 2 панели с терминалами, но все равно пробел или ентер ничего не меняют
и сверху в углу — [0/0] — все время
В tmux жамкни ctrl+b ? Выведет список хоткеев, там ищи
благодарю за помощь, это работает, сложно как то все сделано с терминалами, в плане — копировать вставить
Всем спасибо за расширение моего кругозора в контексте работы с консольными командами)