현재 디렉터리의 목록 보기 : ls
* -a : 숨겨진 파일도 모두 나열한다. (보통 . 으로 시작한다)
* -F : 끝 부분에 항목의 유형을 표시한다.
/ | Directory |
= | Socket |
@ | Symbolic link |
* | Executable File |
* -l : 파일의 상세 정보 표시
* -R : 서브 디렉토리 목록을 재귀적으로 보여준다.
* -s : 파일의 크기를 블럭 수로 보여준다. 1블럭 = 1KB
* 인자 : 파일 또는 디렉토리 이름
필드 의미 순서대로
* 파일의 모드(종류와 접근 권한)
* 하드 링크의 개수
* 파일 소유권을 갖는 사용자 ID
* 파일에 대한 권한을 지정할 수 있는 그룹 ID
* 파일 크기 바이트 단위로 표시
* 파일 및 디렉토리가 최종 수정된 시간
파일의 형식
* d : 디렉토리
* c : 문자 유형의 특수 파일
* - : 일반 파일
* l : 심볼릭 링크
* b : 블록 유형의 특수 파일
* s : 소켓
접근 권한
* owner, group, other 로 구분
* 권한 종류
* r : read
* w : write
* x : execute
* - : no right
8진수 모드 (octal-mode)
* rwxr-xr-x -> 111101101 -> 755
* 여러 종류의 권한을 한꺼번에 표시할 때 유용함
파일의 고유 번호
* 아이노드 번호.
* ls -i 아이노드 번호를 보여주는 옵션
현재의 작업 디렉터리 확인 : pwd (print working directory)
디렉토리 변경 : cd (change directory)
인자 : 디렉토리 이름
절대경로, 상대경로, 특수경로 이름 모두 사용
특수 경로
인자가 생략되면 자신의 home dirctory
cd ~ 를 하면 홈 디렉토리로 이동한다.
파일 찾기 : find
find [path ...] [expression]
* 지정된 path 이하의 모든 디렉토리를 순환적으로 검색
* expression 이 없으면 지정된 디렉토리 내의 모든 파일
expression
-name 을 사용해서 구체적인 파일을 찾을 수 있다.
모드를 변경할 수 있다.
바로 찾기 : locate
-n 하고 개수 붙여주면 해당 개수만큼 찾아줌
-i 는 대소문자 구분 없음.
chmod : 파일 권한 바꾸기
chmod [options] mode[, mode] ... file
chmod [options] octal-mode file ...
Mode 표현
* 8진수 모드
* 기호 모드 : 주체 [+-=] [권한]
* 주체 : u(owner) g(group) o(other) a(all)
* +-= : 권한 추가, 삭제, 지정한 것만 남기고 삭제
* 권한 : r(read), w(write), x(execute)
권한 바꾸기 예제.
Link : 하나의 파일 실체에 대해 여러개의 접근 경로 가능
링크의 종류
* 하드 링크 : 새로운 이름(절대경로)와 파일 실체 연결
* 소프트 (심볼릭) 링크 : 새로운 파일을 만들어 경로 정보 저장 ex. 바로가기
하드링크는 다른 파일 시스템에 대한 링크를 만들 수 없음.
링크 만들기 : ln
ln [options] target .. [link_name]
* link_name : 새 이름으로 대상 파일 target 에 대한 링크를 생성
* link_name 이 생략되면 target 과 같은 이름 사용 (절대 경로가 같으면 안됨)
* link_name 이 디렉터리이고 target 이 여러개일 때 각 target 에 대한 링크를 link_name 디렉터리 내에 생성
옵션
* -s : 심볼릭 링크를 만든다
* -i : link_name 과 같은 이름의 파일이 있으면 덮어쓰기 여부를 물어본다.
ln -s sfile 을 통해서 소프트 링크가 만들어 진 것을 확인할 수 있다. ln f1 hfile 만 하면 하드 링크가 만들어진다. 소프트링크는 sfile -> f1 과 같이 무엇이 무엇을 가리키는지 표시된다.
ln /etc 를 하면 디렉토리에 대한 하드 링크는 만들 수 없음을 알 수 있다. 소프트링크는 가능하다.
만약 원본 파일을 지우면 소프트 링크는 더이상 유효하지 않다. 하지만 하드 링크는 여전히 유요함을 확인할 수 있다.
cat : concatenate 파일의 내용을 보여주거나 연결
결과는 표준 출력으로 내보낸다.
여러개의 파일을 연결시켜 보내줌
cat [options] [file ... ]
주요 옵션
* -n : 행 번호를 앞에 붙인다.
* -e : 각 행의 끝에 $ 를 보여준다.
파일의 시작과 끝 보기 : head, tail
head|tail [options] [file ...]
* 시작 또는 끝의 10줄을 출력
* 주요 옵션
* -# 또는 -n # : 시작(끝) #줄을 출력
* -c# : #바이트만큼 출력
* file이 생략되면? 표준 입력
head -2 를 하면 입력 1번 - 1번 반복, 입력1번 - 1번 반복 이렇게 총 두 번 루프를 돈다.
tar : 저장 또는 이동 목적을 위해 여러 개의 파일을 하나로 묶는다. (tape archive)
* 묶는 기능만 수행하며 압축하지 않는다.
tar [-] [function letters] [tar-file] [options] [file ... ]
Function letters
* c : create, 묶음 파일 생성
* t : table of contents, 묶여진 파일들의 목록
* x : extract, 하나의 파일명으로 묶여진 파일들을 푼다.
기능 문자는 옵션이 아니므로 - 를 붙이지 않아도 됨
tar cvf tartest * : tartest 라는 이름으로 파일들을 묶어주겠다는 뜻
Option
* f : File, 주어진 파일명으로 tarfile 을 푼다.
* z : Zip, 압축된 tarfile 을 만든다.
* v : Verbose, 실행 과정의 메시지를 출력.
명령어 gzip : 유닉스 환경에서 가장 많이 사용하는 압축 유틸리티
gzip [options] [name ... ]
gunzip [options] [name ... ]
zcat [options] [name ... ]
* 압축을 한 후 파일 확장자는 .gz 가 붙음
* gunzip = gzip -d 옵션과 같다.
* .Z 가 붙은 파일도 복원할 수 있음 (compress / decompress)
* zcat : 압축된 파일을 복원해 stdout 으로 출력
주요 옵션
* -t : 파일 무결성 체크 (--test)
* -v : 이름과 압축률 표시 (--verbose)
* -h : 도움말 (--help)
* -r : 디렉터리 구조 순환 (--recursive)
tartest.gz 를 인식해 복원하고, stdout 으로 출력되는 결과를 tt 라는 이름의 파일로 저장
gunzip 으로 복원시에는 같은 이름의 파일로 저장
최근 많이 사용되는 압축 유틸리티 : bzip2, bunzip2, bzcat, bzip2recover
* gzip 보다 압축률이 좋으나 느리다.
* 압축 후 확장자는 .bz2
* bunzip2 = bzip2 -d
* bzcat : 압축된 파일을 복원하여 stdout 으로 출력
* bzip2recover : 손상된 압축파일을 복원
'Linux Programming Basics' 카테고리의 다른 글
Shell 사용하기 (0) | 2020.07.03 |
---|---|
[Linux Programming] Process Related API (0) | 2020.06.30 |
[Linux Programming ] File Related API (0) | 2020.06.28 |
Linux : Command Environment (0) | 2020.06.28 |
Linux : History and Characteristics (0) | 2020.06.28 |