안녕하세요. Cellularhacker입니다. 굉장히 오랜만에 인사드리는 것 같습니다.


이번에는 리눅스 환경에서 기본적으로 설치되는 패키지들을 이용해서 파일을 압축/풀기를 하는 방법에 대해서 소개하겠습니다.



먼저, tar의 개념에 대해서 알아보겠습니다.

tar란, Unix/Linux에서 사용되는 파일 아카이브(archive)를 하기 위해 사용되는 명령어 입니다. 여기서 아카이브라고 하면, 말 그대로 저장을 하는 의미이지만 조금 생소한 단어이지요.

조금더 쉽게 이야기하면, "여러개의 파일이나 디렉터리를 쉽게 보관하기 위해 하나의 파일로 만드는 작업"이라 할 수 있습니다.


표기를 하자면, [여러개 파일] or [디렉터리] --> [하나의 파일] 이 되겠네요.



<tar의 사용법>

  • 아카이브(tar로 묶기)
    tar -cvf 보관할_파일이름.tar 보관할_파일1 [보관할_파일2 보관할_디렉터리1 ...]
      대괄호가 묶여있네요. 즉, 파일 하나 혹은 디렉터리 하나를 지정해도 되고, 여러개를 뒤에 붙여도 된다는 말입니다.


<tar_1.png>


  • 아카이브 풀기
    tar -xvf 아카이브_파일.tar
      이렇게 명령을 입력하여 아카이브(tar)를 풀게되면, 아카이브(tar, 묶을 때) 있었던 디렉터리 구조 그대로 압축이 해제 되게 됩니다. 조금 말이 어려운가요? 그러면 보기 쉽게 트리 구조로 나타내어 보겠습니다.

    tmp (현재 디렉터리)
     ㄴ file1
     ㄴ txt1.txt
     ㄴ txt2.txt
     ㄴ archive/
          ㄴ abc.txt
          ㄴ bcd.txt
          ㄴ efg.txt

    이런 트리 구조로 되어있던 파일을 tar로 묶었을때, 풀었을 때에도 위와 똑같은 구조로 나온다는 뜻입니다.

<tar_2.png>


  • 아카이브 된 내용 보기
    tar -tvf 아카이브_파일.tar
      놀랍게도(?) tar는 아카이브된 파일에 어떠한 것들이 들어있는지를 알 수 있는 미리보기 기능이 있습니다. 결과 화면은 'ls -al' 과 유사합니다.





오늘은 tar의 정말 기본적이고 자주 쓰이는 옵션들과 함께 알아보았습니다. 다음 시간에는 gzip과 bzip2에 대하여 알아보도록 하겠습니다.


부족한 글 읽어주셔서 감사합니다.


- Cellularhacker -

안녕하세요~ 오랜만에 돌아온 Cellularhacker입니다.
최근에 일정이 너무 겹치는 바람에 제 공부도 소흘했던 것 같습니다^^;
이번에는 Vim에서 특정 문자열을 치환, 즉 바꾸는 방법에 대해서 알아보겠습니다.
사용 되는 명령은 다음과 같습니다


:%s/[치환할 대상]/[치환할 내용] 


바로 실전에 들어가보겠습니다.


조금 전까지만 해도 제가 삽질을 하고 있었던건 Telegram 으로 서버 모니터링을 해보기 위하여 설정 중에 있었습니다. 물론 이것을 X11설치하고... GNOME 설치하고... ssh -X 로 열어서 gedit으로 해도 되지만... 이것을 비효율 적입니다. CLI(or TUI)환경에 익숙하신 분들이시면 아마 일부러 vim을 더 많이 쓰실지도 모른다는 기대를 하면서...

:%s/home\/Username/root 

를 입력하면...













짜잔!  쉽게 변경 된 것을 확인 할 수 있습니다. 위 명령어가 동작했다는 사실을 토대로 경로를 입력 하고 싶을때에는 늘 그랬듯이 역슬러시(\)를 사용하면 되는 것을 알 수 있습니다.


(그나저나 저거 삽질 성공하신 분 계신가요? 전 왜 안될까요..)

Hello Everybody. This is Cellularhacker.

The Shell Shock zero day. Did you patched it?

It was really shocked for me; So I patched it quickly.


What is Shell Shcok?
http://www.engadget.com/2014/09/25/what-is-the-shellshock/


@Debian Based (ex. Ubuntu, Mint, etc)

Upgrade all packages.

$ sudo apt-get update && sudo apt-get upgrade

Up grade only bash package.

$ sudo apt-get update && sudo apt-get install --only-upgrade bash


@Red Hat Based (ex. CentOS, Fedora, etc)

# yum update bash


@Arch Linux Based

# pacman -Syu


@OS X   (From : Shellshocker.net)

Use brew

brew update
brew install bash
sudo sh -c 'echo "/usr/local/bin/bash" >> /etc/shells'
chsh -s /usr/local/bin/bash
sudo mv /bin/bash /bin/bash-backup
sudo ln -s /usr/local/bin/bash /bin/bash

Use MacPorts

sudo port self update
sudo port upgrade bash



It is convenient to use the code below:  (From : LinuxNewsPro)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
# This script will log into each of your servers and execute the command below
 
servers=(
# Put your list of servers here
111.222.333.444
123.123.123.123
10.10.10.10
15.22.22.22
)
for server in ${servers[@]}
do
# Here's the command you're going to run on each
ssh $server 'yum -y update bash'
done



( * You can also see in these web sites: www.hackbot.kr | cellularhacker.cisaid.net | blog.naver.com/hackbot01 )

'Notice' 카테고리의 다른 글

Did you patched Shell Shock?  (0) 2014.09.27
배쉬 쉘 쇼크(Bash Shell Shock) 패치하셨나요?  (1) 2014.09.27

+ Recent posts