bash에서 실행할 때 개별 프로세스의 IO를 파이프하고 리디렉션하는 기능에 익숙합니다. 그러나, 전체 bash 세션에 대해 stdio를 리디렉션 할 수있는 방법이 있습니까?bash 세션 전체를 로그 파일로 리디렉션
이상적 I 투명 파이프 tee
떠들썩한 파티에 의해 만들어지는 모든 공정 및 모든 stdout
stderr
파일에 사용자에게 디스플레이 인쇄물을 복제하고 싶다. bash 세션 내에서 어떤 프로세스가 실행 되더라도 나중에 다시 돌아가 출력을 살펴볼 수 있습니다.
더 이상적으로는 stdin에서 옵션을 가져 오는 단순한 대화 형 프로그램이지만 vim과 같은 대화 형 프로그램은 그렇지 않습니다.
지금까지 IS 찾은 최고의 : 사용자가 새 터미널을 열 때마다, 명령 실행
이bash --login -i > >(tee ~/bash_$$.log) 2>&1
이 바로 그 새로운 쉘에서 대화 형 아이 쉘을 시작합니다, 그리고 tee
모든 stdin
새 상위 쉘의 PID로 이름 지정된 로그 파일에 덮어 쓰기를 방지하기 위해 stderr
을 추가하십시오.
이 작동하지만 vim
은 Vim: Warning: Output is not to a terminal
으로 시작하지 못합니다. 이렇게하기 위해 셸을 패치하는 것까지 알려진 해결책이 있습니까?
을 실행할 수 있습니까? –
'vim> &/dev/pts/':) –
pah
물론, 확실히 OP는 로그가 회피되기를 원하지 않습니다. :) –