SunOS 5.10의 여러 PuTTy 세션에 대한 명령 기록

SunOS 5.10의 여러 PuTTy 세션에 대한 명령 기록

SunOS 5.10 서버에 여러 개의 PuTTy 세션이 열려 있고 ksh를 사용하고 있는데 때로는 명령 기록이 다른 세션 간에 공유되지만 때로는 그렇지 않습니다. 공유 여부를 결정하는 요소가 무엇인지 알 수 없습니다. 공유란 한 세션에서 실행된 명령이 다른 세션에서 실행된 이전 명령으로 표시된다는 의미입니다.

공유하지 않는 것이 좋습니다. 이에 대한 구성 설정이 있나요?

답변1

대부분의 Unix 쉘은 쉘이 시작될 때 파일에서 이전 기록을 한 번 읽고 해당 쉘을 닫으면 기록이 파일에 다시 기록됩니다.

일반적으로 이전 내용은 단순히 덮어쓰게 되므로 다음과 같은 작업을 수행하면...

  1. 세션 A와 B에 로그인
    • A와 B는 같은 내용을 읽었습니다.~/.history
  2. testA에서 명령 실행
    • A는 test메모리 내 기록에 추가합니다.
    • B는 명령에 대해 모른다
  3. A에서 로그아웃
    • A는 ~/.history해당 기록을 덮어씁니다.test
  4. 세션 C에 로그인
    • C는 , 의 내용을 읽습니다 ~/.history.test
  5. B에서 로그아웃
    • B는 ~/.history기록이 없는 기록으로 덮어씁니다.test
  6. C에서 로그아웃
    • C는 ~/.history자신의 기록을 덮어씁니다.test

test3단계 이후 히스토리 파일에 저장되지만 5단계에서는 삭제되고 6단계에서는 다시 추가됩니다 ...

일부 쉘에는 이를 방지하는 "기록 추가" 옵션이 있습니다(예: shopt -s histappendBash).

완전히 별도의 기록을 갖고 싶다면, 쉬운 방법은 기록 파일을 /dev/null.

관련 정보