'Linux'에 해당되는 글 46건

  1. 2008.06.04 lighthttpd install
  2. 2008.06.04 설치
  3. 2008.06.04 BIND,NAMED? DNS설정
  4. 2008.06.04 Command2
  5. 2008.06.04 Vi 편집기
  6. 2008.06.04 Command

lighthttpd install

Linux 2008. 6. 4. 14:00
Lighttpd 설치

원본 : http://theexciter.com/articles/installing-lighttpd-on-osx

Lighttpd 1.3.11 has been released, which includes my patch for osx, I’ve updated this post to reflect this, since the patching step is no longer needed.

There’s been a lot of buzz in the Ruby on Rails community lately about lighttpd which claims to be a lightweight, secure and a friggin’ fast http server. And guess what? It most certainly is!


Below are my notes of getting lighttpd 1.3.10 up and running on Mac OSX 10.3with mod_mysql_vhost and mod_fastcgi. Please note that the patch andsymlinking of libmysql may or may not be needed in future versions oflighttpd. Also note that the MySQL version used below is based on the ServerLogistics Complete MySQL package, if you’re using a different package or your own the paths may be different, do a locate mysql_config to figure out where it is.


First of all we need the FastCGI developer kit:


curl -O http://fastcgi.com/dist/fcgi-2.4.0.tar.gz

tar xzvf fcgi-2.4.0.tar.gz

cd fcgi-2.4.0

./configure

make

sudo make install

We also need the pcre libraries:

(cd ..)

curl -O ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.4.tar.gz

tar xzvf pcre-5.0.tar.gz

cd pcre-5.0

./configure

make

sudo make install

Then, we need to download and unpack the lighttpd tarball:

(cd ..)

curl -O http://www.lighttpd.net/download/lighttpd-1.3.11.tar.gz

tar -xzvf lighttpd-1.3.11.tar.gz

cd lighttpd-1.3.11/

I wanted to be able to use the mod_mysql_vhost and since I’m using the ServerLogistics MySQL package, installed in /Library/MySQL/ a bit of manual tinkering was requirred. The easiest was to create a symlink for the header files to /usr/local/include/mysql:

sudo ln -s /Library/MySQL/include/mysql /usr/local/include/mysql

Note: This probably isn’t really the optimalsolution, but I didn’t really feel like poking around too much in thesources to correct the path problem

Next we need to run the configure script, telling it we want to use mysql for the vhosts:

./configure --with-mysql=/Library/MySQL/bin/mysql_config

If all is good you should see something like this once the configure script is done:

Plugins:



mod_rewrite : enabled

mod_redirect : enabled

mod_ssi : enabled

mod_cgi : enabled

mod_fastcgi : enabled

mod_proxy : enabled

mod_evhost : enabled

mod_simple_vhost: enabled

mod_mysql_vhost : enabled

mod_access : enabled

mod_alias : enabled

mod_setenv : enabled

mod_usertrack : enabled

mod_compress : enabled

mod_auth : enabled

mod_status : enabled

mod_accesslog : enabled

mod_rrdtool : enabled

mod_secdownload : enabled

mod_expire : enabled

And finally we compile and install the binaries:



make

sudo make install

Hooray! We’ve successfully installed lighttpd, now we just need totake care of the config and log files and we’re good to go, start bycopying the lighttpd.conf to /etc (I think that’s a good place to haveit, you may disagree)

sudo cp doc/lighttpd.conf /etc/lighttpd.conf

Configuring the lighttpd.conf should be a breeze, it’s fairly self explanatory, also, please consult the documention

Now create and set the proper permissions on our two log files:

sudo touch /var/log/lighttpd.error.log  

sudo chmod 666 /var/log/lighttpd.error.log



sudo touch /var/log/lighttpd.access.log

sudo chmod 666 /var/log/lighttpd.access.log

Finally, we can start the lighttpd webserver and start having some fun with it:

sudo lighttpd -f /etc/lighttpd.conf

You may wish to add the -D flag so it’ll keep runningin the console, instead of as a daemon, to make it easier to shut downwhile you’re testing your config and such.

That’s it! You’re all set to go, using mysql based vhosts is fairly straingforward, just take a look at the documentation exampleto get an idea how to set it up. If one where to speculate freely onecould imagine that we set ourselves up a complete environment fordeveloping Rails projects, using Rails. Perhaps I’ll even write anarticle about that in the future, until then; enjoy your lighttpd!

  • mongrel cluster proxy 사용을 위한 lighttpd.conf 설정
var.appname = "mailhost"
#server.modules = ("mod_rewrite", "mod_accesslog", "mod_fastcgi", "mod_compress", "mod_proxy")
server.modules = ("mod_accesslog", "mod_compress", "mod_proxy")
server.port = 80
server.username = "cndjr94"
server.groupname = "admin"
server.pid-file = "/WEB/config/pids/lighttpd.pid"
accesslog.filename = "/WEB/config/log/lighttpd/access_log"
server.errorlog = "/WEB/config/log/lighttpd/error_log"
server.indexfiles = ( "index.html" )
#url.rewrite = ( "^/$" => "index.html", "^([^.]+)$" => "$1.html")
server.document-root = "/WEB/webapp/" + var.appname + "/public"
server.error-handler-404 = "/dispatch.fcgi"

proxy.balance = "fair"
proxy.server = ( "/" =>
( ( "host" => "127.0.0.1", "port" => 8001 ),
( "host" => "127.0.0.1", "port" => 8002 ),
( "host" => "127.0.0.1", "port" => 8003 ),
( "host" => "127.0.0.1", "port" => 8004 ) ) )

mimetype.assign = (
".css" => "text/css",
".gif" => "image/gif",
".html" => "text/html",
".jpeg" => "image/jpeg",
".jpg" => "image/jpeg",
".js" => "text/javascript",
".pdf" => "application/pdf",
".png" => "image/png",
".txt" => "text/plain",
)

'Linux' 카테고리의 다른 글

chown  (0) 2008.07.25
linux java install  (0) 2008.06.04
설치  (0) 2008.06.04
BIND,NAMED? DNS설정  (0) 2008.06.04
Command2  (0) 2008.06.04
Posted by 으랏차
,

설치

Linux 2008. 6. 4. 13:58

yum install mysql-server

yum install gcc*

yum install bzin2*

yum install pcre*

curl -O http://www.lighttpd.net/download/lighttpd-1.4.19.tar.gz

tar zxvf lighttpd-1.4.19.tar.gz

./configure

make

su

make install

cd /usr/local/lighttpd-1.4.19/openwrt

cp lighttpd.conf /etc/

vi /etc/lighttpd.conf

mod_proxy 추가

$HTTP["host"]== "www.isfou.com" {

server.document-root = "/www/docs/isfou.com/"

proxy.server = (

  "/memozee" => ( ( "host" => "127.0.0.1","port" => 8080 ) ),

  "/explorer" => ( ( "host" => "127.0.0.1","port" => 8080 ) )

)

}

$HTTP["host"] = "file.isfou.com" {

server.document-root = "/www/docs/isfou.com/file/"

}

'Linux' 카테고리의 다른 글

linux java install  (0) 2008.06.04
lighthttpd install  (0) 2008.06.04
BIND,NAMED? DNS설정  (0) 2008.06.04
Command2  (0) 2008.06.04
Vi 편집기  (0) 2008.06.04
Posted by 으랏차
,

BIND,NAMED? DNS설정

Linux 2008. 6. 4. 13:57

만일 설치부터 필자를 계속 따라오신 분이라면 현재의 서버엔 BIND 9가 설치되어 있을 것이다.

확인해 보도록 하자.


# rpm -qa | grep bind
bind-libs-9.3.3-10.el5
bind-9.3.3-10.el5
ypbind-1.19-8.el5
bind-utils-9.3.3-10.el5
bind-chroot-9.3.3-10.el5


=======================================================================================

- CentOS 5.1 설치시 패키지선택에서 DNS 이름서버를 선택하면 위의 내용이 모두 설치됨.
=======================================================================================


네임서버도 설치되어 있나 확인해 보자.

# rpm -qa | grep name
없다...젠장.... 설치해야 한다 ㅠㅠ


# yum install caching-nameserver

( 위에 걸로 설치가 안되면 caching-nameserver-9.3.3-10.el5 다 입력해준다. )

이젠 서버에선 DNS를 설정할 준비가 끝났다.


이해를 돕기위해 사용되는 예제에서 test.net 이란 가상의 도메인과 192.168.1.100 이란 공인IP를 사용하것으로 하겠다.

자신의 도메인과 IP 주소로 바꿔 사용하기 바란다.


1.서버에서 도메인을 제일 먼저 찾는 곳

# vi /etc/hosts
=======================================================================================
127.0.0.1        test.net      localhost
192.168.1.100  ns.test.net  ns
=======================================================================================
위와 같이 바꾸도록 하자


2.서버에서 쓸 dns

# vi /etc/resolv.conf
=======================================================================================
domain test.net
search test.net
nameserver 192.168.1.100
nameserver 168.126.63.1
nameserver 168.126.63.2
=======================================================================================


3.도메인에 대하 ip를 찾을 때 참조할 순서
# vi /etc/host.conf
=======================================================================================
order hosts,bind

==> 초기 설치시 이렇게 되어 있으며, 의미는 /etc/hosts파일부터 찾고, bind에서 찾는다는의미
=======================================================================================


4.Zone 파일 및 케시 DNS서버에 대한 설정

# cd /etc

# ls named*
named.caching-nameserver.conf  named.rfc1912.zones


위 파일 내용들은 caching-nameserver에서 기본적으로 생성되는 것들이다.


# vi /etc/named.caching-nameserver.conf
=======================================================================================
options {
        listen-on port 53 { 127.0.0.1; };

        listen-on port 53 { 111.222.333.444; }; // local machine IP
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        query-source    port 53;
        query-source-v6 port 53;
        allow-query     { any; };
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
view localhost_resolver {
        //match-clients            { localhost; };
        //match-destinations { localhost; };
        recursion yes;
        include "/etc/named.rfc1912.zones";
};

=======================================================================================
( 더 자세한 것은 책이나 인터넷을 더 검색해 보기 바란다.... ㅡ.ㅡ )

( 동작하면 되지 않는가 ㅜㅜ )


# vi named.rfc1912.zones

=======================================================================================
zone "." IN {
        type hint;
        file "named.ca";
};
// localhost 에 대한 설정
zone "localhost" IN {
        type master;
        file "localhost.zone";
        allow-update { none; };  //다이나믹 하게 업데이트를 허용할것인지 설정한다. 대부분 none
};
// 127.0.0.X 에 대한 역 도메인
zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "named.local";
        allow-update { none; };
};
=======================================================================================


