나는 유닉스 중심의 인기있는 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"
}
다음은 순서대로 수행하는 작업입니다.
- 클린 디렉토리에서 작업 디렉토리로 사용할 임시 디렉토리를 작성하십시오.
bash
rc 파일 로 사용할 임시 파일을 만듭니다 .- rc 파일에서 다음 줄을 추가하십시오 :
- 설정
PS1
우리는 Q & A 사이트에 우리의 출력의 사본을 갖고 싶어하는 경우에 관련 유지하는 공백 프롬프트 종료에 프롬프트를; - 작성한 임시 디렉토리로 변경하십시오.
- 설정
- 의 새 인스턴스를 호출하십시오
bash
.- 처음에는
$HOME
and$TERM
(env - ...
)를 제외한 빈 환경이 있습니다 . - 앞에서 만든 임시 파일 (
--rcfile
) 에서 rc 파일을 읽습니다 .
- 처음에는
- bash가 종료되면 우리가 만든 임시 파일을 제거하십시오.
분명히 이것은 완전히 바보가 아닙니다. 즉, 시스템의 다른 부분에 여전히 액세스 할 수 있습니다. 그러나 이것은 테스트에 사용할 수있는 깨끗한 임시 환경을 제공합니다.
답변
chroot
하나는 VM을 사용하는 또 다른 방법입니다. LV에 chroot 환경을 구축하고 스냅 샷을 작성하고 원하는 작업을 수행 한 다음 스냅 샷 상태로 되돌릴 수 있습니다.
또는-VM (디스크 스냅 샷)과 동일하게 수행 한 후 모든 변경 사항을 되돌립니다.
나는 보통 새로 설치된 VM (VirtualBox 및 킥 스타트 또는 PXE- 부팅과 함께 자동)을 사용하여이 작업을 수행합니다.