홈 디렉터리와 작업 디렉터리

홈 디렉터리와 작업 디렉터리

home directory유닉스 계열 시스템에서 a와 ?의 차이점은 무엇입니까 working directory?

답변1

홈 디렉터리는 시스템의 사용자 계정 데이터베이스에 있는 사용자 이름과 연결된 디렉터리입니다. 이는 반환된 항목의 6번째 필드입니다 getent passwd some-user.

로그인하면 HOME환경 변수가 이 값에서 초기화되고 애플리케이션은 이 변수를 사용하거나 사용자 데이터베이스를 쿼리하여 홈 디렉터리가 무엇인지 알아냅니다.

이 디렉터리는 일반적으로 해당 사용자가 소유하고 쓸 수 있으며 일반적으로 응용 프로그램이 사용자 설정을 저장하고 사용자가 파일을 저장하는 곳입니다.

셸에서 ~홈 디렉터리와 ~user사용자의 홈 디렉터리를 확장합니다 user.

커널은 사용자 이름이나 홈 디렉터리가 무엇인지 모릅니다. 홈 디렉토리는 전적으로 사용자 공간 개념입니다.

반면에 작업 디렉터리는 각 프로세스의 속성입니다. 이는 chdir(2)/ fchdir(2)시스템 호출(그리고 셸의 // 명령)을 통해 변경될 수 있으며 cd또는 를 사용하여 셸에서 쿼리될 수 있습니다. 현재 작업 디렉터리는 상대 경로를 사용하여 파일을 찾는 기초입니다. 상대 경로(예: "foo/bar.txt")는 프로세스의 현재 작업 디렉터리에 상대적입니다.pushdpopdgetcwd()pwd

작업 디렉터리는 포크에서 상속되며 명령 실행 전반에 걸쳐 유지됩니다. 예를 들어, ls이를 호출한 셸의 작업 디렉터리와 동일한 작업 디렉터리의 내용을 나열합니다.

사용자가 로그인하면 해당 이름으로 실행되는 첫 번째 프로세스의 작업 디렉터리가 홈 디렉터리로 설정되므로 변경 사항이 없는 한 해당 로그인 세션에서 시작된 모든 프로세스는 홈 디렉터리를 현재 작업 목록으로 갖습니다.

쉘은 홈 디렉토리에서 시작되지 않고 실행 시 현재 디렉토리에서 시작됩니다. 하지만 로그인 관리자가 시작한 창 관리자에 의해 자체적으로 시작되는 터미널 에뮬레이터 자체에 의해 시작된 쉘은 다음과 같은 이유로 홈 디렉토리에서 시작될 수 있습니다. 창 관리 브라우저나 터미널 에뮬레이터가 작업 디렉터리를 변경할 이유가 없습니다.

답변2

홈 디렉토리는 쉘을 열 때 대부분의 터미널 에뮬레이터가 시작되는 곳입니다. 작업 디렉토리는 현재 위치입니다.지금. 일반적으로 명령을 직접 사용하여 홈 디렉토리에 들어갈 수 있으며 cd, .txt를 사용하여 작업 디렉토리가 무엇인지 알아낼 수 있습니다 pwd.

관련 정보