named.rfc1912.zones 파일의 맨 아랫 줄에 아래의 내용을 추가한다.

=======================================================================================
zone "test.net" IN {
type master;
file "test.net.zone";
allow-update { none; };
};

zone "1.168.192.in-addr.arpa" { //reverse domain - IP가 역으로 입력되어 있는 것에 주목~!!
type master;
file "test.net.rev";
allow-update { none; };
};
=======================================================================================


zone 파일명은 test.net.zone으로 하였다.

위에서 추가한 도메인에 대한 zone 파일을 만들도록 하자..


# vi /var/named/chroot/var/named/test.net.zone
=======================================================================================
$TTL    86400
@       IN      SOA     ns.test.net. root.ns.test.net.  (
                2007112101 ; Serial
                28800      ; Refresh
                14400      ; Retry
                3600000    ; Expire
                86400 )    ; Minimum
                IN      NS      ns.test.net.
                IN      MX  10   mail.test.net.
                    IN      A       192.168.1.100
www            IN      A       192.168.1.100

mail              IN      A       192.168.1.100
*                  IN      A       192.168.1.100
=======================================================================================
# ln -s /var/named/chroot/var/named/test.net.zone /var/named/test.net.zone

(반드시 심볼릭 링크를 걸어야 한다~~!!! <-- 사실 테스트 안해봤다... )


# vi /var/named/chroot/var/named/test.net.rev
=======================================================================================
$TTL    86400
@       IN      SOA     ns.test.net. root.ns.test.net.  (
                2007122101 ; Serial
                28800      ; Refresh
                14400      ; Retry
                3600000    ; Expire
                86400 )    ; Minimum
                 IN      NS      ns.test.net.
100             IN      PTR     ns.test.net.
100             IN      PTR     www.test.net.
100             IN      PTR     test.net.
=======================================================================================
위에서 100이란 숫자는 IP의 제일 마지막에 해당하는 숫자이다.

# ln -s /var/named/chroot/var/named/test.net.rev /var/named/test.net.rev


자.. 이제 모든 설정은 끝났다.. 사실 이제부턴 네임서버를 변경한 후 하루정도가 지나야 확실한 결과를 얻을 수 있다.

네임서버 변경은 도메인 등록 회사 서비스에 접속 후 변경하면 된다.

또한 방화벽을 설치했다면 외부에서 네임서버로 접근할 수 없으니 주의한다.

네임서버의 포트는 42로 방화벽에서 이 포트를 풀어야 한다.


설치와 설정이 끝났다면, DNS 서버를 시작하도록 한다.

(1) 시작
# /etc/rc.d/init.d/named start


(2) 재시작
# /etc/rc.d/init.d/named reload


(3) 정지
# /etc/rc.d/init.d/named stop


(4) 서버시작시 자동으로 실행

/etc/rc.d/rc3.d 와 /etc/rc.d/rc5.d 에 K로 시작하는 것이 있으면 다음과 같이 해준다.

# mv /etc/rc.d/rc3.d/K번호named /etc/rc.d/rc3.d/S번호named

# mv /etc/rc.d/rc5.d/K번호named /etc/rc.d/rc5.d/S번호named


(5) 호스트 네임 검사
# grep named /var/log/messages


(6) 설정한 도메인 확인하기

# nslookup

> server 168.126.63.1

> set type=any

> test.net


[ 다음은 iptables 사용시 추가할 부분이다 ]

------------------------------------------------------------------------------------------

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
# -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --sport 1024:65535 -j ACCEPT     #상황봐서
# -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --sport 1024:65535 -j ACCEPT   #상황봐서

------------------------------------------------------------------------------------------

'Linux' 카테고리의 다른 글

lighthttpd install  (0) 2008.06.04
설치  (0) 2008.06.04
Command2  (0) 2008.06.04
Vi 편집기  (0) 2008.06.04
Command  (0) 2008.06.04
Posted by 으랏차
,

Command2

Linux 2008. 6. 4. 13:42


1.파일관리

1. cd

- 디렉토리를 변경할 때, 디렉토리를 따로 입력하지 않으면 login한 디렉토리($HOME 또는 '~'로 표시됨)로 이동합니다.

cd . 은 현재 디렉토리이며, cd .. 은 상위 디렉토리입니다.

예) 최상위 디렉토리 / 에서 상위디렉토리 root/ 으로 이동할 때 :

cd /root ( /를 생략해도 무방 )

현 디렉토리root/에서 상위디렉토리에 있는 bin/이라는 디렉토리로 바꿀 때- cd ../bin, 또는 ..없이 그냥 cd /bin으로 해도 무방합니다.




2. ls

- DOS의 dir과 비슷한 명령어인데, 디렉토리명 등을 출력시키며 옵션에 따라 다양한 정보와 함께 출력된다.

옵션

-a: 디렉토리 내의 모든 파일 출력

-i : 파일의 inode와 함께 출력한다.

-l : 파일 허용 여부, 소유자, 그룹, 크기, 날짜 등을 출력한다.

-m: 파일을 쉼표로 구분하여 가로로 출력한다.

-r : 정렬 옵션이 선택되었을 때, 그 역순으로 출력한다.

-s : KB 단위의 파일 크기를 출력한다.

-t : 최근에 만들어진 파일 순서대로 출력한다.

-x : 파일 순서를 세로로 출력한다.

-F : 파일의 형태와 함께 출력한다.
출력되는 파일의 형태는 '*', '@', '|', '=' 등이며, 이것은 각각 실행 파일, 심볼릭 링크, FIFO 소켓을 나타낸다.

-R : 서브 디렉토리의 내용을 포함하여 출력한다.

-S : 파일 크기가 큰 순서로 출력한다.

-U : 정렬하여 출력한다.

-1 : 라인당 한 파일씩 출력한다.

--help : 도움말을 화면상에 나타낸다.

--version : 'ls'의 파일 버전과 함께 출력한다.

예) /home/babo
디렉토리 내용을 최근에 만들어진 파일 순서대로 출력- ls -t /home/babo

3. cp

- 파일을 다른 파일 이름으로 또는 다른 디렉토리로 복사하는 명령어로 도스의 copy와 같은 명령어.

옵션

-a : 가능한 한 원래 파일의 구조, 속성을 그대로 복사한다.

-b : 덮어쓰거나 지울 때 백업 파일을 만든다.

-d : 심볼릭 링크 파일 그대로 복사한다.
(디폴트는 연결된 원래 파일을 복사함).

-f : 같은 파일명을 갖는 파일이 있을 경우, 지운 후 복사한다.

-i : 같은 파일명을 갖는 파일이 있을 경우, 사용자 확인후 복사한다.

-l : 하드 링크를 만든다.

-p : 원시 파일의 소유자, 그룹, 허용 여부, 시간 등을 그대로 복사한다.

-r : 서브 디렉토리를 포함한 모든 파일 복사한다.

-s : 심볼릭 링크를 만든다.

-u : 복사할 파일이 구 버전일 경우만 복사한다.

-v : 복사하기 전에 각각의 파일명을 출력한다.

-x : 파일 시스템이 같을 경우만 복사한다.

-P : 원시 파일이 존재하는 디렉토리까지 포함하여 복사한다.

-R : 디렉토리를 포함하여 복사한다.

-S : 환경 변수 SIMPLE_BACKUP_SUFFIX에 의해 지정된 백업 꼬리말로 백업 파일 생성한다.

예)
/root 디렉토리에서 trial이라는 파일을 /maria라는 디렉토리로 복사하려고 할 때는 #cp trial maria를, maria에 복사되었는지 확인해 보려면, # cd maria # ls를 쳐보면 나온다.




4. mv

(move) - 파일을 다른 파일 또는 디렉토리로 옮길 때 사용. 이 명령은 복사와 같으나 원본이 지워진다.
파일의 이름을 바꿀 때도 사용할 수 있다.

옵션

-b : 지워지기 전에 백업본을 만든다.

-f : 옮겨질 디렉토리에 존재하는 파일이 있으면 덮어쓴다.

-i : 옮겨질 디렉토리에 존재하는 파일이 있으면 확인한다.

-u : 옮겨질 디렉토리에 구 버전의 파일이 있을 경우만 옮긴다.

-v : 옮기기 전에 파일명을 출력한다.

예)
파일을 /maria라는 디렉토리에 옮길려면

 

5. rm

(remove) - 파일을 지우는 명령으로 주의할 점은 유닉스하에서는 파일들이 지워지면 복구가 불가능하다는 것이다. rm 파일명으로 사용한다.

옵션

-f : 강제로 파일을 지울 수 있다.

-i : 지우기 전에 확인한다.

-r : 서브 디렉토리의 파일까지 지운다.

-v : 파일을 지우기 전에 지울 파일의 이름을 나타낸다.

-R : -r과 같다.

예)
command1.txt란 파일을 지우려면, rm command1.txt
확인해 보려면, ls를 쳐 보면 삭제 되었는지 알 수 있다.




6. mkdir

- 디렉토리를 새로 만들 때 사용.
만약 love라는 디렉토리를 만들려면 mkdir love를 입력하면 된다.

옵션

-p : 지정된 모든 서브 디렉토리까지 함께 생성

-m : mode mode에 해당하는 사용 허가로 디렉토리를 생성한다.

예)
/rootd에서 love라는 디렉토리를 만들려면, mkdir love




7. rmdir

- 디렉토리를 지울 때. rmdir 다음에 디렉토리 이름을 입력하면 디렉토리가 지워진다.
이 부분에서 가장 중요한 것은, 디렉토리 내부에 파일이 남아있으면 지워지지 않으므로 디렉토리를 지우기 전에 반드시 rm을 이용하여 내부 파일을 모두 지우는 것을 명심해야 한다.

옵션

-p : 지우고자 하는 디렉토리의 상위 디렉토리까지 포함하여 지운다.

예)
위에 만든 /love라는 디렉토리를 지우려면, rmdir love
지워졌는지 확인해 보려면 ls를 넣으면 알 수 있다.

 

8. man ( manual )

- 주어진 명령이나 유틸리티의 매뉴얼을 출력한다.

옵션

-a : 모든 manual page를 출력

