리눅스에서 사용되는 주요 명령어 모음

 

리눅스 시스템 종료 방법
1. 바탕화면에서 : 시스템 -> 끄기 -> 끄기
2. 터미널에서 : "shutdown -h now", "halt", "init 0"

* shutdown 명령어
shutdown -h +10 (10분 후 종료, h:halt)
shutdown -r 22:00 (오후 10시에 재부팅, r:reboot)
shutdown -c (예약된 shutdown명령 취소)
shutdown -k now (종료 메세지는 보이나 종료 안댐.)

재부팅
- "shutdown -r now", "reboot", "init 6"

로그아웃
- "logout", "exit"

* init 명령어(런레벨, Runlevel)
0번 : 종료모드
1번 : 단일 사용자 모드(시스템 복구시 사용)
2번 : NFS 없는 다중 사용자 모드
3번 : 텍스트 모드의 다중 사용자 모드
4번 : 없음
5번 : x윈도우 모드의 다중 사용자 모드
6번 : 재부팅 모드
</etc/inittab 에 지정되어 있음.>

vi(visual)  ; ex) vi test.txt

man(manual) ; ex) man <명령어>

genisoimage ; iso 생성
ex) genisoimage -r -J -o test.iso /boot
    "-r -J" : 8글자 이상의 파일명 및 대소문자를 구분해서 인식
    "-o" : 출력할 파일을 위한 옵션
    "test.iso" : 생성될 iso 파일명
    "/boot" : 포함될 파일 또는 디렉토리

cdrecord    ; cd로 굽기
growisofs   ; DVD로 굽기

* ls 명령어 - dos의 "dir"
: ls    ; 현재의 디렉토리 목록
: ls /usr/bin   ; /usr/bin 의 디렉토리 목록
: ls -a   ; 디렉토리 목록(숨김파일 포함)
: ls -l  ; 디렉토리 목록 자세히
: ls *.txt  ; txt파일 보여줌
: ls -l /usr/bin/a* ; /usr/bin/ 디렉토리에서 앞글자가 a인 목록.

* cd 명령어 - 디렉토리 이동
: cd    ; 사용자의 홈 디렉토리로 이동
: cd ~root  ; root사용자의 홈 디렉토리로 이동
: cd ..   ; 상위 디렉토리로 이동
: cd /usr/bin  ; /usr/bin 디렉토리로 이동(절대경로)
: cd ../usr/bin ; 상대경로로 이동

* pwd (print working directory)
: pwd    ; 현재 작업중인 디렉토리 경로 출력

