본문 바로가기
리눅스/Part 1 - Learning The Shell

리눅스 기초 | 3. 시스템 살펴보기

by 객잔주인 2024. 5. 14.

해당 포스팅은 William E. Shotts, Jr.의 오픈소스 저서 The Linux Command Line(링크)를 번역한 내용입니다


파일 시스템을 탐색하는 방법을 알았으니 이제 Linux 시스템에 대한 가이드 투어를 할 차례입니다. 하지만 시작하기 전에 유용한 명령어 몇 가지를 더 배우고 가겠습니다.

  • `ls` - 디렉토리 내용을 나열합니다
  • `file` - 파일의 타입을 살펴봅니다
  • `less` - 파일 내용을 보여줍니다

Having More Fun with `ls`

`ls` 명령어는 아마 가장 많이 사용되는 명령어이고 그럴만한 이유가 있습니다. 이 명령어를 통해 디렉토리 내용을 확인하고 다양한 중요 파일과 디렉토리 속성을 확인할 수 있습니다. 우리가 봤던 것 처럼 단순히 `ls`만 입력하면 현재 작업 디렉토리 내 파일과 하위 디렉토리들의 리스트가 출력됩니다.

현재 작업 디렉토리 외에도 디렉토리를 특정할 수도 있습니다:

디렉토리 여러개를 특정할 수도 있습니다. 다음 예시에서는 계정의 홈 디렉토리("~"로 표시)와 `/usr` 디렉토리의 내용을 표시합니다:

더 많은 디테일을 포함하여 출력하도록 포맷을 변경할 수도 있습니다.

`-l`을 명령어와 함께 넣어 출력을 길게 바꿀 수 있습니다.

Options and Arguments

이는 대부분의 명령이 어떻게 작동하는지에 대한 매우 중요한 점을 알려줍니다. 명령어 뒤에는 한 개 이상의 옵션(options)을 부여함으로써 명령어의 동작을 수정하고, 한 개 이상의 인자(arguments)를 부여하여 명령의 대상을 바꿀 수 있습니다. 그래서 대부분의 명령은 다음처럼 생겼습니다:

대부분의 명령에서 옵션은 `-l` 처럼 대시와 함께 하나의 알파벳으로 전달됩니다. 그러나 GNU 프로젝트의 명령어를 포함한 많은 명령어는 대시 두 개와 단어로 구성된 긴 옵션도 지원합니다. 그리고 많은 명령어에서 여러개의 짧은 옵션들을 연결지어 전달할 수도 있습니다. 다음 예시에서 `ls` 명령어에 두 개의 옵션이 붙어있습니다. 긴 포맷을 출력하기 위한 `l`옵션과, 파일 수정일을 기준으로 정렬하는 `t` 옵션이 부여되었습니다:

이번에는 정렬을 반대로 하기 위해 긴 옵션인 `--reverse`도 부여 해보겠습니다.


파일명과 같이, 명령어의 옵션들은 대소문자를 명확하게 구분해야 한다는 것에 유의하세요


`ls` 명령어에는 굉장히 많은 옵션들이 있습니다. 가장 일반적인 옵션들을 Table 3-1에서 찾아볼 수 있습니다.

 

Table 3-1: Common `ls` options

옵션 긴 옵션 설명
-a --all 모든 파일과 디렉토리를 표시합니다. 마침표로 시작되어 숨겨진 파일과 디렉토리까지 표시됩니다.
-A --almost-all 모든 파일과 디렉토리를 표시하되 .(현재 디렉토리)와 ..(부모 디렉토리)를 제외합니다.
-d --directory 원래 디렉토리명이 특정되어 제시되면 `ls` 명령어는 해당 디렉토리의 내용을 출력합니다. 이 옵션을 `-l` 옵션과 함께 사용하면 디렉토리의 내용 대신 디렉토리 자체의 세부사항을 출력합니다.
-F --classify 이 옵션을 사용하면 디렉토리의 내용을 표시할 때 디렉토리일 경우 뒤에 "/"를 붙여서 출력합니다.
-h --human-readable `-l`을 사용하여 긴 포맷으로 출력할 때 파일 크기를 바이트 대신 사람이 읽기 쉽도록 단위(B, K, M, G, ...)를 붙여 표시합니다.
-l   긴 포맷으로 출력합니다.
-r --reverse 출력 시 순서를 뒤집어서 출력합니다. 보통 `ls` 명령어는 알파벳 오름차순으로 정렬합니다.
-S   파일 크기를 기준으로 정렬합니다.
-t   마지막 수정일을 기준으로 정렬합니다.

 