-d : 디버깅 정보 출력

-f : whatis와 같음

-h : 도움말 출력

-k : apropos와 같음

-t : groff(troff)를 사용하여 프린트를 위한 형식으로 출력

예)
ls 명령어의 도움말을 보고자 할 때- man ls






9.more

- 주어진 파일의 내용을 한 화면씩 출력시킨다.

옵션

-h : 도움말(help)

- SPACE 또는 - z : 다음 페이지

-RETURN 또는 - 1 : 라인 스크롤

-d 또는 -^D : 반 페이지 스크롤

- q 또는 -Q : 종료 (quit)

- f : 다음 페이지 (forward)

- b 또는 - ^B : 이전 페이지 (back)

- /pattern : 검색

- = : 현재 라인 출력

- ! : 명령어 실행

- ^L : 화면 다시 출력

- f : 현재 파일명과 라인 출력

예)
root/command.txt 파일을 페이지 단위로 출력시키려면 more /root/command.txt

 

10. less

- more와 비슷한 명령어로 한 페이지씩 문서를 보여준다. 문서의 앞으로도 이동이 가능하다.

옵션

- ? : less에서 사용할 수 있는 명령들에 대한 도움말을 제공한다.

- a : 마지막 라인이 화면에 출력되고 나면 검색을 시작한다.

- c : 필요할 때 전체 화면은 다시 갱신한다.

- C : -c 옵션과 같지만 화면 전체를 지우고 시작한다.

- e : 두번째로 파일의 끝에 도달하면 자동적으로 종료한다.

- E : 파일의 끝에 도달하기만 하면 자동적으로 종료한다.

- i : 대소문자를 구분하여 검색한다.

- n : 행 번호를 추가한다.

- q : 특정 에러가 발생하지 않으면 소리없이 동작한다.

- Q : 결코 아무 소리도 내지 않는다.

- s : 연속되는 공백 라인은 하나의 행으로 처리한다.

- x : 숫자: 수치를 지정해서 탭 간격을 조정한다. 기본값은 8 이다.

예)
man의 내용을 한 페이지 단위로 행번호를 추가하여 출력하려면, man less -n






11. cat

- 파일의 모든 내용을 한번에 화면에 나타나게 한다.

예)
practice라는 파일의 모든 내용을 화면에 출력할 때- cat practice



12. pwd

- 현재의 디렉토리가 어디인지 알려준다.

 

13. echo

- 주어진 인자를 단순히 화면에 나타나게 한다.

예)
"i love you"를 출력시키려면, echo i love you


14. grep

주어진 패턴을 포함하는 파일의 라인을 출력시킨다.

옵션

-C : 일치하는 문장의 상하 두 라인까지 포함하여 출력한다.

-V : 버전과 함께 출력한다.

-b : Byte 오프셋과 함께 출력한다.

-c : 일치하는 라인의 갯수를 출력한다.

-h : 파일명은 출력하지 않는다.

-i : 대소문자 구분하지 않는다.

-l : 일치하는 내용을 가지는 파일명만 출력한다.

-n : 일치하는 내용을 가지는 라인 번호를 출력한다.

-s : 에러 메시지만을 출력한다.

-v : 일치하지 않는 내용을 출력한다.

-w : 한 단어로 일치해야 출력한다.

-x : 전체 라인이 일치해야 출력한다.

예)
rm이라는이름이 들어간 파일을 ls중에서 찾을 때 - ls | grep rm


15. find

-원하는 파일을 디렉토리를 탐색하면서 지정된 조건에 만족하는 파일을 찾는다. 이름이나, 크기, 날짜, 사용자등의 조건을 지정하여 찾을 수 있다.

-name : 찾고자 하는 파일의 이름을 정하면 된다.

-perm : 파일의 권한 (permission)이 일치하는 것을 찾는다.

-user : 사용자의 ID에 따라서 검색한다.

-atime : 최근 며칠내에 접속한 파일을 검색한다

-newer : 최근에 갱신된 모든 파일을 검색한다.

예)
maria라는 이름을 가진 파일을 찾으려면, find -name maria
 

16. ls

-lR-현재 디렉토리와 서브 디렉토리의 이름 및 포함되어 있는 파일을 출력시킨다.




17. mount

- cdrom이나 floppy disk를 사용하게 만들어 준다.

floppy mount : -t msdos /dev/fd0 /mnt/floppy



cdrom mount : mount -t iso9660 /dev/cdrom /mnt/cdrom

 

18. umount (언마운트; unmount)

- 디렉토리와 연결되었던 시디롬이나 플로피 디스크를 분리시켜 주는것을 말한다. 플로피나 시디롬을 다 쓰고 나면 항상 언마운트를 시켜주어야 한다.







19. Mtools

- Mtools는 리눅 스에서 DOS로 통하는 유틸리티의 모음이다.
모든 명령어들은 앞에 m자를 붙인뒤 DOS의 명령어와 같이쓰면 된다.
예를 들면 mattrib, mcd, mcopy, mdel, mdir, mformat, mlabel, mmd, mrd, mren, mtype, mread, mwrite 등이 있으며, 디렉토리를 나타낼 때에는 ''가 아닌 리눅스의 명령어인; '/'로 지정해 주어야 한다.


20. mcd

- 도스 시스템으로 현재 사용하고 디렉토리를 이동한다.

mcd dos 디렉토리




21. mcopy

- 도스 파일 시스템으로 가거나 도스상의 파일을 복사한다.

옵션

- n : 파일을 덮어 쓸 경우에도 경고하지 않는다.
- v : 안내문을 자세하게 보여준다.
- m : 파일 갱신 시간을 보존한다.

22. 리디렉션 ( redirection )

- 리디렉션이란 어떤 명령을 실행한 후에 생기는 내용물을 사용자가 원하는 곳으로 출력하기 위해 만들어졌는데 표준 입력, 표준 출력, 에러 출력 등의 방향을을 다른 곳으로 바꾸는 것이다.
리디렉션의 기호는 ">"이다. 보통, ">" 을 이용하여 명령의 결과를 파일로 리디렉트시켰을 때 그 파일이 존재해 있었다면 그것을 덮어 쓴다. ">>"를 쓰면 파일을 덧붙여 쓰게 된다.

예)
만약 원하는 내용을 life.txt란 파일로 보내려면, 파일 생성 명령어인 cat을 친 다음, 다음 행에서 부터는 내용을 life.txt라는 곳으로 보내라는 리디렉션 기호 '>'를 친다.
그 다음에 원하는 내용을 쳐 넣으면 된다. 그리고 엔터키를 친 다음,Ctrl+Z>를 친다.
입력한 내용을 확인해 보려면, $ cat life.txt를 친 다음, 엔터키를 치면 볼 수 있다.




23. 파이프라인

- 파이프라는 것은 여러 명령을 함께 사용할 때, 한 명령의 결과가 다른 명령으로 전송되는 통로이다. 명령어를 하나 하나씩 일일이 치지 않고도 한꺼번에 여러가지를 실행할 수 있어 편리하다.

예)
ls화면을 한 페이지씩 출력하려면 ls | more , 중단 하려면 q를 치면 된다.

 

Process 관리

다음은 사용하고 있는 시스템 정보에 관련된 명령어에 대하여 살펴보도록 하겠습니다.

1. ps ( process )

- 현재 진행중인 프로세스에 대한 정보를 출력한다.



2. pstree ( process tree)

- ps 에 의해서 출력되는 프로세스 정보를 트리 형태로 나타낸다.



3. top

- cpu와 메모리를 사용하는 작업들에 대한 시스템 정보를 출력한다.
원래 화면으로 되돌아 가려면 q를 입력한다.






4. arch (architecture)

- 현재 사용하고 있는 cpu의 모델을 출력(i686- 인텔 펜티엄)




5. cal (calendar)

- 현재의 달을 출력해 주는데, cal과 함께 원하는 월과 연도를 숫자를 입력하면 원하는 달 의 달력을 볼수 있다.
-j를 입력하면 율리우스달력을 볼 수 있다.

 

6. clock

- CMOS 설정 시간을 출력하거나 변경할 수 있다.




7. date

- 현재의 시간과 날짜를 출력한다.




8. df (disk free)


- 하드의 전체 용량 및 남은 용량 볼 때 사용한다.

옵션

-h(human) 사람이 쉽게 알 수 있는 형태인 바이트 단위로 출력한다.




9. du (disk usage)

-각각의 디렉토리와 파일들이 차지하고 있는 디스크 용량을 출력한다.

예) temp2 디렉토리가 차지하는 용량을 보려고 할 때, du temp2




10. free (free memory)

- 현재 사용중인 시스템의 메모리 상태를 출력한다.

옵션

-m(Megabyte) 메모리의 양을 메가 바이트 단위로 출력한다.
-k (Kilobyte) 메모리의 양을 킬로 바이트 단위로 출력한다.




11. hostname

- 자신의 컴퓨터에 부여되어 있는 이름을 출력한다.

 

12. lsdev (list devices)

- 현재 시스템에 연결되어 있는 하드웨어에 관한 입출력 정보와 IRQ 값 등을 출력한다.






13. quota

- 각각의 사용자들이 사용할 수 있는 디스크의 용량을 나타낸다.




14. rdev (root device)

- 내부에 ramsize, swapdev, vidmode, rootflag의 프로그램으로 구성되어 있다.




15. uname (unix name)

- 사용중인 운영체제에 대한 정보를 출력한다.

옵션

- a(all) 현재 사용중인 운영체제와 커널의 컴파일 정보 등을 출력한다.




16. su

- 현 상태에서 다른 사용자로 다시 login한다. 만약 사용자 id를 입력하지 않으면, root로 login 된다.

 

17. shutdown

- 시스템을 종료할 때일반적으로 사용되는 명령어이다.

옵션

- t n 옵션 t 뒤에 n 초만큼 후에 경고 메시지 후에 kill 신호를 보낸다.

- h (halt) 완전히 닫는다.

- r (reboot) 종료후 재부팅을 한다.

- f (fast) 빠른 리부팅을 한다 .(파일 시스템 검사 생략 )

- c (cancel) 예약 되어 있는 종료 취소

- k (kidding) 모든 것이 정상이지만, 종료 시간이 되면모든 프로그램이 멈춘다.


18. reboot

- 재 부팅 시키는 것을 말한다.

옵션

- q 현재의 실행프로그램을 종료하지 않고 부팅만 다시 시킨다.