* rm - 삭제(권한이 있어야 함)
: rm abc.txt  ; 삭제(내부적으로 rm -i 로 연결됨
: rm -i abc.txt ; 삭제 시 확인을 물어본다
: rm -r abc  ; 디렉토리 삭제
: rm -rf abc   ; abc 이하 전부 강제 삭제

* cp - 복사
: cp abc.txt cba.txt ; abc.txt를 cba.txt 파일로 복사
: cp -r abc cba ; 디렉토리 복사

* touch - 크기 0 파일 생성, 존재시 수정 시간 변경
: touch abc.txt

* mv - 파일 이름 변경 및 위치이동
: mv aaa bbb ccc ddd ; aaa, bbb, ccc 파일을 ddd 디렉토리로 이동
: mv abc.txt www.txt ; 이름 변경

* mkdir - 새로운 디렉토리 생성
: mkdir abc  ; 현재 디렉토리 아래 abc 디렉토리 생성
: mkdir -p def/fgh ; 현재 디렉토리 아래 def/fgh 생성

* rmdir - 디렉토리 삭제(파일이 있으면 안됨)
: rmdir abc

* cat - 텍스트 작성 파일 화면에 출력
: cat install.log

* head, fail - 텍스트 파일 앞 10행 or 뒷 10행을 출력
: head install.log
: fail install.log

* more - 텍스트 파일 페이지 단위 출력
(space : 다음페이지, b : 앞페이지, Q : 뒷페이지)
: more install.log
: more +100 install.log ; 100행부터 보여줌

* less - more의 확장, pagedown, pageup 사용 가능
: less install.log
: less +100 install.log

* file - 파일의 종류 표시
: file install.log
: file /bin/gzip

* clear - 명령창을 깨끗하게
: clear


< 사용자 및 그룹 관련 명령어>
* useradd or adduser
-> 실행시 /etc/passwd, /etc/shadow, /etc/group에 새로운 행 추가.
: useradd newuser
: useradd -u 555 newuser  ; 555 라는 이름의 유저 추가
: useradd -g mygroup newuser  ; mygroup에 포함된 newuser 생성
: useradd -d /newhome newuser  ; 홈 디렉토리가 newhome인 newuser 생성
: useradd -s /bin/csh newuser  ; 기본 셸 /bin/csh 지정

* passwd - 비밀번호 지정 및 변경
: passwd newuser   ; newuser의 비밀번호 지정 및 변경

* usermod - useradd와 사용법 동일, 사용자 속성 변경
: usermod -g root newuser ; newuser의 그룹을 root 그룹으로 변경

* userdel - 사용자 삭제
: userdel newuser
: userdel -r newuser

* change - tkdydwk dkagh wnrlwjr qusrud
: change -l newuser  ; newuser에 설정된 사항 확인
: change -m 2 newuser  ; 설정암호 최소 일자(2일)
: change -M 30 newuser  ; 설정암호 사용가능 일자(30일)
: change -E 2013/12/12 newuser ; 2013/12/12에 암호 만기
: change -W 10 newuser  ; 만기 10일 부터 경고 메세지 출력

* groups - 사용자가 속한 그룹을 보여줌
: groups

* groupadd - 새로운 그룹 생성
: groupadd newgroup
: groupadd -g 555 newgroup ; 그룹 ID가 555인 newgroup생성

* groupmod - 그룹 속성 변경
: groupmod -n newgroup mygroup ; newgroup 이름을 mygroup으로 변경

* groupdel - 그룹 삭제
: groupdel newgroup
(해당 그룹을 주요 그룹으로 지정한 사용자가 없을 때 사용 가능)

* gpasswd - 그룹의 암호를 생성하거나 관리를 수행
: gpasswd newgroup  ; newgroup의 암호지정
: gpasswd -A newuser newgroup ; newuser를 newgroup의 관리자로 지정
: gpasswd -a user1 newgroup ; user1을 사용자로 추가
: gpasswd -d user1 newgroup ; user1을 사용자에서 제거


< RPM >
* 설치
: rpm -Uvh (패키지파일)
- U : (대문자) 설치되어 있지 않다면 'i'와 같이 설치,
       설치되어 있다면 업그레이드한다.
- v : 설치 진행상황 확인
- h : 설치진행과정을 화면에 출력

* 삭제
: rpm -e (패키지이름)
- e : Erase

* 이미 설치된 패키지 질의
: rpm -qa (패키지)  ; 설치되었는지 확인
: rpm -qf (파일의 절대 경로) ; 어느 패키지에 포함된 것인지 확인
: rpm -ql (패키지)  ; 어떤 파일이 포함되었는지 확인
: rpm -qi (패키지)  ; 상세정보

* 설치되지 않은 패키지 질의
: rpm -qlp (패키지)  ; 어떤 파일이 포함되었는지
: rpm -qip (패키지)  ; 상세정보

< YUM >
* 설치
: yum (-y) install (패키지) 
&&& -y 옵션을 쓰면 무조건 yes로 넘어감

* rpm파일 설치
: yum install (rpm파일)

* yum check-updata  ; 업데이트 가능한 목록 보기

* yum updata (패키지)  ; 패키지 업데이트, 없다면 install

* yum remove (패키지)  ; 패키지 제거

* yum info (패키지)  ; 패키지 요약 정보

* yum localinstall (패키지) ; 로컬에서 설치 (iso파일에서 설치)

* yum groupinstall "(패키지그룹)" ; yum grouplist로 확인후 통째로 설치

* yum list (패키지)  ; 패키지 리스트 출력
ex) yum list all(모든 리스트), yum list mysql*(mysql이 들어간 목록)

