파일 시스템
- 운영체제가 디스크 상에 파일들을 구성하는 방식
- 파일과 디렉터리의 집합을 구조적으로 관리하는 체계
- 다양한 형식의 파일 시스템이 존재
- 리눅스는 전체 파일시스템을 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에 옮기기
'일상,취미' 카테고리의 다른 글
[TIL 40일차] WSL 사용기 (0) | 2024.08.29 |
---|---|
[TIL 37일차] 비동기 (0) | 2024.08.25 |
[TIL 36일차] 쓰레드 프로그래밍 (0) | 2024.08.15 |
[TIL 35일차] 운영체제의 가상화 (0) | 2024.08.14 |
[TIL 34일차] linux -> window 포팅에 대한 나의 생각 , 지난 한 주를 돌아보며 (0) | 2024.08.10 |