19. kill

- 프로세스 종료하기. 현재 실행중인 프로세스를 강제로 종료시키는데 사용

kill signal ID PID
kill -l

옵션

-2 : 실행 중인 프로세스에게 인터럽트 키 신호를 보냄

-9 : 가장 확실하게 실행 중인 프로세스를 종료시킴


20. tty

- 현재 사용하고 있는 단말기 장치의 경로명과 파일명을 보여줌



21. whereis

- 실제 프로그램이 어떤 디렉토리에 존재하는지 관련된 모든 경로명을 보여줌

예) whereis vi




22. fsck (file system check)

- 파일 시스템의 상태가 올바른지 검사하고, 잘못된 것이 있으면 바로 잡는다.

옵션

- a : 검사도중 발견된 에러를 자동적으로복구한다.

- r : 검사도중 에러가 발견되면 복구 여부를 물어본다.(사실 사용되지 않는다.)

- s : 순차적인 방법으로 검색한다.

- V : 검색중 각종 정보를 자세 하게 보여준다.

- N : 실제로 검사 작업을 하지는 않도록한다.



 

사용자 관리

1. chgrp

- 파일의 그룹 소유권을 바꾼다.

옵션

-c : 실제로 소유자가 바뀐 파일에 대해서 자세하게 설명

-f : 소유권을 바꿀 수 없어도 에러 메시지를 나타내지 않는다.

-v : 소유권의 이전에 대해서 자세히 기술한다.

-R : 디렉토리와 그 내용 파일들의 소유권을 재귀적으로 모두 바꾼다.

* 파일의 소유자나 슈퍼 유저만이 파일의 그룹 소유권을 바꿀 권한이 있는데,
chgrp + 옵션 바꾸고자 하는 그룹의 이름+ 디렉토리+ 파일 이름

예) /root그룹에 있는 ak이라는 파일을 white라는 그룹으로 소유권을 이전하려면,
chgrp white /root/ak






2. chmod

- 파일의 모드를 바꿀 때 사용하는데 파일의 모드는 권한(permission)을 제어한다.

옵션

-c : 실제로 파일의 권한이 바뀐 파일만 자세히 기술한다.

-f : 파일의 권한이 바뀔 수 없어도 에러 메시지를 출력하지 않는다.

-v : 변경된 권한에 대해서 자세히 기술한다.

-R : 디렉토리와 파일들의 권한을 재귀적으로 모두 바꾼다.

* r(read 읽기), w(write 쓰기), x(execute 실행)의 3가지 권한이 있는데, 각 단위당 2진법으로 표현된다. 따라서 읽기, 쓰기, 실행 등의 모든 권한을 주려면, 4+2+1, 따라서 합계 7이된다.
만약 모든 그룹의 권한을 다 허용해 줄 경우, 777이 된다.

예)
우선 권한을 보기위해, ls -al을 쳐보면 wow 라는 파일이 rw-r--r--로 되어있다는 것을 알 수 있다.
여기서, 첫 번째 3자리는 소유자, 두 번째 3자리는 그룹, 마지막 3자리는 타인에게 허용할 것인지 여부를 보여주는 것이다.
여기서의 소유자는 읽고 쓰기가, 그룹과 타인은 읽기만 허용이 되어있다.
모두가 사용할 수 있게 하려면 777이 된다.

chmod 777 wow



현재의 권한



변환




3. chown

- 파일의 소유권을 다른 사람에게 변경할 때 사용한다.

옵션

-c : 실제로 파일의 소유권이 바뀐 파일만 자세히 기술한다.

-f : 파일의 소유권이 바뀔 수 없어도 에러 메시지를 출력하지 않는다.

-v : 변경된 소유권에 대해서 자세히 기술한다.

-R : 디렉토리와 파일들의 소유권을 재귀적으로 모두 바꾼다.

파일의 소유권을 다른 사람에게로 바꾸는 것은 슈퍼 유저만이 할 수 있다.

예)
root/에 있는 wow라는 파일을 test라는 그룹으로 소유권을 바꿀 때
chown test /root/wow
ll을 쳐서 소유권이 바뀌었는지 확인해 보면 된다.






5. 시스템의 사용자 정보에 대한 명령어

* finger


- 시스템을 사용하고 있는 사용자들의 이름과 주소등 신상 명세를 출력한다.
변경할 때는 chfn(change finger name)을 사용하면 된다.




* id (identification)

- 사용자의 개인 id 와 그룹의 id 번호를 출력한다.




* logname

- 로그인해 있는 사용자의 이름을 출력한다.




* uptime

- 현재의 시간과 로그인 시간의 총합, 평균적인 시스템 사용 현황을 출력한다.




* w (who is logged on and what they are doing)

- 로그인 되어있는 사람과 현재 실행중인 작업의 종류를 출력한다.




* who

- 시스템을 사용하고 있는 사용자들의 이름과 터미널 번호, 로그인 시간 출력한다.




* whoami

- 가상 콘솔 기능을 사용하거나 여러명의 사용자로 동시에 로그인해 있을 때, 현재 시스템을 사용하고 있는 자신이 누구인가를 출력한다.




* adduser

- 사용자를 추가하기 위한 명령어인데 명령어 뒤에 원하는 사용자 명을 써 넣는다.



Network

NCI에 IP주소를 설정하는 작업은 보통 X윈도우에서 합니다. 하지만 X윈도우를 사용하지 않는 경우에 네트워크을 설정하려면 명령어로 실행시키는 방법이 있습니다. 그렇게 하려면 X윈도우 상에서 설정했던 네트워크 상태가 저장되어 있는 곳으로 가서 편집하면 됩니다. 리눅스 설치 후 네트워크에 문제가 생기는 경우가 있는데 이는 대부분 네트워크 인터페이스 즉 랜카드의 문제로 인한 경우가 많습니다.

우선 자신의 랜카드가 리눅스에서 지원하는지 확인해야 합니다. 리눅스에서는 /proc 이라는 디렉토리의 내용을 확인해야 합니다. 이 디렉토리는 커널이 사용하는 디렉토리로 시스템 정보, 하드웨어에 대한 정보, 프로세서의 정보가 저장되어 있습니다. PCI를 갖고 있으면 다음과 같은 명령으로 그 내용을 확인하시면 됩니다.

#cat /proc/pci [Enter]
...
Bus 0, device 13, function 0:
Ethernet controller : Hewlet Packard J2585A (rev 0).
Medium devsel. Fast back-to-back capable. IRQ 11.
I/0 at 0xfd00.
Non-prefetchable 32 bit memory at 0xfffdc000.
...

만약 PCI랜카드를 사용하고 있는데도 Ethernet controller:이 나오지 않는다면 랜카드에 문제가 있는 경우입니다. 랜카드의 이름 즉 위에서는 Hewlett Packard J2585A가 없는 경우에는 커널에서 랜카드를 지원하지 않으므로 커널을 업그레이드 하거나 랜카드를 다른 것으로 바꾸어 주면 됩니다.

[1] ping

Ping은 현재 사용하고 있는 시스템이 네트워크로 연결된 원격지 호스트를 인식하고 있는지를 테스트하여 네트워크로 연결되어 있는지의 여부와 접근할 원격지 호스트가 정상적으로 작동되고 있는지 알아봅니다. 따라서 ping의 중요한 기능은 상대편 네트웍을 테스트 할 수 있다는 것입니다.
현재 보낸 패킷과 받은 패킷사이의 통계치를 보여주면 제대로 실행 된것입니다.

[2]ifconfig

Interface 란 NIC(Network Interface Card)를 세팅하는 것입니다.여기서는 ifconfig유틸러티를 사용하여 어떻게 IP address, netmask, gateway등을 설치하는지를 알보도록 하겠습니다.
우선 한텀에서 다음처럼 입력을 합니다.

ifconfig [interface]
ifconfig interface [atype] options | address...

옵션

up : interface를 활성화 시킵니다

down: interface를 비활성화 시킵니다.

address : [aaa.bbb.ccc.ddd]의 모양을 가집니다.

[3]PPP연결하기

리눅스에서 ppp 를 연결하려면 minicom이나 seyon에서 ppp를 구동합니다. ppp를 작동 시킨 다음 minicom이나 seyon을 서스펜드 합니다. 우선 가우나 세연을 설치하여 몇가지 설정을 해야 합니다. 종료시에는 ps명령어로 ppdd의 PID를 확인한 다음 다시 kill 명령으로 프로세스를 중단하면 됩니다. 아래의 명령어를 입력하면 설치할 수 있습니다.

[root@honey /root]#cd /mnt/cdrom/RedHat/RPMS
[root@honey /root]# rpm -Uvh gau* : 가우를 사용할때
[root@honey /root]# rpm -Uvh seyon : 세연을 사용시

이렇게 하여 설치가 끝났으면 control-panel을 이용하여 모뎀을 설정합니다.

[4]LAN 카드 설정하기

*리눅스에서 기본 정보 파일은 /etc/sysconfig 디렉토리에 있습니다. 다음의 과정을 하나하나 실행하면서 명령어를 이용하여 네트워크를 설정해 보도록 하겠습니다.

NETWORKING=yes
FORWARD_IPV4=no
HOSTNAME="honey.linux.co.kr"
DOMAINNAME=linux.co.kr
GATEWAY=210.127.236.254
GATEWAYDEV=eth0

NETWORKING부분에서는 네트워크를 활성화 할 것인지를 입력하는 부분으로 작동시키려면 YES를, 그렇지 않으면 NO 를 입력합니다. HOSTNAME 부분에는 호스트 이름을 Primary hostname + domain을 연결하여 따옴표로 묶어줍니다. DOMAINNAME에는 도메인 이름을 적고, GATEWAY부분에는 게이트 웨이의 IP주소를 써 넣으면 됩니다. GATEWAYDEV에는 게이트웨이로 나갈때 사용하는 네트워크 장치명을 적으면 됩니다.

*리눅스에서 네트워크 인터페이스 설정은 다음의 디렉토리 안에 있습니다.

cat/etc/sysconfig/network-***s/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO=none
BROADCAST=210.127.236.255
NETWORK= .0
NETMASK="255.255.255.0"
IPADDR="210.127.236.93"
USERCTL=no
ONBOOT =no