A Longer Look at Long Format

앞에서 보았듯이 `-l` 옵션은 `ls` 명령어가 긴 포맷으로 출력하도록 하는 옵션입니다. 이 포맷에는 유용한 정보를 많이 가지고 있습니다. Ubuntu에서의 출력 예시를 보겠습니다:

Table 3-2에서 출력된 리스트의 필드(field)가 의미하는 바를 찾아볼 수 있습니다.

 

Table 3-2: `ls` Long Listing Fields

필드 의미
-rw-r--r-- 파일 접근 권한. 첫 번째는 파일의 타입을 표시. 타입이 대시로 표시된 것은 일반 파일을 뜻하고 "d"는 디렉토리를 의미합니다. 다음 세 개는 파일 소유자의 접근 권한을, 그 다음 세 개는 파일 그룹 멤버의 접근 권한을, 그리고 마지막 세 개는 다른 사람들의 접근 권한을 의미합니다. 9장 "Permissions"에서 더 자세히 다룹니다.
1 파일의 하드링크의 수를 표시합니다. 이번 장에서 "Symbolic Links"와 "Hard Link" 절에서 살펴봅니다.
root 파일 소유자의 사용자명입니다.
root 파일을 소유하는 그룹의 그룹명입니다.
32059 바이트로 표시된 파일 크기입니다.
2007-04-03 11:05 마지막 파일 수정일과 시간입니다.
oo-cd-cover.odf 파일의 이름입니다.

 

Determining a File's Type with `file`

시스템을 탐색하면서 파일의 내용을 볼 수 있다면 유용할 것입니다. 이를 위해 파일의 타입을 표시하는 `file` 명령어를 사용합니다. 앞에서 설명했듯이 Linux에서 파일명이 파일의 내용과 관련될 필요는 없습니다. "picture.jpg"와 같은 파일명은 JPEG 압축 이미지일 것으로 일반적으로 생각되지만 Linux에서는 그럴 필요가 없습니다. `file` 명령어는 다음 처럼 사용합니다:

`file` 명령어는 파일 내용에 대한 정보를 간략하게 출력합니다. 예시입니다:

파일에는 여러 종류가 있습니다. 사실 Linux와 같은 유닉스 계열 운영체제의 일반적인 컨셉은 "모든 것이 파일이다"입니다. 강의를 진행하면서 이 말이 얼마나 사실인지 알게 될 것입니다.

 

MP3나 JPEG 처럼 이미 익숙한 파일들이 있는 반면 생소하고 낯선 파일들도 있습니다.

 

Viewing File Contents with `less`

`less` 명령어는 텍스트 파일을 보기 위한 프로그램 입니다. Linux 시스템 전반에 우리가 읽어볼 수 있는 파일들이 많이 있습니다. `less` 프로그램은 그런 파일들을 편리하게 볼 수 있도록 해줍니다.

What is "Text"?

컴퓨터에 정보를 표시할 수 있는 방법은 여러가지가 있습니다. 모든 방법들은 정보와 정보를 표현할 숫자들 간의 관계를 정립합니다. 결국 컴퓨터는 숫자만 이해할 수 있고 모든 데이터는 숫자로 변환됩니다.

이 표현 시스템들 중 어떤 것은 굉장히 복잡(압축 비디오 파일 처럼)하고 어떤 것은 비교적 간단합니다. ASCII는 가장 오래되고 간단한 것들 중 하나입니다. ASCII는 American Standard Code for Information Interchange의 약자입니다. ASCII는 키보드 문자를 숫자로 매핑하는 Teletype machine에서 처음 쓰인 간단한 인코딩 체계입니다.

텍스트란 문자를 숫자에 1:1 대응시킨 것입니다. 굉장히 간결하죠. 50개의 문자는 50 바이트의 데이터로 변환됩니다. 텍스트는 단순히 문자와 숫자의 매핑이라는 점을 이해하는 것이 중요합니다. Microsoft Word나 LibreOffice Writer와 같은 워드 프로레서와는 다릅니다. ASCII 텍스트와는 달리 이런 파일들은 구조와 형식을 설명하기 위한 비텍스트 요소들을 많이 포함하고 있습니다. 일반 ASCII 텍스트 파일들은 문자들과 탭, 캐리지 리턴(carriage returns), 줄 바꿈 같은 기본적인 제어 코드만 가지고 있습니다.

