티스토리 뷰

< 파일 내용 비교 >
1. diff
#diff [파일1] [파일2]
 
2. cmp

 
 
3. comm
 
 
4. grep
 
========================================
< 파일 압축/해제 > 압축률과 안정성 gzip < bzip2 < xz
1. gzip : 텍스트 파일에서는 5-60%의 압축율을 지닌다.
 - 압축
#gzip [옵션] [파일명]
 
< 옵션 >
-1 : 최저 압축율
-6 : 중간(기본)
-9: 최대 압축율
 
* 압축을 할 때에도 헤더파일을 포함한 기타 내용이 들어가게 됨. 따라서 워낙 작은 사이즈의 파일은 오히려 용량이 늘어나는 현상이 발견됨.

 
> 확장자: *.gz
 
- 해제(확장자 안 붙여도 됨)
#gzip -d [압축 파일명]
#gunzip [압축 파일명]
 

파일명을 여러 개 적어 한 번에 압축하고, 한 번에 압축해제를 할 수 있다.

 
 
2. bzip2
- 압축
#bzip2 [옵션] [압축 파일명]
#bzip2 passwd
 
 
> 확장자: *.bz2
 
- 해제(확장자 붙여야 함)
#bzip2 -d passwd.bz2
#bunzip passwd.bz2
 

파일명을 여러 개 적어 한 번에 압축하거나 한 번에 해제할 수 있다.

 
3. xz
- 압축
#xz [옵션] [압축 파일명]
#xz passwd
 
> 확장자: *.xz
 
- 해제(확장자 붙여야함)
#xz -d passwd.xz
#unxz passwd.xz
 

파일명을 여러 개 적어 한 번에 압축하거나 한 번에 해제할 수 있다.

 
 
4. compress/uncompress
 
> 확장자: *.Z
 
[파일/디렉터리 묶기/풀기]
#tar [옵션] [묶은 파일명] [묶을 파일명들]
 
#tar -cvf test.tar passwd passwd7
 
<옵션>
-c : 묶기
-x : 해제
-v : 묶거나 푸는 과정 출력
-f : 파일 지정(꼭 붙여야 하는 옵션, 옵션 들 중 가장 마지막에 붙어야 하는 옵션)
-z : zgip 압축
-Z : compress
-j : bzip2
-J : xz
-t : 묶음을 해제하지 않고 목록만 출력하는 것
-r : 기존 묶음 파일에 파일 추가
 

파일 기본 묶기
파일 해제를 명확히 보기 위해서 file 모든 것을 삭제하고 .tar 파일을 풀어보았다. 만약 file01, file02, file03을 삭제하지 않고 tar 파일을 풀어버린다면 덮어쓰기가 된다.
gzip으로 압축하며 묶을 수도 있다. 같은 file들을 묶었음에도 불구하고 test.tar와 test2.tar의 용량 차이가 확연히 나고 있음을 확인할 수 있다.
분명 gzip으로 압축하며 묶었음에도 불구하고 .gz 확장자가 붙지 않았다. file 명령어를 통해 확인해본 결과 엄밀히 gzip 파일이 맞긴 하다. 따라서 헷갈림 방지를 위해 mv 명령어로 .gz 확장자를 붙여준다.
file 파일들을 삭제 후 gzip으로 묶은 tes2.tar.gz&nbsp; 파일을 풀어보자. 안전하게 모두 풀리는 것을 확인할 수 있다.
또한 놀랍게도.. gunzip 명령어로도 풀린다. 뿐만 아니라 gzip -d 명령어도 먹힌다. 이때 test.tar과 test2.tar의 용량이 똑같아짐을 확인할 수 있다.

 

-r 옵션을 사용해서 이미 있는 test.tar 파일에 file6만 추가하여 묶을 수도 있다.

 
< 링크 파일 >
> 사용 및 관리의 편의성 때문에 이용한다. 보안상으로 본다면 취약점이 있다.
> 원본 파일의 이름이 너무 길거나 복잡해서 간단한 이름의 복사본 파일을 만들어 복사본을 통해 편집하는 상황도 있다.
> 하드 링크와 심볼릭 링크 모두 복사본이나 원본 변경시 링크로 연결된 다른 파일도 동일하게 변동되는 점은 똑같다.
> 복사본 변경 시 원본 파일도 그렇게 변경되며, 원본 변경 시 복사본 파일도 그렇게 변경됨을 의미한다. 이것이 링크의 장점이자 단점이다.
 
