PART 1(리눅스 일반) - 디렉터리 및 파일
디렉터리 관리 명령어
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번이하 반복되는 문자