Gom3rye
Linux 본문
파일 시스템
디렉토리 관련 명령어
rmdir [옵션] [디렉토리]
디렉토리 삭제
- 옵션은 p가 있는데 이는 지정한 디렉토리를 삭제하고 그 디렉토리의 부모 디렉토리가 빈 디렉토리일 경우 부모 디렉토리도 자동으로 삭제하는 것이다.
- ex. linux_ex 디렉토리 생성하고 그 안에 one, two, three 디렉토리를 한 번에 생성
- **mkdir linux_ex cd linux_ex mkdir one two three**
- ex. one/tmp/text 디렉토리를 한번에 생성
- **mkdir -p one/tmp/text # p옵션이 있어야 빈 디렉토리까지 한번에 만들 수 있다.**
- ex. two와 three 디렉토리를 삭제
- **cd linux_ex rmdir two three**
- ex. one/temp/text의 one 디렉토리를 삭제
- **rm -r one # 내부의 파일이나 디렉토리가 있으므로 옵션 줘야 한다.**
파일 관련 명령어
cat [옵션] [파일]
파일 내용 출력
- -n : 라인 번호를 같이 출력
- ex. /etc/hosts 파일의 내용을 출력
- **cat /etc/hosts**
more [옵션] [파일]
파일의 내용을 화면 단위로 출력
- 옵션은 + 행번호 형태로 설정해서 시작할 행 번호를 설정
- 화면 출력 후 Enter를 누르면 한 행씩 이동하고 spacebar를 누르면 화면 단위로 이동
- ex. /etc/services 파일의 내용을 출력
- **more /etc/services**
less [파일]
지나간 화면은 볼 수 없는 more의 단점을 보완한 화면 단위 출력 명령어
- 화면 이동키는 vi 편집기와 동일하다.
- j: 한 행 아래로
- k: 한 행 위로
- spacebar: 다음 화면으로
- CTRL + b: 이전 화면으로
- tcp 검색: /tcp
- n을 눌러서 다음 내용으로 이동
- q명령으로 종료
tail [옵션] [파일]
파일의 내용 뒷 부분을 출력
- 옵션
- +행번호: 지정한 행부터 끝까지 출력
- 숫자: 화면에 출력 행의 수를 지저(기본은 10)
- f: 파일 출력을 종료하지 않고 주기적으로 계속 출력
- ex. /etc/services 파일의 하단 10줄을 출력: more /etc/services
- **tail -10 /etc/services**
- f 옵션을 이용하면 종료되지 않고 계속 출력 대기 중인데 이 옵션을 사용하는 경우는 로그를 확인할 때 사용한다. 새로운 내용이 추가될 때마다 화면에 출력되기 때문에 로깅에서는 매우 유용한 옵션이다.
cp [옵션] [파일1이나 디렉토리 1] [파일 2이나 디렉토리 2]
파일이나 폴더 복사
- 파일을 복사하는 명령
- 옵션
- i: 파일2가 존재하는 경우 덮어씌울지 물어보는 옵션 (왠만하면 i옵션 주는 게 났다.)
- r: 디렉토리 복사
- 일반적인 복사: /etc/hosts 파일을 text1 파일로 복사
- **cp -i /etc/hosts text1**
- temp 디렉토리로 복사
- **cp -i text1 temp ls temp**
- 새로운 이름으로 복사
- **cp -i text1 temp/text2**
- 여러 개의 파일을 특정 디렉토리로 복사 → 마지막이 디렉토리여야 한다.
- **cp -i /etc/hosts /etc/services temp**
- 디렉토리 복사 → -r을 써야 한다.
- 기존에 존재하는 디렉토리에 복사하게 되면 하위 디렉토리로 만들어진다. ex. temp 디렉토리가 있는데 위의 명령어를 한 번 더 하면 temp2 안에 temp 디렉토리가 또 복사된다.
- **cp -r temp temp2**
mv [옵션] [파일1이나 디렉토리1] [파일2나 디렉토리 2]
파일 이동 or 이름 변경
- 옵션
- -i : 이미 존재하는 경우 덮어씌울지 묻는 대화상자가 나온다.
- ex.
- **mv text1 data1 # text1 파일 이름을 data1 로 변경 mv res temp # res 파일을 temp 디렉토리로 이동**
- 여러 파일을 이동시킬 수 있는데 마지막 인자는 디렉토리여야 한다.
- **mv temp/data1 temp/data2 . # temp의 data1, 2를 현재 디렉토리로 이동**
파일이나 디렉토리를 삭제하는 명령 : rm [옵션] [파일 또는 디렉토리]
- 옵션
- i: 대화형으로 삭제
- r: 디렉토리 삭제
연습 문제
- test.org 파일을 test.txt로 복사
- **cp test.org test.txt**
- backup 디렉토리 생성
- **mkdir backup**
- test.txt 파일을 backup 디렉토리로 복사
- **cp test.txt backup**
- backup 디렉토리의 이름을 work로 변경
- **mv backup work**
- rmdir 명령으로 work 디렉토리 삭제 시도?
- **rmdir work**
- rm 명령으로 work 디렉토리 삭제
- **rm -r work**
파일 링크
- 기존 파일에 새로운 이름을 붙이는 것
- 복잡한 디렉토리 계층 구조를 포함하여 파일명이 복잡해지는 경우 짧게 줄인 다른 이름을 붙여서 간단하게 사용할 때 유용하다.
- 종류
- 하드 링크: 기존 파일에 새로운 파일이름을 추가로 생성
- 심볼릭 링크: 원본 파일을 가리키는 새로운 파일을 만드는 것
- 리눅스의 파일 시스템은 하나의 파일을 보관할 때 파일이름 + i-node + 데이터 블록으로 구성해서 보관한다.
- i-node는 외부에서 볼 때는 번호로 표시되지만 내부적으로는 파일의 종류와 크기, 소유자, 파일 변경 시간, 파일 이름 등 파일 상세 정보와 데이터 블록 주소가 저장되어 있다.
- 확인 방법: ls -i
- i-node 번호가 같으면 두 개의 파일은 같은 파일이다.
ln [옵션] [원본 파일] [링크 파일]
하드 링크 만들기
- 옵션은 -s 인데 -s를 사용하면 심볼릭 링크 생성
- ex. data1 파일에 대한 data1.ln 이라는 하드 링크 생성
- **ln data1 data1.ln**
- ex. data1 파일을 data1.cp로 복사
- **cp data1 data1.cp**
파일 접근 권한 관리
파일 속성
- 리눅스는 기본적으로 다중 사용자 시스템이므로 여러 명의 사용자가 같은 시스템에서 작업을 수행한다.
- 사용자의 시스템에 마음대로 접근할 수 없도록 보안 기능을 제공한다.
- 파일의 접근 권한은 파일이 가지고 있는 속성 중 하나이다.
- ls -l 로 접근 권한을 확인할 수 있다.
-
- : 일반 파일, d : 디렉토리
- rw-r--r-- : 파일을 읽고 쓸 수 있는 권한
- 1 : 하드 링크의 개수 (하드링크가 2 이상인 경우는 현재 파일을 지워도 내용은 다른 이름으로 남아 있다.)
- root : 파일 소유자의 로그인 ID
- root : 파일이 속한 그룹
- 221 : 파일의 크기
- 날짜 및 시간 : 파일이 마지막으로 수정된 날짜
- /etc/hosts : 파일 이름
-
- 파일 접근 권한
- 종류는 읽기, 쓰기, 실행 권한
파일 디렉토리
읽기 | 파일을 읽거나 복사 가능 | ls 명령으로 디렉토리 목록을 볼 수 있다. |
쓰기 | 파일을 수정, 이동, 삭제 가능 | |
디렉토리에 쓰기 권한 필요 | 파일을 생성하거나 삭제할 수 있다. | |
실행 | 파일을 실행할 수 있음 | |
셸 스크립트 파일, 실행 파일 | cd 명령을 쓸 수 있음 | |
파일이나 디렉토리로 이동하거나 복사할 수 있다. |
- 권한 표기 방법
- 읽기는 r, 쓰기는 w, 실행은 x로 표기 권한 없음은 -로 표기
- 사용자 카테고리가 3개이고 권한이 3개라서 9개의 문자로 표현한다.
- 소유자, 그룹, 기타 사용자 권한 순으로 3개씩 3개씩 3개씩
chmod [옵션] 파일이나 디렉토리
접근 권한 변경 명령어
- 옵션 -R : 디렉토리인 경우 하위 디렉토리까지 적용
- 사용자 카테고리 문자
- u : 소유자(user)
- g : 그룹(group)
- o : 기타(other)
- a : 전체(all)
- 연산자 기호
-
- : 권한 부여
-
- : 권한 제거
- = : 권한 설정
-
- 접근 권한 문자
- r : 읽기
- w : 쓰기
- x : 실행
- ex. 소유자에게 쓰기 권한 부여 : u+w 소유자에게 실행 권한을 취소 : u-x 모든 유저에게 쓰기와 실행 권한 부여 : +wx 소유자에게 읽기와 쓰기 실행 권한 부여 : u = rwx
연습 문제
- /etc/hosts 파일을 test.txt로 복사
- **cp /etc/hosts test.txt**
- 권환 확인 후 소유자의 쓰기 권한 제거
- **ls -l # -rw-r--r-- 1 kyla kyla 221 May 19 08:13 test.txt chmod u-w test.txt # -r--r--r-- 1 kyla kyla 221 May 19 08:13 test.txt**
- 그룹에 쓰기와 실행 권한을 부여
- **chmod g+wx test.txt # -r--rwxr-- 1 kyla kyla 221 May 19 08:13 test.txt**
- 기타 사용자(other)에게 실행 권한을 부여
- **chmod o+x test.txt # -r--rwxr-x 1 kyla kyla 221 May 19 08:13 test.txt**
- 그룹과 기타 사용자의 실행 권한을 빼기
- **chmod go-x test.txt # -r--rw-r-- 1 kyla kyla 221 May 19 08:13 test.txt**
- 숫자 모드로 변경 → 보통 숫자 모드로 많이 권한 변경한다. (연산자로 주는 것보다 더 간편해서)
- 각각의 권한을 하나의 비트로 보고 1은 권한 부여, 0은 권한 취소로 간주
- rwx → 111 → 4+2+1 → 7
- rw_ → 110 → 4+2 → 6
- __x → 001 → 1
- test.txt의 모든 사용자에게 읽기 권한 부여
- **chmod 444 test.txt # -r--r--r-- 1 kyla kyla 221 May 19 08:13 test.txt**
- test.txt의 그룹 사용자에게 읽기,쓰기,실행 권한을 부여
- **chmod 474 test.txt # -r--rwxr-- 1 kyla kyla 221 May 19 08:13 test.txt**
- test.txt의 소유자는 모든 권한을 가지고 그룹, 기타 사용자는 권한 없도록
- **chmod 700 test.txt # -rwx------ 1 kyla kyla 221 May 19 08:13 test.txt**
728x90
반응형
'현대 오토에버 클라우드 스쿨' 카테고리의 다른 글
리눅스를 활용한 시스템 관리 (1) | 2025.05.21 |
---|---|
Linux (0) | 2025.05.20 |
Linux (0) | 2025.05.20 |
Linux (0) | 2025.05.20 |
Linux (0) | 2025.05.20 |