Ввод строк в историю bash

По умолчанию bash загружает строки из ~/.bash_history в историю. Можно ли также добавить пользовательский файл для загрузки? Я хочу добавить файл, содержащий команды, которые я часто использую, и получать к ним доступ через встроенный поиск.

3 Solutions collect form web for “Ввод строк в историю bash”

Я сохраняю его простым с alias h='history|grep' загруженным в мой профиль Bash.

Таким образом, мой рабочий процесс – h command , например: h hpssa

 # h hpssa 202 05-28-2015 11:54:33 hpssacli 217 05-28-2015 11:54:33 hpssa -start 225 05-28-2015 11:54:33 hpssacli -stop 226 05-28-2015 11:54:33 hpssa -stop 228 05-28-2015 11:54:33 hpssa -start 

Если я хочу запустить « hpssa -stop », я бы просто напечатал !226


Это только мой подход, но, возможно, вы можете изменить, как вы вспоминаете элементы истории. Я не думаю, что имеет смысл фактически вводить данные в файл истории.

Раньше я очень полагался на Ctrl-R (команда Readline в reverse-search-history ), которая ищет назад по истории для извлечения ранее введенных длинных команд, но теперь я предпочитаю использовать псевдонимы и скрипты / функции оболочки. Во всяком случае, встроенная команда history Bash может использоваться для загрузки списка пользовательских команд в вашу текущую историю.

 history -r [filename] 

На странице справки bash:

Прочтите содержимое файла истории и добавьте его в текущий список истории.

Автоматизация запуска

Я просто попытался запустить эту команду автоматически, добавив ее в качестве последней строки в моем .bashrc . Тем не менее, команды из моего пользовательского файла истории недоступны, когда я начал новую оболочку. Кажется, что история оболочки загружается только из файла .bash_history по умолчанию: после того, как файлы запуска были обработаны и как раз перед тем, как приглашение будет представлено для интерактивной оболочки. К сожалению, кажется, что нет простого способа автоматизировать это.

Как заметил @AnthonyGeoghegan, история загружается после обработки файлов запуска. Это предлагает другой способ предварительной загрузки нужной истории в файл запуска:

 mv .bash_history .bash_history.tmp cat .extra_hist .bash_history.tmp > .bash_history # or swap them, to put the extra stuff at the end of the history, for # quicker ^R access. 

Обратите внимание: этот подход может привести к тому, что со временем ваши специальные команды будут добавлены в вашу .bash_history. Вы можете привязать свои специальные команды к строкам комментариев, чтобы их можно было легко найти и удалить (через, например, sed), как часть заполнения файла .bash_history. Что-то вроде:

 cp .extra_hist .bash_history sed '/: remove from here/,/:remove to here/d' .bash_history >> .bash_history 
  • bash throwing "ignored null byte in input" предупреждение в скрипте
  • Как узнать, как долго мой симулятор запускается в UNIX?
  • Как рассчитать, взяв первое поле
  • bash не заканчивается
  • readarray - разделительная строка с использованием разделителя IFS возвращает пустой массив
  • Как написать небольшой журнал с bash?
  • Как встроить групповой шаблон в bash?
  • преобразование в нижний регистр и преобразование файлов в текст, появился пустой файл * .txt
  • Когда * работает как символ шаблона в расширении имени файла и как параметр оболочки, значением которого являются позиционные параметры?
  • Как сделать «если переменная a имеет шаблон« abc »do x, иначе y» (в 1 строке)
  • Как заставить backticks принимать переменные как переменные?
  • Две связанные замены в одной командной строке?
  • Linux и Unix - лучшая ОС в мире.