DEVICE란에는 장치를 적어주고,NETWORK에는 네트워크 주소를 적어주고, Broadcast에는 브로드캐스트 주소를 넣어주는데, 브로드케스트 주소는 255를 사용합니다. ONBOOT는 부팅도중 자동으로 네트워크 인터페이스가 작동할 것인지의 여부를 결정하는 것이고,BOOTPROTO는 네트워크 인터페이스가 작동할 때 IP주소를 받아오는 방식을 결정하는 것입니다.

*다음은 도메인 네임을 서버에 등록하는 절차입니다. DNS를 사용하려면 DNS의 서버 IP주소를 등록세켜 주어야 하는데, 3개까지 가능합니다. 다음은 일반적인 resolve.conf파일입니다.

search honey
nameserver 210.127.236.93

search는 검색할 도메인 주소를 입력하면 되는데 사용자가 속한 Domain의 ID를 써 넣으면 됩니다. nameserver는 제가 속해있는 도메인인 linix.co.kr를 관장하는 DNS서버의 IP주소를 적어 넣은 것입니다.

 

RPM으로 패키지 관리하기

레드헷 리눅스의 사용자가 크게 증가하게 된 한가지 이유는 아마도 RPM이 아닌가 싶습니다.

RPM(RedHat Package Manager)은 기존의 리눅스 배포판들보다 훨씬 편리해진 설치환경을 가지고 있었습니다. 기존의 리눅스 배포판들은 단순히 tar 포맷으로 묶여 있는 실행 파일을 복사하거나 소스 코드를 컴파일하는 방법을 사용해서 필요한 프로그램을 설치하거나 삭제하는 방법을 사용했습니다.

그래서 시스템에는 설치된 프로그램의 수가 많아지고, 특정한 버전의 라이브러리에 프로그램이 의존할 경우, 사용자 자신이 프로그램들을 유지하고 관리하는데 많은 문제가 있었습니다. 그리고 이미 설치되어 있던 프로그램이더라도 실수로 다시 설치하면 기존의 프로그램이 생성한 파일들이 모두 삭제되는 일이 발생할 수도 있었습니다.
또한 하나의 프로그램을 삭제하기 위해서는 그 프로그램에 관계된 프로그램과 관련 파일들을 사용자가 모두 알고 있어야만 완전히 삭제할 수 있다는 맹점을 가지고 있었습니다.

이처럼 설치하고자 하는 프로그램을 찾는 것부터 설치하는 것 까지 어려움 투성이었습니다. 하지만 레드햇리눅스에서는 RPM패키지와 X윈도의 제어판을 이용해 쉽게 프로그램을 설치할 수 있습니다. RPM은 레드햇 사에서 만든 패키지 관리 도구로 리눅스 시스템을 패키지 형식으로 관리할 수 있게 해주는 관리 도구입니다.

RPM은 누구나 사용할 수 있는 개방된 패키징시스템으로 만들어져 있으며, 디스트리뷰션을 인스톨할 때는 물론, 소프트웨어를 인스톨할 때나 버전업, uninstall 할때에도 많은 도움이 됩니다.
RPM의 특징은 특정한 기능을 가진 일련의 파일과 프로그램들을 묶어 쉽게 설치할 수 있게 해 줍니다.

뿐만 아니라, RPM에서는 각 패키지가 어떤 이름의 파일을 어느 디렉토리에 인스톨하였는지, 그 패키지를 이용하기 위해서는 어떤 파일이 필요한지에 대한 정보를 관리하고 있습니다. 예를 들면 다른 패키지가 이용하는 라이브러리를 가진 패키지를 언인스톨할 수 없습니다.

1. RPM 파일명 분석하기

RPM 패키지 파일에는 파일이름이 '.src.rpm '으로 끝나는 소스패키지와 '.i386.rpm'이나 '.noarch.rpm' 등으로 끝나는 바이너리 패키지로 구별할 수 있습니다. 소스 패키지는 프로그램 소스파일 등이 포함된 패키지로, 바이너리 패키지를 작성하기 위해 사용합니다. 한편, 바이너리 패키지에는 컴파일, 링크 완료 실행파일이 포함되어 있어, 이것을 인스톨하면 일일이 소스파일을 컴파일하지 않고, 소프트웨어를 실행할 수 있습니다.

RPM 파일은 크게 4개의 부분으로 이루어져 있습니다. 먼저 (패키지이름), (패키지버전), (배포판에서 가지는 자체 버전), (설치될 시스템)이 RPM 앞에 붙여지게 되어 있습니다.
다음의 RPM파일명을 분석해 보도록 하겠습니다.

myth-1.2.3-4.i386.rpm

RPM 패키지 이름에서 - 는 각 필드를 구분하는 것입니다.
우선, 맨 앞부분의 myth 는 패키지의 명칭으로 가장 기본적인 것입니다.
패키지이름은 인스톨 후 조회나 언인스톨할 때 사용되는 이름입니다. 패키지 명칭에서 - 는 각 필드를 구분하려는 것으로, 이를 없애면 안됩니다.
두번째 1.2.3 은 패키지의 버전입니다. 이것은 프로그램 버전과 일치하는 것입니다.
세번째 의 4 는 패키지의 릴리즈 번호입니다.
즉 배포판에서 가지는 자체 버전으로, 이 패키지가 몇번째로 만들어진 것인지를 나타냅니다. 똑같은 프로그램으로 버전이 같다고 해도 이전에 만든 패키지를 다시 재 패키징을 하였다면, 뭔가 변화가 있고 릴리즈 번호를 올리게 됩니다.
네번째의 i386 은 어떤 시스템에서 쓰이는것인지를 나타내는 것입니다.
i386 이라면 당연히 PC 계열을 나타내는 것이고 sparc 이라면 스팍 리눅스용, alpha 라면 알파 리눅스용일것입니다. (현재 레드햇은 이 세개의 시스템용으로 나옵니다.) 이 네번째 필드가 src 라고 적힌것이 있는데 그것은 소스 RPM 입니다. 바이너리 패키지를 만들기 위해 필요한것입니다.
마지막의 rpm은 소위 말하는 확장자입니다. RPM 패키지라는것을 나타내 줍니다.
버전번호와 릴리즈번호가 독립되어 있으므로, 새로운 패키지가 나왔을 때도 소프트웨어 자체가 버전업된 것인지 아니면 패키지 구성만 변한 것인지 파일명으로 알 수 있습니다.
또 버전번호나 릴리즈번호에는 숫자 이외에 문자를 포함해도 됩니다.

2. RPM 명령으로 설치하기

1. 파일 설치하기
RPM 패키지의 설치와 제거는 아주 간단합니다. 보통 다음과 같은 식을 입력하면 설치가 됩니다.

rpm -i (rpm패키지파일이름)

위와 같은 방식을 응용하여, 설치되는 모습을 확인하고자 할 때는 다음과 같은 명령어를 이용하면 됩니다.

rpm -ivh (rpm패키지파일이름)

이와 같이 입력하면, 설치 되는 모습이 화면상에 # 마크로 표시 될것입니다.
하지만, RPM 으로 패키지를 설치할 때는 사실 위의 명령보다는 -Uvh 옵션을 사용하는 습관을 익히는것이 좋습니다.

rpm -Uvh (rpm패키지파일이름)

이 명령을 사용한다면, rpm은 이 패키지의 이전 버전이 설치 되었는지를 보고, 이미 설치가 되어 있다면 업그레이드를 할 것입니다.
그냥 -i 또는 -ivh로 설치한다면 이전 버전의 같은 패키지에 대한 정보는 사라지지 않을 것이고, 또한 이전의 설정파일도 백업되지 않습니다. 따라서, 되도록 rpm - Uvh를 사용할 것을 권장합니다.

2. 설치 위치 알아보기
설치를 한 후, 파일들이 어느 디렉토리에 있는지 알아야 한다거나, 혹은 자신의 컴퓨터에 현재 어떠한 프로그램이 설치되어 있는지 알고 싶다면 다음과 같은 명령을 사용하면 됩니다.

rpm -qa | more

'-q' 옵션은 그 파일에 대한 정보를 알아내기위한 옵션이고, 'a' 옵션은 모든 파일에 대해 적용하라는 의미입니다. 이 명령을 수행하면 자신의 컴퓨터에 설치되어 있는 모든 프로그램의 목록이 페이지 단위로 나열되어 나옵니다.

3. 간략한 정보 보기

하나의 패키지에 대한 간략한 정보를 알아보려면 다음과 같이 입력하면 됩니다. 이렇게 하면, 패키지에 대한 설명이 나타납니다.

rpm -qi (rpm패키지파일이름)


4. 파일 정보 보기

텍스트가 길게 표시되는데 파일명과 버전번호, 패키징한 사람, 프로그램에 대한 설명 등이 나옵니다. 이번에는 이 프로그램의 파일에 대한 상세한 정보를 알아보기 위해 다음과 같이 입력해 봅시다.

rpm -ql (rpm패키지파일이름)

그러면 이 패키지에 포함된 파일들이 어떠한 것이 있는지 내용을 자세하게 보여줄 것입니다.


5. 프로그램 제거하기

파일에 대한 권한과 어느 디렉토리에 있는지에 대한 정보가 포함됩니다. 마지막으로 설치한 프로그램을 제거해 보겠습니다.

rpm -e (rpm패키지 이름)

위와 같이 입력하면 쉽게 제거됩니다. 물론 프로그램을 제거할 때는 패키지의 의존성에 주의해서 신중히 생각한 후 행동에 옮겨야 할 것입니다.
위에서 사용된 명령어 외의 명령어를 설명하자면 다음과 같습니다.

rpm -qf (rpm파일이름) 특정한 파일이 포함되어 있는 패키지를 확인해 볼 때
rpm -V (rpm패키지 이름) 시스템에 설치된 패키지를 검증할 때
rpm -Va 시스템에 설치된 패키지들을 모두 검증할 때
(실수로 몇 가지 파일들을 지웠는데, 어느 것을 지웠는지 확신할 수 없다. 전체 시스템을 점검해 보고 어떠한 파일이 빠져 있는지 살필수가 있다.)
rpm -Vp (rpm패키지파일이름) 시스템에 설치할 때 사용한 RPM 파일을 이용해서 해당 패키지를 검증할 때

* * 위의 과정 외에 rpm 실행모드에 관한 명령어는 다음과 같습니다

rpm --help 도움말을 출력하고자 할 때
rpm--showrc 설정사항을 출력하고자 할 때
rpm--version 버전을 출력하고자 할 때

