종료/로그아웃할 때마다 쉘 기록을 지우고 싶습니다.
기록을 수동으로 지우는 방법과 세션/터미널 에뮬레이터를 닫을 때 자동으로 기록을 지우는 방법을 알고 있습니다. 그러나 이는 예상된 동작이 아닙니다.
zsh
나는 wayland를 사용하고 manjaro에서 흔들립니다.
.zlogout을 사용해 보았습니다. 그러나 내가 이해한 바에 따르면 이것은 로그인 쉘용이기 때문에 작동하지 않습니다(로그인 쉘을 구성하는 것이 무엇인지 모르겠습니다).
답변1
systemd
만약 당신이 (내가 아는 한, 어떤 manjaro가 되어야 하는지를) 사용하고 있다면 , 한 가지 옵션은 중지되었을 때 기록 삭제를 성공하고 수행하는 간단한 서비스입니다. 그런 다음 다음에 의존하게 만드십시오 default.target
.
[Unit]
Description=Delete zsh-history on logout/shutdown
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=/home/grbll/bin/zsh-remover.sh
[Install]
WantedBy=default.target
사용자 서비스 항목 예:~/.config/systemd/user/zsh-history-wipe.service
영구적으로 활성화하고 실행 후 현재 세션에 대해 활성화하는 데 사용됩니다.
systemctl --user enable zsh-history-wipe
systemctl --user start zsh-history-wipe
마지막 로그아웃이나 종료 시 모든 서비스가 중지되었으므로 ExecStop
결국 - 명령이 실행됩니다. 분명히 정전과 같은 상황에는 적용되지 않습니다.
사용자에 대해 지연을 비활성화해야 한다는 점에 유의하세요!
답변2
기록을 지우고 로그아웃 또는 종료 시 실행되는 위치에 배치하는 쉘 스크립트를 생성할 수 있습니다. 이 순서대로:
- 파일은 다음과 같습니다.
#!/bin/zsh
history -c
history -w
- 파일을 실행 가능하게 만듭니다.
chmod +x script.sh
- Sway(
~/.config/sway/config
)를 구성하려면 구성 파일 끝에 다음 명령을 추가하세요.exec /path/to/the/script.sh
그게 다야!