일부 Unix 서버에서 이 문제가 발생합니다. 동일한 사용자에 대해 다른 세션을 열면 명령 기록이 모든 세션에서 공유됩니다. 실수로 누르 Ctrl-P
거나 Enter를 누르면 up arrow
문제가 발생합니다 . 한번은 rm -rf *
내가 있던 디렉터리에 파일을 삭제할 수 있는 권한이 없었기 때문에 마침내 운이 좋았습니다.
동일한 사용자의 다른 세션에 대해 별도의 명령 기록을 갖는 방법은 무엇입니까? 대부분의 경우 ksh 및 tcsh 쉘을 사용합니다.
답변1
HISTFILE=~/.hist$$
이를 에 추가할 수 있습니다 .profile
. 이렇게 하면 각 세션에 대해 고유한 파일이 생성됩니다.
결국에는 이러한 항목이 많아지므로 .hist*
가끔씩 제거하는 것이 좋습니다.
답변2
~에서자주 묻는 질문:
Q1.쉘의 별도 히스토리 파일은 어떻게 구하나요?
A1. ksh는 동일한 기록 파일 이름을 사용하는 모든 쉘에 대해 공유 기록 파일을 사용합니다. 이는 한 창에 입력된 명령이 다른 창의 쉘에 표시된다는 의미입니다. 별도의 창을 얻으려면 첫 번째 기록 명령을 생성하기 전에 HISTFILE 변수를 다른 이름으로 설정하십시오.
답변3
동시 세션에 대해 이야기하고 있다고 가정합니다. 세션을 하나씩 분리하는 것은 그리 유용하지 않습니다. 모든 세션이 고유하기 때문에 기록을 다시 사용할 수 없습니다. 이 경우 명령 기록을 비활성화하는 것이 좋습니다.
동시 세션 분리에 대해 이야기한다면 Bash를 사용하는 것이 좋습니다. 나는 그것을 혼합하고 있는 두 개의 동시 세션에서 명령 기록을 얻지 못하고 있다고 확신합니다. Bash는 로그아웃 시에만 기록을 작성하므로 .bash_history
로그아웃 후에는 명령 기록이 혼합됩니다. Bash를 사용하는 것이 허용된다면 문제가 해결됩니까?
답변4
당신이 사용할 수있는화면. 나도 하나 만들었어내 konsole 구성 파일에 정의된 변수를 사용하고 각 세션마다 다른 기록 파일을 제공합니다., 제가 생각할 수 있는 유일한 방법입니다.