Unix / Linux - Directories

안녕하세요, 미래의 프로그래머 여러분! 오늘 우리는 Unix와 Linux 디렉토리의 fascineting 세계로 접근해 볼 것입니다. 여러분의 친절한 이웃 컴퓨터 교사로서 저는 이 여정을 단계별로 안내해 드리겠습니다. 그럼 커피 한 잔 (또는 차, 그게 여러분의 취향이라면)을 손에 들고, 이 강력한 운영 체제의 디렉토리 구조를 탐구해 보겠습니다!

Unix / Linux - Directories

Linux Directory Structure

컴퓨터를 큰 나무로 상상해 보세요. 이 나무의 뿌리는 바로 루트 디렉토리 (/)입니다. 그리고 그곳에서 가지(하위 디렉토리)들이 뻗어나가, 계층 구조를 형성합니다. 이 구조는 Unix와 Linux 시스템의 근간입니다.

다음은 Linux 디렉토리 구조의 간단한 시각화입니다:

/
├── bin
├── boot
├── dev
├── etc
├── home
├── lib
├── media
├── mnt
├── opt
├── proc
├── root
├── sbin
├── tmp
├── usr
└── var

이 디렉토리들은 각각 특정 목적을 가지고 있습니다. 예를 들어, /bin에는 필수적인 사용자 명령어가 포함되어 있으며, /etc는 시스템 설정 파일을 저장하고, /home은 사용자 홈 디렉토리가 위치해 있습니다.

Home Directory

홈에 대해 이야기하자면, Linux 세계에서 여러분의 개인 공간 - 홈 디렉토리에 대해 이야기해 보겠습니다. 이것은 큰 Linux 집 안의 당신의 방과 같은 것입니다.

홈 디렉토리로 이동하려면 다음 명령어를 사용할 수 있습니다:

cd ~

또는 간단하게:

cd

여기서 cd는 "디렉토리 변경"을 의미하며, ~은 여러분의 홈 디렉토리의 축약입니다.

Absolute/Relative Pathnames

이제 이 나무 같은 구조를 탐색하는 방법에 대해 이야기해 보겠습니다. 우리는 경로 이름을 사용하며, 이 경로 이름은 두 가지 형태로 나뉩니다: 절대 경로와 상대 경로입니다.

Absolute Pathnames

절대 경로는 루트 디렉토리 (/)에서 시작합니다. 이것은 누군가에게 당신의 전체 주소를 제공하는 것과 같습니다.

예시:

cd /home/username/Documents

이 명령어는 여러분이 현재 파일 시스템 어디에 있든지 상관없이, 홈 디렉토리의 Documents 폴더로 이동시킵니다.

Relative Pathnames

반면에 상대 경로는 현재 위치를 기준으로 합니다. 이는 현재 위치에서의 지시와 같습니다.

예시:

cd Documents

만약 여러분이 이미 홈 디렉토리에 있다면, 이 명령어는 Documents 폴더로 이동시킵니다.

Listing Directories

이제 탐색 방법을 알고 있으므로, 이 디렉토리 안에 무엇이 있는지 보겠습니다. ls 명령어는 여러분의 최고의 친구입니다.

ls

이 명령어는 현재 디렉토리의 내용을 나열합니다. 더 많은 정보를 원하시나요? 그럼 다음을 시도해 보세요:

ls -l

-l 옵션은 긴 목록 형식을 제공하여 권한, 소유자, 크기, 수정 날짜를 보여줍니다.

Creating Directories

이제 이 Linux 나무에 우리 자신의 가지를 만들 시간입니다! 디렉토리를 생성하기 위해 mkdir 명령어를 사용합니다.

mkdir MyNewFolder

이 명령어는 현재 위치에 "MyNewFolder"이라는 새로운 디렉토리를 생성합니다.

Creating Parent Directories

만약 아직 존재하지 않는 디렉토리 내에 디렉토리를 생성하고 싶다면? 걱정하지 마세요! -p 옵션을 사용하면 됩니다.

mkdir -p Projects/WebDevelopment/HTML

이 명령어는 부모 디렉토리가 존재하지 않더라도 전체 경로를 생성합니다.

Removing Directories

occasionally, we need to do some pruning. To remove an empty directory, use the rmdir command:

rmdir MyNewFolder

하지만 조심해야 합니다! 디렉토리와 그 안의 모든 내용을 제거하고 싶다면 rm -r를 사용하지만, 이 명령어는 신중하게 사용해야 합니다:

rm -r Projects

이 명령어는 Projects 디렉토리와 그 안의 모든 것을 제거합니다. 이는 가위 대신 체인ソ어를 사용하는 것과 같습니다!

Changing Directories

이미 cd 명령어를 보았지만, 다시 한 번 요약해 보겠습니다:

cd /path/to/directory    # 특정 디렉토리로 변경
cd ..                    # 한 단계 위로 이동
cd ~                     # 홈 디렉토리로 이동
cd -                     # 이전 디렉토리로 이동

Renaming Directories

Unix/Linux에서는 별도의 "이름 바꾸기" 명령어가 없습니다. 대신 mv (이동) 명령어를 사용합니다:

mv oldname newname

예를 들어:

mv MyProjects MyAwesomeProjects

이 명령어는 "MyProjects" 디렉토리를 "MyAwesomeProjects"로 이름을 바꿉니다.

The directories . (dot) and .. (dot dot)

마지막으로 두 가지 특별한 디렉토리 이름을 마무리해 보겠습니다:

  • . (단일 점)은 현재 디렉토리를 나타냅니다
  • .. (이중 점)은 부모 디렉토리를 나타냅니다

이들은 상대 경로에서 매우 유용합니다. 예를 들어:

cp ../file.txt .

이 명령어는 부모 디렉토리의 "file.txt" 파일을 현재 디렉토리로 복사합니다.

이제 우리가 다룰 주요 디렉토리 관련 명령어를 요약한 표입니다:

명령어 설명 예시
cd 디렉토리 변경 cd /home/user
ls 디렉토리 내용 나열 ls -l
mkdir 새로운 디렉토리 생성 mkdir NewFolder
rmdir 빈 디렉토리 제거 rmdir OldFolder
rm -r 디렉토리와 내용 제거 rm -r Projects
mv 디렉토리 이동/이름 바꾸기 mv OldName NewName
cp 파일이나 디렉토리 복사 cp -r SourceDir DestDir

기억하시기 바랍니다, 연습이 완성입니다! 터미널에서 실험을 두려워하지 마세요. Linux는 ( rm -r을 조심스럽게 사용하지 않는 이상) 매우 인내심이 있습니다! 즐겁게 탐험하시고, Linux의 힘을 느껴보세요!

Credits: Image by storyset