터미널을 종료하기 전에 명령 기록을 기록하는 별칭 / 스크립트?


2

저는 bash스크립팅을 처음 사용했습니다.

exit명령 행 을 작성할 때마다 명령 히스토리가 기록 되도록 별명 또는 스크립트를 작성하려고 했습니다. 많은 새로운 명령을 시도하고 파일로 돌아가서 주석을 달고 싶기 때문에 명령을 시도한 다음 완전히 잊어 버릴뿐 아니라 더 잘 배울 수 있습니다.

alias exit ="history > `date +%Y-%m-%d`.txt; exit"

하지만 내 배쉬를 다시로드하면 다음과 같은 결과가 나타납니다.

-bash: alias: exit: not found
-bash: alias: =history > 2015-09-22.txt; exit: not found

왜 작동하지 않습니까? while 루프를 사용하여 스크립트를 작성해야합니까?


3
그건 그렇고, 오류는 명령 =에 공백이 있기 때문에 발생합니다 alias. 이어야합니다 alias exit="history …".
Scott

답변:


6

Bash에는 아마도 찾고있는 기록 파일이 있습니다. vim ~/.bash_history또는을 시도하십시오 cat ~/.bash_history. 아마 당신이 찾고있는 것일 것입니다. 그것은 redhat 배포판의 히스토리 파일 위치이며 다른 배포판의 다른 위치에있을 수 있지만 홈 디렉토리는 의미가 있습니다. :)


히스토리 파일은 bash시작시 자동으로 읽히 므로 (있는 경우) 이전 세션의 명령을 다시 사용 !하여 볼 수 있습니다 history. 메모리에 보관되고 기록 파일에 기록되는 줄 수에는 제한이 있지만 기본값은 1000이지만 변경 가능합니다. 제한을 초과하면 가장 오래된 줄이 삭제됩니다.
dave_thompson_085


3

. bash에서는 이벤트가 발생할 때 "트랩"이 호출되도록 설정할 수 있습니다. 이것은 .bashrc입니다.

function show_history {
    history > `date +%Y-%m-%d`.txt
}
trap show_history EXIT

help trap자세한 내용은 실행 하십시오.

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