임시 사용을 위해 클린 쉘 환경을 만들려면 어떻게해야합니까? & A

나는 유닉스 중심의 인기있는 Q & A 사이트에서 자주 답변하며 많은 답변에서 bash쉘을 사용하여 예제를 제공합니다 . 그러나이 작업을 수행 할 때마다 모든 단계를 설명하고 문서화하기 위해 깨끗한 환경을 만드는 프로세스를 수동으로 수행해야합니다. 이 과정을 더 간단하게하려면 어떻게해야합니까? 이상적으로 단일 명령을 입력하고 깨끗한 환경을 얻으려고 노력하고 있으며 완료된 후에 해당 임시 환경의 흔적을 모두 제거했습니다.



답변

개인적으로 다음 bash기능을 사용 하여이 작업을 수행합니다.

so() {
    local tmpdir="$(mktemp -d)"
    local tmprc="$(mktemp)"
    cat > "$tmprc" << EOF
PS1='\\$ '
cd "$tmpdir"
EOF
    env - HOME="$HOME" TERM="$TERM" bash --rcfile "$tmprc"
    rm -rf "$tmpdir" "$tmprc"
}

다음은 순서대로 수행하는 작업입니다.

  • 클린 디렉토리에서 작업 디렉토리로 사용할 임시 디렉토리를 작성하십시오.
  • bashrc 파일 로 사용할 임시 파일을 만듭니다 .
  • rc 파일에서 다음 줄을 추가하십시오 :
    • 설정 PS1우리는 Q & A 사이트에 우리의 출력의 사본을 갖고 싶어하는 경우에 관련 유지하는 공백 프롬프트 종료에 프롬프트를;
    • 작성한 임시 디렉토리로 변경하십시오.
  • 의 새 인스턴스를 호출하십시오 bash.
    • 처음에는 $HOMEand $TERM( env - ...)를 제외한 빈 환경이 있습니다 .
    • 앞에서 만든 임시 파일 ( --rcfile) 에서 rc 파일을 읽습니다 .
  • bash가 종료되면 우리가 만든 임시 파일을 제거하십시오.

분명히 이것은 완전히 바보가 아닙니다. 즉, 시스템의 다른 부분에 여전히 액세스 할 수 있습니다. 그러나 이것은 테스트에 사용할 수있는 깨끗한 임시 환경을 제공합니다.


답변

chroot하나는 VM을 사용하는 또 다른 방법입니다. LV에 chroot 환경을 구축하고 스냅 샷을 작성하고 원하는 작업을 수행 한 다음 스냅 샷 상태로 되돌릴 수 있습니다.

또는-VM (디스크 스냅 샷)과 동일하게 수행 한 후 모든 변경 사항을 되돌립니다.

나는 보통 새로 설치된 VM (VirtualBox 및 킥 스타트 또는 PXE- 부팅과 함께 자동)을 사용하여이 작업을 수행합니다.