본문 바로가기
일상,취미

[TIL 43일차] 리눅스 파일 시스템 관련 명령어

by 진득한진드기 2024. 9. 12.

파일 시스템

- 운영체제가 디스크 상에 파일들을 구성하는 방식
- 파일과 디렉터리의 집합을 구조적으로 관리하는 체계
- 다양한 형식의 파일 시스템이 존재
- 리눅스는 전체 파일시스템을 1개의 트리 구조로 관리


ls 명령

- 파일과 서브 디렉토리 목록을 나열하는 명령
- 옵션에 따라 파일이 가지는 속성도 확인 가능


- ls [options] , [names]

ls directory
- 디렉토리에 존재하는 파일과 서브 디렉터리 정보를 출력

ls file

- 해당 파일의 정보를 출력

꿀팁

ls -s = 파일 크기 순서로 결과 정렬
ls -t = 최종 수정 시간 순으로 보여줌


파일의 종류


정규 파일

- 데이터를 저장하는 데 주로 사용
- 각종 텍스트 파일, 실행 파일, 이미지 파일 등 리눅스에서 사용하는 대부분의 파일
- 실행 파일 이나 이미지 파일의 경우 바이너리 형태로 저장되어 바이너리 파일이라고 함.


디렉토리

- 리눅스에서 디렉토리도 파일로 취급
- 해당 디렉토리에 저장된 파일이나 하위 디렉토리에 대한 정보가 저장되어있음

 


심볼릭 링크

- 소프트 링크라고도 한다.
- 절대 또는 상대 경로로 원본 파일을 가리키는 링크
- 윈도우의 바로가기와 비슷


장치 파일

- 리눅스에서 프린터, CD-ROM, 하드 디스크, 키보드 등과 같은 각종 장치를 파일로 취급
- 블록 디바이스 파일와 문자 디바이스 파일로 구분됨


mkdir

mkdir [options], directory

ex)
-p는 필요한 경우 상위 디렉토리 생성
mkdir -p backup java

-m은 디렉토리를 만들면서 접근권한 설정

디렉토리 삭제
- 비어있는 디렉토리만 삭제가능
- 디렉토리를 무조건 삭제하려면 rm -r dir 또는 rm -rf dir를 사용해야 함
옵션 

-p는 비어있는 디렉토리를 삭제하면서 부모 디렉토리가 비게 되는 경우 사용
rmdir -p dir1/dir2

 

cp 명령

- 파일이나 디렉토리를 복사하는 명령
- cp [options], file1  file2
- cp -i file1 file2
- 대상 파일이 존재하면 덮어쓰기 수행
- cp [options] files directory
- 마지막 인자가 디렉토리인 경우
- 여러 파일을 지정된 디렉토리에 같은 이름으로 복사
- cp -r [options] directory1 directory2
- 디렉토리를 재귀적으로 복사할때 -r 사용
- 대상 디렉토리가 존재하는 경우 그곳에 디렉토리 자체가 복사됨


mv 명령


파일 또는 디렉토리의 이름을 변경하는 명령 또는 다른 디렉토리로 이동

mv [options] source target
- mv file1 fil2
- 이름을 변경, 대상 파일이  존재한다면 덮어쓰기가 수행


mv [options] files directory
- 마지막 인자가 존재하는 디렉토리인 경우, 여러 파일을 지정된 디렉토리로 이동함


mv file1 file2 dir1

 

 

rm 명령 (파일 삭제명령)

 

rm [options] files
alias rm='rm -i'를 수행하여 에일리어스 설정을 하는 것도 좋은 방법이다.

- -r 옵션은 디렉토리 포함하여 모두 삭제
- -i 옵션은 삭제 전에 물어봄
- -f 옵션은ㅇ 물어보지 않고 무조건 삭제



파일의 접근 권한


 - 권한이 없는 사용자의 접근을 막기 위해 접근 권한을 설정함
 - 사용자 부류에 따라 읽기/쓰기/실행 권한을 각각 설정함


- 사용자 부류
- 소유자, 그룹, 기타
- 권한
- 읽기 r = 파일 보기
- 쓰기 w =  내용 수정 및 삭제 또는 이름 바꾸기
- 실행 x = 파일 실행



디렉토리의 접근권한

