1. 리눅스 명령어
1) 파일/디렉토리
# cp [파일1] [파일2]
: 파일이나 디렉토리의 내용을 다른 파일 또는 다른 디렉토리에 복사, 2가 복제본
파일을 복사해서 새로 생성된 파일은 기존 파일과는 다른 inode 번호를 갖게되며, 복사된 데이터 블록을 따로 할당받는다. 즉, 실제로 물리적으로 완전히 별개의 파일이다.
# cp /dev/null [파일]
: 파일 비우기
/dev/null은 아무 내용이 없는 특수 파일로 cp 명령어로 덮어쓰면 결과적으로 파일 내용이 전부 사라진다.
# \cp
: alias를 무시하고 실제 명령어 수행
💡 명령어 실행시 우선순위
: 별칭 > 함수 > 내장 명령어 > 외부 명령어
# mv [파일1] [파일2]
: 파일과 디렉토리의 내용을 다른 파일 또는 디렉토리로 이동, 파일 이름이나 디렉토리 이름을 바꿀 수 있음
같은 파티션 내에서는 inode 정보나 데이터 블록은 그대로 유지되고,
다른 파티션으로 옮기면 실제로는 cp + rm 처럼 동작하여 새로운 inode, 데이터 블록을 할당 받게 된다.
💡 파티션이란?
하나의 물리적인 저장 장치를 논리적으로 나눈 구역이다.
# file [파일]
: 파일의 실제 타입 확인
# more [파일]
: 큰 파일 출력시 화면 크기 페이지 단위로 출력
# head [파일]
: 앞부분만 출력, 기본 10줄
# tail [파일]
: 뒷부분만 출력, 기본 10줄
실시간으로 내용이 변하는 파일 내용을 출력해주는 -f 옵션을 이용하여 로그 파일을 모니터링하는 용도로 많이 사용된다.
# tac [파일]
: cat의 역방향 출력
2) 사용자 관련
# su - [계정]
: 사용자 전환
- 옵션을 붙이면 해당 사용자의 로그인 쉘 환경을 완전히 불러와서 마치 직접 로그인한 것처럼 동작한다. 홈 디렉토리 변경, PATH, SHELL, USER, LOGNAME 등의 환경 변수 초기화를 수행한다.
# last
: 서버를 이용하는 각 계정 사용자들의 로그인 정보 출력
# last -f /var/log/wtmp
: 기간이 지난 파일의 로그인 기록 확인
2. 리눅스에서의 삭제
- 복구 가능한 삭제 : GUI 모드에서 파일함을 통해 파일을 삭제하는 경우
- 복구 불가능한 삭제 : 터미널이나 원격 쉘을 이용해서 파일을 삭제하는 경우
=> 파일을 복구하려고 애쓰기보다는, 정말 확신이 들 때만 삭제하자!!
백업을 미리 미리 해두고, 삭제할 때도 바로 지우기보다는 중간 보관소를 거쳐 삭제하는 습관을 들이는 것이 좋다.
3. 파일
리눅스에서는 모든 것을 파일로 다룬다.
파일은 파일 이름, inode, 데이터 블록으로 구분할 수 있다.
1) 파일 이름 생성시 규칙
- 최대 255자까지
- 문자와 숫자를 사용할 수 있으며 대소문자를 구별
- 대부분의 특수문자는 사용 불가능하며, .(Dot), _(Underbar), -(Dash)만 사용 가능
- 파일의 이름에 공백이나 탭을 사용하는 것은 권장하지 않음
2) inode
파일에 대한 정보를 담고 있는 부분이다.
inode에 저장되는 정보
- inode 번호
- 파일 타입
- 퍼미션
- 소유자
- 그룹
- 파일 크기
- 생성/수정/접근 시간
- 하드링크 수
- 데이터 블록 포인터
3) 데이터 블록
데이터 블록은 디스크 공간을 구성하는 기본 단위로, 파일의 실제 데이터가 저장되는 공간이다.
하나의 파일은 여러 개의 데이터 블록으로 나뉘어 저장될 수 있으며, inode는 이 블록들의 위치를 가리키는 포인터 역할을 한다.
4) 파일의 종류
4-1) 일반 파일
텍스트, 바이너리 등 일반 데이터 파일을 말한다.
4-2) 디렉토리
디렉토리의 데이터 블록에는 실제 디렉토리가 포함하고 있는 파일과 디렉토리 정보를 담고 있다.
4-3) 링크
하드 링크 파일
- 데이터 블록과 inode를 공유
- 원본과 링크 파일의 권한은 항상 동일
- 하드 링크로 만든 백업 파일은 항상 최신본으로 유지되며 동일한 데이터를 이용하기 때문에 용량 증가가 없음
심볼릭/소프트 링크 파일
- 링크 파일은 포인터 정보만 가짐
- 항상 권한이 777로 부여됨
- 실제로는 원본 파일의 권한을 따름
심볼릭 링크를 만들 때 상대 경로로 만들면, 디렉토리 구조가 바뀌거나 링크 파일 위치가 달라졌을 때 원본 파일을 찾지 못할 수 있다. 이를 방지하려면 원본 파일 경로는 절대 경로로, 링크 파일 경로는 상대 경로로 지정하는 것이 가장 안전하다.
4-4) 그 외
- 블록 장치 : 디스크, USB 등 저장 장치
- 문자 장치 : 키보드, 터미널 등 연속적 입출력 장치
- FIFO : 프로세스간 통신용 파이프
- 소켓 : 네트워크 또는 프로세스 통신용
✍️ 하루 회고
사실 전날 수업에서 ln 명령어를 배우면서 하드 링크와 심볼릭 링크의 차이가 궁금해 직접 찾아봤었는데, 마침 다음날 수업에서 그 주제를 본격적으로 다루게 되어 반가웠다. 기본적인 개념뿐만 아니라, 링크 생성 시 파일 권한과 소유자 등과 관련된 내용도 함께 배울 수 있어 유익했다.
'TIL' 카테고리의 다른 글
[에스넷시스템 부트캠프] TIL Day5 - 검색 명령어, 시간 정보, Bash, 파일 디스크립터, 파이프, 변수 (0) | 2025.05.25 |
---|---|
[에스넷시스템 부트캠프] TIL Day4 - 파일 퍼미션, vi 편집기 (0) | 2025.05.25 |
[에스넷시스템 부트캠프] TIL Day2 - 리눅스 명령어 실행의 3대 요소, 디렉토리와 파일 관리 1 (0) | 2025.05.25 |
[에스넷시스템 부트캠프] TIL Day1 - VMware Workstation 설치하기 (2) | 2025.05.24 |
[에스넷시스템 부트캠프] TIL Day0 - 부트캠프 신청과 합격까지 (2) | 2025.05.23 |