민감한 정보가 포함된 명령의 텍스트 출력을 보려면 less를 사용합니다. Less는 백업 화면을 사용하고 사용 후 지우기 때문에 좋습니다. 짧은 시간(예: 5분) 후에 더 적은 세션이 종료되기를 원합니다.
파이프 텍스트를 사용하여 덜 호출하고 5분 후에 자동으로 종료되도록 하는 간단한 명령줄 방법이 있습니까?
답변1
GNU coreutils가 있다고 가정하면 간단한 방법은 민감한 명령을 바꾸는 것입니다 less
. timeout --foreground 600 less; printf '\033[?47h'; clear; printf '\033[?1049l'; stty cooked echo
이 timeout
명령은 지정된 기간 후에 프로세스를 종료하고 TTY 사용을 --foreground
허용하도록 전환하며 종료 후 터미널을 복구합니다 . 종료로 인해 백업 화면이 지워지거나 종료되지 않는 경우 개입 명령이 이를 수행합니다.less
stty cooked echo
less
less
명령에 사용되는 이스케이프 시퀀스는 printf
Xterm과 같은 DEC 호환 터미널(에뮬레이터)에 적합합니다. 특정 터미널은 이 작업을 수행하기 위해 다른 순서를 사용할 수 있습니다.
간단한 기능:
tless () {
timeout --foreground 600 less "$@"
printf '\033[?47h' # Enter alternate screen
clear
printf '\033[?1049l' # Exit alternate screen and restore cursor
</dev/tty stty cooked echo # Use in a pipe requires specifying the TTY
}
타이핑 횟수를 대폭 줄일 수 있습니다.
원본 버전에서는 대체 화면이 지워지지 않거나 종료되지 않을 수 있음을 지적해 주신 @meuh에게 감사드립니다.
또한 tless some-file
이 버전은 Linux 및 Solaris 11에서 테스트되었습니다.