Моя цель состоит в том, чтобы быстро получить сохраненные команды удара и отредактировать команды в буфере команд удара (например, изменяющиеся аргументы, для экспериментирования с долгими сложными командами). То, когда я нажму Enter, команда выполнится, и нажатие Arrow Up, получит меня команда снова для дальнейшего редактирования.
Например, мне назвали текстовый файл textfile
, со следующим содержанием: ls -l
Я хочу получить то содержание файла в буфер команд так, чтобы я добрался
user@ubuntu:~$ ls -l
Поскольку теперь я могу изменить и повторно выполнить его.
Если я добавляю выполнить бит к textfile
, Я могу выполнить его, но нажатие Arrow Up, наборы ./textfile
команда в буфер команд, не содержание.
Так же, если я вхожу $(<textfile)
это также выполняет команду, но нажатие Arrow Up, просто дает мне $(<textfile)
команда, не ее содержание
Единственное решение, о котором я могу думать, состоит в том, чтобы сделать cat textfile
и затем копия / вставляет содержание в окно терминала. Ну, я мог также отредактировать файл, сохранить его и выполнить его, но это - стычка, чтобы сделать каждый раз. Так, есть ли прием для получения содержания файла в буфер команд, не вводя или вставляя?
Буфер команд, к которому Вы обращаетесь, является файлом истории удара... история команд удара. Буфер истории записан в ~/.bash_history
, когда Вы выходите из терминала. Это загружается в буфер, когда Вы входите в систему.
можно получить строку, которую Вы хотите в свой буфер истории удара путем добавления строки к ~/.bash_history файл, затем вручную перезагрузки файла истории удара в буфер с эти history -r
команда.
Это - пример:
$ echo "command wanted" >> ~/.bash_history && history -r
Теперь при ударе стрелки вверх, Вы будете видеть "команду, требуемую" в Вашем "буфере команд".
С этой командной строкой Вы будете видеть содержание Вашего textfile
при ударе стрелки вверх:
$ echo $(<textfile) && cat textfile >> ~/.bash_history && history -r
убедиться завершить Ваш textfile
с новой строкой.