* yum provides (파일이름) ; 특정 파일이 어느 패키지에 들어있는지..

* yum install --nogpgcheck (rpm파일) ; GPG키 검사 생략
; 페도라에서 인증되지 않은 rpm파일을 설치시 GPG키 생략하고 설치됨.


< 파일 압축, 묶기 >
* bzip2 - bz2로 압축하거나 풀기
: bzip2 (파일명)  ; 파일명.bz2 로 만든다.
: bzip2 -d "파일명.bz2" ; 파일명.bz2 를 일반파일로 만든다

* bunzip2 - bzip2 -d 와 같다.

* gzip - gz으로 압축하거나 풀기
: gzip (파일명)   ; 파일명.gz 로 만든다.
: gzip -d "파일명.gz"  ; 파일명.gz 를 일반파일로 만든다.


* tar - 확장명 tar로 묶거나 풀기
[동작]
: c     ; 새로운 묶음
: x    ; 묶인 파일을 풀어줌
: t    ; 묶음을 풀기전에 경로 표시
[옵션]
: f(필수) - 묶음 파일명 지정  ; 생략시 tape로 백업
: v - visual    ; 과정을 보여줌
: z - tar + gzip
: j - tar + bzip2
[사용예]
: tar cvf xinetd.tar
: tar xvfj (파일명.tar.bz2)
: tar xvfz (파일명.tar.gz)

< 파일 위치 검색 >
* find [경로] [옵션] [조건] [action]
[옵션] -name, -user(소유자), -newer(전, 후) -perm(허가권), -size(크기)
[경로] -print(디폴트), -exec(외부명령 실행)
[사용 예]
: find /etc -name "*.conf" ; /etc 에 확장자 conf 파일 검색
: find ~ -perm 644  ; 허가권이 644인 파일 검색
: find /bin -size +10k -size -100k  ; 10kb~100kb인 파일 검색
: find ~ -size 0k -exec ls -l { } \;
     -> 사용자 홈 디렉토리 하위에 파일 크기가 0인 파일 목록 상세히 출력
: find /home -name "*.swp" -exec rm { } \;
     -> /home 홈 디렉토리 하위에 확장자 swp파일 삭제

* which (실행파일명) - PATH에 설정된 디렉토리 검색(절대경로 포함)

* whereis (실행파일명) - 실행 파일 및 소스, man 페이지 파일까지 검색

* locate (파일명) - updatedb 명령 이후 사용가능
                    파일목록 데이터베이스 검색, 빠르고 유용.

< wine 설치하기 >
http://kltp.kldp.net/stories.php?story=00/08/11/9653999

< 시스템 설정 > ststem-config-xxxx
&&& 패키지 업데이트 yum -y install system-config-xxxx
: boot   ; 초기 부팅 설정
: data   ; 날짜, 시간 설정
: firewall   ; 방화벽
: keyboard  ; 키보드
: language  ; 언어
: lvm   ; lvm 설정
: network  ; 네트워크
: printer   ; 프린터
: rootpassword  ; root 비밀번호
: service  ; 서비스 가동/중지
: users  ; 사용자 설정
: bind   ; 네임 서버
: display   ; x 윈도우 환경 설정
: httpd   ; 웹 서버 설정
: nfs    ; NFS 서버 설정
: samba   ; 삼바 서버 설정
: vsftpd  ; FTP 서버 설정

< CRON >
- 주기적으로 반복되는 일 설정
- /etc/crontab 파일
ex) 01 * * * * root run-parts /etc/cron.hourly
     02 4 * * * root run-parts /etc/cron.daily
     04 4 * * 0 root run-parts /etc/cron.weekly
     42 4 1 * * root run-parts /etc/cron.monthly
     분 시 일 월 요일 권한 실행명령 (0~6 = 일~월요일)

