티스토리 뷰
< 파일 내용 비교 >
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 : 기존 묶음 파일에 파일 추가
< 링크 파일 >
> 사용 및 관리의 편의성 때문에 이용한다. 보안상으로 본다면 취약점이 있다.
> 원본 파일의 이름이 너무 길거나 복잡해서 간단한 이름의 복사본 파일을 만들어 복사본을 통해 편집하는 상황도 있다.
> 하드 링크와 심볼릭 링크 모두 복사본이나 원본 변경시 링크로 연결된 다른 파일도 동일하게 변동되는 점은 똑같다.
> 복사본 변경 시 원본 파일도 그렇게 변경되며, 원본 변경 시 복사본 파일도 그렇게 변경됨을 의미한다. 이것이 링크의 장점이자 단점이다.
1) 하드 링크
> 옵션을 주지 않으면 하드링크
> #ln [원본 파일] [링크 파일]
> 링크 수 증가
> 원본 파일 삭제 시 복사본을 그대로 사용할 수 있음
> 원본과 복사본 i-node 번호가 같음
> 허가권 변동이 없음
> 파일만 링크 가능
2) 심볼릭 링크
> #ln -s [원본 파일] [링크 파일]
> 링크 수가 증가하지 않음
> 원본 파일 삭제 시 복사본을 사용할 수 없음
> 원본과 복사본 i-node 번호가 다름
> 허가권이 바뀜(Full 허가권)
> 파일과 디렉터리 모두 가능
< 셸(Shell) >
> 기본 셸 : bash
> 환경 설정 파일 : /etc/bashrc (로그아웃해도 사라지지 않는 설정)
- alias -
# alias [명령어] ['실행 명령어']
# alias 1='ls -l'
< 프롬프트 환경 설정 > - vi /etc/bashrc
PS1은 기본적인 프롬프트를 나타낸다.
PS1의 디폴트 설정 : PS1="[\u@\h \w]\\$"
u : 사용자명
h : 호스트명
W : 최종 디렉터리명
w : 절대경로(모두 표시)
[\d] : 요일, 달, 일 표시
[\t] : 24시간 기준 표시
[\T] : 12시간 기준 표시
< 파일/디렉터리 검색 >
#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 + 파일명을 통해 해당 파일에 대해 더 자세히 알 수 있다.
< 셸 스크립트 명령어 사용하기 >
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
- 구현
- 기계어
- D&C
- ADL
- SW생명주기
- jre
- 의사코드
- jvm
- 브라우저
- VisualStudio
- 앱개발
- 프론트엔드
- 바이트코드
- 소스파일
- 구글크롬
- 익스플로러
- SWLIfeCycle
- 크롬
- 데이터구조
- 사이트만들기
- 비주얼스튜디오
- 알고리즘
- 데이터추상화
- 프로그래밍언어
- 브라우저뜻
- javase
- Abstraction
- vscode
- 웹개발자
- 개발계발
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |