bash (Terminal.app)가 이전 세션의 기록을 기억하게하는 방법은 무엇입니까? 컴퓨터에서 내 bash

직장에서 내 컴퓨터에서 내 bash 쉘은 새 터미널을 방금 연 경우에도 이전 세션의 기록을 기억합니다.
집에있는 내 컴퓨터에서는 이런 일이 발생하지 않습니다.
두 컴퓨터에 동일한 OS 10.6.8이 있고에 기록 관련 설정이 없습니다 .bash_profile.
내 컴퓨터에서 어떻게 설정하면 여러 세션의 기록을 기억할 수 있습니까?



답변

bash에게 히스토리 파일을 보관할 위치와 보관할 줄 수를 알려줘야합니다.

# Set the location of your HISTFILE
echo "export HISTFILE=/Users/<USERNAME>/.bash_history" >> ~/.bash_profile

# Number of lines to keep (1000 in this example)
echo "export HISTFILESIZE=1000" >> ~/.bash_profile

# Set how many commands to keep in the current session history list
echo "export HISTSIZE=80" >> ~/.bash_profile

# Ignore commands that start with a space
echo "export HISTIGNORE=\"&:[ ]*:exit\"" >> ~/.bash_profile


답변

방금 비슷한 문제가 있음을 알았습니다. 고용주는 두 대의 Mac 만 가지고 있고 책상 에는 앉아 있지 않습니다 . 용납 할 수 없지만 다른 시간을위한 전투.

어쨌든 집에서 Mac Mini (MacBook Pro에서 마이그레이션)는 설정 .bashrc및 / 또는 후에도 작동하지 않았습니다 .profile. 그런 다음 내 ~/.bash_history파일이 루트에 의해 신비하게 소유 되었음을 발견했습니다 . 이것을해야했다 :

sudo -iu root
cd ~(myusername)
chown (myusername) .bash_history

(예, 적은 명령으로 수행 할 수 있음을 알고 있습니다. 습관.)

그런 다음 터미널을 종료하고 새 터미널을 시작했습니다. 우와! 이전에 잃어버린 모든 종류의 역사는 뒤로 물러났습니다. 정말 멋지다

이 글을 읽는 사람이 우연히이 곤경에 처했을 가능성 : 0.2 % 나는 다른 것을 지나치게 열성적으로 “고정”할 때 이것을 깨달았다.


답변

나는이 문제가 있었고 나를 위해 일한 .bash_sessions_disable것은 내 사용자 폴더 ( ~/) 에 있는 파일을 만드는 것이 었습니다 .

기본적으로 OS X .bash_sessions는 각 세션 (내 경우에는 각 탭마다 하나씩)의 폴더에 기록 파일을 만듭니다 . 그리고 이러한 세션을 제대로 종료하더라도 OS X는 이전의 기록을 재생하지 않습니다 .bash_history.

를 만들면 .bash_sessions_disable이 동작이 비활성화됩니다.

touch ~/.bash_sessions_disable


답변

Reddit 스레드의 대답은 저를 구했습니다.

bash_sessions가 실행되는 “후크”종료를 막는 것은 아마도 RVM 일 것입니다. .bash_profile에서 다음 줄을 주석 처리하면 작동합니다.

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"


답변

나는 비슷한 문제가 있었으며 기록이 기록되지 않았다. 주어진 솔루션이 작동하지 않았지만 마침내 문제가 누락 된 .bash_history만큼 간단하다는 것을 알았습니다.

이 솔루션은 이동하는 것이었다 /home/[username]/과 파일을 추가 .bash_history하므로,

nano .bash_history

그런 다음 파일에 아무것도 입력하지 않으면 (생성되지 않음) 종료하고 저장하십시오. 이 후 히스토리가 정상적으로 작동하기 시작했습니다.


답변