* * 그외 몇가지 부수적인 옵션이 있는데 여기서 설명하도록 하겠습니다.
이 부수적인 옵션들은 설치 또는 업그레이드 또는 제거 옵션뒤에 붙이게 됩니다.
(제거 옵션에서는 --nodeps , --no***s , --test 만을 사용합니다.)

예) rpm -e --nodeps (삭제할패키지이름)

--nodeps : 의존성을 무시하고 설치한다.
가장 많이 겪게 되는 문제로 RPM 에서는 어떠한 패키지가 깔려 있지 않으면, 그것에 영향을 받는 패키지는 설치하지 못하는 경우가 있다.
이 때 사용하는것이 --nodeps 이다.

--force : 강제로 설치 하는 것이다.
패키지 설치시 현재 패키지에 포함된 파일이 이미 다른 패키지에 의해 설치 되어 있을때, 이들이 충돌을 할 경우 에러가 발생한다. 하지만, 이 옵션으로 설치가 가능하다. 이 옵션은 이미 있는 파일은 덮어 쓰지 않는다. 이미 있는 파일마저 덮어 쓰려면 --replcaefiles를 사용하면 된다.

--oldpackage : 만약 업그레이 할 패키지가 이미 설치되어 있는 패키지보다 오래된 버전일 경우에는 업그레이드를 진행시킬 수 없다. 그래도 불가피하게 설치를 진행시켜야 할 경우, 이옵션을 이용하여 강제로 설치할 수 있다.

--percent : 패키지 파일을 설치하는것을 퍼센트로 표시해준다.

--replacepkgs : 이미 같은 패키지가 설치되 있더라도 다시 설치한다.

--replacefiles : 이미 설치된 다른 패키지의 파일을 덮어 쓰면서라도 설치한다.

--root : 디렉토리 와 디렉토리를 마치 / 처럼 생각하고 설치를 한다.
즉 "--root /tmp" 라고 한다면 /tmp 가 / 인 것으로 생각하고 그 이하로 설치하게 될것이다. 한가지 문제가 있다면 이 명령을 사용하면 RPM 정보를 기록하는 파일을 지정한 디렉토리 및 에서 찾게 된다.

--test : 패키지를 실제로 설치하지는 않고 충돌이나 의존성 문제가 있는지만을 검사한다.

--no***s : 스크립트를 실행하지 않는다.
(레드햇 패키지에는 4개의 스크립트가 들어간다. 설치 전후, 제거 전후 이렇게 4개이다.)

--excludedocs : 문서 파일은 설치 하지 않는다

 

'Linux' 카테고리의 다른 글

lighthttpd install  (0) 2008.06.04
설치  (0) 2008.06.04
BIND,NAMED? DNS설정  (0) 2008.06.04
Vi 편집기  (0) 2008.06.04
Command  (0) 2008.06.04
Posted by 으랏차
,

Vi 편집기

Linux 2008. 6. 4. 13:41

- vi 편집기란?  

파일을 생성하거나 편집하는데 사용하는 프로그램을 에디터(editor)라고 합니다.
유닉스에서 사용하는 에디터 중 vi 에디터 텍스트 편집기로 가장 대표적인 프로그램은 vi 에디터 입니다. vi 편집기는 Visual Editor로서, 모든 유닉스 시스템에 있으며 따라서 vi 편집기를 사용할 수 있다는 것은 어떤 유닉스 시스템에서도 문서 작업을 할 수 있다는 것을 의미합니다.

예를 들어 전자우편을 작성하거나, 프로그램을 작성하는 일, 또는 기타문서를 작성할 때에 편집기는 필수적인 연장(tool)입니다.


- vi 에디터 구성과 방법  
vi는 입력 모드와 명령어 모드 그리고 라인 모드의 세 가지 형태로 구성되어 있습니다.입력모드는 일반적은 텍스트 에디터와 같이 원하는 문자를 입력할 수 있는 상태를 말하고, 명령어 모드는 입력한 내용을 편집하기 위해서 다양한 편집 관련 명령어를 사용 할 수 있는 상태를 의미 한다.

따라서 입력 모드에서는 문자의 입력만이 가능하며 문단의 재구성과 삽입, 삭제 등의 편집 기능은 오직 명령어 모드에서만 사용할 수 있습니다.

vi를 실행한 직후에는 명령어 모드에 위치하게 되며 i(insert)나 a(append), o(open)를 입력하게나 <Insert> 키를 이용해서 입력 모드로 전환할 수 있다.

입력 모드에서 명령어 모드로 복귀할 때는 <Esc>키만을 사용합니다.입력     모드로 전화 i 또는 a 또는 o 또는 <Inset> 명령어 모드로 전환 <Esc>vi는 입력 모드와 명령어 모드 이외에 라인 모드를 추가로 갖고 있는데, 이는 셸 명령어나 외부 프로그램들을 에디터의 내부에서 직접 실행 시킬 수 있는 모드입니다.

라인 모드는 vi의 본체인 ex가 실행되는 상테이므로 보다 원초적인 텍스트 조작이 가능해진다. 또한 라인 모드는 셸과 직접 연결되어 파이프를 구성하기 때문에 작업 중인텍스느에 대해서 다양한 작업을 연결시킬 수 있다.

다른 모드와는 달리 라인 모드는 화면의 마지막 줄에 라인 모드임을 알리는 콜론(:)과 함께 입력한 내용이 출력되어 진행 중인 내용을 확인을 할 수 있도록 되어 있다. 라인 모드는 명령어 모드에서만 전환될 수 있으며, 입력 모드에서 직접 라인 모드로 들어올 수 없다.

따라서 vi 에디터는 실행 직후에 위치한 명령어 모드에서 입력 모드 그리고 라인 모드의 세 가지 모드를 상호 전환시키면서 작업을 진행하는 방식으로 사용된다.

그림 삽입.

라인 모드에서 :을 먼저 입역한 뒤에 원하는 명령어를 입력하는 방식으로 vi 명령어 이외의 셸 명령어와 외부 명령어들을 실행시킬 수 있다.

1.시작  
vi file vi를 시작하여 지정한 파일 편집
vi -R file 읽기 전용(read- only) 편집기로서 vi를 시작하여 지정한 파일 편집
view file 읽기 전용(read- only) 편집기로서 vi를 시작하여 지정한 파일 편집

2.종료  
:wq 데이터를 저장하고 종료
:q! 데이터를 저장하지 않고 종료

3. 디스플레이 제어하기  
^L 현재 화면을 다시 디스플레이하기
:set number 내부 줄 번호 디스플레이
:set nonumber 배부 줄 번호 디스플레이 않기


4. 마지막으로 지운 것 복사하기  
p 마지막으로 지워진 것을 커서의 뒤/아래에 삽입
P 마지막으로 지워진 것을 커서의 앞/위에 삽입
xp 두 문자를 바꿈
deep 두 단어를 바꿈
ddp 두 줄을 바꿈


5. 패턴 검색  
/rexp 지정된 정규 표현식에 대해 앞으로 이동
/ 이전의 패턴에 대해 앞으로 검색을 반복
?rexp 지정된 정규 표현식에 대해 뒤로 이동
? 이전의 패턴에 대해 뒤로 검색을 반복
n /나 ?명령에 대해 같은 방향으로 반복
N /나 ?명령에 대해 반대 방향으로 반복

6. 약어의 사용  
:ab short long short를 long에 대한 약어로 변경
:ab 현재 약어 목록을 표시
:una short 약어 short를 표시

7. 줄 길이의 조정  
r<Return> 문자를 뉴라인으로 변경
J 줄의 결합
:set wm=n 오른쪽으로 n문자 위치에서 자동적으로 줄 나눔

8. 커서 이동  
h<Left> 커서를 한 칸 왼쪽으로 이동
j<Down> 커서를 한 줄 아래로 이동
k<Up> 커서를 한 줄 위로 이동
l<Right> 커서를 한 칸 오른쪽으로 이동
<Backspace> 커서를 한 칸 왼쪽으로 이동
<Space> 커서를 한 칸 오른쪽으로 이동
- 커서를 이전 줄의 처음으로 이동
+ 커서를 다음 줄의 처음으로 이동
<Return> 커서를 다음 줄의 처음으로 이동
0 커서를 현재 줄의 맨 앞으로 이동
$ 커서를 현재 줄의 맨 끝으로 이동
^ 커서를 현재 줄의 첫글자(공백이나 탭이 아닌)로 이동
w 커서를 다음 단어의 첫 글자로 이동
e 커서를 다음 단어의 끝 글자로 이동
b 커서를 이전 단어의 첫 글자로 이동
W w와 같음(문장 부호 무시)
E e와 같음(문장 부호 무시)
B b와 같음(문장 부호 무시)
( 다음 문장의 처음으로 이동
) 이전 문장의 처음으로 이동
{ 다음 문단의 처음으로 이동
} 이전 문단의 처음으로 이동
H 커서를 화면 맨 위로 이동
M 커서를 중간으로 이동
L 커서를 맨 아래로 이동

9. 편집 버퍼를 통한 이동  
^F 한 화면 아래로 이동
^B 한 화면 위로 이동
n^F n화면 아래로 이동
n^B n화면 위로 이동
^D 반 화면 아래로 이동
^U 반 화면 위로 이동
n^D n줄만큼 아래로 이동
n^U n줄만큼 위로 이동

10. 셸 명령 실행  
:!command vi를 중단하고 지정한 셸 명령을 실행
:!! vi를 중단하고 이전의 셸 명령을 실행
:sh vi를 중단하고 셸을 실행
:!csh vi를 중단하고 새로운 C-셸을 실행


11. 패턴에 의한 치환  
:s/pattern/replace/ 현재 줄의 치환
:lines/pattern/replace/ 지정한 줄의 치환
:line,lines/pattern/replace/ 지정한 범위의 치환
:%s/pattern/replace/ 모든 줄의 치환


12. 데이터 읽기  
:liner file file의 내용을 지정한 줄 다음에 삽입
:r file file의 내용을 현재의 줄 다음에 삽입
:liner !command command의 결과를 지정한 줄 다음에 삽입
:r !command command의 결과를 현재의 줄 다음에 삽입
:r !look pattern 지정한 pattern으로 시작된 단어 삽입

13. 정규 표현식을 사용하기 위한 특수 기호  

.

뉴라인을 제외한 모든 단일 문자와 대응

*

영 또는 그 이상의 선행 문자와 대응

^

줄의 시작과 대응

$

줄의 끝과 대응

