LINUX

파일 관리 명령어(which, whereis)
  • 조회수 7,906
  • 작성일 2008-07-28
  •  
4. which

(1) 설명 : 명령어의 위치나 alias를 보여준다. 이것은 사용자가 현재 위치에서 명령을 실행 시켰을
           때 어떤 명령이 실행되는지를 알고 싶을때 사용할 수 있다. $PATH가 설정되어 있는 경로
           에서만 찾는다.
(2) 사용법
   which command
    => 실행되는 파일의 경로명을 보여준다.
(3) 사용예
   [posein@www share]$ which mv
   alias mv='mv -i'
           /bin/mv
(4) 참고 : alias에 대하여
   1) 설명: alias란 별명이라는 뜻으로 어떠한 명령을 지정해 놓으면 사용자가 그 명령을 실행 시켰
          을 때 alias로 지정해 놓은 명령이 대신 실행되게 된다. 이 기능은 대부분의 shell에서
          지원한다.
   2) alias의 이용
    ㄱ. 특정명령어 실행시에 기본으로 옵션을 사용하게 할 경우
    ㄴ. 나만의 새로운 명령어를 만드는 경우
   3) alias의 지정과 해제
    ㄱ. alias의 지정
       alias 명령어='새로운 명령'
    ㄴ. alias의 해제
       unalias 지정한_명령어
   4) 사용예
    ㄱ. alias ls='ls -alF'
         => ls명령만 실행시켜도 기본으로 -alF 옵션이 지정된다.
    ㄴ. alias lo='ls -alF'
         => lo라는 명령은 기본적으로는 존재하지 않는다. 사용자 특유의 명령어인 lo라는 명령을
           생성하게 된다. 이 경우에 'which lo' 하게 되면 나타난다.
    ㄷ. unalias lo
         => 위에서 지정한 lo라는 alias설정을 해제한다.
(5) 참고: $PATH에 대하여
   1) 설명: PATH는 사용자들이 실행파일을 입력했을 때 찾는 디렉토리의 목록을 저장하고 있는 환경
           변수이다. 쉽게 설명하면 posein이라는 사용자가 쉘 프롬프트에서 'ls'라는 명령을 입력
           하면 PATH라는 변수에 저장되어 있는 경로에서 찾아 그 경로에 ls라는 명령이 존재하면
           실행하게 되고 존재하지 않으면 'command not found'라는 에러메시지를 나타나게 된다.
   2) 변수값 확인
    ㄱ. 일반사용자인 경우
       [posein@www posein]$ echo $PATH
       /usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/posein/bin
    ㄴ. root사용자인 경우
       [root@www root]# echo $PATH
       /usr/kerberos/sbin:/usr/kerberos/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:-생략-
         => 일반사용자보다 시스템관리명령어들이 위치하는 /sbin 디렉토리가 더 존재함을 알 수
          있다.
   3) 참고
    ㄱ. 설명: 몇몇 명령어는 실행권한이 없다기 보다는 이 PATH로 등록되지 않아서 실행안되는 경우
             가 있다.
    ㄴ. 사용예
      a. [posein@www posein]$ ifconfig
         -bash: ifconfig: command not found
           => ifconfig라는 명령어만 내리면 실행되지 않는다.
      b. [posein@www posein]$ /sbin/ifconfig
         eth0      Link encap:Ethernet  HWaddr 00:C1:58:23:35:19
                   inet addr:192.168.0.120   Bcast:203.247.40.255  Mask:255.255.255.0
                   UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                   RX packets:92128289 errors:312 dropped:0 overruns:0 frame:0
                   TX packets:3385289 errors:0 dropped:0 overruns:0 carrier:0
                   collisions:1604382 txqueuelen:100
                   RX bytes:3334187353 (3179.7 Mb)  TX bytes:3091351999 (2948.1 Mb)
                   Interrupt:5 Base address:0xf000
           => 절대경로와 함께 입력하면 실행결과가 나옴을 알 수 있다.

5. whereis

(1) 설명 : 찾고자 하는 명령을 $PATH로 지정된 경로에서 찾아서 소스, 실행 파일, 매뉴얼 페이지
           등이 어느 위치에 있는지를 알려준다.
(2) 사용법
   whereis [option] filename
(3) option
   -b : (실행) 파일만 찾는다.
   -m : 매뉴얼 페이지만 찾는다.
   -s : 소스만 찾는다.
(4) 사용예
   [posein@www share]$ whereis mv
   mv: /bin/mv /usr/share/man/man1/mv.1.gz
     => 특별한 옵션이 없으면 소스, 실행파일, 매뉴얼 페이지 순으로 나타난다.