리눅스 마스터 2급

PART 1(리눅스 일반) - 디렉터리 및 파일

세용용용용 2023. 6. 7. 17:36

디렉터리 관리 명령어

1) pwd : 현재 작업 중인 디렉터리 위치를 나타내는 명령어

 

 

2) cd : change directory의 약자 디렉터리를 이동할 때 사용하는 명령어이다.

cd  ~ : 사용자 홈 디렉터리로 이동

cd . : 현재 디렉터리

cd .. : 현재에서 한 단계 상위 디렉터리로 이동

cd / : 루트 디렉터리로 이동

 

 

3) mkdir : make directory의 약자로 새로운 디렉터리를 생성시 사용하는 명령

 

형식 : mkdir 옵션 디렉터리명

-m : 디렉터리 생성시 권한을 설정

-p : 상위 경로 생성

-v : 디렉터리 생성 후 생성된 디렉터리의 메시지 출력

 

ex) mkdir TST, mkdir -m 755 TST1

 

 

4) rmdir : remove directory의 약자로 디렉터리만 삭제하는 명령어, 디렉터리 안에 파일이 존재시 삭제 안된다

 

형식 : rmdir 디렉터리명

 

 

파일관련 명령어

1) ls : 현재 위치한 디렉터리의 파일 목록들을 나타내는 명령어

 

형식 : ls 옵션 경로명

-a : 히든파일을 포한한 모든 파일과 디렉터리 표시

-l : 퍼미션, 크기, 사이즈 등의 자세한 정보 표시

-d : 지정된 디렉터리의 정보 출력

-r : 알파벳 역순으로 정보 출력

-R : 하위 경로와 그 안에 있는 파일 표시

 

ex) ls -al : 현재 디렉터리의 히든 파일을 포함해 파일 및 디렉터리 정보를 자세히 표시한다.

 

 

2) cp : 파일 또는 디렉터리를 복사하는 명령어

 

형식 : cp 옵션 원본파일 생성파일

-r : 디렉터리를 복사할 경우 하위 디렉터리와 파일을 모두 복사

-i : 복사 대상이 이미 존재시 사용자에게 덮어씌울 것인지 유무 확인

 

 

3) rm : 파일 또는 디렉터리를 삭제하는 명령어

 

형식 : rm 옵션 파일명/디렉토리명

-f : 질의 메시지 없이 강제로 파일이나 디렉터리 삭제

-i : 삭제 시 사용자 에게 질의

-r : 삭제 디렉터리가 포함하고 있는 하위 디렉터리를 포함하여 모든 파일 삭제

 

 

4) mv : 파일 또는 디렉터리를 이동하거나 파일명을 변경할 때 사용하는 명령어

 

형식 : mv 옵션 원본 대상

-b : 대상 파일이 이미 있어 지워지는 것을 대비해 백업 파일 생성

-f : 대상 파일이 이미 있어도  사용자에게 어떻게 처리할지 묻지 않음

-v : 파일이 옮겨지는 과정이 자세히 표시

 

ex) mv -v TEST RE_TEST : TEST파일명을 RE_TEST로 변경하는 명령어

 

 

5) touch : 파일 크기가 0바이트인 빈 파일을 생성

- 서버의 현재 시간으로 파일의 최근 사용한 시간과 최근 수정 시간 등 타임 스템프를 변경한다

- 접근시간(access time)은 서비스가 호출을 사용해 파일을 읽을 떄마다 접근시간이 갱식

- 수정시간(modify time)은 파일 내용이 변경될 떄 파일 수정 시간이 갱신된다

- 변경시간(change time)은 파일 내용을 수정했을 때 기록되는 시간으로 변경 불가능한 시간이다.

 

형식 : touch 옵션 파일명

-a : 접근시간을 변경

-m : 수정시간을 변경

-c : 시스템 현재 시간으로 파일 시간 정보를 수정

-t 시간정보 : 특정파일의 시간 정보 변경

-r 파일1 파일2 : 파일1의 시간정보를 파일2에 동일하게 적용

 

ex) touch TEST_1 : TEST_1파일의 파일 시간을 현재 시간으로 변경

 

 

6) file : 파일의 종류 및 파일 속성값을 나타내는 명령어

 

형식 : file 옵션 파일명

-b : 파일명은 출력하지 않고 파일 유형만 표시

-f : 파일 목록에서 지정한 파일등에 대해서만 명령을 실행

-z : 압축된 파일의 내용 출력

-i : MIME타입 문자로 출력

 

 

7) find : 현재 디렉터리에서부터 하위 디렉터리까지 주어진 조건의 파일을 찾아 해당 경로를 표시한다.

 

형식 : find 경로 옵션 정규표현식 파일명

