Запустить XTerm с настраиваемой историей bash

Если ваш текущая версия Debian имеет systemd-boot , я бы рекомендовал использовать это вместо этого. Это намного проще в использовании. Просто следуйте руководству здесь .

Я бы не стал беспокоиться о Grub, когда дело касается UEFI. Новый systemd-boot ( bootctl ) намного проще и включен в systemd . Я давно отказался от grub efi . Также просто задавайте любые вопросы, если хотите попробовать мой метод.

3
12.05.2017, 08:18
1 ответ
  1. Создайте файл ~/myhistory с нужными вам командами в истории, по одной в строке
  2. chmod aw ~/myhistory, , чтобы Bash не пытался изменить его . Если вы хотите, чтобы команды, которые вводит пользователь, записывались обратно (в тот же файл), пропустите этот шаг.
  3. HISTFILE=~/myhistory xterm -e bash , чтобы Bash загружал данные истории из ~/myhistory. Если ваша оболочка по умолчанию — bash, вы можете потерять -e bash.

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


Если вы не можете создать настоящий файл, этот довольно хакерский обходной путь также будет работать:

HISTFILE=<(printf '%s\n' command1 "second 'command here'" 3rd) xterm -e bash

Здесь используется подстановка процесса для создания файлового объекта, из которого оболочка может читать, с выводом команды printf в качестве содержимого. Этот printf выведет каждый из аргументов, по одному на строку. Вам придется тщательно цитировать, чтобы убедиться, что команды в качестве вывода находятся в нужном вам формате.

3
27.01.2020, 21:21

Теги

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