< AT >
- 일회성 작업 예약
- 한번 실행되고 소멸
ex) at 실행 후 #at <시간>,
     완료시 ctrl+D,
     확인   at-l,
     취소   atrm <작업번호>

< Network 관련 명령어 >
: system-config-network
: system-config-network-tui ; 텍스트 기반
: service network (start/stop/restart/status)
: ifup <장치이름> / ifdown <장치이름>  ; 장치 작동
: ifconfig <장치이름>   ; 해당 장치의 ip주소 설정 정보 출력
: nslookup   ; DNS 서버 작동 테스트
: ping (IP/URL)  ; 네트워크 응답 테스트

< Network 설정관련 파일 > - system-config-network 후
: /etc/sysconfig/network ; 네트워크의 기본적인 정보가 설정된 파일
: /etc/sysconfig/network-script/ifcfg-eth0(or ifcfg-eth1)
     ; 장치에 설정된 네트워크 정보 모두
: /etc/resolv.conf  ; DNS서버의 정보 및 호스트 이름이 들어있는 파일
: /etc/hosts   ; 현 컴퓨터의 호스트 이름 및 FQDN이 들어있는


<< 파이프, 필터, 리다이렉션 >>
< pipe > - 두 개의 프로그램을 연결해주는 연결통로
: | 을 이용함.
ex) ls -l /etc | more  ; /etc에 파일이 너무 많아서 한페이지씩 봄

< filter > - grep, tail, wc, sort, grep, awk, sed 등
ex) ps -ef | grep bash  ; ps -ef 는 모든 프로세스 번호 출력하므로
                                  bash라는 글귀가 들어간 프로세스만 출력
     rpm -qa | grep bind ; 설치된 패키지중 bind라는 글자가 들어간
       패키지만 출력

< re-direction >
- 표준 입출력 방향을 바꿈.
- 표준입력은 키보드, 출력은 모니터지만 이를 파일로 처리하고 싶을 때 주로 사용
ex) ls -l > aa.lst  ; ls -l의 결과를 aa.lst 파일에 씀(orerwrite)
     ls -l >> aa.lst  ; 위와 같지만 append
     sort < aa.lst  ; aa.lst 파일을 정렬해서 화면에 출력
     sort < aa.lst > bb.lst ; aa.lst를 정렬해서 bb.lst에 쓴다.


< 프로세스 관련 명령어 >
1. ps - 현재 프로세스 상태 확인
ex) ps -ef | grep (프로세스이름)

2. kill - 프로세스 강제 종료 "-9" 옵션을 함께 사용하면 무조건 종료
ex) kill -9 (프로세스번호)

3. pstree - 부모 자식 프로세스관계를 트리형태로 보여줌

< vi 에디터 비정상적 종료시 대처법 >
ex) vi abc.log 를 비정상적으로 종료시
-> abc.log.swp(임시 Swap File)생성.
--> ls -a 로 파일 확인하고 "rm .install.log.swp"으로 삭제.

< 데몬(Daemon) ~= 서비스(Service) >
: 눈에는 보이지 않지만 현재 시스템에서 활동중인 프로세스(백그라운드) 

 

출처: http://blog.naver.com/minki1111?Redirect=Log&logNo=100189238563

 

AND

 

Crontab 이란

 

 crontab은 스케줄링을 관리하는 프로그램으로 시스템 관리자에게 중요한 유틸 중 하나이다. 특정 시간대에 사용자가 작성한 스트립트나 명령을 실행 할 수 있다. 이는 rsync 같은 툴을 같이 사용하여 굉장히 편리한 백업 시스템을 만들 수도 있고 데이터 베이스관리나 기타 반복적인 업무를 간편하게 등록하여 사용 할 수 있다.

MIN HOUR DOM MON DOW CMD

