Re: Unix way
От: vsb Казахстан  
Дата: 17.09.14 22:51
Оценка: 9 (3) +1
Здравствуйте, cgibin, Вы писали:

C>Всем привет.


C>Такой вопрос — в одной консоли у меня длинющая команда с миллионом ключей и регулярками, а в другой консоли текстовый редактор. Как бы эту команду пробросить в редактор минимальными телодвижениями? Bash, гуя нет.


ctrl+a (или home, если работает) Печатаем echo ', потом ctrl+e (end), печатаем ' > /tmp/command , далее переключаемся в текстовый редактор (предполагаю, что vim) и печатаешь (в режиме команд) :read /tmp/command.

Если редактор не vim, то сначала выйди из редактора, потом напиши cat /tmp/command >> myfile, в myfile допишется нужная строка в самом конце. Заходи в редактор и пользуйся уже командами редактора для работы с внутрипрограммным буфером обмена.

Теоретически можешь в первом пункте написать что-то вроде echo '....' >> /dev/tty2 (если речь идёт о физических консолях, а не виртуальных), но я не уверен, что оно сработает как положено. В целом это, наверное, был бы самый UNIX-way.
Отредактировано 17.09.2014 22:53 vsb . Предыдущая версия .
Re[4]: Unix way
От: Pzz Россия https://github.com/alexpevzner
Дата: 15.11.14 14:52
Оценка: +1 :)
Здравствуйте, jazzer, Вы писали:

J>буфер bash называется ~/.bash_history


Умные все такие. Баш его апдейтит только при выходе.
Re[3]: Unix way
От: fk0 Россия https://fk0.name
Дата: 15.11.14 14:49
Оценка: 6 (1)
Здравствуйте, tlp, Вы писали:

tlp>Здравствуйте, vsb, Вы писали:


vsb>>ctrl+a (или home, если работает) Печатаем echo ', потом ctrl+e (end), печатаем ' > /tmp/command , далее переключаемся в текстовый редактор (предполагаю, что vim) и печатаешь (в режиме команд) :read /tmp/command.


tlp>и получаем фиг знает что если в теле команды есть символ ' (что в длиннющей команде с регуляками более чем вероятно)


Говно вопрос!

<Ctrl-A>cat > /tmp/file.txt <<END_MARKER<Ctrl-V><Ctrl-j><Ctrl-e><Enter>END_MARKER<Enter>
Re[5]: Unix way
От: jazzer Россия Skype: enerjazzer
Дата: 15.11.14 18:47
Оценка: 2 (1)
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, jazzer, Вы писали:


J>>буфер bash называется ~/.bash_history


Pzz>Умные все такие. Баш его апдейтит только при выходе.


ничего, левая резьба и на такое найдется
export PROMPT_COMMAND="history -a; history -c; history -r"

т.е. после каждой команды история будет дописываться в файл, потом будет очищаться история в памяти и после этого загружаться повторно из файла.
Тем самым можно заодно и сохранять команды между разными одновременно открытыми терминалами.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[2]: Unix way
От: tlp  
Дата: 18.09.14 01:48
Оценка: +1
Здравствуйте, vsb, Вы писали:

vsb>Здравствуйте, cgibin, Вы писали:


C>>Всем привет.


C>>Такой вопрос — в одной консоли у меня длинющая команда с миллионом ключей и регулярками, а в другой консоли текстовый редактор. Как бы эту команду пробросить в редактор минимальными телодвижениями? Bash, гуя нет.


Если команда уже выполнялась ранее (иначе непонято, что мешало ее сразу набрать в редакторе) — открыть в редакторе файл ~/.bash_history и найти ее там
Unix way
От: cgibin  
Дата: 17.09.14 22:42
Оценка:
Всем привет.

Такой вопрос — в одной консоли у меня длинющая команда с миллионом ключей и регулярками, а в другой консоли текстовый редактор. Как бы эту команду пробросить в редактор минимальными телодвижениями? Bash, гуя нет.
Re[2]: Unix way
От: jazzer Россия Skype: enerjazzer
Дата: 18.09.14 01:31
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Теоретически можешь в первом пункте написать что-то вроде echo '....' >> /dev/tty2 (если речь идёт о физических консолях, а не виртуальных), но я не уверен, что оно сработает как положено. В целом это, наверное, был бы самый UNIX-way.