많은 파일들은 텍스트 형식으로 저장되어 있고 이런 텍스트 파일들을 위한 여러 도구가 Linux 시스템 전반에 존재합니다. Windows도 이 형식의 중요성을 인식하고 있으며 잘 알려진 NOTEPAD.EXE 프로그램은 ASCII 텍스트 파일을 편집하기 위한 에디터입니다.

 

왜 우리가 텍스트 파일을 살펴봐야 할까요? 왜냐하면 시스템 세팅에 관한 여러 파일(configuration files라고 합니다)들이 이 형식으로 저장이 되어있고 해당 파일을 읽음으로써 시스템이 어떻게 동작하는지 알 수 있기 때문입니다. 게다가 시스템이 사용하는 실제 프로그램 중 일부가 텍스트 형식으로 저장됩니다. 이를 스크립트(scripts)라고 합니다. 이후 장에서는 시스템 설정을 수정하기 위해 텍스트 파일을 편집하는 방법과 우리만의 스크립트 작성하는 것을 배워보겠습니다. 지금은 그들의 내용을 보는 것을 배워보겠습니다.

 

`less` 명령어는 다음과 같이 사용됩니다:

`less` 프로그램이 실행되면 텍스트 파일 앞 뒤로 스크롤이 가능합니다. 예를 들어, 시스템의 모든 사용자 계정을 정의하는 파일을 확인하기 위해서는 다음 명령어를 넣습니다:

`less` 프로그램이 시작되면 파일의 내용을 볼 수 있습니다. 파일이 한 페이지보다 길면 위 아래로 스크롤 할 수 있습니다. `less`를 종료하려면 'q'를 누르면 됩니다. 아래의 표는 `less`에서 사용할 수 있는 보편적인 키보드 명령어를 보여줍니다.

 

Table 3-3: `less` Commands

명령어 기능
Page Up이나 b 한 페이지 앞으로 스크롤
Page Down이나 스페이스 한 페이지 뒤로 스크롤
위쪽 화살표 한 줄 위로 스크롤
아래 화살표 한 줄 아래로 스크롤
G 텍스트 파일의 맨 뒤로 이동
1G or g 텍스트 파일의 시작으로 이동
/characters (슬래시 뒤에있는 문자열) characters를 검색
n 검색결과에서 다음 일치하는 부분으로 이동
h help 스크린을 표시
q `less` 종료

 

Less Is More

`less` 프로그램은 `more`라는 Unix 프로그램을 대체하기위해 나온 업그레이드 버전입니다. `less`라는 이름은 "less is more"라는 현대 건축가와 디자이너들의 모토 문구를 차용한 것입니다.

`less`는 "pagers"라는 프로그램 군에 속하는데, 이는 긴 텍스트 문서를 페이지로 구분되는 형식으로 읽기 쉽게 해주는 프로그램입니다. `more`은 페이지를 뒤로만 넘길 수 있지만 `less`는 페이지를 앞 뒤로 넘길 수 있고 다른 많은 기능도 가지고 있습니다.

 

Taking a Guided Tour

Linux 시스템의 파일 시스템 레이아웃은 다른 유닉스 계열 시스템과 비슷합니다. 이 디자인은 살제로 Linux Filesystem Hierarchy Standard라는 표준에 명시되어 있습니다. 모든 Linux 배포판이 해당 표준을 따르는 것은 아니지만 대부분은 비슷합니다.

 

이제 파일 시스템을 직접 돌아다니며 Linux 시스템의 작동 원리를 살펴보세요. 우리의 탐색 스킬을 향상시켜줄 기회가 될 것 같네요. 우리가 살펴 볼 것들 중 하나는 많은 파일들이 우리가 읽을 수 있는 텍스트 형태로 작성되어있다는 것입니다. 투어를 진행하면서 다음을 시도해 보세요:

  1. 주어진 디렉토리로 `cd`하세요
  2. `ls -l`로 디렉토리 내용을 출력하세요
  3. 흥미로운 파일이 보인다면 `file`로 내용을 확인하세요
  4. 텍스트 파일처럼 보인다면 `less`를 사용해서 들여다 보세요
  5. 텍스트 형식이 아닌 파일을 열려고 시도했다면 터미널 창이 뒤죽 박죽이 될텐데, 그럴땐 `reset` 커맨드로 복구할 수 있습니다.

복사 붙여넣기 트릭을 잊지 마세요!

마우스를 사용하고 있다면 (터미널 에뮬레이터 상에서)