필드 명세 허용 값
MIN 0~59
HOUR 시간 0~23
DOM 날짜 1-31
MON 1-12
DOW 0-6
CMD 명령어 실행 가능 한 모든 명령어

1. 다음 시간 6월 10일 오전 8시 30분 을 cron 명령어에 맞게 작성해보자.

30 08 10 06 * /home/script/backup
  • 30: 30분
  • 08: 오전 8시 <24시제>
  • 10: 10일
  • 06: 6월
  • *: 매주

2. 매일 하루 두 번 증분 백업을 하자.

00 11,16 * * * /home/script/incremental-backup
  • 00: 0분 (정각)
  • 11,16 - 오전 11시 / 오후 4시
  • *: 매일
  • *: 매달
  • *: 매주

3. 특정 시간대에 작업하기

00 09-18 ** 1-5 /home/check-db-status
  • 00: 0분 (정각)
  • 09-18: 오전 9, 10, 11, 12시 / 오후 1, 2, 3, 4, 5, 6시 마다 작업
  • *: 매일
  • *: 매달
  • 1-5: 월, 화, 수, 목, 금 (주중)

4. crontab 작업 목록 보기 (명령어)

$ crontab -l
@hourly /home/script/hourly-script
00 09-18 ** 1-5 /home/check-db-status

$ crontab -u foo -l
no crontab for foo

$ su
# crontab -l
no crontab for root

 

5. crontab 목록 수정

목록 수정을 vi/vim으로 편집하려면 변수를 선언해줘야 한다. export VISUAL=vim

$ crontab -e
$ crontab -u foo -e

6. 매분마다 작업하기

* * * * * CMD

7. 10분 마다 작업하기

*/10 * * * * /home/script/check-disk-space
0-10/2 * * * * /home/script/check-db-updates-5times
  • */10의 뜻은 10분 마다
  • 0-10/2의 뜻은 처음 10분 동안 2분 간격으로

8. 키워드 사용

Keyword

키워드 대치 문법
@yearly 0 0 1 1 *
@daily 0 0 * * *
@hourly 0 * * * *
@weekly 0 0 * * 0
@reboot 시스템 시작 시

다음은 키워드를 사용해 매일 반복하는 작업 스케줄링 crontab이다.

@daily /home/script/make-log

9. 메일 사용

crontab 수정시 MAILTO를 선언하면 실행 내용을 메일로 받을 수 있다.

MAILTO="xajax@naver.com"

10. 파일을 통한 crontab 설정

파일로 저장해 놓고 다른 시스템에 재 사용 하고 싶다면 다음과 같이 하면 된다.

$ crontab cron-file.txt
$ crontab -l
AND

Crontab은 리눅스에서 스케줄링하여 원하는 시간에 작업을 실행할 수 있는 아주 유용한 툴이다. 사용자가 적은 새벽 4시마다 디스크 백업을 하고 싶거나, 매일 00시에 아파치 로그파일을 압축 백업 하는 것과 같은 작업을 할 때 crontab은 매우 손쉽게 작업을 할 수 있다. 물론 Spring batch나 quartz 같은 것을 쓰면 분산처리나 로깅등에 유용하지만 간단한 실행파일을 하루 한번 돌리는데 그런 것들은 너무 거창하다.

 

각 사용자별로 crontab 파일을 가지게 되며, 이를 수정해두면 cron job scheduler가 지정된 시간에 주기적으로 지정된 파일을 실행해준다. 순차적으로 여러가지 일을 해야 한다면 쉘스크립트를 만들어 실행하면 편리하다. Crontab은 스크립트가 실패해도 로그를 남기지 않으므로 실행할 스크립트에서 실행 결과를 파일로 로깅하도록 하는게 관리 면에서 좋다. 실패하면 메일이나 SMS 등이 오고록 하는 것도 관리 측면에서 유용하다.

 