1) 하드 링크
> 옵션을 주지 않으면 하드링크
> #ln [원본 파일] [링크 파일]
> 링크 수 증가
> 원본 파일 삭제 시 복사본을 그대로 사용할 수 있음
> 원본과 복사본 i-node 번호가 같음
> 허가권 변동이 없음
> 파일만 링크 가능

하드 링크에선 식별 변호가 동일하다! i-node number가 동일하다 ! 원본이 삭제되더라도 복사본을 사용할 수 있는 이유이다.

 
 
2) 심볼릭 링크
> #ln -s [원본 파일] [링크 파일]
> 링크 수가 증가하지 않음
> 원본 파일 삭제 시 복사본을 사용할 수 없음
> 원본과 복사본 i-node 번호가 다름
> 허가권이 바뀜(Full 허가권)
> 파일과 디렉터리 모두 가능
 

링크수도 그대로. i-node number와 허가권도 다르며, 화살표 기호(-&gt;)를 통해 원본이 아님을 나타내고 있음

 

원본 파일을 삭제하면 복사본 파일을 사용할 수 없다. 삭제하지 않더라도 읽을 수 없게 된다.

 
 

한 파일에 하드 링크와 심볼릭 링크를 동시에 걸어줄 수도 있다.
변경내용이 모두에게 들어가는 것을 확인할 수 있다.

 

타 디렉터리에 있는 파일도 링크시킬 수 있다. 마찬가지로 변동 사항이 서로 동일하게 저장된다.

 
< 셸(Shell) >
> 기본 셸 : bash
> 환경 설정 파일 : /etc/bashrc (로그아웃해도 사라지지 않는 설정)
 
- alias -
# alias [명령어] ['실행 명령어']
# alias 1='ls -l'
 

vi /etc/bashrc 를 통해 편집할 수 있다. if 문 밖에 적어야 됨을 주의. alias 설정한 것 확인 ! 이는 로그아웃해도 사라지지 않는 설정이 된다. 가끔 바로 적용이 되지 않을 때도 있다. 이럴 경우 로그아웃하고 다시 로그인한 후 시도하면 된다.

 
 
< 프롬프트 환경 설정 > - vi /etc/bashrc
PS1은 기본적인 프롬프트를 나타낸다.
PS1의 디폴트 설정 : PS1="[\u@\h \w]\\$"
 
u : 사용자명
h : 호스트명
W : 최종 디렉터리명
w : 절대경로(모두 표시)
 
[\d] : 요일, 달, 일 표시
[\t] : 24시간 기준 표시
[\T] : 12시간 기준 표시
 

/etc/bashrc 파일을 열면 확인할 수 있는 43번째 줄. PS1은 prompt state의 정상상태를 의미한다. 명령어가 잘못입력되지 않고 평소 상태에서 커서의 왼쪽에 어떻게 표시되는지가 적혀있다.

 
 

[\d]와 [\t]를 추가한 모습. 이제 날짜와 시간이 표시될 것이다.

 

날짜와 시간이 표시되어 있다.
맨 앞 32와 맨 뒤 0을 통해 프롬프트의 글자색과 배경색도 지정할 수 있다. 맨 앞이 글자색, 맨 뒤가 배경색이다.

 
 
 
< 파일/디렉터리 검색 >
 
#find [경로] [옵션].....[설정 값].....
#find / -name passwd
 

엄청 많군 !

 
< 옵션 >
-name : 파일/디렉터리명으로 검색
-type : 파일 유형 지정(f: 파일, d: 디렉터리)
-size : 파일 크기 지정
-maxdepth : 디렉터리 검색 깊이 설정
-exec : 다른 프로그램 실행
 
-atime : 접근 시간(곱하기 24시간)
-mtime : 수정 시간(곱하기 24시간)
-ctime : 모드 수정 시간(곱하기 24시간)
 
+1이면 오늘 기준 1일전보다 이전임을
-1이면 오늘 기준 1일전까지의 하루를 의미
 
오늘이 2월 25일이므로,
-1이면 오늘부터 전날까지 24시간 분량
+1이면 24시간 전을 기준으로 그 이전의 것들이 나오게 됨
 
 
 
