(1) 파일 복사
-1. 파일 복사 : cp(copy)
- 사용법 : $cp [-i] 파일1 파일2 ($ cp cs1.txt cs2.txt … $ ls –l cs1.txt cs2.txt)
- 파일 1을 파일2에 복사하다. -i는 대화형 옵션이다.
- 대화형 옵션: cp – I ($ cp –i cs1.txt cs2.txt)
- 복사 대상 파일과 이름이 같은 파일이 이미 존재하면 덮어쓰기(overwrite)!
- 보다 안전한 사용법 : 대화형 –i(interactive) 옵션을 사용
- 파일을 디렉터리로 복사 :
- $ cp 파일 디렉터리 : 파일을 지정된 디렉터리에 복사한다. ($ cp cs1.txt /tmp… +)
- $ cp 파일1 …파일n 디렉터리 : 여러 개의 파일들을 지정된 디렉터리에 모두 복사
- 디렉터리 전체 복사 : cp –r ($cp –r test temp)
- $ cp [-r] 디렉터리1 디렉터리2 : r은 리커진 옵션으로 디렉터리1 전체를 디렉터리2
에 복사한다.
- 하위 디렉터리를 포함한 디렉터리 전체를 복사
(2) 파일 이동
-1. 파일 이동 : mv(move)
- 사용법 : $mv [-i] 파일1 파일2 ($mv cs2.txt cs3.txt … $ls -l)
- 파일 1의 이름을 파일2로 변경한다. –i는 대화형 옵션이다.
- 대화형 옵션 : mv - i ($mv –I cs1.txt cs3.txt)
- 이동 대상파일과 이름이 같은 파일이 이미 존재하면 덮어쓰기(overwrite)
- 보다 안전한 사용법 : 대화형 –i(interactive) 옵션을 사용
- 파일을 디렉터리로 이동
-$ mv 파일 디렉터리 : 파일을 지정된 디렉터리로 이동한다. ($mv cs3.txt / tmp …+)
-$ mv 파일1 …파일n 디렉터리 : 여러 개의 파일들을 지정된 디렉터리로 모두 이동
- 디렉터리 이름 변경
-$ mv 디렉터리1 디렉터리2 : 디렉터리1을 지정된 디렉터리2로 이름을 변경한다.
($ mkdir temp , $mv temp tmp)
(3) 파일 삭제
-1. 파일 삭제
- 사용법 : $rm [-i] 파일* ($ rm cs1.txt)
- 파일들을 삭제한다. – i는 대화형 옵션이다. ($rm –i cs1.txt)
-2. 디렉터리 전체 삭제
- 디렉터리 전체 삭제 : $rm [–ri] 디렉터리 ($rm test…$rmdir test…$rm –ri test)
- -r은 리커전 옵션으로 디렉터리 아래의 모든 것을 삭제한다. –i는 대화형옵션
(4) 링크
-1. 링크
- 링크 : 기존 파일에 대한 또 하나의 새로운 이름
- 사용법
-$ln [-s] 파일1 파일2 : 파일1에 대한 새로운 이름으로 파일2를 만든다. -s는심볼릭링크
-$ln [-s] 파일1 디렉터리 : 파일1의 링크를 지정된 디렉터리에 같은 이름으로 만든다.
-2. 하드 링크(hard link)
- 기존 파일에 대한 새로운 이름이라고 생각 할 수 있다. ($ ln hello.txt hi.txt… $ls -l)
- 실제로 기존 파일을 대표하는 -i노드를 가리켜 구현한다.
-3. 심볼릭 링크(symbolic link)
- 다른 파일을 가리키고 있는 별도의 파일이다. ($ln –s hello.txt hi.txt… $ ls –l)
- 실제 파일의 경로명을 저장하고 있는 일종의 특수 파일이다. ($ln –s /usr/bin/gcc cc…
- 이 경로명이 다른 파일에 대한 간접적인 포인터 역할을 한다. … $ls –l cc)
(5) 파일 속성
-1. 파일 속성
- 파일크기, 종류, 접근 권한, 링크 수, 소유자 및 그룹, 수정 시간 ($ls –sl cs1.txt)
파일 속성 |
의미 |
파일 타입 |
일반 파일(-), 디렉터리(d), 링크(l), 파이프(p), 소켓(s), 디바이스(b,c) 등의 파일 종류 |
사용권한 |
소유자, 그룹, 기타 사용자의 파일에 대한 읽기/쓰기/실행 권한 |
소유자 및 그룹 |
파일의 소유자 및 소유자가 속한 그룹 |
크기 |
파일의 바이트 수 |
수정 시간 |
파일을 최후로 생성 혹은 수정한 시간 |
링크수 |
파일에 연결된 링크의 수 |
-2. 파일 종류
- 리눅스에서 지원하는 파일 종류
파일 종류 |
표시 |
설명 |
일반 파일 |
- |
데이터를 갖고 있는 텍스트 파일 또는 이진 파일 |
디렉터리 파일 |
d |
디렉터리 내의 파일들의 이름들과 파일 정보를 관리하는 파일 |
문자 장치 파일 |
c |
문자 단위로 데이터를 전송하는 장치를 나타내는 파일 |
블록 장치 파일 |
b |
블록 단위로 데이터를 전송하는 장치를 나타내는 파일 |
FIFO 파일 |
p |
프로세스 간 통신에 사용되는 이름 있는 파이프 |
소켓 |
s |
네트워크를 통한 프로세스 간 통신에 사용되는 파일 |
심볼릭 링크 |
l |
다른 파일을 가리키는 포인터와 같은 역할을 하는 파일 |
- 사용법 :$ file 파일 ($ file cs1.txt … $file a.out)
- 파일의 종류에 대한 자세한 정보를 출력한다,
(6) 접근 권한
-1. 접근권한(permission mod)
- 파일에 대한 읽기(r), 쓰기(w), 실행(x) 권한
권한 |
파일 |
디렉터리 |
r |
파일에 대한 읽기 권한 |
디렉터리 내에 있는 파일명을 읽을 수 있는 권한 |
w |
파일에 대한 쓰기 권한 |
디렉터리 내에 파일을 생성하거나 삭제할 수 있는 권한 |
x |
파일에 대한 실행 권한 |
디렉터리 내로 탐색을 위해 이동할 수 있는 권한 |
- 파일의 사용권한은 소유자(owner)/그룹(group)/기타(others)로 구분하여 관리한다.
-예) 소유자 그룹 rw--, r--, r-- / 소유자 권한(rwx) 그룹권한(r-x) 기타 사용자 권한(r-x)
-2. X윈도우의 CNOME 데스크톱에서 속성 확인
-$ls –sl cs1.txt / 속성 à 권한
-3. 접근권한의 예
접근권한 |
의미 |
rwxrwxrwx |
소유자, 그룹, 기타 사용자 모두 읽기, 쓰기, 실행 가능 |
rwxr-xr-x |
소유자만 읽기, 쓰기, 실행가능 / 그룹, 기타 사용자는 읽기만 가능 |
rw-rw-r-- |
소유자와 그룹만 읽기, 쓰기, 가능 / 기타 사용자는 읽기만 가능 |
rw-r-- |
소유자만 읽기, 쓰기 가능 / 그룹과 기타 사용자는 읽기만 가능 |
rw-r----- |
소유자만 읽기, 쓰기 가능 / 그룹은 읽기만 가능 |
rwx------ |
소유자만 읽기, 쓰기, 실행 가능 |
(7) 접근 권한 변경
-1. 접근권한 변경: chmod(change mode)
- 사용법 : $ chmod [-R] 접근권한 파일 혹은 디렉터리
- 파일 혹은 디렉터리의 접근권한을 변경한다. –R 옵션을 사용하면 지정된 디렉터리 아래
의 모든 파일과 하위 디렉터리에 대해서도 접근권한을 변경한다.
-2. 접근권한 표현: 8진수
- 접근 권한 8진수 변환
- 권한이 있으면 1, 없으면 0 으로 표시
- rwx(111) à7 / r-x(101) à5 / r-x(101) à5 == 2진수 à 8진수
- rw-(110) à6 / r—(100)à4 / r—(100) à4 == 2진수 à 8진수
- 사용 예
접근권한 |
8진수 |
rwxrwxrwx |
777 |
rwxr-xr-x |
755 |
rw-rw-r-- |
664 |
rw-r—r-- |
644 |
rw-r----- |
640 |
rwx------ |
700 |
-$ chmod 644 cs1.txt … $ls –l cs1.txt
-3. 접근권한 표현: 기호
- 기호를 이용한 접근 권한 변경
- 사용자범위 연산자 권한
[u | g | o | a ]* [ + | - | =] [r | w | x]*
구분 |
기호와 의미 |
사용자 범위 |
u (소유자), g(그룹), o(기타 사용자), a(모든 사용자) |
연산자 |
+(권한 추가), -(권한 제거), =(권한 설정) |
권한 |
r(읽기 권한), w(쓰기 권한), x(실행 권한) |
-4. 기호를 이용한 접근권한 변경
- 예
- $chmod g-w cs1.txt … $ls –l cs1.txt
- $chmod o-r cs1.txt … $ls –l cs1.txt
- $chmod g+w cs1.txt … $ls –l cs1.txt
(8) 기타 파일 속성 변경
-1. 소유자 변경 : chown(change owner)
- 사용법 : $chown 사용자 파일 , $chown [-R] 사용자 디렉터리
- 파일 혹은 디렉터리의 소유자를 지정된 사용자로 변경한다.
- -R 옵션 : 디렉터리 아래의 모든 파일과 하위 디렉터리에 대해서도 소유자를 변경
- $ chown hong cs1.txt … $ su …$chown hong cs1.txt …$ls –l cs1.txt
-2. 그룹 변경 : chgrp(change group)
- 사용법 : $chgrp 그룹 파일, $ chgrp [-R] 그룹 디렉터리
- 파일 혹은 디렉터리의 그룹을 지정된 그룹으로 변경한다. -R옵션은 사용하면 지정된
디렉터리 아래의 모든 파일과 하위 디렉터리에 대해서도 그룹을 변경한다.
-3. 최종 수정 시간 표현 : touch
- 사용법 :$ touch 파일 ($ touch cs1.txt … $ls –l cs1.txt)
- 파일의 최종 사용 시간과 최종 수정 시간을 현재 시간으로 변경한다.
핵심 개념
- 링크는 기존의 파일에 대한 또 하나의 새로운 이름으로 하드 링크와 심볼릭(소프트) 링크가 있다.
- 파일은 이름뿐만 아니라 타입, 크기, 소유자, 접근권한, 수정 시간 등의 파일 속성을 갖는다.
- 파일의 접근권한은 소유자, 그룹, 기타로 구분하여 관리한다.
'Back-end > 리눅스 개념' 카테고리의 다른 글
6장 프로세스 (0) | 2020.12.30 |
---|---|
5장 쉘과 명령어 사용 (0) | 2020.12.30 |
3장 유닉스 기본 명령어 (0) | 2020.12.30 |
유닉스 / 리눅스 소개 (0) | 2020.10.16 |
사용자 계정 생성/삭제 (0) | 2020.09.07 |
댓글