Crontab에서 실행할 스크립트를 등록하면서 많이 실수하는 것이 crontab에 등록하기전에 실행해보지 않는다는 것이다. 공들여 몇시간 만든 스트립트인데 문법오류나 실행권한없음 등의 이유로 실행되고 있지 않다가 수일에서 수개월이 지나서야  발견되는 경우를 흔히 볼 수 있다. 잘못 돌아갈 이유가 없어보여도 crontab 등록 후에 반드시 쉘스크립트나 실행 파일을 꼭 실행해보자.

 


또 하나 주의 할 점이 있는데 crontab에 등록하는 스크립트는 여러번 반복 실행해도 에러가 나지 않도록 만들어야 한다. 하루에 꼭 한번씩 특정 시간에만 실행되도록 만들면 안된다. 매일 새벽 4시에 실행되야 하는데 출근해서 점심 먹고 알았다고 해보자. 그런데 이 스크립트는 4시에만 실행해야 하고 오후 1시에 실행하면 안된다고 하면 당신의 출근은 갑자기 늦어지고 저녁 데이트에 못갈수도 있다. 시간적 종속성이 있고 실행여부가 매우 중요하다면 시간이 들더라도 crontab 말고 Spring batch나 quartz를 사용하도록 하자.

 

 

사용법

현재 로그인한 사용자의 crontab 파일 수정

$ crontab -e

 

현재 로그인한 사용자의 crontab 파일 내용 보기

$ crontab -e

 

현재 로그인한 사용자의 crontab 파일 삭제

(e와 r은 키보드에서 붙어 있어서 실수로 삭제 명령을 실행하는 경우가 있으니 주의)

$ crontab -r

 

Crontab 파일 문법

분(0-59) 시(0-23) 일(1-31) 월(1-12) 요일(0-7) 실행명령(절대경로)

 

예제

# 매일 04:00 backup.sh 실행

0 4 * * * $HOME/backup.sh

 

# 매월 1일 2시 30분 report.sh 실행

30 2 1 * * $HOME/report.sh

 

# 짝수 시간 마다 monitoring.sh 실행

0 0-23/2 * * * $HOME/monitoring.sh

 

닉네임 사용

자주 사용사는 것들은 아래와 같이 미리 정의된 닉네임을 사용할 수 있다.

@reboot  : Run once, at startup.

@yearly  : Run once a year, ie. "0 0 1 1 *".

@annually  : Run once a year, ie. "0 0 1 1 *".

@monthly : Run once a month, ie. "0 0 1 * *".

@weekly  : Run once a week, ie. "0 0 * * 0".

@daily   : Run once a day, ie. "0 0 * * *".

 

@hourly  : Run once an hour, ie. "0 * * * *".

 

실행내용 메일 받기

Crontab 수정시 위에 MAILTO를 선언하면 실행 내용을 메일로 받을 수 있다.

# dsmoon@daum.net 으로 메일 받기

MAILTO="dsmoon@daum.net"

 


# 메일 받지 않기

MAILTO=""


 

 

 

[출처] Crontab 설정|작성자 오라클

AND

1. vi 에디터의 모드

- 명령모드 : 명령어를 실행할 수 있는 상태

- 입력모드 : 원하는 문자열을 입력시킬 수 있는 상태

- ESC : 입력모드에서 명령모드로 전환시킴

 

2. 명령모드 명령어

- i : 입력모드로 전환

- a : 커서의 다음칸부터 입력

- [n]x : n의 수만큼 글자삭제

- [n]dd : n의 라인수만큼 삭제

- u : 명령취소

- [n]yy : n의 라인수만큼 복사

- p : 붙여넣기

- :wq : 저장후 종료

- :w : 저장

- :q : 종료

- :q! : 저장하지않고 종료

 

3. 화면스크롤

- ctrl+f : 한화면 다음으로

- ctrl+b : 한화면 이전으로

- ctrl+d : 반화면 다음으로

- ctrl+u : 반화면 이전으로

- G : 파일의 맨 끝으로 이동

- [n]G : n번째 라인으로 이동

