Сохраните tcsh историю в нескольких окнах терминала

Я думаю, что возможно запуститься независимо от того, что Вы хотите от/etc/inittab

например, (/etc/inittab выборка)

# TERMINALS
c1:12345:respawn:/sbin/agetty 38400 tty1 linux

# Launch top redirecting its output to tty2, without redirecting input
c2:2345:respawn:/usr/bin/top >/dev/tty2 2>&1

# Launch ascii-invaders with redirected input 
# (you will be able to control the game with keyboard after switching to tty3)
c3:2345:respawn:/usr/games/bin/ascii-invaders </dev/tty3 >/dev/tty3 2>&1
8
13.04.2017, 15:36
2 ответа

Эти переменные устанавливают историю, чтобы объединить себя вместо перезаписи, и не сохранять дубликаты:

set history=1000
set histdup=erase
set savehist=(1000 merge)

Секретный соус является этой линией:

alias precmd 'history -S; history -M'

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

Все вышеперечисленное следует добавлять в ваш файл .tcshrc .

7
27.01.2020, 20:12

В дополнение к ответу Идана я хочу добавить, что alias precmd 'history -S; history -M'потенциально может испортить файл истории, поскольку он также записывает сигнал SIGINT и EOF (Ctrl+C и Ctrl+D ).

enter image description here

Лучшим способом было бы сохранить и объединить текущую историю оболочки после выполнения команды.

Вместо этого вы можете добиться этого с помощью приведенной ниже настройки, поскольку tcsh не распознает SIGINT или EOF как допустимую команду.

alias postcmd       "history -S; history -M"
3
27.01.2020, 20:12

Теги

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