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

Каждый пользователь 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 , вы увидите там первую команду и напомните, что она должна быть выполнена до (в случае, когда вам всегда нужно выполнять оба действия).

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

  • Команда больше не работает в пользовательских действиях Thunar
  • Удаленная команда ssh не отправляет echo-переменную из сценария ksh в AIX
  • Как найти пакеты только, какое имя пакета равно тексту с aptitude?
  • Найдите, завершится ли процесс за определенный промежуток времени
  • Параметр -cp для команды java
  • Как предоставить аргументы команды в виде массива?
  • Получить последнюю строку вывода `df`
  • Что называется `--`?
  • Что такое команда, которая отобразит только синтаксис и параметры команды?
  • Как конвертировать .doc в ODF с помощью командной строки?
  • команда не найдена, ручка не работает для URL-адреса
  • Linux и Unix - лучшая ОС в мире.