- :[n] : n번째 라인으로 이동

 

4. 검색

- / [검색단어] : 현재 위치에서 아래방향으로 검색단어를 검색

- n : 이전 검색을 반복

- ? [검색단어] : 현재 위치에서 위방향으로 검색단어를 검색

- N : 이전 검색을 반복, 방향은 반대

 

5. 치환

- :[n],[m] s/[찾을 문자]/[치환할 문자]/[옵션]

n번째 줄부터 m번째 줄까지 문자를 치환

m이 $일경우 문서의 끝까지 치환

옵션이 g 일 경우 찾은 문자를 모두 치환

옵션이 c 일 경우 찾은 문자를 치환할 것이지 확인 메세지 출력

 

6. 환경설정

/usr/share/vim/vim61/vimrc_example.vim 을 자신의 홈 디렉토리에 vimrc로 복사하여 편집

- set autoindent 자동 들여쓰기

- set cindent C 파일 자동 들여쓰기

- set number 행번호 표시

- set backup 백업파일 자동생성

 

 

   출처: http://blog.naver.com/imju1196?Redirect=Log&logNo=20184691090

AND

리눅스에서 tar 명령어를 이용한 압축하기와 압축풀기에 대해서 간단하게 정리하려구요.

 

 

1. tar.gz 형태로 압축하기


명령어 : tar -czvf 압축파일명.tar.gz 압축할파일_또는_폴더1 압축할파일_또는_폴더2 압축할파일_또는_폴더3 ....


예로 ./test 라는 폴더에 a1.jpg a2.jpg a3.jpg 라는 파일들을 압축하기 위해서는 다음과 같은 명령어를 통해서 가능하겠죠.


명령어 : tar -czvf images.tar.gz ./test/a1.jpg ./test/a2.jpg ./test/a3.jpg


그럼 images.tar.gz 이라는 압축된 파일이 생성될 것입니다.

 

물론 폴더를 한 번에 압축할 수 있죠. 위의 ./test 폴더를 압축하겠다 하시면. 아래와 같은 명령어를 사용해야겠죠?


명령어 : tar -czvf images.tar.gz ./test


하나 더 추가로 a1.jpg와 a2.jpg는 압축하고, a3.jpg는 압축하기 싫을 때에는 ...


명령어 : tar -czvf --exclude=./test/a3.jpg images.tar.gz ./test


라고 명령어를 작성하시면 !! a3.jpg만 빼고 압축이 될 것입니다.

 

 

2. tar.gz 압축풀기

 

명령어 : tar -xzvf 압축되어있는파일명.tar.gz

 

즉, 위에서 생성한 images.tar.gz 의 압측을 풀려면 다음과 같은 명령어를 사용하시면 되겠죠?

 

명령어 : tar -xzvf images.tar.gz

 

 

3. tar 압축풀기

 

2번이랑 비슷한건데요. 이건 맨뒤에 gz이 안 붙어있죠?

 

이건 옵션에서 z만 빼주시면 됩니다. 예로 good.tar 이라는 파일이 있다고 가정하고, 이 파일을 압축풀면.. 다음과 같은 명령어죠.

 

명령어 : tar -xvf good.tar



 

4. zip 압축풀기

 

그냥 생각났으니깐.. 윈도우에서는 zip으로 압축 많이 사용하자나요. 알집의 영향이려나요?

 

리눅스에서 zip 압축을 풀기위해서는 unzip 이라는 패키지가 설치되어 있어야 합니다.

 

우분투를 깔면 자동으로 설치되는지는 제가 잘 모르겠구요. unzip 패키지가 없으면

 

apt-get install unzip을 통해서 설치하시면 됩니다.

 

그럼 zip 압축을 풀기위해서는요. 예로 happy.zip 이라는 파일이 있다고 가정하면

 

명령어 : unzip happy.zip

 

이러면 압축이 풀리겠죠? :)

 

출처 :http://ngee.tistory.com/215

 

AND