\<

단어의 시작과 대응

\>

단어의 끝과 대응

[ ]

묶여진 문자중의 하나와 대응

[^ ]

묶여진 문자를 제외한 아무것하고나 대응

\

이어지는 기호를 문자 그대로 해석


14. 줄 번호  
nG 줄번호 n으로 건너뛰기
1G 편집 버퍼의 첫 줄로 건너뛰기
G 편집 버퍼의 마지막 줄로 건너뛰기
:map g lG g가 lG와 같도록 매크로 정의

15. 삽입  
i 입력 모드로 전환, 커서 위치 앞에서 삽입
a 입력 모드로 전환, 커서 위치 뒤에서 삽입
I 입력 모드로 전환, 현재 줄의 앞에 삽입
A 입력 모드로 전환, 현재 줄의 끝에 삽입
o 입력 모드로 전환, 현재 줄의 아래에 전개
O 입력 모드로 전환, 현재 줄의 위에 전개

16. 편집하고 있는 파일을 바꾸기  
:e file 지정한 파일의 편집
:e! file 지정한 파일의 편집, 자동 점검의 생략

17. 내용 고치기
r 단지 한 글자만 변경(입력 모드로 바뀌지 않음)
R 입력하는 대로 겹쳐 써서 변경
s 삽입에 의해 한 단어의 변경
C 커서의 위치로부터 줄 끝까지 삽입에 의한 변경
cc 전체 줄을 삽입에 의한 변경
S 전체 줄을 삽입에 의한 변경
cmove 커서부터 move까지 삽입에 의해 변경
~ 대,소문자 바꾸기


18. 고치기의 취소 또는 반복  
u 편집 버퍼를 수정했던 마지막 명령을 취소
U 현재 줄을 저장
. 편집 버퍼를 수정했던 마지막 명령 반복

19. 문자 삭제  
x 커서가 있는 문자 삭제
X 커서의 왼쪽 문자 삭제
D 커서부터 줄의 끝까지 삭제
dd 현재 줄의 전체 삭제
dmove 커서부터 move까지 삭제
dG 커서부터 편집 버퍼의 끝까지 삭제
d1G 커서부터 편집 버퍼의 맨 앞까지 삭제
:lined 지정한 줄의 삭제
:line, lined 지정한 범위의 삭제

20. 여러 줄의 복사와 이동  
:linecotarget 지정한 줄을 복사하여 target 줄 밑에 삽입
:line, linecotarget 지정한 범위를 복사하여 target 줄 밑에 삽입
:linemtarget 지정한 줄로 이동하여 target 줄 밑에 삽입
:line, linemtarget 지정한 범위로 이동하여target 줄 밑에 삽입

21. 데이터를 처리하기 위한 셸 명령의 사용  
n!!command n번 줄에서 command의 실행
!move command 커서부터 move까지 command 실행
!move fmt 커서부터 move까지 줄들을 형식 맞추기

22. 데이터 저장하기  
:w 원래의 파일로 데이터를 저장
:w file 지정한 파일로 데이터를 저장
:w>> file 지정한 파일에 데이터를 추가

 

'Linux' 카테고리의 다른 글

lighthttpd install  (0) 2008.06.04
설치  (0) 2008.06.04
BIND,NAMED? DNS설정  (0) 2008.06.04
Command2  (0) 2008.06.04
Command  (0) 2008.06.04
Posted by 으랏차
,

Command

Linux 2008. 6. 4. 13:38

로그인 명령

 

① 로그인


· 리눅스로 부팅하면 언제나 초기 화면에서 로그인과 패스워드를 입력해야 리눅스를 사용할 수 있

  다.
· 로그인하면 '[로그인 명@자신의 컴퓨터 이름 현재의 위치]프롬프트($)' 형식으로 나타난다.

- 사용 예
  login : xfile
  Password : ******
  [xfile@localhost xfile]$


② 로그아웃


 

· 로그인 상태에서 시스템을 종료하는 것이 아니라 자신만 리눅스에서 빠져 나오는 명령이다.
· 같은 기능으로 exit 명령이 있다.


 

- 사용법
  logout


③ 종료


 

· 시스템을 종료하는 명령이다.
· 같은 기능으로 halt 명령이 있다.


 

- 사용법

  shutdown -h now


④ 재부팅


 

· 시스템을 재부팅하는 명령이다.
· 같은 기능으로 reboot 명령이 있다.


 

- 사용법
  shutdown -r now

사용자 계정 명령


리눅스에서 사용하는 사용자 계정 명령으로 'passwd'와 'adduser', 'userdel', 'userdel' 등의 명

령이 있다.


① passwd


· 비밀번호를 변경할 때 사용하는 명령이다.
· 사용자의 비밀번호는 /etc/passwd에 저장된다.


- 사용법
  passwd


- 사용 예


 사용자 정보


· /etc/passwd 파일에는 사용자의 정보가 ':'로 구분되어 저장되어 있다.
· '계정 이름:패스워드:UID:GID:사용자 이름:홈 디렉토리:사용하는 셀'의 순으로 저장되며 문서 편집

  기나 usermod 명령으로 수정할 수 있다.


② adduser


사용자 계정 추가하는 명령이다.


- 사용법
  adduser [옵션] 계정 이름


- 옵션
   -d 홈 디렉토리 : 새 계정에 대한 홈디렉토리 위치를 나타낸다.
   -e 유효 기간 : 지정된 날짜에 사용자 계정이 삭제된다.
   -s shell : 사용자의 로그인 셀을 설정한다.
   -G 그룹1, 그룹2.. : 사용자가 기본 그룹 외에 다른 그룹에 추가할 때 사용한다.


- 사용 예


③ userdel


사용자 계정을 삭제하는 명령이다.


- 사용법
  userdel [옵션] 계정 이름


- 옵션
   -r : 사용자 계정의 홈 디렉토리도 삭제한다.


- 사용 예


④ usermod


사용자의 정보를 변경하는 명령이다.


- 사용법
  usermod [옵션] 계정 이름


- 옵션
   -c : 사용자의 설명을 수정한다.
   -d 홈 디렉토리 : 사용자의 홈 디렉토리를 변경한다.
   -G 그룹 : 사용자의 그룹을 변경한다.
   -s shell : 사용자의 로그인 셀을 변경한다.

파일 및 디렉토리의 권한


· 유닉스는 멀티유저 운영 체제이기 때문에 사용하는 사람이 누구냐에 따라 허가권이 다르게 설정

  된다.
· 'ls -al' 명령을 사용하여 파일과 디렉토리의 권한 정보를 알 수 있다.

· 허가권을 주는 것을 'rwx'이고 허가권을 주지 않는 것은 '-'이다.
· A1이 'd'이면 디렉토리를 뜻하며 'l'이면 링크를 뜻하고 '-'이면 파일을 나타낸다.
· USER는 소유자의 권한이며 GROUP은 소유자가 속한 그룹에 대한 권한이고 OTHER는 제 3자, 즉

  타인의 권한이다.
· r은 읽기(read), w은 쓰기(write), x은 실행(execute)을 뜻하며 숫자 값으로 나타내면 r은 4(2진법

  으로 '100'), w은 2(2진법으로 '010'), x은 1(2진법으로 '001')의 값을 가진다.
· 일반적으로 제 3자가 사용할 수 있게 하려면 OTHER의 허가권이 7(rwx)이나 5(r-x)이어야 하며 소

  유자 자신만이 사용하려면 허가권이 700(rwx------)이여야 한다.



권한 설정 명령


Chmod

· 파일과 디렉토리에 대한 허가권을 변경할 때 사용하는 명령이다.
· 허가권을 변경하는 방식으로 절대 모드 방식과 심볼릭 모드 방식이 있다.


① 절대 모드 방식

- 사용법
   chmod [옵션] mode 파일 이름

- 옵션
   -c : 허가권이 변경된 파일에 대한 정보를 보여 준다.
   -v : 변경된 허가권에 대한 정보를 보여 준다.
   -f : 허가권이 바뀌지 않는 것에 대한 에러 메시지를 보여주지 않는다.


② 심볼릭 모드 방식

- 사용법
   chmod [users] [operator] [permission] 파일 이름

- users
   u : 파일 소유자
   g : 소유자가 속한 그룹
   o : 제 3자
   a : u, g, o 모두를 뜻하며 특정 사용자를 지정하지 않으며 'a'로 인식된다.

- operator
   + : 사용 허가
   - : 사용 불가
   = : 허가 취소

- permission
   r : 읽기 허가
   w : 쓰기 허가
   x : 실행 허가



 chgrp

· 파일 소유자가 속한 그룹에 대한 허가권을 변경하는 명령이다.
· 파일에 접근할 수 없는 그룹이 그 파일에 접근 가능하게 하는 것이다.

 

 chown

· 파일 소유자의 허가권을 변경하는 명령이다.

기본 명령


① ls


· 도스의 Dir 명령과 비슷하며 현재 작업 중인 파일이나 디렉토리의 정보를 볼 수 있다.
· 이름 뒤에 '*' 표시가 있으면 실행 파일이고 '@' 표시가 있으면 다른 파일의 링크(Link)를

  나타내고 '.'으로 시작하는 파일은 히든(Hidden) 파일을 나타낸다.


- 사용법
  ls [옵션]


- 옵션
   -a : 디렉토리 내의 모든 파일 출력한다.
   -l : 파일 허용 여부, 소유자, 그룹, 크기, 날짜 등을 출력한다.
   -m : 파일을 쉼표로 구분하여 가로로 출력한다.
   -s : KB 단위의 파일 크기를 출력한다.
   -t : 최근에 만들어진 파일 순서대로 출력한다.
   -R : 서브 디렉토리의 내용을 포함하여 출력한다.
   -S : 파일 크기가 큰 순서로 출력한다.
   -U : 정렬하여 출력한다.


② cd


·현재 디렉토리에서 다른 디렉토리로 이동하는 명령이다.
·디렉토리를 입력하지 않으면 로그인한 디렉토리로 이동한다.
·'cd .'은 현재 디렉토리를 나타내다.
·'cd ..' 은 상위 디렉토리로 이동한다.


 절대 경로와 상대 경로


· 절대 경로 방식은 현재 작업 디렉토리와는 관계없이 언제나 시스템의 가장 상위 디렉토리인 /

  (root) 디렉토리부터 시작하여 다른 디렉토리를 나타내는 방식이다.
