우분투에서 하나 이상의 터미널 세션에서 Bash 기록을 어떻게 볼 수 있습니까? [복제]


12

중복 가능성 :
히스토리 파일을 bash에서 통합 할 수 있습니까?

Ubuntu Server 9.10을 사용하고 있으며 둘 이상의 터미널 세션에 대한 내 배쉬 기록을보고 싶습니다. 즉, 내가 로그인 한 경우에도 마지막 200 개의 명령입니다.

내가 사용하면 history실제 터미널 세션에서 모든 명령을 볼 수 있습니다. Bash에서 더 많은 명령 기록을 어떻게 볼 수 있습니까? 우분투의 기본값에서 변경해야 할 bash에 대한 특정 설정이 있습니까?

~/.bash_history파일 이 없습니다 . 그러나 내가이 ~/.bashrc함께 HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups하고HISTCONTROL=ignoreboth

echo $HISTFILE
/home/sanoj/.bash_history
echo $HISTSIZE
500
echo $HISTFILESIZE
500
echo $HISTCONTROL
ignoreboth

업데이트 : 이제 VirtualBox에서 Ubuntu Server 10.10을 시도하고 있습니다. shutdown 명령없이 VirtualBox를 끄면 다음에 부팅 할 때 마지막 세션의 명령이 기록 파일에 저장되지 않습니다.

shutdown 명령으로 시스템을 종료 한 경우에만 명령이 저장됩니다. 예를 들어 종료 -P 0.

이것이 내 문제의 원인이어야합니다. 따라서 명령 기록을 더 자주 저장하는 방법을 알아 내야합니다. 예를 들어 각 명령 후.


당신이 echo $HISTSIZE하고 무엇을 얻을 수 echo $HISTFILESIZE있습니까? 내 (우분투) ~/.bashrcHISTCONTROL두 번째 것이 첫 번째를 무시하고 값이 쉼표로 구분되지 않고 콜론으로 구분되어 있기 때문에 두뇌가 죽은 것과 동일한 줄을 가지고 있습니다. 당신이 set -o"역사에"라는 줄을 표시합니까?
추후 공지가있을 때까지 일시 중지되었습니다.

내가 얻을 500으로 echo두 변수에와history on
조나스

두 번째 HISTCONTROL 문은 첫 번째가 아니라 얻는 것입니다. 하지만 ignoreboth를 위한 bash는 속기 ignoredups + ignorespace 이 아마 문제가되지 않습니다 그래서.
quck quixote

1
이것은 중복입니다 : superuser.com/questions/37576/…
warren

1
@ 워렌 : 좋은 발견. 동의합니다. Sanoj가 요구하는 것과 정확히 같습니다.
quack quixote

답변:


7

당신이 사용할 수있는

history -a

메모리 내 히스토리를 히스토리 파일에 즉시 추가합니다. 이 작업을 수행하거나 다른 세션을 종료하지 않으면 한 터미널 세션에서 다른 터미널 세션을 볼 수 없습니다.

당신이 사용할 수있는

history 200 | less

해당 항목 수를 확인하십시오.

또한 HISTSIZEBash 매뉴얼 페이지의 항목 을 참조하십시오 HISTFILESIZE.


history -a´ doesn't do anything for me, and not 역사 200 | 덜`하지만 더 많은 정보로 내 질문을 업데이트했습니다. 어쨌든 고마워
Jonas

나는 지금 이유를 찾았다 고 생각합니다. 완전히 종료하지 않으면 기록이 저장되지 않습니다. 나의 새로운 질문을보십시오 : unix.stackexchange.com/questions/3330/…
Jonas

7

로그 아웃하면 기록이 파일에 추가됩니다 ~/.bash_history. 저기 좀 봐

기본적으로 마지막 500 개의 명령이 기억됩니다. 변수 HISTSIZE를 더 저장하려면에 변수 를 설정하십시오 ~/.bashrc.

또한 ( )에 추가 ignoredups합니다 . 이렇게하면 중복 된 연속 명령이 한 번만 저장됩니다.HISTCONTROLHISTCONTROL=$HISTCONTROL:ignoredup

man 1 bash역사에 대해 다른 것을 조정할 수있는 것을 살펴보십시오 .


답장을 보내 주셔서 감사합니다. 그러나 나는이하지 않는 ~/bash_history파일, 어떤 HISTSIZE에서을 ~/.bashrc하지만 난이 HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredupsHISTCONTROL=ignoreboth하고 그 문제에 경우는, 우분투 서버입니다.
Jonas

1
@Snoj .에서를 확인하십시오 ~/.bash_history. 그리고 HISTSIZE기본값 500 항목 만 사용합니다.
Benjamin Bannier

예,하지만 ~/.bash_history시스템에 파일 이 없습니다 . 나는 ls -a확인했다.
Jonas

@Sanoj 그래서 아마도 이것이 기본값이 아닙니다. 파일 이름은 $HISTFILE변수에 저장 되므로 echo $HISTFILE찾을 위치를 알려줍니다.
Benjamin Bannier

echo $HISTFILE나에게 /home/sanoj/.bash_history이상해. 보안상의 이유로 활성화되지 않았습니까?
Jonas

1

bash 기록은 일반적으로 쉘이 실행을 시작할 때로드되고 정상적으로 종료 될 때 저장됩니다. 및를 사용 history -a하거나 history -n무시할 수 있지만 남용 $PROMPT_COMMAND이나 이와 유사한 것을 제외하고는 자동으로 수행 할 수 없습니다 .


0

사노이, 이것은 "정상 작동"해야한다. 나는 이것을 가능하게하기 위해해야 ​​할 특별한 것이 있다고 생각하지 않습니다. 무언가가 정상적인 이벤트 과정을 방해하는 것처럼 들립니다.

나는 / etc / profile, / etc / bashrc (또는 일부 소스에 따라 /etc/bash.bashrc), ~ / .bash_profile, ~ / .bashrc, ~ / .bash_login, ~ / .bash_logout에서 볼 것입니다. 기록에 영향을 줄 수있는 항목이있는 경우 ( grep -i hist위의 각 파일에 있을 수 있음 ).

... 특히 ~ / .bash_logout에 파일을 제거하는 것이 있는지 궁금합니다.

또는 무언가가 $HOME변수를 재정의 할 수 있습니까?

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.