Запуск подоболочки из середины текущей команды

Вы можете удалить все ненужные вам биты, пропустив вывод через sed:

wc -l ~location/folder/folder/*.log > ~/log.info
cut -d "/" -f9 ~/log.info | sort | sed 's_/.*/__;s_\.log$__'
16
14.03.2019, 01:44
4 ответа

Существует комбинация клавиш EscQ , которая сохраняет буфер команд и позволяет ввести новую команду. После выполнения команды буфер содержит то, что вы набрали ранее. Если вам нужно запустить другую команду, прежде чем закончить это, вы можете снова набрать EscQ .

(Я еще не пробовал открывать подоболочку после нажатия EscQ .)

См.http://zsh.sourceforge.net/Intro/intro_10.htmlи найдите «esc -q»

16
27.01.2020, 19:48

Я обычно использую Ctrl + U , что стирает текущую строку и сохраняет ее в буфере. Оттуда я делаю все, что мне нужно было до mylongcommand. Затем, когда я готов, я использую Ctrl + Y , чтобы вставить mylongcommandобратно в приглашение.

Запомнить набранную наполовину -команду, пока я что-то проверяю

18
27.01.2020, 19:48

Мое решение этой проблемы, безусловно, -низкотехнологичное и неуклюжее, но оно опирается на ключевые -последовательности, с которыми вы, вероятно, уже знакомы :Нажмите Ctrl + A , затем #, затем ВВОД .

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

7
27.01.2020, 19:48

Я набираю Ctrl + Z , чтобы «приостановить» ввод команды и ввести другую команду. После того, как я выполнил эту команду (или прервал ее с помощью Ctrl + C ), приостановленная команда возвращается для редактирования (, даже запоминая положение курсора ). Для дополнительного удобства, если командная строка пуста, когда я набираю Ctrl + Z ,клавиша вызывает bg, встроенную -вместо (, поэтому двойное Ctrl + Z отправляет текущую команду прямо в фон ).

fancy-ctrl-z () {
  emulate -LR zsh
  if [[ $#BUFFER -eq 0 ]]; then
    bg
    zle redisplay
  else
    zle push-input
  fi
}
zle -N fancy-ctrl-z
bindkey '^Z'          fancy-ctrl-z

(Ранее опубликовано в Вспомните набранную наполовину -команду, пока я проверяю кое-что , в котором в основном есть решения для bash, где вы не можете сделать ничего столь же удобного. Это немного более причудливая версия встроенного -в привязке M-qкpush-line.)

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

2
27.01.2020, 19:48

Теги

Похожие вопросы