Я искал все, как это сделать, и кажется, что это было упомянуто несколько раз в качестве предложения, мне еще предстоит найти пример.Настройка HISTFILE на именованный канал
Я попытался следующие:
mkfifo /tmp/testpipe
mknod /tmp/testpipe p
Наконец я обновил свой ~/.bashrc файл содержит следующее: HISTFILE =/TMP/testpipe
Я нашел сценарий в Интернете, что должен прочитайте эту трубу:
#!/bin/bash
pipe=/tmp/testpipe
trap "rm -f $pipe" EXIT
if [[ ! -p $pipe ]]; then
mkfifo $pipe
fi
while true
do
if read line <$pipe; then
if [[ "$line" == 'quit' ]]; then
break
fi
echo $line
fi
done
echo "Reader exiting"
Я запустил его со сравнимым «миром привет», который записывается в трубу, и он отображает его (поэтому я знаю, что труба существует и может принимать данные).
Когда я устанавливаю bashrc на вышеописанное и перезапускаю свой терминал, я не получаю командную строку до тех пор, пока я не дважды удалю элемент управления C (предположим, что он пытается записать именованный канал, но у меня нет работы сценарий, поэтому я не могу «прочитать его», поэтому я должен его убить). По мере того как я продолжаю, он сохранит историю, но это потому, что она находится в баране и не подталкивается к файлу.
Я нашел это, у которого может быть какая-то полезная информация, но я просто не уверен, как заставить его работать на то, что я пытаюсь сделать. https://askubuntu.com/questions/67283/is-it-possible-to-make-writing-to-bash-history-immediate Когда я попытался ввести некоторые из них в сочетании с именованным каналом, у меня никогда не было командной строки. Я, наконец, только что закрыл оболочку и прокомментировал эти строки.
Моя конечная цель состоит в том, что я хотел бы иметь возможность принимать каждую команду по мере ее выпуска, а затем вставлять их в онлайн-базу данных или что-то в этом роде, поэтому я могу иметь что-то похожее на историю просмотра веб-страниц, но для команд. Он расскажет мне, какие команды я использовал на каждом устройстве, даты и время.
Моя первоначальная мысль состоит в том, что я мог бы сделать это через именованный канал, но у меня нет подсказки, если бы это даже работало или имеет логический смысл.
Я надеялся, что смогу настроить именованный канал, а затем запустить python или что-то прочитать трубу, как она написана, и нажать данные онлайн, чтобы сказать firebase или что-то еще.
У меня есть несколько вопросов.
- Является ли именованная труба даже хорошей идеей для всего этого? (если у вас нет других идей?)
- Есть ли другой способ постоянно удалять данные удаленно?
* фон: Я установил драйверы для WiFi USB ключ на основном компьютере несколько месяцев назад, но компьютер не будет загружаться прямо сейчас (вопросы питания я думаю), я обновил Ubuntu на свой нетбук (Я запускал старую версию, которая больше не обновлялась.), И обычный Wi-Fi не работал, поэтому я подключил USB-WiFi, и он работает (но это шелушащийся). Я знаю, чтобы решить те проблемы, которые мне пришлось выполнить несколько других шаги, но как бы то ни было, теперь мне нужно google вещи (и я не помню, были ли рекомендации, которые я получил, были прямолинейными или нет сейчас, или если бы мне пришлось поиграть). Это подтолкнуло меня к мысли, что возможность поиска истории с помощью устройства с течением времени будет выглядеть как-то аккуратно.Я рассказываю о загрузке источника BASH и впрыскивании чего-то там, а также перекомпиляции и использовании этого, но я должен был бы сделать это для каждого устройства, было бы гораздо проще всего перебросить несколько вещей на ПК в начале установить и сделать с ним.
* ОБНОВЛЕНИЕ В ОТНОШЕНИИ К ВОПРОСУ/КОММЕНТАРИИ Разделение на разные файлы с помощью PID - хороший способ определить историю команд, я не уверен, как каждый раз удалять каждую команду в удаленной базе данных при каждом обновлении , Мне почти пришлось бы открыть файл pid с именем, захватить содержимое и нажать на удаленный db, и стереть содержимое, надеясь, что не заблокирует магазин? команды от запуска, чтобы сохранить следующую следующую команду (при условии, что вы куча команд забиваете за раз). Есть ли у вас какие-либо предложения, будет ли это проблемой или нет?
Вы можете установить 'HISTFILE' выражение, включающее что-то уникальное для каждой оболочки, например. pid, затем используйте решение с этой страницы askubuntu. В этот момент у вас будет отдельный файл histfile для каждой оболочки, с которой вы могли бы запросить внешний процесс. Конечно, это может также сломать загрузку файла histfile в новой оболочке; может быть, какая-то другая схема, кроме pid. –