Computer >> 컴퓨터 >  >> 프로그램 작성 >> BASH 프로그래밍

이 팁으로 Bash 기록을 더 유용하게 만드십시오.

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
$

역사 수업

기록을 조작하는 것은 일반적으로 들리는 것보다 덜 위험합니다. 특히 목적을 염두에 두고 관리할 때 그렇습니다. 예를 들어, 복잡한 문제를 문서화하는 경우 세션 기록을 사용하여 명령을 기록하는 것이 가장 좋은 경우가 많습니다. 명령을 기록에 삽입하여 실행하고 프로세스를 테스트하기 때문입니다. 매우 자주, 수행하지 않고 문서화하면 작은 단계를 간과하거나 사소한 세부사항을 잘못 작성하게 됩니다.

필요에 따라 역사 세션을 사용하고 현명하게 역사에 대한 권한을 행사하십시오. 즐거운 역사 해킹!