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

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

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

  • Список только файлов, имеющих определенный символ в позиции
  • Рисунок Grep и шаблон в шаблоне
  • как предоставить пользовательские имена файлов при выполнении команды split в unix?
  • Пожалуйста, объясните вывод команды jobs
  • Что такое DISPLAY =: 0?
  • bash: несколько команд на одной строке с другим кодом выхода
  • Команда для загрузки исходных файлов во FreeBSD
  • Как предоставить аргументы команды в виде массива?
  • Как конвертировать .doc в ODF с помощью командной строки?
  • Является ли статус выхода команды, выполняемой командой или процессом оболочки, который выполняет команду?
  • Команда больше не работает в пользовательских действиях Thunar
  • Удаленная команда ssh не отправляет echo-переменную из сценария ksh в AIX
  • Linux и Unix - лучшая ОС в мире.