서론
"Everything is a file" is an approach to interface design in Unix derivatives.
"모든 것은 파일이다" 는 유닉스 파생 언어의 인터페이스 디자인에 대한 접근 방식입니다.
- Wikipedia
리눅스에서는 모든 것을 파일로 취급한다.
문서나 이미지뿐만 아니라, 하드디스크나 프린터와 같은 장치조차도 물리적 장치와 연결되어 있는 "디바이스 파일"로 다뤄진다.
따라서 리눅스에서는 파일 조작법을 익히는 것이 중요하다.
또한, 리눅스는 윈도우와 디렉터리 트리 구조에서 차이가 있다.
윈도우에서는 물리 디스크가 두 개일 경우, 각각 독립된 디렉터리 트리를 형성한다.
ex) C:\Users\... , D:\Users\...
반면, 리눅스에서는 물리 디스크가 여러 개 있더라도 모두 루트 디렉터리의 특정 포인트에 마운트된다.
즉, 언제나 시스템 전체에 단 하나의 디렉터리 트리만 존재한다.
리눅스의 디렉터리 구조
/
├── bin
├── dev
├── etc
├── home
├── sbin
├── tmp
├── usr
│ ├── bin
│ ├── lib
│ └── local
└── var
/bin
- 일반 사용자 및 관리자가 사용하는 명령어의 실행파일이 배치되는 디렉터리
- 특히 시스템과 관련된 중요도가 높은 명령어를 포함
/dev
- 디바이스 파일이 배치되는 디렉터리
- 특히 시스템과 관련된 중요도가 높은 명령어를 포함
/etc
- 애플리케이션의 설정 파일이 배치되는 디렉터리
- 또한, 리눅스 자체의 설정 파일도 포함
/home
- 사용자별로 할당되는 홈 디렉터리가 배치되는 디렉터리
- ex) /home/tom, /home/jerry
/sbin
- /bin과 비슷하게 실행 파일이 배치되지만, 관리자 명령어를 포함하는 디렉터리
- ex) `shutdown`
/tmp
- 임시 파일 배치되는 디렉터리
- ex) 애플리케이션 실행 중 임시로 저장할 작업 결과
/usr
- 설치된 애플리케이션의 실행 파일, 문서, 라이브러리 등이 배치되는 디렉터리
- 루트 디렉터리와 구조가 비슷함
/var
- 변화하는(variable) 데이터가 배치되는 디렉터리
- ex) 애플리케이션 실행 중 생성된 로그
ls 명령어
`ls` 명령어는 리눅스의 가장 기본이 되는 명령어로, 파일이나 디렉터리의 목록을 출력하는 명령어다.
또한, `ls` 명령어를 비롯해서 많은 명령어는 `-`(하이픈)으로 옵션을 지정할 수 있다.
옵션을 두 개 이상 지정할 때는 하나의 - 뒤에 묶어서 지정해도 되고, 별도로 지정해도 된다.
ex) `ls -a -F`, `ls -aF`
인자를 지정하지 않으면 현재 디렉터리가 대상이 된다.
물론 인자로 디렉터리의 경로를 지정할 수 있다.
또한, 인자로 여러 경로를 지정할 수 있다.
`ls -l`
- 파일 이름뿐만 아니라 속성 등 상세 정보를 함께 출력하는 명령어
- 왼쪽부터 순서대로 파일 권한, 링크 수, 소유자, 소유자 그룹, 파일 크기, 타임스탬프(날짜와 시간), 파일명 또는 디렉터리명
`ls -a`
- 숨김 파일(.로 시작하는 파일)도 함께 출력하는 명령어
`ls -f`
- 파일명 뒤에 파일의 종류를 의미하는 기호를 함께 출력하는 명령어
- 일반 파일: 표시 X
- 디렉터리: /
- 실행 가능 파일: *
- 심볼릭 링크: @
경로 확장
`ls` 명령어의 인자를 지정할 때, 일일이 모든 인자를 타이핑하는 것은 번거롭다.
이때 경로 확장 기능으로 파일 이름의 패턴을 지정할 수 있다.
- `*` (애스터리스크): 임의의 문자열
- `?`: 임의의 한 문자
Reference
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=285368686&start=slayer