-amin:
-mmin:
-cmin:
 
 
 
stat + 파일명을 통해 해당 파일에 대해 더 자세히 알 수 있다.

atime, mtime, ctime, amin, mmin, cmin 모두 알 수 있다.

 

그냥 /만 검색하면 완전 전체에서 검색하는 것이다. 정말로 어디있는지 감도 안 잡힐 때 사용하면 된다.

 

이름 검색도 더 세부적으로 가능하다.

 

1000byte 이상과 미만 검색

 

type -d를 통해 디렉터리 종류 검색을 하면 자기 자신 디렉터리인 /home/korea가 뜨는 것을 알 수 있다.

 

깊이 지정도 할 수 있다.

 

-exec 옵션을 통해서 삭제도 할 수 있고, 목록 출력도 할 수 있다. 복사, 수정, 편집 등은 안된다.

 

이런 화면출력 가능한 것들은 다 가능하다 !

 
 
< 셸 스크립트 명령어 사용하기 >
1. 일반 파일 생성 후 vi 편집기를 열거나 vi 편집기를 통해 바로 새 파일 편집 시작
2. vi 편집기에서 원하는 명령어를 작성. 이때 필요한 경로들은 절대 경로로 적혀야 함
3. 저장 후 나가기
4. #chmod 777 [파일명] -> 이렇게 하면 해당 파일에 실행 권한이 부여됨
5. ./[파일명] -> 해당 파일에 들어있는 스크립트를 명령어로서 실행(cat으로 파일 내용을 확인후 실행하면 좋다)
6. 파일 내에 스크립트 명령어가 올바르게 사용되었는지 확인해보기
 
 
 
 
==============================
[ 번외 ]
 
1. 쓰레기 데이터 만드는 법
#fallocate -l [용량] 파일명
 

 
cat 이나 echo 명령어를 통해 파일 생성 가능
cat 사용 시 컨트롤 + D로 저장

 
 
2. gzip 파일을 복사할 때 파일이름과 .gz 확장자를 꼭 붙여주어야 한다. 그렇지 않으면 분명 gzip 파일을 복사했음에도 리눅스는 파일명으로 해당 파일을 인식하기 때문에 표시할 때 gzip파일이 일반파일 색깔처럼 나와있음을 알 수 있다.
 
 
 
3. 심볼릭 링크의 원본 파일을 삭제 후 복사본 파일은 cat으로 읽히진 않지만 vi 로 편집은 가능하다. 이때 복사본의 vi 편집을 마치면 원본 파일이 살아난다... (디렉터리는 이렇게 안되는 것 같다)
 
4. 두 디렉터리를 심볼릭 링크로 연결한 후 원본 디렉터리를 삭제해보자. 후에 제3의 일반 파일은 복사본 디렉터리에 mv 명령어를 통해 옮기면, 복사본 디렉터리가 살아난다. file 명령어를 통해 종류를 확인해 보면 empty가 뜬다. 심볼릭 링크가 끊긴 복사본 디렉터리가 아무것도 적히지 않은 일반 파일로 살아나게 된 것이다... !
 
5. 두 일반 파일에 하드 링크를 걸어두었을 경우에는 하나를 삭제한 후 gzip 압축을 할 수 있다. 두 일반파일이 하드 링크가 연결된 채로 있는 상태에서 한 파일이나 두 파일 동시에 압축하려고 하면 ignored 된다.

 
6. 두 일반 파일이 심볼릭 링크가 걸려있을 때에는 상황이 또 좀 다르다. 우선 복사본 파일은 gzip 압축할 수 없으며, 원본 파일을 압축했을 경우에는 복사본과의 연결이 끊기게 된다. 여기서 걱정하지 않아도 될 것은 gzip 압축을 풀면 다시 링크가 살아난다.
 
7. compgen -b 또는 compgen -b|column
 
8. printf
 
9. alias 설정 가능. 단 로그아웃 하면 다시 설정 초기화 됨

 
 
10. 스냅샷 돌리고
vi - 인덱스넘버, 컬러 셋팅

cd //홈(not /home, yes cd ~ )으로 돌아가서
vi .exrc  //vi 환경설정 파일로 들어감
se nu //vi 열때마다 number 보이게
colo evening  //evening컬러로 배경 보이게

하면 됨!

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함