읽기 r = 디렉토리가 가진 파일과 서브 디렉토리의 목록 보기
쓰기 w = 파일과 디렉토리를 만들거나 삭제하기
실행 x = 디렉토리로 이동하거나 디렉토리에서 프로그램을 실행하기 또는 파일의 메타 정보보기


- 적어도 읽기와 실행 권한을 가지고 있어야 해당 디렉토리로 이동하거나 해당 디렉토리에서 ls -l 명령을 할 수있어서 효용성이 있음


chmod 명령


파일 소유자가 파일의 접근권한을 변경하는 명령


- chmod [options] mode file
-R 옵션을 디렉토리에 적용하면 모든 파일과 서브 디렉토리 까지 권한 변경


8진수 사용가능


기호 모드
형식은  [ugoa], [+-=] ,[rwx]
ugoa는 각각 user,group,other,all 을 의미하며 생략하면 all 로 적용


umask 명령


파일이나 디렉토리 접근권한의 기본값들을 출력하거나 설정하는 명령

보통 /etc/bashrc에 설정되어 있다.

umask [-S],  [mask] 
- 단순히 umask명령을 실행하면 현재 기본값을 알 수 있음
- -S 옵션은 기호 모드로 결과를 보여줌
- umask 002

- 마스크 값이 002라는 것은 --------w-, 즉 기타 사용자에게 쓰기 권한을 부여하지 않겠다는 뜻


chown 명령


 root 사용자가 파일이나 디렉토리의 소유자 또는 소유그룹을 변경하는 명령

파일의 소유자는 파일을 생성한 사용자로 소유 그룹은 그 사용자가 속한 그룹으로 기본 설정됨


chown [options], newowner files

- newowner에 소유자만 주어지면 소유자만 변경하는 것
- 소유자, 그룹 또는 소유자 . 그룹의 형태로 지정할 수 있음
- 소유자가 생략되면 그룹이 변경이 없는 것이며, 그룹이 생략되면 소유자: 소유자와 같은 그룹으로 정해짐
- -R 옵션을 사용하여 디렉토리에 적용하면 재귀적으로 적용할 수 있음


ln 명령(1)

파일을 다른 이름으로 연결하는 명령

- ln [options] 원본파일명 [대상파일명]
- 기본적으로 하드링크를 만들며, -s 옵션을 사용하면 심볼릭 링크가 만들어짐

- 하드 링크[hard link]
- 하나의 파일에 다른 이름을 부여하는 것
- 원본 파일의 링크 카운트 증가
- 다른 파일 시스템에는 링크 할 수 없음, 디렉토리 또한...

- 심볼릭 링크(symbolic link)
- 윈도우의 바로가기와 같은 독립적인 파일
- 다른 파일 시스템에 심볼릭 링크를 만들 수 있음
- 원본을  삭제하면 의미가 없어짐
- 디렉토리의 경우 심볼릭 링크만 생성가능

 


more 명령

- 파일의 내용을 화면 단위로 출력하는 명령
- 한 화면을 보여주고 멈춤
- space 를 누르고 다음 화면으로 이동
- enter는 한 라인씩 이동
- q 누르면 종료

more [options] files
ex) more -20 +10 /etc/services
- 20 라인 단위로 보여주며, 10번째 라인부터 보여달라

 

less 명령

- more 명령의 개선된 버전
- 위 또는 아래로 스크롤 할  수 있음

- 다양한 내부 명령이 있음

페이지 업, 페이지 다운, 위 아래 키보드가 존재함


head 명령


파일의 맨 앞 부분을 출력 기본적으로 10라인

head [options] files
옵션 -n 숫자또는 -숫자를 사용하면 라인수 변경 

 

tail 명령


파일의 마지막 부분을 출력하는 명령 기본 10라인


tail [options] files


-f 옵션을 사용하면 변화하는 파일의 내용을 계속 감시할 수 있음

- tail -f /var/log/messages


cat 명령


하나의 파일 또는 여러 파일을 연결시켜 화면에 출력

cat [options] files

- 파일을 지정하지 않으면 표준 입력으로부터 읽음
- cat > file을 수행하여 파일을 만들 수 있음
- 여러 파일의 내용을 연결시킬 때 > 를 사용할 수 있음
- 옵션 -n을 사용하면 출력결과에 라인 번호를 붙일 수 있음

cat > cat1.txt

cat cat1.txt

cat cat*.txt > total.txt
cat으로 시작하는 텍스트 파일들을 통합해서 total.txt에 옮기기