В консоли существует неочевидный способ очень удобно вводить многострочные команды либо накидывать скрипты. Ща покажу на котиках.
Для этого вызывается текстовый редактор указанный у тебя по умолчанию в переменной $EDITOR. Ты снова скажешь — да блять блин! Это надо еще и редактор запускать?
Да, запускать надо, но для этого из коробки есть охуенный отличный нативный хоткей CTRL+x+e (а в osx кнопка CTRL со значком ^).
Как нажать CTRL+x+e и не сломать пальцы? Сначала зажимаешь и удерживаешь CTRL, следом жмешь x и не отпуская CTRL жмешь e.
Тырым-Пырым и перед тобой уже твой любимый vim/mcedit/nano/другойshit
Если получил ошибку: External editor requested but $VISUAL or $EDITOR not set. Не расстраивайся, выполни эти команды и у тебя все заработает. Вместо nano подставь своё.
EDITOR=$(which nano)
export EDITOR=$EDITOR
Либо на постоянку добавь в ~/.bashrc или ~/.zshrc и не забудь перечитать эти файлы: source ~/.bashrc && source ~/.zshrc
which — команда используется для определения местоположения данного исполняемого файла, который выполняется при вводе имени исполняемого файла (команды) в строке терминала. Команда ищет исполняемый файл, указанный в качестве аргумента, в каталогах, перечисленных в переменной среды PATH.
Есть еще команда select-editor, но не везде присутствует, она сразу список всех редакторов выведет в читабельном виде, тебе останется лишь выбрать циферку. Редактор установится глобально в системе без правки .bashrc/zshrc.
Так, ушли от темы, короче вызвал ты свой любимый редактор и не сломал пальцы. А дальше? А дальше накидываешь в нем скрипт или команды, которые тебе нужно выполнить в оболочке bash/zsh.
Размеренно, удобно, с подсветкой синтаксиса и хоткеев, а если у тебя прокаченный vim, так вообще полноценная IDE получается.
Накидал? Сохраняешь! Сохраняется по умолчанию во временную папку: /tmp/bash-fc.GpOzlI
И после закрытия, все команды из файла автоматически выполняются, а временный файл удаляется. Все введенные команды и выхлоп по ним продублируются в консоли. Так что не переживай, ничего не проебешь потеряешь.
Я частенько пользуюсь этим способом, когда мне нужно к примеру выполнить на сервере 100 команд подряд, просто копипастю копипасту, вызываю CTRL+x+e, вставляю туда свою портянку, сохраняю и иду в кроватку принимать горизонтальные процедуры.
А еще если ввел какую-то длинную команду в консоли и хочешь ее сохранить отдельным скриптом, жмешь хоткей ctrl+x+e и вуаля, открывается редактор и в нем уже вставлена эта команда. Сохраняешь в папке ~/Downloads и забываешь про этот файл навсегда.
Почему не ansible? Хм, можешь и плейбуки написать. Хозяин барин. Но у нас тут про комфортную работу в консоли. Про ansible тоже посты будут, но попозже.
Вот такие пироги! Ну и с пятницей друзья, всем хороших предстоящих выходных, берегите себя.
PS: Кстати выйти из vi/vim можно командой :q! Это тебе бонус на всякий случай







