Bash를 실행하는 Linux 터미널에는 최근에 수행한 작업을 추적하는 데 사용할 수 있는 기록이 내장되어 있습니다. Bash 세션 기록을 보려면 내장 명령 history
를 사용하세요. :
$ echo "foo"
foo
$ echo "bar"
bar
$ history
1 echo "foo"
2 echo "bar"
3 history
history
command는 대부분의 명령과 같이 파일 시스템에서 실행 가능한 파일이 아니라 Bash의 기능입니다. type
을 사용하여 이를 확인할 수 있습니다. 명령:
$ type history
history is a shell builtin
기록 제어
쉘 기록의 라인 상한은 HISTSIZE
로 정의됩니다. 변하기 쉬운. .bashrc
에서 이 변수를 설정할 수 있습니다. 파일. 다음은 기록을 3,000줄로 설정한 후 가장 오래된 줄을 제거하여 최신 명령을 위한 공간을 확보하고 목록 맨 아래에 배치합니다.
export HISTSIZE=3000
다른 역사 관련 변수도 있습니다. HISTCONTROL
변수는 저장되는 기록을 제어합니다. 이것을 .bashrc
에 배치하여 Bash가 공백으로 시작하는 명령을 제외하도록 강제할 수 있습니다. 파일:
export HISTCONTROL=$HISTCONTROL:ignorespace
이제 공백으로 시작하는 명령을 입력하면 해당 명령이 기록에 기록되지 않습니다.
$ echo "hello"
$ mysql -u bogus -h badpassword123 mydatabase
$ echo "world"
$ history
1 echo "hello"
2 echo "world"
3 history
중복 항목도 피할 수 있습니다.
export HISTCONTROL=$HISTCONTROL:ignoredups
이제 두 개의 명령을 차례로 입력하면 기록에 하나만 나타납니다.
$ ls
$ ls
$ ls
$ history
1 ls
2 history
이 두 무시가 마음에 들면 ignoreboth
를 사용할 수 있습니다. :
export HISTCONTROL=$HISTCONTROL:ignoreboth
기록에서 명령 제거
때로는 실수를 하여 쉘에 민감한 내용을 입력하거나, 무언가를 올바르게 작동시키기 위해 취한 단계를 더 정확하게 나타내기 위해 기록을 정리하고 싶을 수도 있습니다. Bash의 기록에서 명령을 삭제하려면 -d
를 사용하세요. 제거하려는 항목의 줄 번호가 있는 옵션:
$ echo "foo"
foo
$ echo "bar"
bar
$ history | tail
535 echo "foo"
536 echo "bar"
537 history | tail
$ history -d 536
$ history | tail
535 echo "foo"
536 history | tail
537 history -d 536
538 history | tail
history
추가를 중지하려면 항목에 space
을 넣을 수 있습니다. ignorespace
가 있는 한 명령 앞에 HISTCONTROL
에서 환경 변수:
$ history | tail
535 echo "foo"
536 echo "bar"
$ history -d 536
$ history | tail
535 echo "foo"
-c
를 사용하여 전체 세션 기록을 지울 수 있습니다. 옵션:
$ history -c
$ history
$
역사 수업
기록을 조작하는 것은 일반적으로 들리는 것보다 덜 위험합니다. 특히 목적을 염두에 두고 관리할 때 그렇습니다. 예를 들어, 복잡한 문제를 문서화하는 경우 세션 기록을 사용하여 명령을 기록하는 것이 가장 좋은 경우가 많습니다. 명령을 기록에 삽입하여 실행하고 프로세스를 테스트하기 때문입니다. 매우 자주, 수행하지 않고 문서화하면 작은 단계를 간과하거나 사소한 세부사항을 잘못 작성하게 됩니다.
필요에 따라 역사 세션을 사용하고 현명하게 역사에 대한 권한을 행사하십시오. 즐거운 역사 해킹!