BIST HISTSIZE 대 HISTFILESIZE?
의 차이 무엇입니까 HISTSIZE
대는 HISTFILESIZE
?
bash 기록을 기본 500 줄 이상으로 확장하는 데 사용됩니다.
여기와 다른 포럼에서 왜 둘 다 필요한지에 대한 명확성이 부족한 것 같습니다. (실시 예 1 , 실시 예 2 , 실시 예 3 ).
짧은 답변:
HISTSIZE
bash 세션이 진행되는 동안 히스토리 목록의 메모리에 저장되는 행 또는 명령 수입니다.
HISTFILESIZE
는 (a) 세션 시작시 히스토리 파일에 허용되며 (b) 이후 세션에서 사용하기 위해 bash 세션 종료시 히스토리 파일에 저장되는 행 또는 명령 수입니다.
file
: on disk-와 list
: in memory 의 차이점을 확인 하십시오 .
긴 대답 :
위의 모든 정보와 몇 가지 예 :
실시 예 1 : HISTFILESIZE=10
및HISTSIZE=10
- 세션을 시작합니다.
- HISTFILE (bash 명령 기록을 저장하는 파일)은 HISTFILESIZE = 10 줄을 포함하도록 잘립니다.
- 50 줄을 씁니다.
- 50 개의 명령이 끝날 때 명령 41-50 만 히스토리 목록에 있으며 크기는 HISTSIZE = 10에 의해 결정됩니다.
- 당신은 당신의 세션을 종료합니다.
histappend
활성화되어 있지 않다고 가정하면 명령 41 ~ 50이 HISTFILE에 저장되며, 이제 처음에는 10 개의 명령과 10 개의 새로 작성된 명령이 있습니다.- HISTFILESIZE = 10 줄을 포함하도록 HISTFILE이 잘립니다.
- 이제 내역에 10 개의 명령이 있습니다. 방금 완료 한 세션에서 방금 입력 한 마지막 10 개입니다.
- 새 세션을 시작할 때 HISTFILE HISTFILESIZE = 10으로 1에서 다시 시작합니다.
실시 예 2 : HISTFILESIZE=10
및HISTSIZE=5
- 세션을 시작합니다.
- HISTFILE (bash 명령 기록을 저장하는 파일)은 최대 HISTFILESIZE = 10 줄을 포함하도록 잘립니다.
- 50 줄을 씁니다.
- 50 개의 명령이 끝나면 명령 46-50 만 히스토리 목록에 있으며 크기는 HISTSIZE = 5에 의해 결정됩니다.
- 당신은 당신의 세션을 종료합니다.
histappend
사용 불가능한 것으로 가정하면 명령 46에서 50까지는 HISTFILE에 저장되며, 이제 처음에는 10 개의 명령과 5 개의 새로 작성된 명령이 있습니다.- HISTFILESIZE = 10 줄을 포함하도록 HISTFILE이 잘립니다.
- 이제 기록에 10 개의 명령이 있습니다. 이전 세션의 5 개와 방금 완료 한 세션에서 방금 입력 한 마지막 5 개가 있습니다.
- 새 세션을 시작할 때 HISTFILE HISTFILESIZE = 10으로 1에서 다시 시작합니다.
실시 예 3 : HISTFILESIZE=5
및HISTSIZE=10
- 세션을 시작합니다.
- HISTFILE (bash 명령 기록을 저장하는 파일)은 최대 HISTFILESIZE = 5 줄을 포함하도록 잘립니다.
- 50 줄을 씁니다.
- 50 개의 명령이 끝날 때 명령 41-50 만 히스토리 목록에 있으며 크기는 HISTSIZE = 10에 의해 결정됩니다.
- 당신은 당신의 세션을 종료합니다.
histappend
활성화되어 있지 않다고 가정하면 명령 41에서 50까지는 HISTFILE에 저장됩니다. 이제 HISTFILE에 5 개의 명령과 10 개의 새로 작성된 명령이 있습니다.- HISTFILESIZE = 5 줄을 포함하도록 HISTFILE이 잘립니다.
- 이제 기록에 5 개의 명령이 있습니다. 방금 완료 한 세션에서 방금 입력 한 5 개의 명령이 있습니다.
- 새 세션을 시작할 때 1 단계에서 HISTFILE HISTFILESIZE = 5로 다시 시작하십시오.
elixir_sinari의 정보 :
명령을 입력 할 때 기록 "파일"이 업데이트되지 않습니다. 명령은 "목록"에 별도로 저장됩니다 (히스토리 명령으로 액세스). 이러한 저장된 명령의 수는 HISTSIZE 값으로 제어됩니다. 쉘 (대화식)이 종료되면 마지막 $ HISTSIZE 행이 해당 "목록"에서 $ HISTFILE에 복사 / 추가됩니다. HISTFILESIZE가 설정되면이 조작 후에 $ HISTFILESIZE 행 (최신) 만 $ HISTFILE에 존재하는지 확인됩니다. 쉘이 시작되면 "list"는 $ HISTFILE에서 최대 $ HISTSIZE 명령까지 초기화됩니다.
그리고 man bash
페이지에서 :
HISTSIZE 변수의 값은 히스토리 목록에 저장할 명령 수로 사용됩니다. 마지막 HISTSIZE 명령의 텍스트 (기본값 500)가 저장됩니다. (...)
시작시 히스토리는 변수 HISTFILE (기본값 ~ / .bash_history)로 이름이 지정된 파일에서 초기화됩니다. HISTFILESIZE 값으로 지정된 파일은 필요한 경우 HISTFILESIZE 값으로 지정된 행 수를 초과하지 않도록 잘립니다. (...) 대화식 쉘이 종료되면 마지막 $ HISTSIZE 행이 히스토리 목록에서 $ HISTFILE로 복사됩니다. histappend shell 옵션이 활성화 된 경우 (아래의 SHELL BUILTIN COMMANDS 아래에서 shopt 설명 참조) 행이 내역 파일에 추가되고, 그렇지 않으면 내역 파일을 덮어 씁니다. HISTFILE을 설정하지 않았거나 기록 파일을 쓸 수없는 경우 기록이 저장되지 않습니다. (...) 히스토리를 저장 한 후 히스토리 파일은 HISTFILESIZE 줄을 초과하지 않도록 잘립니다. HISTFILESIZE를 설정하지 않으면 절단이 수행되지 않습니다.
Building on top of what arturomp have said and in an effort to make it a bit clearer.
Assumming you have 2000-something long history..
~$ history
1 sdf
2 fghdfgjf
3 fghfghdf
.. ..
2027 78
2028 57
2029 yu45u
You can cut down what you are shown with HISTSIZE
~$ HISTSIZE=5
~$ history
2026 546
2027 78
2028 56
2029 yu45u
2030 HISTSIZE=5
Now, no matter how many commands you type, only the last 5 will be recorded.
~$ ABC
~$ GGH
~$ GSDHFG
~$ JFDR
~$ ABSDDS
~$ AHFGHFD
<close terminal>
<open new terminal>
~$ history
1 sdf
2 fghdfgjf
3 fghfghdf
.. ..
2028 56
2029 yu45u
2030 HISTSIZE=5
2031 GGH
2032 GSDHFG
2033 JFDR
2034 ABSDDS
2035 AHFGHFD
We can clearly see that our first command ("ABC") is not in the history since only the last 5 commands were recorded.
Now, the total history is stored in a file (.bash_history
) and you can alter how long this file gets with the HISTFILESIZE
. For example with a 2033
HISTFILESIZE
, in my case I would have this:
~$ history
1 fghfghdf
2 gegege
3 gege
.. ..
2028 HISTSIZE=5
2029 GGH
2030 GSDHFG
2031 JFDR
2032 ABSDDS
2033 AHFGHFD
참고URL : https://stackoverflow.com/questions/19454837/bash-histsize-vs-histfilesize
'Programing' 카테고리의 다른 글
jquery를 사용하여 입력 유형을 얻는 방법은 무엇입니까? (0) | 2020.06.26 |
---|---|
프로비저닝 프로파일을 생성하지 못했습니다. (0) | 2020.06.25 |
도커 컨테이너에서 ps 명령이 작동하지 않습니다 (0) | 2020.06.25 |
ASP.NET_SessionId + OWIN 쿠키는 브라우저로 보내지 않습니다 (0) | 2020.06.25 |
[GET] / 자산과 일치하는 경로가 없습니다 (0) | 2020.06.25 |