동일한 사용자에 대해 다른 세션에 대해 별도의 명령 기록을 갖는 방법은 무엇입니까?

동일한 사용자에 대해 다른 세션에 대해 별도의 명령 기록을 갖는 방법은 무엇입니까?

일부 Unix 서버에서 이 문제가 발생합니다. 동일한 사용자에 대해 다른 세션을 열면 명령 기록이 모든 세션에서 공유됩니다. 실수로 Ctrl-P또는 키를 누르고 up arrowEnter 키를 누르면 문제가 발생합니다. 한 번은 rm -rf *파일을 제거할 수 있는 권한이 없는 디렉터리에 있었기 때문에 실행하게 되었습니다 .

동일한 사용자에 대해 다른 세션에 대해 별도의 명령 기록을 갖는 방법은 무엇입니까? 대부분의 경우 ksh 및 tcsh 쉘을 사용하고 있습니다.

답변1

HISTFILE=~/.hist$$에 추가할 수 있습니다 .profile. 이렇게 하면 세션별로 고유한 파일이 생성됩니다.

결국에는 많은 수의 파일이 생성되므로 .hist*가끔씩 제거하는 것이 좋습니다.

답변2

로부터ksh 자주 묻는 질문:

Q1. 쉘에 대한 별도의 기록 파일을 얻으려면 어떻게 해야 합니까?

A1. ksh는 동일한 기록 파일 이름을 사용하는 모든 쉘에 대해 공유 기록 파일을 사용합니다. 이는 한 창에 입력된 명령이 다른 창의 쉘에 표시된다는 의미입니다. 별도의 창을 얻으려면 첫 번째 기록 명령이 생성되기 전에 HISTFILE 변수를 다른 이름으로 설정해야 합니다.

답변3

나는 당신이 동시 세션에 대해 이야기하고 있다고 가정합니다. 서로 뒤따르는 세션을 분리하는 것은 그리 유용하지 않습니다. 모든 세션이 고유하기 때문에 더 이상 기록을 사용할 수 없습니다. 그렇다면 명령 기록을 비활성화하는 것이 더 나을 것입니다.

동시 세션 분리에 관해 이야기하고 있다면 Bash를 사용하는 것이 좋습니다. 나는 두 개의 동시 세션이 혼합되어 명령 기록을 얻지 못할 것이라고 확신합니다. Bash는 로그아웃 시에만 기록을 기록하므로 .bash_history로그아웃 이후까지 명령 기록이 혼합되지 않습니다. Bash를 사용하는 것이 허용된다면 문제가 해결됩니까?

답변4

당신은 사용할 수 있습니다화면. 나는 또한내 konsole 프로필에 정의되고 각 세션에 다른 기록 파일을 제공하는 변수, 제가 ​​생각할 수 있는 방법밖에 없습니다.

관련 정보