파일명을 더블클릭해서 복사할 수 있고 가운데 버튼을 클릭해서 붙여넣기 할 수 있습니다


파일 시스템을 돌아다니면서 파일들을 들여다보기 겁내지 마세요. 일반 사용자는 대부분의 파일을 망가뜨리지 못하게 되어있습니다. 그것은 시스템 관리자의 역할이죠! 명령어가 제대로 작동하지 않는다면 다른 명령어로 넘어가세요. 시간을 들여 이곳 저곳 돌아보세요. 시스템은 우리가 탐색해주기를 기다리고 있습니다. 잊지 마세요 Linux에는 비밀이 없습니다!

 

Table 3-4에는 우리가 탐색할 수 있는 몇 가지 디렉토리들이 나열되어 있습니다. Linux 배포판에 따라 약간씩의 차이가 있을 수 있습니다. 겁내지 말고 이곳 저곳 돌아다니면서 명령어를 실행해 보세요!

 

Table 3-4: Directories Found on Linux Systems

디렉토리 내용
/ 루트 디렉토리. 모든것이 시작되는 곳
/bin 시스템의 부팅과 실행을 위해 필요한 바이너리(프로그램)을 포함
/boot Linux 커널(kernel), (부팅 시 필요한 드라이버들을 위한) 초기 램 디스크 이미지(initrd), 그리고 부트 로더를 포함

흥미로운 파일들:
- /boot/grub/grub.conf 혹은 menu.lst: 부트로더(GRUB)의 설정파일
- /boot/vmlinuz (혹은 이와 비슷한 파일): Linux 커널
(부팅 과정 :부트로더는 커널과 함께 initrd 이미지를 메모리에 로드 -> 커널은 메모리에 로드된 initrd 이미지를 압축 해제하고 마운트 -> initrd 내의 초기화 스크립트가 실행 -> 필요한 드라이버를 로드하고 디바이스를 설정 -> 루트 파일 시스템을 마운트 -> 초기화가 완료되면 루트 파일 시스템을 새로운 위치로 전환 -> initrd를 언마운트하고 실제 루트 파일 시스템으로 전환)
/dev 장치 노드(device nodes)가 위치한 특별한 디렉토리. "모든 것은 파일이다"라는 철학은 디바이스에도 적용됩니다. 커널은 모든 디바이스에 대한 정보를 /dev 디렉토리 내의 파일로 표현합니다.
/etc /etc 디렉토리 내에는 시스템 전반에 걸쳐 사용되는 설정파일들이 있습니다. 또한 부팅시에 시스템 서비스를 실행하는 쉘 스크립트도 찾아볼 수 있습니다. 이 디렉토리 내에 있는 모든 파일은 읽을 수 있는 텍스트입니다.

