강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

ls, passwd, tar (초보자를 위한 리눅스 명령어)

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

icon01.giftitle04.gif


저 자 : 송영문 / songym@cnstech.co.kr

 

많은 사람들이 리눅스를 사용하고, 또 배우기 위해 리눅스라는 엄청난(?) 프로그램에 도전한다. 필자 역시 93년부터 리눅스와 장기적인 싸움 아닌 싸움을 하고 있다. 필자처럼 아직은 부족한 사람이 이렇게 남에게 도움이 될 수 있는 글을 적을 수 있는 기회가 왔다는 것에 대해 하느님께 감사한다. 여기서 살펴볼 내용들은 초보자를 위한 내용들이다. 즉, 리눅스 설치는 했지만 아직 아무 것도 못하는 분들을 위한 기초적인 강좌가 될 것이다. 자 그럼 이제 시작해 보자.

Is = dir/w

흔히들 도스나 윈도우는 사용해 보았을 것이다. 도스에서 디렉토리의 파일을 보려면 dir을 치면 된다. 그렇다면, 리눅스에서는 뭘까? 바로 ls 이다. ls는 많은 옵션을 가지고 있다. 성미가 급한 분은 man ls를 해보시길...

이번 연재에서는 ls에서 가장 많이 사용되는 것들만 알아보기로 한다.

 

(예 1) ls
 

[root@lovin/usr]# ls
X11@        games/                linux/                    share/
X11R6/      home2/                local/                    song/
X386@      i486-linuxaout/      lost+found/           src/
bin/           include/               man/                     tmp@
dict/          info/                    openwin/                
doc/          lib/                      qt/
etc/           libexec/               sbin/
[root@lovin/usr]#

 

그냥 ls 를 치면 해당 디렉토리의 파일들이 나열된다. 위는 필자의 /usr 디렉토리이다.

여기서 잠깐 파일의 형태를 설명한다.

여러 파일들 중에 "/" 가 붙은 파일들이 보일 것이다. 이것들은 /usr 밑의 서브 디렉토리를 말하며, "@"가 붙은 것은 링크(Link)된 파일들을 뜻한다. 아무것도 없이 그냥 파일명만 있는 것은 일반 파일이다. 여기까지 다 이해 가리라 믿는다.

 

(예 2) ls-l

옵션 -l 이 붙은 것이다. 소문자 l 은 long을 뜻한다.

파일들이 아주 길게 한 페이지를 넘어갈 것이다. 이는 리눅스 파일들에 대한 정보를 파일명과 함께 나열된 것이다.
 

[root@lovin/usr]# ls-l
total 70
lrwxrwxrwx      1 root root             5 Nov   11  03:58  X11->X11R6/
drwxr-xr-x      7 root root        1024 Nov  11  03:55  X11R6
lrwxrwxrwx      1 root root             5 Nov   11  03:58  386->X11R6/ 
drwxr-xr-x      3 root root      17408 Dec   6   10:27  bin/
drwxr-xr-x      2 root root        1024 Nov  11  04:11  dict/ 
drwxr-xr-x   195 root root       5120 Dec   6   10:26  doc/
drwxr-xr-x      2 root root        1024 Feb   7   1996   etc/
drwxr-xr-x      4 root root        1024 Nov  11  16:13  games/
drwxr-xr-x      4 root root        1024 Nov   8   13:01  home2/
drwxr-xr-x      3 root root        1024 Nov  11  03:58  i486-linuxaout/
drwxr-xr-x    34 root root        4096 Nov  15  10:44  include/ 
drwxr-xr-x      2 root root        6144 Nov  15  10:44  lib/ 
drwxr-xr-x    58 root root        6144 Dec    5  14:41  lib/ 
drwxr-xr-x      3 root root        1024 Nov  11  04:00  libexec/ 
drwxr-xr-x      4 root root        2048 Dec   6  10:25   linux/ 
drwxr-xr-x    16 root root        1024 Nov  25  16:21  local/ 
drwxr-xr-x      2 root root      12288 Nov  11  03:55  local+found/ 
drwxr-xr-x    13 root root        1024 Nov  16  02:03  man/ 
drwxr-xr-x      7 root root        1024 Nov  11  04:13  openwin/ 
drwxr-xr-x    10 root root        1024 Nov  11  04:09  qt/ 
drwxr-xr-x      2 root root        3072 Dec   6  10:27  sbin/ 
drwxr-xr-x    13 root root        1024 Nov  24  14:17  share/ 
-rw-r--r--     1 root root             3 Dec   8  12:52  song/ 
drwxr-xr-x      4 root root        1024 Nov  11  04:09  src/ 
lrwxrwxrwx      1 root root            10 Nov  11  03:55  tmp->../var/tmp/ 
    ( 1 )          (2) (3)  (4)           (5)   (      6      )      (7)


()의 숫자들을 보라. 지금부터 자세히 설명하겠다.

우선 (1) 은 모두 10개 자리로 되어있다. 그 중의 d는 디렉토리를 의미한다. 그 다음의 3자리 그러니까 d 다음의 3자리는 해당 파일 소유자의 권한을 의미한다. 대부분 rwx로 되어있을 것이다. r 은 읽기, w 는 쓰기, x 는 실행을 뜻한다. 다시 그 다음의 3자리는 소유 그룹의 권한을 뜻하며, 맨 마지막 3자리는 그 외의 사람들의 권한을 뜻한다.

