몇 주 전에 Ubuntu virtualbox 컴퓨터를 만들고 그 이후로 프로젝트를 진행하고 있습니다.
이제 일주일 전에 터미널에 입력 한 일부 명령의 구문을 찾고 싶지만 터미널 창을 열고 닫은 다음 컴퓨터를 여러 번 다시 시작했습니다.
어떻게 얻을 수있는 history
명령을 나는 기계를 만든 후 내가 입력 한 첫 번째 명령에 돌아가?
아니면 모든 명령이 우분투에 저장되는 또 다른 장소가 있습니까?
몇 주 전에 Ubuntu virtualbox 컴퓨터를 만들고 그 이후로 프로젝트를 진행하고 있습니다.
이제 일주일 전에 터미널에 입력 한 일부 명령의 구문을 찾고 싶지만 터미널 창을 열고 닫은 다음 컴퓨터를 여러 번 다시 시작했습니다.
어떻게 얻을 수있는 history
명령을 나는 기계를 만든 후 내가 입력 한 첫 번째 명령에 돌아가?
아니면 모든 명령이 우분투에 저장되는 또 다른 장소가 있습니까?
답변:
모든 명령을 얻는 것이 가능하거나 불가능할 수 있습니다. 실행 한 명령 수와 기록 한도 설정 방법에 따라 다릅니다.
그러나 당신은 역사 목록이 여기에 저장된 것을 볼 수 있습니다
/home/<YOUR_USERNAME>/.bash_history
관련 질문 (여러 쉘 기록을 처리하기위한) :
history
하면 현재 셸 기록이 최신으로 표시되고 그 이전의 다른 모든 셸 (이전 세션의 셸 포함, 전원주기를 포함하여)이 기록됩니다. 모든 쉘 인스턴스는 종료시 히스토리 를 저장합니다.bash_history
. 그 시점 이전에는 인스턴스가 자동으로 저장되지 않습니다.
기본적으로 ~/.bash_history
지난 몇 개의 명령이 포함되어 있지만 모든 명령이 기록되고 무기한 보관되는 곳은 없습니다 (사용하면 bash
우분투의 기본 쉘임).
당신이 원하는 경우 모든 에 입력 한 명령 bash
기록 영원히 , 당신은 스스로를 설정해야합니다. 예를 들어, 쉘에 ~/.bashrc
입력 된 모든 명령을 파일에 기록 하기 위해 파일에 다음을 넣을 수 있습니다 .bash
~/.command_log
# log every command typed and when
if [ -n "${BASH_VERSION}" ]; then
trap "caller >/dev/null || \
printf '%s\\n' \"\$(date '+%Y-%m-%dT%H:%M:%S%z')\
\$(tty) \${BASH_COMMAND}\" 2>/dev/null >>~/.command_log" DEBUG
fi
위의 DEBUG
명령은 일반 명령이 실행되기 직전에 실행되는 트랩을 설정합니다 . caller
내장 명령이 대화 형 쉘에서 입력 또는 같은 것을 통해 실행되는지 여부를 테스트하는 데 사용됩니다 ~/.bashrc
. 값 ${BASH_COMMAND}
은 현재 실행중인 명령을 포함합니다.
update_terminal_cwd
은 사용자가 실행하지 않지만 자동으로 실행되는 명령 인 기록 파일 에도 기록 됩니다.
당신이 관심을 가질만한 것은 이전의 명령 히스토리를 검색하는 방법입니다. 을 누른 Ctrl+r
다음 일치시킬 문자를 입력 하여 명령 행에서 히스토리를 역으로 검색 할 수 있습니다 . 일치하는 명령이 둘 이상인 경우을 Ctrl+r
다시 누릅니다 . 역방향 검색을 종료하려면을 누릅니다 Ctrl+g
.
기록 제한이 설정되어있는 경우에만 되돌아 갈 수 있습니다. 해당 시점에 도달하면 기록을 덮어 쓰기 시작합니다. 그러나 향후 더 큰 히스토리 크기를 가질 수 있습니다. 이것을 .bashrc에 넣고 값을 지정하십시오 (광산은 1000으로 설정 됨).
export HISTSIZE=1000