흥미로운 파일들:
/etc 내의 모든 파일이 흥미롭지만 특히 더 흥미로운 파일들이 있습니다:
- /etc/crontab: 자동화된 작업이 언제 실행될지를 정의합니다.
- /etc/fstab: 시스템의 저장 장치와 그에 따른 마운트 포인트를 정의합니다. 예를 들어 하드 드라이브나 파티션이 어디에 마운트될지를 설정합니다.
- /etc/passwd: 사용자 계정 목록입니다. 각 사용자에 대한 정보(사용자명, 사용자 ID, 그룹 ID, 홈 디렉토리, 쉘 등)을 저장하고 있습니다. 암호화된 패스워드는 보안상 /etc/shadow 파일에 저장됩니다.
/home 기본 설정에서 /home 아래에 각 사용자의 디렉토리가 주어집니다. 일반 사용자는 각자의 디렉토리 내에서만 쓰기 작업을 할 수 있습니다. 각 사용자의 활동이 제한함으로써 시스템을 보호할 수 있습니다.
/lib 핵심 시스템 프로그램들이 사용하는 공유 라이브러리 파일이 있는 디렉토리입니다. Windows의 DLL(dynamic link libraries)와 유사한 역할을 합니다.
/lost+found ext4와 같이 Linux 파일 시스템을 가지는 장치들은 이 디렉토리를 가집니다. 파일 시스템이 손상되어 이를 복구할 때에 사용됩니다. 파일 시스템에 큰 일이 일어나지 않는 한 이 디렉토리는 비어있습니다.
/media 최신 리눅스 시스템에서 /media 디렉토리는 이동식 미디어(USB 드라이브, CD-ROM 등)을 자동으로 마운트 하는데 사용됩니다.
/mnt 오래된 리눅스 시스템에서 /mnt 디렉토리는 이동식 미디어를 수동으로 마운트 하는데에 사용됩니다.
/opt /opt 디렉토리는 상용 소프트웨어, 서드파티 소프트웨어를 설치하기 위해 사용되는 디렉토리입니다.
/proc /proc은 특수한 디렉토리입니다. /proc은 실제로 하드 드라이브에 저장된 파일 시스템이 아니라 리눅스 커널이 유지하는 가상 파일 시스템입니다. 이 디렉토리의 "파일"들은 실제 파일이 아니며, 동적으로 생성되어 커널과 시스템 상태에 대한 정보를 제공합니다. 해당 파일들은 커널 자체에 대한 정보를 제공하고 이 파일들을 읽음으로써 커널이 시스템을 어떻게 보고 있는지를 알 수 있습니다.
/root 루트 계정의 홈 디렉토리 입니다.
/sbin 시스템 바이너리들이 보관된 디렉토리입니다. 운영 체제의 중요한 기능을 수행하는 실행 파일들. 시스템의 부팅, 유지 관리, 네트워크 설정, 파일 시스템 관리 등과 같은 핵심 작업을 처리하는 데 사용. 슈퍼유저 권한이 필요한 파일들입니다. 
/tmp 다양한 프로그램들이 생성하는 일시적인 파일들을 보관하는데에 사용됩니다. 일부 시스템 설정에서는 시스템이 재부팅될 때마다 /tmp 디렉토리가 자동으로 비워질 수 있습니다.
/usr 아마 리눅스 시스템에서 가장 큰 디렉토리 트리일 것입니다. 일반 유저가 사용하는 모든 프로그램과 지원 파일이 보관됩니다.
/usr/bin 리눅스 배포판의 표준 소프트웨어를 보관하는 디렉토리입니다. 수 천개의 프로그램들이 이곳에 저장되기도 합니다.
/usr/lib /usr/bin에 있는 프로그램들이 사용하는 공유 라이브러리 파일들이 보관됩니다. (프로그램이 실행되거나 컴파일 될 때 재사용 가능한 코드와 데이터를 제공하는 파일들입니다.)
/usr/local 배포판에는 포함되어있지 않지만 시스템 전반에서 필요한 프로그램들이 설치되는 공간입니다. 컴파일된 실행 파일은 주로 /usr/local/bin에 저장됩니다. 새로 설치된 리눅스 시스템에는 이 디렉토리가 존재하지만 시스템 관리자가 직접 소프트웨어를 설치하기 전까지는 비어있습니다.
/usr/sbin 시스템 관리와 관련된 바이너리 파일들이 보관됩니다. /sbin에는 주로 시스템 초기화 및 부팅에 필요한 바이너리 파일이 있다면 /usr/sbin에는 시스템 운영과 유지 보수에 필요한 바이너리 파일이 위치합니다.
/usr/share /usr/bin에 있는 프로그램들이 사용하는 공유 데이터가 위치합니다. 기본 설정 파일, 아이콘, 바탕화면, 사운드 파일 등
/usr/share/doc 시스템에 설치되는 패키지들에 관련한 문서가 저장되는 공간입니다.
/var /tmp와 /home외의 우리가 살펴본 디렉토리들은 정적입니다. 즉, 내용에 변화가 없습니다. /var 디렉토리는 동적인 데이터를 저장하는 공간입니다. 예를 들어, 로그파일, 메일 스풀, 프린터 스풀, 임시 파일, 캐시 파일, 잠금 파일, 데이터베이스 파일 등이 동적 데이터에 해당합니다.
/var/log 시스템의 다양한 활동을 기록한 로그 파일(log files)들을 저장합니다. 이런 기록은 시스템 관리자가 시스템의 상태를 이해하고, 문제를 진단하고, 보안을 유지하는 데 매우 중요합니다. /var/log 내부에서도 특히 중요한 것은 /var/log/messages와 /var/log/syslog입니다. 시스템에 따라서 보안상의 이유로 슈퍼 유저만 로그파일을 열어볼 수 있게 되어있습니다.

Symbolic Links

`ls -l` 명령어로 디렉토리 목록을 볼 때 다음과 같은 파일을 볼 수 있습니다:

첫 번째 문자가 "l"이고 두 개의 파일명을 가진 것 처럼 보인다는 것에 주목하세요. 이는 심볼릭 링크(symbolic link) 혹은 소프트링크(soft link)나 심-링크(symlink)라고 부르는 특수한 종류의 파일입니다. 대부분의 유닉스 계열 시스템에서는 하나의 파일이 여러 이름으로 참조될 수 있습니다. 이는 상당히 유용한 기능입니다.

 

이런 경우를 생각해보세요: 어떤 프로그램이 "foo"라는 파일에 포함된 어떤 공유 자료가 필요한데, "foo"는 버전 변화가 굉장히 잦습니다. 파일명에 버전 번호를 넣으면 관리자나 다른 사람들이 어떤 버전의 "foo"가 설치되었는지 확인할 수 있습니다. 여기서 문제가 발생합니다. 우리가 공유 자료의 이름을 변경할 때마다, 이 파일을 사용하는 모든 프로그램들을 추적해서 바뀐 이름의 파일을 참조하도록 일일이 변경해주어야 한다는 것이죠. 굉장히 고통스러운 일 일것 같습니다.

 

여기서 심볼릭 링크가 시간을 아껴줍니다. 우리가 "foo-2.6"라는 파일명을 가진 버전 2.6의 "foo"를 설치하고 "foo"라는 이름으로 "foo-2.6"을 가리키는 심볼릭 링크를 만들었다고 가정하겠습니다. 프로그램이 "foo"라는 파일을 열 때, 사실은 "foo-2.6"을 여는 것이죠. 이제 모두가 행복합니다. "foo"를 사용하는 모든 프로그램이 알맞은 버전을 찾을 수 있고 우리도 어떤 버전이 설치되어있는지 확인할 수 있습니다. "foo-2.7"로 업그레이드 해야할 때에는 기존의 심볼릭 링크 "foo"를 제거하고 새로운 버전을 가리키는 심볼릭 링크를 새로 만들어주기만 하면 됩니다. 버전 업그레이드에서 발생하는 문제를 해결할 뿐만 아니라 두 개의 버전을 모두 가지고 있도록 해줍니다. "foo-2.7"에 버그가 있다고 할 때 이전 버전으로 되돌려야한다고 가정하겠습니다. 우리는 그저 2.7 버전을 가리키는 심볼릭 링크를 삭제하고 2.6 버전을 가리키는 심볼릭 링크를 만들어주면 됩니다.

 

이번 섹션 초반에 보여드렸던 디렉토리 목록은 "libc-2.6.so"라는 공유 라이브러리 파일을 가리키는 "libc.so.6"이라는 심볼릭 링크를 보여줍니다. 즉, "libc.so.6"을 참조하는 프로그램들은 사실 "libc-2.6.so"를 참조하게 됩니다. 다음장에서 심볼릭 링크를 만드는 방법에 대해 배우겠습니다.

Hard Links

링크의 종류에는 하드 링크(hard link)도 있습니다. 하드 링크도 파일이 여러 이름을 가질 수 있게 해주지만 다른 방식으로 작동합니다. 다음장에서 심볼릭 링크와 하드 링크의 차이에 대해 더 자세하게 배워보겠습니다.

Summing Up

지금까지 시스템에 대한 많은 것을 배웠습니다. 다양한 파일과 디렉토리와 그 내용물에 대해 보았습니다. 여기서 시스템이 얼마나 개방적인가에 주목해야합니다. 리눅스에는 사람이 읽을 수 있는 텍스트로 이루어진 중요한 파일들이 많이 있습니다. 많은 독점 시스템들과 달리 리눅스는 모든 것을 들여다 볼 수 있게 만들어 놓았습니다

Further Reading

 

Filesystem Hierarchy Standard

Filesystem Hierarchy Standard Introduction This page is the home of the Filesystem Hierarchy Standard (FHS). The current version is 2.3. It was announced on January 29, 2004. The filesystem standard has been designed to be used by Unix distribution develop

www.pathname.com

 

Unix filesystem - Wikipedia

From Wikipedia, the free encyclopedia Directory structure used by a Unix-like operating system "Usr" redirects here. For other uses, see USR. "Unix file system" redirects here. For UFS, a specific file system used by many Unix and Unix-like operating syste

en.wikipedia.org

 

ASCII - Wikipedia

From Wikipedia, the free encyclopedia American character encoding standard ASCIIMIME / IANAus-asciiAlias(es)ISO-IR-006,[1] ANSI_X3.4-1968, ANSI_X3.4-1986, ISO_646.irv:1991, ISO646-US, us, IBM367, cp367[2]Language(s)English (made for; does not support all l

en.wikipedia.org