📌 개요
🔑 학습 키워드
┗ 파일, 디렉터리 탐색: ls(탐색), pwd(경로), cd(디렉터리 이동)
┗ 파일, 디렉터리 생성 및 삭제: mkdir(dir생성), rmdir(dir삭제), rm(file삭제), cp(복사)
┗ 파일, 디렉터리 이동: mv(파일 => 디렉터리 이동 및 이름 변경 두가지 기능)
┗ 파일, 디렉터리 사용자 권한: chmod(root 기준), umask(접근권한 출력,설정), chown(사용자 기준)
┗ 하드링크, 심벌릭 링크: ln(하드링크), ln -s(심벌릭 링크)
┗ 파일, 디렉터리 출력: more, less, head, tail(-f:실시간 변경사항 감시), cat(-n:줄 번호도 같이)
💡 1. 파일 시스템
[ 리눅스 파일 시스템 ]
┗ 윈도우 운영체제: C:\, D:\ 드라이브마다 루트 디렉터리 존재
┗ 유닉스 계열 운영체제: 하나의 계층구조(트리 구조)만 존재함
┗ 유닉스 계열 OS는 디렉터리 구조, 내용을 정의한 파일 시스템 계층구조 표준(FHS)이 존재
💡 2. 파일,디렉터리 - 탐색 명령어
[ ls 명령 ]
┗ 디렉터리의 내용을 보여주는 명령어
┗ 사용법: ls [옵션] [파일명]...
┗ 파일명: 나열할 파일 이름 또는 디렉터리 이름
- '(1) 기본 예시': ls -l file.txt // 파일의 상세 정보(권한, 소유자, 크기, 수정 일시 등)를 출력
- '(2) 파일명 생략 버전': 현재 디렉터리의 모든 내용 리스트 나열 -> ls
- '(3) 파일명 *, ? 문자 버전': 문자 사용 시 셸에 의해 패턴에 맞는 파일 이름으로 변환
-> '* 예시': ls *.txt // .txt로 끝나는 모든 파일 출력 (예: a.txt, hello.txt, ..)
-> '? 예시': ls file?.txt // file 뒤 한 글자가 붙고 .txt로 끝나는 파일 출력
-> ? 에는 정확한 개수가 중요함
┗ 옵션:
'-a': 숨김 파일과 숨김 디렉터리 등을 포함하여 나열
'-l': 파일 종류, 디렉터리, 링크 구분, 접근권한, 링크 수, 소유자, 그룹명, 파일 크기 등 자세한 정보를 보여 줌
'-F': 이름 뒤에 실행 가능한 파일은 *. 디렉터리는 /를 붙여서 보여 줌
-> ls -F => dir/(디렉터리), script.sh*(실행파일)
'-i': 파일 및 디렉터리의 inode 번호를 보여 줌
-> inode = 파일의 모든 정보를 담고 있는 저장소 느낌 => 142857 filename (결과값:index node)
'-s': 파일, 디렉터리의 블록 수(파일이 차지하는 디스크 크기)를 보여 줌
'-u': 파일, 디렉터리가 최종 사용된 시간 순서로 보여주며, -l 옵션과 같이 사용시 최종 사용된 시간을 보여 줌
'-R': 서브디렉터리의 목록까지 보여 줌
-> 즉, 재귀적으로 디렉터리 내부에 있는 파일도 싹 보여줌
- '여러 옵션 예시': -al => 숨김 파일 & 파일 정보 싹 보여줌 -a, -l 이 합쳐진거
[ pwd 명령 ]
┗ 현재 작업 디렉터리를 알려주는 명령어
┗ 사용법: pwd
pwd => /home/username/documents
[ cd 명령 ]
┗ 현재 작업 디렉터리를 변경하는 명령어
┗ 사용법: cd [디렉터리]
- cd 명령에서 '디렉터리'를 '생략'하면 '사용자 계정'의 '홈 디렉터리'로 변경됨
- 디렉터리의 지정은 '상대경로' 또는 '절대경로' 표시 방법이 있음
- '상대경로': 현재 디렉터리로부터 시작하는 경로명
- '절대경로': 루트(/) 디렉터리로부터 시작하는 경로명
'cd ~': 현재 사용자 홈 디렉터리로 바로 이동 (/home/username)
'cd ..': 현재 디렉터리의 부모 디렉터리로 이동 (더블도트..)
'cd .': 현재 디렉터리 의미 (도트.)
💡 3. 파일,디렉터리 - 생성,삭제,이동(수정) 명령어
[ mkdir 명령 ]
┗ 디렉터리를 생성하는 명령어
┗ 사용법: mkdir [옵션] 디렉터리명 ...
┗ 옵션: -p, -m 옵션 등이 있음
'-p': 상위 디렉터리를 만들 수 있음
'-m': 디렉터리를 만들면서 접근권한을 설정함
┗ 사용 예시:
'mkdir my_folder': 현재 디렉토리 폴더 생성
'mkdir dir1 dir2 dir3': 현재 디렉토리 여러 폴더 생성
'mkdir -p backup/java': 현재 디렉토리 backup 만들고 그 하위로 java 디렉토리 만듦
'mkdir -m 755 test': 현재 디렉터리 내 755 권한을 가지는 test 디렉터리 생성
[ rmdir 명령 ]
┗ 디렉터리 삭제하는 명령어
┗ 사용법: rmdir [-p] 디렉터리명 ...
- rmdir 명령은 기본적으로 '비어 있는 디렉터리'만 '삭제 가능'
- '-p 옵션 사용 시' -> 디렉터리 삭제 후 비게 되는 상위 디렉토리도 삭제할 수 있음
- 삭제하기 전에 디렉터리 아래에 있는 파일과 디렉터리를 모두 삭제해야 함
- 비어 있지 않은 디렉터리는 rm -r & rm -ri 명령으로 삭제할 수 있음 (취급 주의)
['사용예시']
'rmdir -p dir1/dir2': 비어있다는 가정하에 dir2 삭제 -> dir1 삭제(부모 비어있다면)
'rm -r mydir & rm -ri mydir': mydir 디렉터리가 비어있지 않아도 강제 삭제함
[ cp 명령 ]
┗ 파일 복사하는 명령어
┗ 사용법: cp [옵션] 복사할파일명 대상파일명
┗ 사용법: cp [옵션] 복사할파일명... 대상디렉터리명
┗ 사용법: cp -r [옵션] 복사할디렉터리명... 대상디렉터리명
┗ 옵션: -a, -b, -f, -i, -r & -R
'-a': 파일의 속성, 링크 정보 등을 유지하면서 복사 (all)
'-b': 기존 파일이 존재하면 백업을 만들고 복사(덮어쓰기) (backup)
'-f': 기존 파일을 강제로 삭제하고 복사함 (force)
'-i': 파일이 존재하면 덮어쓰기 여부를 확인함
'-r & -R': 디렉터리를 복사할때 사용
┗ 사용예시:
'cp file1.txt file2.txt': 현재 디렉터리 file1을 file2로 복사(file2 없으면 만들고, 있으면 덮어쓰기)
'cp /home/hong/file1.txt': /home/hong 디렉터리의 fil1 을 현재 디렉터리로 복사
'cp -r * backup': 현재 디렉터리(숨김 파일 제외)의 모든 파일과 디렉터리 backup 디렉터리로 복사
[ mv 명령 ]
┗ 파일의 "이름을 변경"하거나 파일을 "다른 디렉터리"로 "이동"하는 명령어
┗ 사용법: mv [옵션] 이름변경파일명 대상파일명
- 현재 디렉터리 안에서 파일 이름 변경
'mv file1.txt file2.txt' => fil1 -> file2 로 이름 변경
┗ 사용법: mv [옵션] 이동할파일명... 대상디렉터리명 => 기존 파일 삭제
- 파일을 대상디렉터리로 이동시키는 것 ( 기존 파일 삭제 후 이동 )
'mv file1.txt dri': file1 을 dir 로 이동
'mv /home/hong/file1.txt /home/hong/subdir': 절대경로로 subdir 에 file1 이동
'mv dir1 dir2': dir1을 dir2로 이름 변경 & dir2 존재할 경우 dir2 아래로 dir1 이동
┗ 옵션:
'-i': 같은 이름이 존재하는 경우 덮어쓰기 여부 확인
'-f': 강제로 이동
[ rm 명령 ]
┗ 파일을 삭제하는 명령어
┗ 사용법: rm [옵션] 파일명...
┗ 옵션: -i, -f, -r
'-i': 파일 삭제 여부를 확인
'-f': 파일을 강제로 삭제
'-r': 디렉터리인 경우 하위 경로에 있는 파일과 디렉터리까지 삭제
┗ 사용예시:
'rm file1': 현재 디렉터리 file1 삭제
'rm -r mydir': 현재 디렉터리 mydir 하위 경로의 모든 디렉터리와 파일 삭제
'rm -f *.tmp': 현재 디렉터리 .tmp 로 끝나는 파일 모두 강제로 삭제
💡 4. 파일,디렉터리 - 사용자 권한 명령어
[ chmod 명령 ]
┗ "파일 소유자"가 파일의 권한을 변경하는 명령어
┗ 사용법: chmod [옵션] 권한 파일명...
┗ 옵션: -R
'-R': 파일명이 디렉터리일 경우에 사용
-> 즉, 디렉터리의 접근권한 지정 시 디렉터리 아래 '모든 파일, 디렉터리' 접근권한을 '똑같이 부여'하기 위해 사용
┗ 권한:
- '읽기(r)': 파일 및 디렉터리 내용의 보기 권한
- '쓰기(w)': 파일의 쓰기 및 디렉터리 안에 파일 생성 및 삭제 권한
- '실행(x)': 파일 실행 및 디렉터리의 접근권한
['8진수 모드']
- 소유자, 그룹, 기타 사용자 세 부류 각각에 대한 읽기,쓰기,실행 권한 설정
- 8진수로 표현되며, 777(rwxrwxrwx), 644(rw-r--r--) 등으로 표현
- 읽기(r) = 4, 쓰기(w) = 2, 실행(x) = 1
['기호 모드']
- '표시 방법': [ugoa][+-=][rwx]
- 'ugoa': user, group, other, all => 생략시 all(user, group, other 모두 포함)
- '+-=': 권한 추가, 제거, 지정
- '예시': chmod 'u=rw, g=r, o=' test.txt => 파일 권한 설정
[ umask 명령 ]
┗ 파일 & 디렉터리 접근권한의 기본값을 출력하거나 설정하는 명령(설정보단 제거에 가까움)
┗ 사용법: umask [-S] [mask]
┗ 옵션: -S
- '-S':기호 모드(기호 형식)로 결과를 보여주는 옵션
-> 즉, 옵션이 없을 때 mask는 숫자로 기본값 출력
-> 옵션 -S가 붙으면 숫자(022 등) 대신 기호(r, w, x) 형태로 현재 설정된 허용 권한을 보여줌
┗ 사용예시:
- 'umask 022': 소유자 권한은 그대로 두고, 그룹과 기타 사용자의 쓰기(w) 권한 제거
-> 파일, 디렉터리 기본 접근권한에서 제거를 하는것임
- '결과:파일 권한 계산': 666 - 022 = 644 (-rw-r--r--)
- '결과:디렉터리 권한 계산': 777 - 022 = 755 (drwxr-xr-x)
[ chown 명령 ]
┗ root 사용자가 파일 & 디렉터리의 소유자 또는 소유 그룹을 변경하는 명령
┗ 사용법: chown [options] newowner files
┗ 옵션: -R(디렉터리에 적용하면 재귀적으로 적용)
💡 5. 파일,디렉터리 - 하드링크, 심벌릭 링크
[ ln 명령 ]
┗ 하드 링크를 생성하는 명령어
┗ 하드 링크: 하나의 파일(디렉터리 제외)에 다른 이름을 부여하는 것
- 원본 파일과 동일한 아이노드(inode)를 공유하는 새로운 파일을 만드는 것
-> 즉, '파일 이름'만 새로 하나 더 생기는 것이며, '원본 파일'과 '완전히 같은 데이터'와 '물리적 공간'을 가리킴
-> 하드 링크 생성 = 링크 카운트 +1 증가 반대로 삭제시 -1 감소
-> 원본 파일과 하드 링크는 같은 inode 번호를 가지기 때문에 다른 파일 시스템 간에는 링크 불가
┗ 사용예시:
'ln filename nickname': nickname 파일 만들고, filename 과 link 를 함
'ln original.txt hard_link.txt': hard-link 에 들어가면, original.txt 와 공유하는 공간이 열림
-> 수정 시 동일하게 수정이 됨
[ ln -s 명령 ]
┗ 심벌릭 링크를 생성하는 명령어
┗ 심벌릭 링크: 원본 파일에 대한 '바로가기' 파일
┗ 다른 파일 시스템에 있는 대상의 심벌릭 링크를 만들 수 있음
┗ 사용예시:
'ln -s dir1/file1 my_link': file1의 심벌릭 링크를 현재 디렉터리에 생성(my_link)
-> 이후 cat my_link 로 원본(file1)에 접근이 가능함 (원본이 지워지면 my_link 의미가 없어짐(
- '하드 링크' = inode(실제 데이터 공간)를 공유
-> 원본 파일이 지워져도 inode 는 유지되기 때문에 문제 x
- '심볼릭 링크' = 경로(파일의 위치/주소)를 가리킴
-> 원본 파일이 지워지면 경로만 공유하기 때문에 링크의 의미가 사라짐
💡 6. 파일,디렉터리 - 출력 명령어
[ more 명령 ]
┗ "페이지 단위"로 "파일의 내용"을 "출력"하는 명령어
┗ 사용법: more [옵션] [파일명]...
┗ 파일명: 출력할 파일의 이름이며, 여러 파일명을 사용할 수 있음
┗ 옵션:
'-숫자': 페이지의 크기(줄 수)를 지정하며, 스페이스 바를 누를 때 이동하는 단위임
'+행번호': 해당 라인부터 파일의 내용을 출력함
┗ more 내부 명령: more을 통해 출력된 결과 내부에서 수행되는 명령
- '스페이스 바': 다음 페이지로 진행
- 'q': 출력을 중단하고 more 명령을 마침
- '/pattern': 패턴에 상응하는 특정 단어 등을 검색함
['사용예시']
- 'more -20 +10 /etc/services': services 파일의 10번째 줄부터 20줄씩 한페이지로 출력
-> 스페이스 바를 통해 페이지 전환
┗ more 명령은 다음 페이지로 넘기는 것만 가능하며, 이전으로는 못돌아감
[ less 명령 ]
┗ more 명령의 개선된 버전
┗ 위 & 아래로 스크롤할 수 있음 => 이전으로도 돌아갈 수 있음
┗ 다양한 내부 명령 존재: 라인/화면 단위 상대 이동, 라인/퍼센트로 지정 위치 이동, 검색 등
[ head 명령 ]
┗ "파일의 앞부분"을 지정한 행 수만큼 출력하는 명령
┗ 사용법: head [옵션] [파일명]...
┗ 파일명: 출력할 파일의 이름이며, 여러 파일명을 사용할 수 있음
┗ 옵션:
- '숫자': 출력할 시작 부분의 라인 수를 지정하는 것
['사용예시']
- 'head -3 /etc/*.conf': etc 디렉터리 내의 .conf 확장자로 된 모든 파일의 '처음 3행'을 보여 줌
[ tail 명령 ]
┗ "파일의 뒷부분"을 지정된 행 수만큼 출력하는 명령
┗ 사용법: tail [옵션] [파일명]...
┗ 파일명: 출력할 파일의 이름이며, 여러 파일명을 사용할 수 있음
┗ 옵션:
- '-숫자': 출력할 마지막 부분의 라인 수를 지정하는 것
- '-f': 파일 내용이 추가될 때 실시간으로 추가된 부분을 보여 줌
['사용예시']
- 'tail -f /var/log/messages': -f 옵션 -> messages 파일을 실시간으로 감시
[ cat 명령 ]
┗ 파일의 내용을 화면에 출력하는 명령
┗ 사용법: cat [옵션] [파일명]...
┗ 파일명: 출력할 파일의 이름이며, 여러 파일명을 사용할 수 있음
┗ 옵션:
- '-n': 줄 번호를 파일 내용과 같이 출력함
['사용예시']
- 'cat -n ~/.bashrc': .bashrc 파일 내용을 '줄 번호'와 함께 출력'방송통신대학교 > 🐧 UNIX 시스템' 카테고리의 다른 글
| [UNIX 시스템] 5강 - 리눅스 시작과 종료 (0) | 2026.10.16 |
|---|---|
| [UNIX 시스템] 3강 - 셸 사용하기 (0) | 2026.10.13 |
| [UNIX 시스템] 2강 - 리눅스 설치 (0) | 2026.10.12 |
| [UNIX 시스템] 1강 - 리눅스 소개 (0) | 2026.10.05 |