+1. Работает с двумя сессиями putty на RedHat.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[2]: Unix way
От: dimgel Россия https://github.com/dimgel
Дата: 18.09.14 01:37
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Теоретически можешь в первом пункте написать что-то вроде echo '....' >> /dev/tty2 (если речь идёт о физических консолях, а не виртуальных), но я не уверен, что оно сработает как положено. В целом это, наверное, был бы самый UNIX-way.


Зверь.

UPD. Не, не зверь. На экран оно попадает, а вот в буфер vim (или bash) — нет, так что не сохраняется (а баш при нажатии enter отрабатывает пустую строку, а не переданную команду).
Отредактировано 18.09.2014 1:41 dimgel . Предыдущая версия .
Re[2]: Unix way
От: tlp  
Дата: 18.09.14 01:46
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>ctrl+a (или home, если работает) Печатаем echo ', потом ctrl+e (end), печатаем ' > /tmp/command , далее переключаемся в текстовый редактор (предполагаю, что vim) и печатаешь (в режиме команд) :read /tmp/command.


....

и получаем фиг знает что если в теле команды есть символ ' (что в длиннющей команде с регуляками более чем вероятно)
Re[3]: Unix way
От: jazzer Россия Skype: enerjazzer
Дата: 18.09.14 01:53
Оценка:
Здравствуйте, dimgel, Вы писали:

D>UPD. Не, не зверь. На экран оно попадает, а вот в буфер vim (или bash) — нет, так что не сохраняется (а баш при нажатии enter отрабатывает пустую строку, а не переданную команду).


буфер bash называется ~/.bash_history
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re: Unix way
От: fk0 Россия https://fk0.name
Дата: 15.11.14 14:43
Оценка:
Здравствуйте, cgibin, Вы писали:

C>Такой вопрос — в одной консоли у меня длинющая команда с миллионом ключей и регулярками, а в другой консоли текстовый редактор. Как бы эту команду пробросить в редактор минимальными телодвижениями? Bash, гуя нет.


<Ctrl-P><Ctrl-A>echo '<Ctrl-E>' > /tmp/file.txt<Enter>

Потом в Vim :r /tmp/file.txt
Re: Unix way
От: Pzz Россия https://github.com/alexpevzner
Дата: 15.11.14 14:50
Оценка:
Здравствуйте, cgibin, Вы писали:

C>Такой вопрос — в одной консоли у меня длинющая команда с миллионом ключей и регулярками, а в другой консоли текстовый редактор. Как бы эту команду пробросить в редактор минимальными телодвижениями? Bash, гуя нет.


man gpm?
Re[6]: Unix way
От: dimgel Россия https://github.com/dimgel
Дата: 15.11.14 18:51
Оценка:
Здравствуйте, jazzer, Вы писали:

J>ничего, левая резьба и на такое найдется

J>
J>export PROMPT_COMMAND="history -a; history -c; history -r"
J>

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

Фигасе...
Re: Unix way
От: alpilin  
Дата: 15.11.14 18:58
Оценка:
- 'ctrl-x ctrl-e' opens an editor to work with long or complex command lines

Подсмотрено вот здесь: http://cfenollosa.com/misc/tricks.txt


Здравствуйте, cgibin, Вы писали:

C>Всем привет.


C>Такой вопрос — в одной консоли у меня длинющая команда с миллионом ключей и регулярками, а в другой консоли текстовый редактор. Как бы эту команду пробросить в редактор минимальными телодвижениями? Bash, гуя нет.
Re[4]: Unix way
От: tlp  
Дата: 17.11.14 18:03
Оценка:
Здравствуйте, fk0, Вы писали:

fk0>Здравствуйте, tlp, Вы писали:


tlp>>Здравствуйте, vsb, Вы писали:


vsb>>>ctrl+a (или home, если работает) Печатаем echo ', потом ctrl+e (end), печатаем ' > /tmp/command , далее переключаемся в текстовый редактор (предполагаю, что vim) и печатаешь (в режиме команд) :read /tmp/command.


tlp>>и получаем фиг знает что если в теле команды есть символ ' (что в длиннющей команде с регуляками более чем вероятно)


fk0> Говно вопрос!


fk0> <Ctrl-A>cat > /tmp/file.txt <<END_MARKER<Ctrl-V><Ctrl-j><Ctrl-e><Enter>END_MARKER<Enter>


другое дело!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.