Total
Search
1. 파일 시스템 탐색
1.1. 파일 시스템
•
운영체제가 디스크(파티션) 상에 파일들을 구성하는 방식
•
파일과 디렉터리의 집합을 구조적으로 관리하는 체계
•
다양한 형식의 파일 시스템이 존재
•
리눅스는 전체 파일 시스템을 1개의 트리구조로 관리
◦
1개의 루트 디렉터리만 존재
1.2. 파일의 종류
•
정규 파일
◦
데이터를 저장하는데 주로 사용
◦
각종 텍스트 파일, 실행 파일 등 리눅스에서 사용하는 대부분의 파일
◦
실행파일이나 이미파일의 경우 바이너리 형태로 저장되어 바이너리 파일이라고 함
•
디렉터리
◦
리눅스에서는 디렉터리도 파일로 취급
◦
해당 디렉터리에 저장된 파일이나 하위 디렉터리에 대한 정보 저장
•
심볼릭 링크
◦
소프트 링크라고도 함
◦
절대 또는 상대 경로로 원본파일을 가리키는 링크
◦
윈도우의 바로가기와 비슷
•
장치 파일
◦
리눅스에서 프린터, CD-ROM, 하드디스크, 키보드 등과 같은 각종 장치를 파일로 취급
◦
블록 디바이스 파일과 문제 디바이스 파일로 구분됨
1.3. 파일 시스템 관련 명령
•
ls
◦
파일과 서브 디렉터리 목록을 나열하는 명령어
▪
ls directory
▪
ls file
$ ls
>> date.txt myscript.sh 공개 문서 비디오 음악
>> list.txt test 다운로드 바탕화면 사진 템플릿
$ ls -l date.txt
>> -rw-r--r--. 1 kdhong kdhong 76142 11월 2 09:59 date.txt
Shell
복사
•
file
◦
파일의 종류를 알려주는 명령
•
pwd
◦
절대경로 방식으로 현재 작업 디렉터리를 알려주는 명령어
•
cd
◦
작업 디렉터리 이동하는 명령어
2. 파일과 디렉터리 관리
2.1. 생성/변경/삭제 관련 명령
•
mkdir
◦
디렉터리 생성
•
rmdir
◦
디렉터리 삭제
◦
비어있는 디렉터리만 삭제 가능
◦
무조건 삭제 시 rm -rf dir 사용
•
cp
◦
파일이나 디렉터리 복사하는 명령
◦
cp file1 file2
◦
cp files directory
◦
cp -r directory1 directory2 - 디렉터리를 재귀적으로 복사할때 사용
•
mv
◦
파일의 이름을 변경하거나 다른 디렉터리로 이동하는 명령
◦
mv file1 file2 - 이름을 file2로 변경
◦
mv dir1 dir2 - 디렉터링 이름을 dir2로 변경
•
rm
◦
파일을 삭제하는 명령어
2.2. 파일의 접근권한
•
권한이 없는 사용자의 접근을 막기 위해 접근권한을 설정함
◦
사용자 부류에 따라 읽기/쓰기/실행 권한을 각각 설정
◦
권한이 총 9개로 각각 소유자 3개, 소유 그룹 3개, 기타 유저 3개의 권한을 나타냄
•
사용자 부류
◦
소유자(u). 그룹(g), 기타(o)
•
권한
◦
읽기(r): 파일의 내용 보기
◦
쓰기(w): 파일의 내용 수정과 삭제 또는 파일 이름 바꾸기
◦
실행(x): 파일을 실행하기
•
예시) cat2.txt
◦
소유자: rw 권한
◦
소유 그룹: rw 권한
◦
기타 유저: r 권한
$ ls -l
합계 56
-rw-rw-r--. 1 kdhong kdhong 786 12월 2 18:43 cat2.txt
Shell
복사
2.3. 디렉터리의 접근권한
•
권한
◦
읽기(r): 디렉터리가 가진 파일과 서브 디렉터리 목록 보기
◦
쓰기(w): 파일과 디렉터리를 만들거나 삭제하기
◦
실행(x): 디렉터리로 이동하거나 디렉터리에서 프로그램을 실행하기 또는 파일 메타 정보 보기
•
디렉터리를 자유롭게 사용하려면 읽기/쓰기/실행 권한을 모두 가져야 함
$ ls -ld /home ~jjpark
drwxr-xr-x. 8 root root 20 12월 3 16:27 /home
drwx------. 26 jjpark jjpark 4096 12월 3 16:27 /home/jjpark
Shell
복사
2.4. 접근 권한 관련 명령 (1) chmod
•
파일 소유자가 파일의 접근권한을 변경하는 명령
◦
chmod [options] mode files
▪
-R 옵션을 디렉터리에 적용할 경우 포함된 모든 파일과 서브 디렉터리까지 권한 변경
•
8진수 모드
◦
읽기(r)는 4, 쓰기(w)는 2, 실행(x)는 1
◦
예) rwxr-xr-x → 111101101 → 755
▪
rwx = 4 + 2+ 1 = 7 → 2진수로 나타내면 111
▪
r-x = 4 + 1 = 5 → 2진수로 나타내면 101
◦
chmod -R 755 dir 1
•
기호 모드
◦
[ugoa][+-=][rwx]
◦
ugoa는 각각 user, group, other, all을 나타내며 생략하면 all
◦
+-=는 각각 권한의 추가, 제거, 지정을 의미
◦
chmod u+x file1 → 유저에게 실행 권한 추가
◦
chmod u=rwx,g=rx,o=x file2
2.5. 접근 권한 관련 명령 (2) umask
•
파일이나 디렉터리 접근권한의 기본값을 출력하거나 설정하는 명령
◦
보통/etc/bashrc에 설정되어 있음
•
umask [-S] [mask]
◦
단순히 umask (또는 umask -S) 명령을 실행하면 현개 기본값을 알 수 있음
•
umask 002
◦
마스크값이 002라는 것은 ———W-, 즉 기타 사용자에게 쓰기 권한을 부여하지 않겠다는 것을 의미
◦
결국 마스크 값이 002라는 것은 디렉터리에 775라는 접근 권한을 주는 것
◦
파일의 경우 실행권한은 부여되지 않으며 접근권한은 664가 됨
2.6. 접근 권한 관련 명령 (3) chown
•
root 사용자가 파일이나 디렉터리의 소유자 또는 그룹을 변경하는 명령
◦
change owner의 약자
◦
파일(또는 디렉터리)의 소유자는 파일을 생성한 사용자로, 소유 그룹은 그 상요자가 속한 그룹으로 기본 설정됨
•
chown [options] newowner files
◦
newowner에 소유자만 주어지면 소유자만 변경하는 것
2.7. 기타 명령 ln
•
파일을 다른 이름으로 연결하는 명령
•
ln [options] 원본파일명 [대상파일명]
◦
기본적으로 하드링크를 만들며, -s 옵션을 사용하면 심벌릭 링크가 만들어짐
•
하드 링크
◦
하나의 파일에 다른 이름을 부여하는 것
◦
원본 파일의 링크 카운트가 증가함
◦
다른 파일 시스템에는 링크 할 수 없음. 디렉터리에도 만들 수 없음
•
심벌릭 링크
◦
윈도우의 바로가기와 같은 역할로 독립적인 파일
◦
다른 파일 시스템에 심벌릭 링크를 만들 수 있음
◦
원본을 삭제하면 심벌릭 링크는 의미가 없어짐
◦
디렉터리의 경우, 심벌릭 링크만 만들 수 있음
•
하드 링크과 심벌릭 링크의 차이
$ ls -l file1
rw-rw-r--. 1 kdhong kdhong 588 4월 4 15:58 file1
$ ln file1 file1.hl
$ ln -s file1 file1.sl $ ls -li file1*
284496 -rw-rw-r--. 2 kdhong kdhong 588 4월 4 20:27 file1 # inode 값이 같음
284496 -rw-rw-r--. 2 kdhong kdhong 588 4월 4 20:27 file1.hl # inode 값이 같음
284718 lrwxrwxrwx. 1 kdhong kdhong 5 4월 4 00:23 file1.sl -> file1 # inode 값이 다름
Shell
복사
3. 파일의 내용 확인
3.1. 파일의 내용 확인 명령 (1) more, less
•
more
◦
파일의 내용을 화면 단위로 출력하는 명령
▪
한 화면을 보여주고 일단 멈춤
◦
예) more –20 +10 /etc/services
▪
20라인 단위로 보여주며, 10번째 라인부터 보여줌
•
less
◦
more 명령의 개선된 버전
◦
위 또는 아래로 스크롤 가능
3.2. 파일의 내용 확인 명령 (2) head, tail
•
head
◦
파일의 맨 앞 부분을 출력
◦
예) head -n5 /etc/passwd - 5개의 라인을 출력
•
tail
◦
파일의 마지막 부분을 출력하는 명령
◦
-f 옵션을 사용하면 파일 내용 변화 감시 가능
▪
예) tail -f /var/log/messages
3.3. 파일의 내용 확인 명령 (3) cat
•
하나의 파일 또는 여러 파일을 연결시켜 화면에 출력
•
cat [options] [files]
◦
cat > file 을 수행하여 텍스트 파일로 만들 수도 있음
◦
여러 파일의 내용을 연결시킬때 > 를 사용할 수 있음
◦
옵션 -n 을 사용하면 출력 결과에 라인 번호를 붙일 수 있음
•
예)
$ cat > cat1.txt
123123213
12313131
cmd+d
$ cat cat1.txt
123123213
12313131
$ cat cat*.txt > total.txt
$ cat total.txt
123123213
12313131
Shell
복사