· 상대 경로 방식은 현재 작업 디렉토리를 기준으로 다른 디렉토리를 나타내는 방식이다.
· 예로 현재 작업 디렉토리는 /home/xfile이고 /bin 디렉토리로 이동할 경우 절대 경로 방식은

  cd /bin이고, 상대 경로 방식은 cd ../../bin이 된다.


③ pwd


사용자가 현재 작업 중인 디렉토리의 경로를 절대 경로 방식으로 보여준다.


④ rm


파일이나 디렉토리를 삭제하는 명령으로 리눅스에서는 삭제된 파일을 복구할 수 없다.


- 사용법
  rm [옵션] 파일이나 디렉토리


- 옵션
   -f : 삭제할 것인가의 메시지 없이 강제로 파일을 삭제한다.
   -i : 삭제 시 정말 삭제할 것인지 확인 메시지가 나타나며 y를 입력하면 삭제된다.
   -r : 하위 디렉토리와 파일을 전부 삭제한다.
   -v : 파일을 삭제하기 전에 지울 파일의 이름을 나타난다.


⑤ mkdir


디렉토리를 새로 만드는 명령이다.


- 사용법
  mkdir [옵션] 디렉토리


- 옵션
   -p : 지정된 모든 서브 디렉토리까지 함께 만든다.


⑥ rmdir


·디렉토리를 삭제하는 명령이다.
·삭제할 디렉토리에 파일이 있으면 먼저 rm 명령으로 파일을 삭제하고 rmdir 명령으로 디렉토리를 삭제한다.


- 사용법
  rmdir [옵션] 디렉토리


- 옵션
   -p : 지정된 모든 서브 디렉토리까지 함께 삭제한다.

기본 명령


① cp


도스의 copy와 같은 명령어로 파일을 다른 파일 이름, 디렉토리로 복사하는 명령어이다.

- 사용법
  cp [옵션] {원본 파일} {사본 파일}

- 옵션
   -a : 원본 파일의 구조, 속성, 링크 정보를 그대로 복사한다.
   -b : 복사한 파일을 덮어쓰거나 지울 때 백업 파일을 만들며 파일 이름 뒤에 ~가 붙는다.
   -d : 심볼릭 링크 파일을 그대로 복사한다.
   -f : 같은 파일이름을 갖는 파일이 있을 경우 지운 후 복사한다.
   -i : 같은 파일이름을 갖는 파일이 있을 경우 사용자 확인 후에 복사한다.
   -p : 원본 파일의 소유자, 그룹, 허용 여부, 시간 등을 그대로 복사한다.
   -r : 서브 디렉토리 내에 있는 모든 파일을 복사한다.
   -s : 심볼릭 링크를 만든다.
   -u : 사본보다 원본이 새로운 것일 때 복사한다.
   -v : 복사하기 전에 각각의 파일 이름을 출력한다.


② mv

· 현재 디렉토리 내에 있는 파일을 다른 디렉토리로 이동시키는 명령으로 cp 명령과 같으나 원본이

  지워진다.
· 파일의 이름을 바꿀 때도 사용한다.

- 사용법
  mv [옵션] {원본 파일} {사본 파일}

- 옵션
   -b : 파일이 지워지기 전에 백업 파일을 만들고 이동한다.
   -f : 옮겨질 디렉토리에 파일이 있어도 강제로 덮어쓴다.
   -i : 옮겨질 디렉토리에 파일이 있으면 덮어쓸 것인가를 확인한다.
   -u : 옮겨질 디렉토리에 구 버전의 파일이 있을 경우만 옮긴다.
   -v : 옮기기 전에 파일 이름을 출력한다.


③ more/less

· more는 내용이 한 페이지를 넘을 때 한 페이지 씩 화면에 출력하는 명령이다.
· more 명령이 실행된 상태에서 또는 z 키를 누르면 한 페이지씩 넘어가며 나 l 키를 누르면 한 줄씩

  더 출력되고 빠져나오고 싶으면 q나 Q 키를 누르면 된다.
· less는 more 명령과 같은 기능을 하지만 페이지를 앞으로 이동할 수 있다.


 pipe(파이프)

·'|' 기호를 중심으로 왼쪽 명령의 결과가 오른쪽 명령의 입력으로 사용된다.
·명령어를 한 번에 하나씩 실행하지 않고 한꺼번에 여러 개의 명령을 실행할 수 있다.


④ cat

텍스트 파일의 내용을 화면에 출력하는 명령이다.

- 사용법
  cat 파일이름


⑤ redirection(리디렉션)

· 어떤 명령의 결과 값을 원하는 위치로 출력하거나 어떤 명령의 입력 값을 원하는 위치로 받을 수

  있다.
· '>'기호를 중심으로 앞의 결과 값이 뒤에 나오는 파일이나 하드웨어 장치로 출력되고 '<'기호를

  중심으로 앞에 있는 파일이나 하드웨어 장치로부터 명령어를 입력받는다.
· '>>'기호는 앞의 결과 값이 뒤에 나오는 파일로 출력되었을 경우 기존에 그 파일의 내용을 덮어쓰

  지 않고 파일의 뒷부분에 추가된다.


⑥ grep

파일의 내용 중에 특정한 문자만 출력하는 명령이다.

- 사용법
  grep [옵션] {찾을 문자}

- 옵션
   -C : 일치하는 문장의 상하 두 라인까지 포함하여 출력한다.
   -c : 일치하는 라인의 개수를 출력한다.
   -h : 파일명은 출력하지 않는다.
   -i : 대소문자 구분하지 않는다.
   -s : 에러 메시지만을 출력한다.
   -v : 일치하지 않는 내용을 출력한다. 

기본 명령


① mount/umount


· 리눅스를 포함한 유닉스 계열의 운영 체제는 모든 하드웨어 장치를 파일로 취급하기 때문에 그 하

  드웨어 장치와 특정 디렉토리를 연결하는 마운트(Mount) 작업을 거친 후 사용할 수 있다.
· 결과적으로 CDROM이나 Floppy 등과 같은 장치를 사용하기 위해서는 mount 명령을 실행해야 하

  며 장치를 다 사용한 후 umount 명령으로 연결을 해제해야 한다.
· 반드시 root에서 명령을 실행해야 한다.


- 사용법
  mount [-t 파일 시스템] {하드웨어 장치} {특정 디렉토리}

- 파일 시스템
   CDROM : iso9660
   ms-dos : msdos/umsdos
   win98 : vfat
   linux : ext2
   floppy : msdos


② find

· 원하는 파일을 조건에 맞게 디렉토리에서 찾아주는 명령이다.
· root에서 접근 권한을 제한한 파일이나 디렉토리에 관해서는 '허가 거부됨'이라는 메시지가 뜨고

  찾지 못한다.
· 비슷한 명령으로 locate 명령이 있다.

- 사용법
  find [옵션] 파일 이름

- 옵션
   -name : 파일의 이름을 기준으로 찾는다.
   -perm : 파일의 권한 (permission)이 일치하는 것을 찾는다.
   -user : 사용자의 ID에 따라서 검색한다.
   -newer : 최근에 갱신된 모든 파일을 검색한다.


③ echo

하나의 단어나 하나의 문자열을 입력한 그대로 화면에 출력하는 명령이다.

- 사용법
   echo 문자


④ man

지정한 명령이나 유틸리티의 도움말을 출력하는 명령이다.

- 사용법
  man 명령어


⑤ ps

현재 메모리에서 작동 중인 프로세스를 나타내는 명령이다.

- 사용법
  ps [옵션]

- 옵션
   -a : 모든 프로세스를 나타낸다.
   -u : 프로세스를 실행한 사용자와 실행 시간을 나타낸다.
   -x : 터미널 제어 없이 프로세스 현황을 나타낸다.
   -m : 메모리 정보를 나타낸다.


 프로세스(Process)

리눅스 운영 체제에서는 메모리에 로딩되어 작동하는 프로그램 요소 하나 하나를 프로세스라고 하며 복잡한 프로그램은 여러 프로세스로 나누어져서 동작한다.


⑥ kill

현재 동작 중인 프로세스를 종료하는 명령이다.

- 사용법
  kill [옵션] 프로세스 번호

- 옵션
   -2 : 실행 중인 프로세스에게 인터럽트 키 신호를 보낸다.
   -9 : 실행 중인 프로세스를 바로 종료시키며 비슷한 명령으로 killall이 있다.(수정)

기본 명령


① df


disk free 명령으로 현재 하드디스크의 전체 용량 및 남은 용량을 출력하는 명령이다.


- 사용법
   df [옵션]


- 옵션
   -h : 용량 표시를 바이트(byte) 형태로 나타낸다.
   -T : 파일 시스템 종류와 함께 디스크 정보를 나타낸다.


② du


disk usage로 각각의 디렉토리와 파일들이 차지하고 있는 디스크 용량을 출력하는 명령이다.


- 사용법
   du [옵션] 디렉토리 또는 파일이름


- 옵션
   -a : 사용한 디스크 용량을 나타낸다.
   -k : 용량 표시를 킬로바이트(kbyte) 형태로 나타낸다.
   -m : 용량 표시를 메가바이트(mbyte) 형태로 나타낸다.


③ top


· 실시간으로 현재 작동 중인 프로세스에 대한 정보를 나타내는 명령이다.
· 프로세스 번호(PID)와 CPU 사용률, 프로세스 소유자 등의 정보를 나타낸다.


- 사용법
   top


④ su


· 현재 상태에서 다른 사용자로 다시 login하는 명령이다.
· 사용자 ID를 입력하지 않으면 root로 login 된다.


- 사용법
  su [ID]


⑤ who


시스템을 사용하고 있는 사용자들의 이름과 터미널 번호, 로그인 시간 등을 출력하는 명령이다.


- 사용법
  who [옵션]


- 옵션
   -i : idle time과 함께 사용자를 나타낸다.
   -m : who 명령을 실행한 사용자를 나타낸다.
   -q : 사용자 이름과 사용자 수를 나타낸다.


⑥ w


로그인 되어있는 사람과 현재 실행중인 작업의 종류를 나타내는 명령이다.


- 사용법
  w

 

 

'Linux' 카테고리의 다른 글

lighthttpd install  (0) 2008.06.04
설치  (0) 2008.06.04
BIND,NAMED? DNS설정  (0) 2008.06.04
Command2  (0) 2008.06.04
Vi 편집기  (0) 2008.06.04
Posted by 으랏차
,