지난 호에는 DOS에서 dir과 같은 명령인 ls에 대해 알아 보았다. 이번에는 어떤 명령에 대해 알아볼까? 필자도 고민을 했다. 이유는 이 연재가 초보자를 위한 것이므로 많은 선택이 있기 때문이다. 이번에 좀 더 많은 명령을 알아보도록 하자. 우선은 명령어에 대해 알아보도록 하자. 비유를 위해 DOS를 곁들인다. DOS에서는 내부 명령어와 외부 명령어가 있다는 사실은 다 알 것이다. 그렇다면 리눅스에는 내부 명령어, 외부 명령어가 나뉘어 있을까? 결론만 말하자면 그렇진 않다. 리눅스는 내부 명령어라는 개념이 없다. 모두 외부 명령어인 것이다. 다만 shell에서 수행되는 명령이 내부 명령어라면 내부 명령어라 할 수 있을 것이다. 이 점을 알고 넘어가도록 하자.
(1) 자신의 passwd 바꾸기
passwd를 바꾸어 보자. 리눅스를 사용하는 대부분이 혼자서 사용할 것이다. 혼자 사용하게 되면 시스템 관리까지 같이 해야 한다. 우선은 기본적인 자신의 패스워드를 바꾸어보자.
[root@lovin/]# passwd New UNIX password: (1) Retype new UNIX password: (2) passwd: all authentication tokens updated successfully [root@lovin/]#
prompt에서 passwd를 입력하면 (1)과 같은 글이 뜬다. 여기서 자신의 새로운 패스워드를 친다. 그럼 다시 (2)가 뜨는데, 여기서는 방금 입력한 passwd를 다시 한번 쳐주면 된다. passwd를 확인하는 절차인 것이다. 그럼, 다른 사람의 passwd를 바꾸어 줄 때는 어떻게 할까? 바로 "passwd usename" 하면 된다. 예)를 보자.
예) [root@lovin/]# passwd songym New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully [root@lovin/]#
바로 자신의 패스워드를 바꿀 때처럼 나올 것이다. 그러나, 자신의 패스워드가 바뀐게 아니라, songym이라는 계정의 passwd가 바뀐 것이다.
Tip) passwd를 입력할 때, 잘못 입력할 때가 있을 것이다. 초보자들은 잘못 입력하면 엔터를 그냥 치는데, 그러지 말고 CTRL+U를 누르면 보이지 않게 입력된 글자가 다 지워진다. 엔터를 치지 않고 다시 입력할 수 있다. CTRL+U는 프롬프트에서도 가능하다. 아무거나 입력한 후에 CTRL+U를 눌러보라. 깨끗이 지워진다.
초보자라도 cd, rmdir, mkdir은 알 것이다. (도스를 사용해 봤으므로...) 파일을 다루는 것은 아주 중요할 것이다. 리눅스 명령어 강좌이므로 파일을 다루는 명령에 대해 알아보자. 우선은 압축 파일에 대해 알아보자.
(2) tar 압축에 대해
tar는 현재의 모든 유닉스나 리눅스에서 가장 많이 쓰이는 압축일 것이다. 리눅스의 tar는 솔라리스나 일반 사용의 tar보다 훨씬 진보적이다. 여러 리눅서들은 확장자가 *.tgz인 것을 많이 보았을 것이다. 이는 리눅스의 tar가 tar압축과 gzip압축을 동시에 할 수 있기 때문에 확장자가 *.tgz인 것이다. (일반 상용 유닉스는 *.tar.gz이다. 이는 tar를 하고 나서 다시 gzip을 하기 때문이다. 리눅스는 한번에 된다. 얼마나 편리한가?.......^^;)
자! 이제 예제를 들어보면서 알아보자. 이제 tar를 이용해서 압축을 해보고, 그 압축 파일을 보고, 다시 압축 파일을 푸는 것까지 알아보자.
1) tar로 압축하기
[root@lovin/]# cd WindowMaker-0.6.3/ [root@lovin /WindowMaker-0.6.3]# ls
BINDINGS |
LICENSE |
Version |
configure* |
test/ |
BUGS |
LICENSE,LIB |
acconfig.h |
configure.in |
stil |
CHANGES |
Library/ |
asclock/ |
headers/ |
wmaker* |
CREDITS |
Makefile |
build* |
install-sh* |
wmlib/ |
Documentation/Makefile.in |
config.cache |
mkinstalldirs* |
wrlib/ |
FAQ |
NEWS |
config.h.in |
patches/ |
|
INSTALL |
README |
config.log |
pixmaps@ |
|
INTERFACE |
TODO |
config.status |
src/ |
|
[root@lovin/WindowMaker-0.6.3]#
위는 필자의 windowmaker 디렉토리이다. 압축을 해보자.
[root@lovin /WindowMaker-0.6.3]#tar cvf windowmaker.tar <enter>
하면
BINDINGS BUGS CHANGES CREDITS Documentation/ Documentation/contributors.texi Documentation/freedon.texi Documentation/funding.texi Documentation/gpl.texi Documentation/Makefile.in Documentation/header.tmpl.texi Documentation/programmer-iface.texi Documentation/texi2html.in Documentation/customization.texi Documentation/faq.texi Documentation/installation.texi Documentation/intro.texi Documentation/related-sw.texi Documentation/usage.texi Documentation/wmaker-tmpl.texi ~중간생략~ wrlib/convolve.c wrlib/config.log wrlib/raster.o wrlib/config.status wrlib/load.o wrlib/Makefile wrlib/config.h wrlib/gradient.o wrlib/xpm.o wrlib/png.o wrlib/convert.o wrlib/context.o wrlib/misc.o wrlib/scale.o wrlib/libwraster.a [root@lovin/WindowMaker-0.6.3]#
다하면 프롬프트 상태로 떨어진다. 다시 ls를 해보자.
[root@lovin /WindowMaker-0.6.3]# ls BINDINGS LICENSE Version config.status* src/ BUGS LICENSE,KIB acconfig.h configure* test/ CHANGES Library/ asclock/ configure.in util/ CREDITS Makefile build* headers/ windowmaker.tar Documentation/ makefile.in config.cache install-sh* wmaker* FAQ NEWS config.h mkinstalldirs* wmlib/ INSTALL README config.h.in patches/ wrlig/ INTERFACE TODO config.log pixmaps@ [root@lovin/WindowMaker-0.6.3]#
보면 맨 오른쪽에 windowmaker.tar 파일이 보인다. 하나의 파일로 묶은 것이다. 자세히 보자 ls -l을 해보자. tar로 묶은 파일이 보이면서 용량도 보일 것이다. 약 3.2M 이다.
[root@lovin /WindoMaker-0.6.3]#ls -l . . . . . drwxr-xr-x 2 root root 1024 Jan 11:21:17 util/ -rw-r-r- 1 root root 3256320 Jan 18:14:07 windowmaker.tar -rwxr-xr-x 1 root root 219114 Nov 6 14:09 wmaker* drwxr-xr-x 2 root root 1024 Jan 11 21:17 wmlib/ drwxr-xr-x 3 root root 1024 Jan 11 21:17 wrlib/
이는 정확히 압축이 된게 아니다. tar는 여러 파일을 하나의 파일로 묶을 뿐 직접 압축을 하진 않는다. 압축을 하는 것은 나중에 설명하기로 하고 저 windowmaker.tar 파일에 어떤 것들이 들어 있는지 tar 파일을 들여다보자.
[root@lovin /WindowMaker-0.6.3]# tar tvf windowmaker.tar <enter>
하면 화면이 스크롤 되면서 막 지나간다. 파이프와 more를 같이 써서 한 화면을 보자.
root@lovin /WindowMaker-0.6.3]#tar tvf windowmaker.tar |more <enter> -rw-r-r-root/root 2932 Jul 26 14:29 1997 BINDINGS -rw-r-r-root/root 693 Jul 26 14:29 1997 BUGS -rw-r-r-root/root 12945 Jul 26 14:29 1997 CHANGES -rw-r-r-root/root 761 Jul 26 14:29 1997 Documentation/wmaker_1.html -rw-r-r-root/root 18910 Jul 26 14:29 1997 Documentation/wmaker_2.html -rw-r-r-root/root 3118 Jul 26 14:29 1997 Documentation/wmaker_3.html -rw-r-r-root/root 8132 Jul 26 14:29 1997 Documentation/wmaker_4.html -rw-r-r-root/root 940 Jul 26 14:29 1997 Documentation/wmaker_5.html -rw-r-r-root/root 848 Jul 26 14:29 1997 Documentation/wmaker_6.html ─More─
이렇게 한 화면씩 보여준다. enter를 누르면서 파일들을 보자. 자, 그럼 이번에 tar 파일을 압축으로 작게 만들어 보자. 우선은 gzip을 이용하자.
[root@lovin /WindowMaker-0.6.3]#gzip windowmaker.tar <enter> [root@lovin /WindowMaker-0.6.3]#
그냥 프롬프트로 떨어지면 압축이 잘 끝난 것이다. 자, 이제 다시 ls -l을 눌러보자.
[root@lovin /WindowMaker-0.6.3]#ls -l <enter> drwxr-xr-x 2 root root 1024 Jul 26 14:30 headers/ -rwxr-xr-x 1 root root 2186 Jul 26 14:30 install-sh* -rwxr-xr-x 1 root root 619 Jul 26 14:30 mkinstalldirs* drwxr-xr-x 2 root root 1024 Jul 26 14:30 patches/ lrwxrwxrwx 1 root root 28 Jan 11 21:13 pixmaps -> Library/WindowMaker/Pixmaps/ drwxr-xr-x 4 root root 2048 Jan 16 20:02 src/ drwxr-xr-x 2 root root 1024 Jan 11 21:17 test/ drwxr-xr-x 2 root root 1024 Jan 11 21:17 util/ -rw-r-xr-x 1 root root 802151 Jan 18 14:07 windowmaker.tar.gz -rwxr-xr-x 1 root root 219114 Nov 6 14:30 wmaker* drwxr-xr-x 2 root root 1024 Jan 11 21:17 wrlib/ drwxr-xr-x 3 root root 1024 Jan 11 21:17 wrlib/ [root@lovin /WindowMaker-0.6.3]#
아까는 3.2M였던 파일이 80만 바이트로 줄었다. 파일명은 windowmaker.tar.gz이다. 이젠 tar와 gzip을 함께 이용하는 법에 대해 알아보자. 압축 파일을 지우자.
[root@lovin /WindowMaker-0.6.3]#rm -rf windowmaker.tar.gz <enter> [root@lovin /WindowMaker-0.6.3]#tar cvfz windowmaker.tgz*
windowmaker.tar.gz 파일을 지우고 나서 tar cvfz windowmaker.tgz* 하면 아까처럼 화면이 스크롤 되면서 올라갈 것이다. 자, 이상 없이 프롬프트로 나왔으면 다시 ls -l을 해보자.
[root@lovin /WindowMaker-0.6.3]#ls -l ~ 중간생략! -rwxr-xr-x 1 root root 2186 Jul 26 14:30 install-sh* -rwxr-xr-x 1 root root 619 Jul 26 14:30 mkinstalldirs* drwxr-xr-x 2 root root 1024 Jul 26 14:30 patches/ lrwxrwxrwx 1 root root 28 Jan 11 21:13 pixmaps -> Library/WindowMaker/Pixmaps/ drwxr-xr-x 4 root root 2048 Jan 16 20:02 src/ drwxr-xr-x 2 root root 1024 Jan 11 21:17 test/ drwxr-xr-x 2 root root 1024 Jan 11 21:17 util/ -rx-r-r- 1 root root 802196 Jan 18 14:31 windowmaker.tgz -rwxr-xr-x 1 root root 219114 Nov 6 14:09 wmaker* drwxr-xr-x 2 root root 1024 Jan 11 21:17 wmlib/ drwxr-xr-x 3 root root 1024 Jan 11 21:17 wrlib/ [root@lovin /WindowMaker-0.6.3]#
아까처럼 tar 따로 gzip 따로 하지 않고 한번에 파일 묶기와 압축을 동시에 한 것이다. 이는 아주 편리한 것이다. 여기까지 압축화일 tar에 대해 간략하게 나마 알아보았다. 더 많은 옵션이 있지만 이 정도만 알아도 자신의 압축 파일은 어느 정도 다룰 수 있을 것이다. 많은 옵션과 명령어의 조합이 정말이지 리눅스를 비롯한 유닉스의 신비로움을 더해주는 것이 아닐까 생각한다. 연재 중에 궁금한 사항은 필자의 E-mail : songym@cnstech.co.kr 로 보내주기 바란다. |