-name : 이름을 기준으로 파일검색

-user : user의 파일이나 디렉터리 검색

-perm : 지정되 권한의 파일 검색

-type : 파일 유형에 따라 파일 검색

-atime n : n일 이전에 접근한 파일 검색

-exec : 검색된 파일에 수행할 명령어를 지정!!

 

ex) 

find -name RE_TEST : 파일명이  RE_TEST인 파일검색

find /etc -name "*.conf" : /etc/에 확장자 conf파일 검색

find ~ -perm 644 : 파일 허가권이 644인 파일 검색

find /bin -size +10k -size -100k : /bin에 10kbyte 이상인 것을 찾고, 100kbyte 이하를 찾는다, +,-를 붙이지 않으면 지정된 크기의 파일을 찾는다

find ~ -size 0k -exec ls -l {}\: : 사용자 홈 데렉터리 하위에 파일 크기가 0인 파일 목록을 상세히 출력

fiind /home -name "*.swp" -exec rm {}\: : /home 홈디렉터리 하위에 확장자 swp파일 삭제

 

 

8) locate : 파일의 위치를 찾는 명령어

 

형식 locate 파일명

ex) locate *.bak : 현재 시스템에 존재하는 *.bak 파일을 검색한다

 

 

 

텍스트 파일 관련 명령어

1) cat : 파일의 내용을 출력하는 명령어

 

형식 : cat 옵션 파일

-n : 각 문장 앞에 번호 표시, 비어있는 행 포함

-b : 각 문장 앞에 번호 표시, 비어잇는 행 제외

-s : 연속되는 2개 이상의 빈 행을 한 행으로 출력

-A : 텍스트 파일에 존재하는 개행 문자나 탭 문자 등을 확인

 

ex) cat -n config : config파일 내용을 확인한다, 확인 시 문장의 라인번호를 표시함

 

 

2) head : 파일의 앞부분을 지정한 만큼 출력하는 명령어

 

형식 : head 옵션 파일명

-c : 출력을 원하는 용량을 지정

-n 숫자 또는 -숫자 : 출력을 원하는 줄 수 지정

 

ex) head -2 config : config파일 처음 2줄을 확인한다

 

 

3) tail : 파일의 마지막 행을 기준으로 지정한 행까지의 파일 내용 출력하는 명령어

 

형식 : tail 옵션 파일명

-c : 출력을 원하는 용량 지정

-숫자 또는 -n 숫자 : 출력을 원하는 줄 수 지정

-f : 지정된 파일에 새롭게 추가되는 파일 내용을 실시간으로 출력

-v : 파일 출력시 파일명 표시

-q : 파일 출력시 파일명 표시하지 않음

 

ex) tail -2 config : config파일 마지막 2줄을 확인

 

 

4) more : 파일을 확인하는 명령어로 파일을 화면 단위로 끊어서 출력하는 명령어

 

형식 : more 옵션 파일명

-숫자 : 한 페이지에 표시되는 라인수

 

space bar : 다음페이지 전환

enter : 한줄씩 출력

ctrl + d : 반 페이지 출력

ctrl + b : 이전 페이지 출력

q : 종료

/패턴 : 지정한 패턴의 문자열 검색

 

 

5) less : 기능적으로 more를 확장한것 커서를 파일의 상하좌우로 이동할 수 있다.

 

 

6) grep : 파일에서 특정한 패턴 또는 정규 표현식으로 나타낸 단어를 찾는 명령어

 

형식 : grep 옵션 문자열 파일명

-i : 대소문자 차이 무시

-v : 검삭할 문자열이 포함되지 않은 줄만 출력

-n : 라인수 출력

-l : 문자열이 포함된 파일명 출력

 

ex) grep -n adm /etc/passwd : /etc/passwd파일에서 문자 adm을 포함하는 내용을 출력한다, 이때 라인 수도 표시함

grep -n 'rm' config : config파일에서 rm이 들어간 문자열과 행 번호 검색

grep -l 'rm' * : 현재 디렉터리에서 rm이라는 문자열이 들어간 파일 이름 검색

grep '^a' config : config 파일에서 a로 시작하는 행을 검색

grep 'apple$' config : config 파일에서 apple로 끝나는 행을 검색

grep 'appl*' config : config 파일에서 appl를 포함한 행을 검색

grep 'apple' c* : c로 시작하는 파일에서 apple를 포함하는 모든 행 검색

grep '^[ab]' config : config 파일에서 a나 b로 시작되는 모든 행 검색

 

 

7) wc : 파일의 라인 수, 단어 수, 알파벳 수를 알려주는 명령어

 

형식 : wc 옵션 파일명

-l : 전체 라인수 출력

-w : 전체 단어 수 출력

-c : 전체 문자수 출력

