Working Directory

Violet_Evgadn·2023년 4월 26일
0

Linux

목록 보기
10/34

Working Directory

Working Directory란?

Working Directory(작업 디렉터리)란 사용자가 현재 작업 중인(접속해 있는) 디렉터리를 의미한다.

CMD 같은 명령 프롬프트와 상호 작용을 할 때 항상 Working Directory 내에서 모든 작업이 수행된다.

Linux System을 로그인하면 기본적으로 User의 Home Directory로 접속한다고 했는데 이를 조금 고급스럽게 표현하면 Working Directory가 Home Directory로 설정이 되는 것이다.

이전에 배웠던 현재 경로를 출력하는 명령어 "pwd" 또한 현재 Working Directory를 출력하는 것이다.

Path 관련 규약들

  • 구분자 "/"를 통해 Directory 혹은 파일을 구분한다.
  • [상위 디렉터리] / [하위 파일] 형식으로 되어 있다.
  • [일반 파일] / [일반 파일] 형식으로는 파일을 저장할 수 없음
  • Windows에서 일반 파일은 무조건 폴더에 저장되어 있어야 하는 것처럼 Linux에서도 일반 파일은 Directory 하위에 존재해야 한다.
  • Case Sensitive : 대소문자를 구분한다.

절대경로와 상대경로

절대경로(Absolute Pathname)

절대경로란 파일마다 가지고 있는 고유한 경로를 의미한다.

이전에 말했듯 Linux Directory는 계층적 Tree 구조를 가지는데 최상위 디렉터리인 Root Directory(/)로부터 특정 파일까지 이르는 경로를 절대 경로라고 부른다.

모든 디렉토리에서 봤을 때 Root Directory의 위치는 Tree의 Root로써 동일하기 때문에 특정 파일에 대한 절대 경로는 어느 위치에서든 동일하다.

상대경로(Relative Pathname)

상대경로란 현재 위치한 Working Driectory를 기준으로 하는 경로를 의미한다.

절대 경로가 Root Direcotry로부터 특정 파일까지 가는 경로라고 한다면 상대 경로는 현재 Working Directory로부터 특정 파일까지 가는 경로를 의미한다.

상대 경로에서 사용하는 구문들은 아래와 같다.

  • / : 루트 디렉토리
  • ./ : 현재 위치
  • ../ : 현재 위치의 상위 디렉터리

Home Directory

Home Directory란?

Linux 같은 Mutli-User System에선 사용자마다 독립적인 공간을 주어 사용자만이 관리하고 싶은 파일들을 독립적인 공간에 저장할 수 있게 한다.

그리고 이 "사용자마다의 독립적인 공간"이 Home Directory이다.

이전에 말했듯 Linux는 User 계정을 추가할 때마다 /home에 해당 계정에 대한 Home Directory(/home/[Username])을 만들어준다.

일반 User(Root 권한을 가지지 않은 계정)들은 로그인할 시 자동으로 Home Directory를 초기 Working Directory로 가진다.

(Root 권한을 가진 계정은 /root가 Home Directory이다)

이 Home Directory는 사용자마다 주는 독립적인 공간이기 때문에 만약 권한이 없을 경우 다른 사용자의 Home Directory로 이동할 수 없다.

Home Directory 사용 방법

Home Directory는 "~"(Tilde)를 통해 접속할 수 있다.

그런데 이 ~ 뒤에 어떤 값이 들어오느냐에 따라 살짝 사용법이 달라진다.

  • ~/a : /home/[Username]/a
  • ~a/b : /home/a/b

풀어서 설명하자면 ~ 뒤에 "/"가 붙을 경우 현재 로그인한 계정의 Home Directory로 인식하지만 ~ 뒤에 바로 일반 문자열이 붙을 경우 해당 문자열을 Username으로 인식하는 것이다.

이전에 말했듯 권한을 가지고 있지 않을 경우 다른 사용자의 Home Directory로 이동할 수 없으므로 ~a/b 대신 ~/a와 같이 사용하는 것을 추천한다.

Home Directory 변경

Home Directory는 Root 권한을 가진 관리자 계정으로밖에 수정하지 못한다.

1. /etc/passwd 파일 수정 후 본인 계정 찾기

vi /etc/passwd

VI Editor에서 특정 문자열을 찾는 방법은 "/[Keyword]"를 입력하는 것이다.

2. "/home/[Username]" 부분을 원하는 Directory로 변경하기

현재 계정의 Username은 djlim이므로 /home/djlim을 원하는 Directory로 변경하면 된다.

/home/djlim/home으로 변경한 후 수정 사항을 저장해 보자.

3. 로그아웃 후 Home Directory를 바꾼 계정으로 로그인

pwd로 로그인 직후 Working Directory를 출력해 보면 수정했던 "/home/djlim/home"임을 알 수 있다.

profile
혹시 틀린 내용이 있다면 언제든 말씀해주세요!

0개의 댓글