Как сохранить введенную команду без ее выполнения?

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

пример

Вы начинаете печатать

mycommand -a -F --conf /very/long/path --and /another/one /input/file.txt 

Но прежде чем нажимать «Enter», вы понимаете, что сначала нужно сделать cp f.txt /input/file.txt .

Итак, вы застряли в своей команде, и если вы не нажмете Enter, вы не сможете вернуть ее, используя свою историю bash.

Каков наилучший способ справиться с этим?

5 Solutions collect form web for “Как сохранить введенную команду без ее выполнения?”

Hit CTRLU (kill line – это сохраняет строку в kill-ring оболочки), сделайте то, что вам нужно сделать, а затем в новом приглашении нажмите CTRLY (yank from kill-ring), чтобы вернуть исходную команду ,

В качестве альтернативы, и это особенно полезно, если вы находитесь в вложенной команде, например while или loop, нажмите CTRL- C , которая добавляет команду в историю без ее выполнения и очищает строку, поэтому вы можете ее вызвать с помощью когда вы готовы его использовать.

Прокомментируйте строку и нажмите клавишу ввода.

CtrlA
#
Войти

поэтому вы держите линию в истории

Esc# как положить # в начале и нажатие Enter :

Пример:

 $ find /{,usr/}{,s}bin/ -type f -ls | awk '$3~/^...s/' | nl 

( Esc# )

 $ #find /{,usr/}{,s}bin/ -type f -ls | awk '$3~/^...s/' | nl $ _ 

Работает в Баше и оболочке Корна.

С zsh в режиме emacs, Alt + Q или Ctrl + Q ( push-line widget), толкает текущую командную строку в стек (сохраняет для более позднего) и очищает текущий входной буфер.

Затем вы можете ввести другую команду, после чего возвращается последняя нажатая команда ( выталкивается из этого стека).

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

Ctrlcp f.txt /input/file.txt ; Войти

Это должно выполнять обе команды в том порядке, в котором вы хотите. Более того, он будет сохранен в вашей истории вместе, поэтому, если в будущем вы захотите снова выполнить вторую команду, и вы достигнете ее с помощью Ctrl- R , вы увидите там первую команду и напомните, что она должна быть выполнена до (в случае, когда вам всегда нужно выполнять оба действия).

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

  • Влияют ли параметры и имя на команду в Linux?
  • Получить последнюю строку вывода `df`
  • Bash - ввод данных для замещенной команды, хранящейся в переменной
  • Есть ли флаг `--paranoid` для общих, потенциально необратимых команд?
  • Что такое команда, которая отобразит только синтаксис и параметры команды?
  • Переименование файлов в linux с использованием шаблона регулярного выражения
  • как предоставить пользовательские имена файлов при выполнении команды split в unix?
  • Как перемещать все файлы и папки с помощью команды mv
  • Как найти пакеты только, какое имя пакета равно тексту с aptitude?
  • Пожалуйста, объясните вывод команды jobs
  • Рисунок Grep и шаблон в шаблоне
  • Interesting Posts

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

    Использование обратного SSH-туннелирования за один шаг вместо двух шагов (с -X)

    Переадресация портов для VPN-подключения

    Смешанный интерфейс из-за чтения двоичных файлов на экране

    bash myscript.sh работает в bash, но первая строка: #! / usr / bin / sh

    Arch Linux pacman, определяющий версию пакета

    Bash: переменная по умолчанию с заменой команды

    Создать торрент с файлами из разных каталогов из командной строки

    Автоматически запускать файл в терминале при нажатии на него

    Как я могу предотвратить открытие Hangouts Google на всех рабочих пространствах?

    Первые шаги: установка совместимой Bluetooth-карты на мой ноутбук?

    Приложения на основе Qt имеют нечитаемые, крошечные размеры шрифта

    x64_mingw не действительная платформа – Rails 5

    Устранение конечного пространства на обернутых линиях в терминале

    Что такое Linux для SET FILE / ERASE_ON_DELETE?

    Linux и Unix - лучшая ОС в мире.