라인수 : 242

단어수 : 568

알파벳 수 : 11980

파일명 work2.pcap

 

 

8) sort : 명령어 결과나 문서 내용을 정렬하는 명령어

 

형식 : sort 옵션 파일명

-b : 앞 공백 무시

-o : 저장할 파일 명시

-r : 역순으로 표시

-f : 대소문자 구분 안함

-t : 필드 구분자 지정

-u : 중복 행 제거

-n : 숫자만 비교

-m : 정렬 파일 병합

 

ex) sort -f config : config파일 내용 대소문자 구분안하고 알파벳순으로 정렬해 파일 내용을 표시

 

 

9) cut : 파일에서 특정 필드를 추출해 낸다. 필드는 구분자로 구분할 수 있다.

 

형식 : cut 옵션 파일명

-c : 잘라낼 곳의 글자 위치를 지정, 콤마나 하이픈 사용

-f : 잘라낼 필드 지정

-d : 필드를 구분하는 문자 지정, 디폴트는 탭

-s : 대소문자 구분하지 않음

 

ex) cut -c 1-5  config : config파일 행들의 시작 문자열 5개 추출해 출력

 

 

10) split : 하나의 파일을 여러개의 작은 파일로 분리

라인수로 분할할 수도 있고, 용량 단위로 분할할 수도 있다.

 

형식 : split 옵션 파일명

-b : byte 단위로 분할

-l : 파일을 주어진 라인 수 단위로 분할

 

ex) split -b 100 config : config파일을 100byte 단위로 분할한다

358바이트 파일이면

100, 100, 100, 58 4개의 파일로 분할

 

 

파일 비교 명령어

1) diff : 두 개의 파일을 행 단위로 비교해 다른 부분을 출력하는 명령어

 

형식 : diff 옵션 파일명1 파일명2

-b : 연속된 공백 무시

-i : 대소문자 구문하지 않음

-s : 두 파일이 같은지 확인

-r : 두 디렉터리의 차이점 출력

 

 

2) cmp : 두 개의 파일을 바이트(문자) 단위로 비교해 출력하는 명령어

 

형식 : cmp 옵션 파일명1 파일명2

-b : 두 파일 간의 다른 바이트 출력

-l : 두 파일간 다른 문자 위치와 문자를 출력

-s : 아무 것도 출력하지 않고 실행 결과 코드만 반환

 

 

3) comm : 두 개의 파일을 줄 단위로 비교해 출력한는 명령어

 

형식 : comm 옵션 파일1 파일2

-1 : 파일 1에만 있는 내용을 제외하고 내용 출력

-2 : 파일 2에만 있는 내용을 제외하고 내용 출력

-3 : 파일 1과 파일2에 공통으로 존재하는 내용을 제외하고 출력

 

 

 

리다이렉션과 정규 표현식

1) 리다이렉션 : 표준 입력과 표준 출력의 방향을 재지정 하는 것이다.

- 표준 입력/출력/에러가 화면이 아닌 파일로 대체됨

 

> : 명령을 화면에 출력하는 것이 아니라 프린터나 파일에 출력하도록 전송

>> : 파일이 있는 경우 지정된 파일에 결과를 추가

< : 키보드가 아닌 지정된 파일에서 입력 내용을 읽어옴

>& : 명령의 출력을 다른 명령의 입력으로 보냄

<& : 명령의 입력을 다른 명령의 출력으로 보냄

 

ex) who > LOGIN : 현재 접속한 사용자 조회 명령을 LOGIN파일에 저장

 

 

2) 파이프 : 둘 이상의 명령을 함께 묶어 출력 결과를 다른 프로그램의 입력으로 전환하는 기능

명령어와 명령어 연결은  '|' 기호를 사용

 

ex)

ls /usr/bin | sort | grep zip : 파일 /usr/bin의 파일을 정렬해서 zip관련 파일만 확인한다

 

 

3) 정규 표현식

^a  : a로 시작하는 문자

&a : a로 끝나는 문자

a...b : a와 b 사이에 3개의 문자가 들어있는 단어

abc* : c가 0번이상 반복 ex) ab , abc , abcc , abccc

[abc]d : a,b,c,중 어떤 한글자라도 반드시 있는 단어 ex) ad, bd, cd

[^abc]d : a,b,c로는 시작 않하는 문자 ex) ed, fd 등과 같은 단어

abc+ : c가 1회 이상 반복

abc? : c가 없거나 한 번만 존재

a(bc) *, a(bc)+, a(bc)? : ()부분 정규식의 시작과 끝은 표시

a(b|c) : b또는 c가 최소 하나 존재  ex) ab, ac, abc, acb

a{1,3}b : a가 1번이상 3번이하 반복되는 문자