(2) 은 해당 파일이나, 디렉토리의 링크 수를 뜻한다. 리눅스나 유닉스는 파일이 여러 다른 디렉토리나 다른 파일에 링크가 되어있다. (2)는 바로 그 수를 나타내는 것이다.

(3), (4) 번은 소유자와 소유 그룹을 나타낸다. root(3) root(4)로 대부분 되어있다. 이는 해당 파일의 소유자가 root 이고, 소유그룹도 root 라는 것이다. 소유 그룹과 소유자 개념은 다음 회에 설명하겠다.

(5) 는 파일의 용량이다.

(6) 은 파일이 생성된 날짜이며, (7) 은 파일명이다. 여기선 링크된 파일들도 보여준다.

 

(예 2) ls-F

옵션 -F가 붙었다. 이것의 결과는 이미 여러분은 보았다. 바로 ls 했을 때 서브 디렉토리에 "/" 가 붙은 것이다.

원래의 ls 는 디렉토리와 파일을 구분하지 않고 보여준다. 그럼 사용자측에서는 구분이 안가서 불편하기 짝이 없을 것이다. 그래서 사용된 옵션이 -F이다.

지금은 칼라 ls 로 디렉토리, 일반파일, 링크파일, 압축된 파일을 보여주지만, 예전의 리눅스는 그러지 못했다. 지금도 솔라리스나, 그 외의 유닉스에서는 기본적으로는 구분이 되어 있지 않다. 그런 점에서 리눅스는 정말 편리한 시스템인 것이다.

자 ls-F 의 결과물을 보자.
 

[root@lovin/usr]# ls-F
X11@        games/                linux/                    share/
X11R6/      home2/                local/                    song/
X386@      i486-linuxaout/      lost+found/           src/
bin/           include/               man/                     tmp@
dict/          info/                    openwin/                
doc/          lib/                      qt/
etc/           libexec/               sbin/
[root@lovin/usr]#


맨 위의 ls 와 똑같을 것이다. 이는 필자의 시스템, 즉 필자의 .bashrc 에 이미 -F 옵션이 정의되어 있기 때문이다. 만약, 알짜 레드햇, 알짜 슬랙웨어를 쓰는 분이라면 기본적으로 되어있을 것이다. *.bashrc 파일의 설명은 기회가 되는대로 하겠다.

지금까지 ls에서 가장 많이 사용되는 옵션들을 알아 보았다.

그 밖의 여러 옵션들은 man 페이지를 참조하기 바란다. man ls 하면 된다. 필자가 알기로는 유닉스/리눅스 는 대략 300~400 개의 명령어가 있다고 한다. 이 많은 명령어들을 일일이 알 필요도 없다. 그때그때 man 페이지를 참고 하면 될 것이다. 그러니 도스처럼 생각해서 명령어를 다 외우겠다는 생각은 버리기 바란다.

μ

필자도 아직 리눅스 명령어를 전부 다 알지 못한다. 아니 그 누구도 리눅스 명령어나 옵션을 다 알 수 없을 것이다. 이유는 리눅스는 살아있고 끊임없이 진보하는 OS 이기 때문이다. 하루가 다르게 응용 풀그림들이 나오는데, 어찌 다 알 수 있겠는가? 너무 조급하게 리눅스를 배우려고 하면 금방 지치게 된다. 차근차근 익혀 나가기 바란다.

 

리눅스에 대한 필자의 의견 하나

필자는 많은 OS 들을 다루어 왔다. 도스, 윈도우, OS/2, 넥스트스텝, 솔라리스, 리눅스 등등 현존하는 웬만한 OS 들은 거의 다루어 봤다고 생각한다. 그 중 필자가 가장 좋아하는 것은 LINUX 이다. 93년부터 대하기 시작한 리눅스는 쓰면 쓸수록 정말 만족감을 준다.(단, 사용자 인터페이스 부분이 좀 미흡하긴 하지만, 각종 윈도우 매니저로 극복할 수 있다) 지금은 솔라리스와 리눅스를 사용하고 있다. 솔라리스는 회사 내의 네트웍을 사용할 때 쓰고 있으며, 백업용으로도 사용한다.(Sparc 에다가 레드햇을 깔았는데 정말이지 너무 좋았다.) 리눅스는 인터넷 서버, 각종 서버의 OS 로 사용하고 있다. 아직까지 다운이 되거나, 이상현상을 보인 경우는 없다. 회사에서 솔라리스만 사람들도 리눅스를 보더니, 리눅스의 성능에 입을 다물지 못하였다.

아직 리눅스의 성능을 모르는 사용자들이 많을 것이다. 요즘은 리눅스에 대한 자료나 서적이 많이 나와 있다. 천천히 공부하기 바란다. 그리고 각 통신망마다 리눅스 동호회는 있다. 자신이 사용하는 통신망의 리동(리눅스 동호회)을 적극 이용하기 바란다.


icon01.giftitle06.gif


저자 : 송 영 문 (songym@cnstech.co.kr)  

 

 

지난 호에는 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 로 보내주기 바란다.

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,032 명
  • 현재 강좌수 :  35,773 개
  • 현재 접속자 :  163 명