find 상위디렉토리 type d -name "파일명" -exec rm -rf {} \;

'old > Linux' 카테고리의 다른 글

심볼릭링크 생성  (0) 2010.08.13
smb.conf 설정 예  (0) 2010.08.10
일정 등록(자동 종료 등) - cron  (0) 2010.05.11
지정 시간에 동작을 예약하는 명령어 [at 사용법]  (0) 2010.05.08
리눅스용 소스 비교 툴  (0) 2010.04.19
Posted by jazzlife
,

심볼릭링크 생성

old/Linux 2010. 8. 13. 11:15

※ 리눅스에서 심볼릭링크 생성

심볼릭링크 : 다른파일(또는 디렉토리)에 대한 추상적인 위치를 가리키는 경로(Path)

하드링크 : 특정한 물리적인 데이터 경로


심볼릭링크 생성방법

$ln -s /path/to/file1.txt /path/to/file2.txt

$ls -ali


하드링크 생성방법

#ln /root/file1 /root/file2

#ls -l

 

Posted by jazzlife
,

smb.conf 설정 예

old/Linux 2010. 8. 10. 17:05

31.5. Configuration of the /etc/smb.conf file

The /etc/smb.conf file is the main configuration file for the Samba server, in which you can specify which directory you want to access from Windows machines, which IP addresses are authorized, and so on. The first few lines of the file under the [global] line contain global configuration directives, which are common to all shares, unless they are over-ridden on a per-share basis, followed by share sections. A lot of options exist, and it's important to read the documentation that comes with Samba for more information on each of the different settings and parameters.

The following configuration example is a minimal working configuration file for Samba with encrypted password support. Also, it's important to note that we comment in this Samba configuration only parameters that relate to security and optimization, and left other posiblities for you to explore.

In our example we have created just one directory, [tmp] and have allowed only class C machine IP address ranges to connect on the Samba server. Also, we don't use print-sharing capability between Samba and Windows on this server. Edit the smb.conf file, vi /etc/smb.conf and add/change the following parameters:

      [global]

      workgroup = OPENNA
      server string = R&D of Open Network Architecture Samba Server
      encrypt passwords = True
      security = user
      smb passwd file = /etc/smbpasswd
      log file = /var/log/samba/log.%m
      socket options = IPTOS_LOWDELAY TCP_NODELAY
      domain master = Yes
      local master = Yes
      preferred master = Yes
      os level = 65
      dns proxy = No
      name resolve order = lmhosts host bcast
      bind interfaces only = True
      interfaces = eth0 192.168.1.1
      hosts deny = ALL
      hosts allow = 192.168.1.4 127.0.0.1
      debug level = 1
      create mask = 0644
      directory mask = 0755
      level2 oplocks = True
      read raw = no
      write cache size = 262144

      [homes]
      comment = Home Directories
      browseable = no
      read only = no
      invalid users = root bin daemon nobody named sys tty disk mem kmem users

      [tmp]
      comment = Temporary File Space
      path = /tmp
      read only = No
      valid users = admin
      invalid users = root bin daemon nobody named sys tty disk mem kmem users
    

This tells the smb.conf file to set itself up for this particular configuration setup with:

[global].

workgroup = OPENNA

The option workgroup specifies the workgroup your server will appear to be in when queried by clients. It's important to have the same workgroup name on both clients and servers.

server string = R&D of Open Network Architecture Samba Server

The option server string specifies the string that you wish to show to your users in the printer comment box in print manager, or to the IPC connection in the net view command under Windows machines.

encrypt passwords = True

The option encrypt passwords if set to True instructs Samba to use encrypted passwords instead of plain text password when negotiating with the client. Sniffer program will not be able to detect your password when it is encrypted. This option always must be set to True for security reasons.

security = user

The option security, if set to user, specifies that a client must first log-on with a valid username and password, or the connection will be refused. This means that a valid username and password for the client must exit in your /etc/passwd file on the Linux server and in the /etc/smbpasswd file of the Samba server, or the connection from the client will fail. See Securing samba in this chapter for more information about the smbpasswd file.

smb passwd file = /etc/smbpasswd

The option smb passwd file specifies the path to the encrypted smbpasswd file. The smbpasswd file is a copy of the /etc/passwd file of the Linux system containing valid usernames and passwords of clients allowed to connect to the Samba server. The Samba software reads this file, smbpasswd when a connection is requested.

log file = /var/log/samba/log.%m

The option log file specifies the locations and names of Samba log files. With the name extension %m, it allows you to have separate log files for each user or machine that logs on your Samba server i.e. log.machine1.

socket options = IPTOS_LOWDELAY TCP_NODELAY

The option socket options specifies parameters that you can include in your Samba configuration to tune and improve your samba server for optimal performance. By default we chose to tune the connection for a local network, and improve the performance of the Samba server for transferring files.

domain master = Yes

The option domain master specifies to set nmbd, the Samba server daemon, as a domain master browser for its given workgroup. This option usually must be set to Yes only on one Samba server for all other Samba servers on the same network and workgroup.

local master = Yes

The option local master allows nmbd, the Samba server daemon, to try to become a local master browser on a subnet. Like the above, usually this option must be set to Yes only on one Samba server that acts as a local master on a subnet for all the other Samba servers on your network.

preferred master = Yes

The option preferred master specifies and controls if nmbd the Samba server daemon, is a preferred master browser for its workgroup. Once again, this must usually be set to Yes on one server for all the others on your network.

os level = 65

The option os level specifies by its value whether nmbd, the Samba server daemon, has a chance of becoming a local master browser for the Workgroup in the local broadcast area. The number 65 will win against any NT Server. If you have an NT Server on your network, and want to set your Linux Samba server to be a local master browser for the Workgroup in the local broadcast area then you must set the os level option to 65. Also, this option must be set only on one Linux Samba server, and must be disabled on all other Linux Samba servers you may have on your network.

dns proxy = No

The option dns proxy if set to Yes specifies that nmbd, the Samba server daemon, when acting as a WINS server and finding that a Net BIOS name has not been registered, should treat the Net BIOS name word-for-word as a DNS name and do a lookup with the DNS server for that name on behalf of the name-querying client. Since we have not configured the Samba server to act as a WINS server, we don't need to set this option to Yes. Also, setting this option to Yes will degrade your Samba performance.

name resolve order = lmhosts host bcast

The option name resolve order specifies what naming services to use in order to resolve host names to IP addresses, and in what order. The parameters we chose cause the local lmhosts file of samba to be examined first, followed by the rest.

bind interfaces only = True

The option bind interfaces only if set to True, allows you to limit what interfaces will serve smb requests. This is a security feature. The configuration option interfaces = eth0 192.168.1.1 below completes this option.

interfaces = eth0 192.168.1.1

The option interfaces allows you to override the default network interface list that Samba will use for browsing, name registration and other NBT traffic. By default, Samba will query the kernel for the list of all active interfaces and use any interface, except 127.0.0.1, that is broadcast capable. With this option, Samba will only listen on interface eth0 on the IP address 192.168.1.1. This is a security feature, and completes the above configuration option bind interfaces only = True.

hosts deny = ALL

The option hosts deny specifies the list of hosts that are not permitted access to Samba services unless the specific services have their own lists to override this one. For simplicity, we deny access to all hosts by default, and allow specific hosts in the hosts allow = option below.

hosts allow = 192.168.1.4 127.0.0.1

The option hosts allow specifies which hosts are permitted to access a Samba service. By default, we allow hosts from IP class C 192.168.1.4 and our localhost 127.0.0.1 to access the Samba server. Note that the localhost must always be set or you will receive some error messages.

debug level = 1

The option debug level allows the logging level to be specified in the smb.conf file. If you set the debug level higher than 2 then you may suffer a large drop in performance. This is because the server flushes the log file after each operation, which can be very expensive.

create mask = 0644

The option create mask specifies and sets the necessary permissions according to the mapping from DOS modes to UNIX permissions. With this option set to 0644, all file copying or creating from a Windows system to the Unix system will have a permission of 0644 by default.

directory mask = 0755

The option directory mask specifies and set the octal modes, which are used when converting DOS modes to UNIX modes when creating UNIX directories. With this option set to 0755, all directory copying or creating from a Windows system to the Unix system will have a permission of 0755 by default.

level2 oplocks = True

The option level2 oplocks, if set to True, will increase the performance for many accesses of files that are not commonly written, such as .EXE application files.

read raw = no

The option read raw controls whether or not the server will support the raw read SMB requests when transferring data to clients. Note that memory mapping is not used by the read raw operation. Thus, you may find memory mapping is more effective if you disable read raw using read raw = no, like we do.

write cache size = 262144

The option write cache size allows Samba to improve performance on systems where the disk subsystem is a bottleneck. The value of this option is specified in bytes, and a size of 262,144 represent a 256k cache size per file.

[tmp].

comment = Temporary File Space

The option comment allows you to specify a comment that will appear next to a share when a client does queries to the server.

path = /tmp

The option path specifies a directory to which the user of the service is to be given access. In our example this is the tmp directory of the Linux server.

read only = No

The option read only specifies if users should be allowed to only read files or not. In our example, since this is a configuration for the tmp directory of the Linux server, users can do more than just read files.

valid users = admin

The option valid users specifies a list of users that should be allowed to login to this service. In our example only the user admin is allowed to access the service.

invalid users = root bin daemon nobody named sys tty disk mem kmem users

The option invalid users specifies a list of users that should not be allowed to login to this service. This is really a paranoid check to absolutely ensure an

Posted by jazzlife
,

CRON 데몬, 즉 예약스케줄러를 걸어놓을 때는 다음 두가지 방법이 있다.

여기서는 리부팅 예약과 타임싱크(보라넷타임서버사용) 예약건에 대해 명시하도록 하겠다.

(가정 : 타임은 매 5분마다 동기화하며, 매일 08시에 서버를 자동리부팅한다.)


# Crontab 형식

 분 | 시간 | 날짜 | 달 | 요일 | 사용자 | 명령

1. 분: 10(10분)
2. 시간: 14(오후2시)
3. 날짜: 15(15일)
4. 달: *(매달)
5. 요일: 0~6 (일요일~금요일)
6. 명령: shell


1. vi /etc/crontab 명령으로 파일을 연뒤,


   0,5,10,15,20,25,30,35,40,45,50,55 * * * * root /usr/bin/rdate -s time.bora.net

   0 8 * * * root /sbin/shutdown -r now

  

   위와 같이 입력한다.


   혹은,

   5 * * * * root /usr/bin/rdate -s time.bora.net

   0 8 * * * root /usr/bin/reboot

  

   으로 해도 같은 의미이다.


2. crontab -e 를 타이핑한 후 엔터한후, 위의 내용을 동일하게 입력하면 된다.


단, 차이점은

vi /etc/crontab 을 열어 예약작업을 입력할땐,

반드시 root 권한으로 실행함을 명기하여야 한다. 그러나, crontab -e 명령으로 예약작업을 입력할땐,

root 표기를 넣지 않아도 된다.


즉,


   0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/bin/rdate -s time.bora.net

   0 8 * * * /sbin/shutdown -r now

or

   5 * * * * /usr/bin/rdate -s time.bora.net

   0 8 * * * /usr/bin/reboot


# 최종적으로 service crond restart 를 하여 Cron 데몬을 반드시 재시작해야 하며

crontab -e 로 입력한 명령이 정상적으로 예약작업으로 등록되어 있는지 확인하고자 할경우에는,

crontab -l  를 입력하면 예약된 작업들이 Display된다.

</SCRIPT> 

'old > Linux' 카테고리의 다른 글

심볼릭링크 생성  (0) 2010.08.13
smb.conf 설정 예  (0) 2010.08.10
지정 시간에 동작을 예약하는 명령어 [at 사용법]  (0) 2010.05.08
리눅스용 소스 비교 툴  (0) 2010.04.19
백그라운드 실행  (0) 2010.04.01
Posted by jazzlife
,

1.     at 데몬(작업 스케쥴 예약 데몬)

2.     at 데몬은 어떤 명령을 연속적으로 내려야 하는데 지금은 바쁜 경우라든지 외부에서 텔넷으로 접근해서 작업을 해야 하는데 해당 작업을 계속 하도록 하고 싶은 경우에 사용하는 작업 스케쥴 예약 데몬이며, 이 데몬은 일반적으로 root 유저만 사용이 가능하다.

3.     at 데몬의 사용법

at
데몬(atd)을 사용하기 위해서는 at, atq, atrm, batch 명령에 대해서 알아야 한다.

1.     at, atq, atrm

이 명령어는 실제적으로 atd 데몬에 명령어를 내리는 명령어로 명령해에는 언제 실행할 것인지 그리고 무슨 옵션으로 실행할 것인지에 대한 옵션이 있고, 명령어를 엔터를 쳐서 입력하면 커서가 한 줄 밑으로 내려가게 되는데 여기서 실행할 명령을 순서대로 하나씩 쳐서 입력한 뒤에 다 끝나면 [Ctrl]+[D] 를 눌러서 나가면 된다.

사용법

2.     Usage: at [-V] [-q x] [-f file] [-m] time
           atq [-V] [-q x] [-v]
           atrm [-V] [-q x] job ...
           batch [-V] [-f file] [-m]

옵션

3.     -V : 버전을 보여준다.
-q queue :
실행할 대기큐를 정할 수 있다. 사용할 수 있는 문자는 a-z, A-Z 까지이며, a가 기본 큐이다. 특별히 b batch 명령에서 사용하는 큐이며 그 외에는 높은 글자를 사용할 수록 nice값을 높여서 실행하게 된다. atq로 큐를 확인할 수 있다.
-f file :
표준 입력이 아닌, 뒤에 써주는 파일에서 명령어를 읽어들인다.
-m :
실행한 결과를 메일로 통보해준다.
-l : atq
를 실행하는 alias이다.
-d : atrm
을 실행하는 alias이다.
-v :
끝난 작업이지만 아직 큐에서 삭제되지 않은 작업을 적어준다.
-c :
작업 리스트를 명령행을 포함하여 표준 출력으로 보여준다.
TIME :
실행할 시간을 기록한다. 기본적으로 "hh:mm YYYY-MM-DD"로 적는다. hh:mm은 시간으로 24시간제를 기본으로 한다.

사용예

4.     실제 명령은 아래와 같이 "at + 실행할 시간"으로 명령을 내리면 at>라는 프롬프트가 뜨는데 여기서 부터 실제 내릴 명령을 계속적으로 써주면 된다.

[root@bluestar bin]# at 12:00 2000-03-02
at> find / -name *linux* -print
at> tee ~/linux.txt
at> < EOT>   <- [EOT]
는 실제는 [Ctrl]+[D]이다.
warning: commands will be executed using /bin/sh
job 1 at 2000-03-02 12:00
[root@bluestar bin]#

위에서 "at 12:00 2000-03-02" 2000 3 2일에 아래에 타이핑한 명령어를 실행하라는 뜻이며, 그 다음에 내린 명령들은 가운데 'linux'라는 패턴이 들어가는 파일을 찾아서 그 결과를 ~/linux.txt 라는 파일에 저장하라는 뜻이다.
마지막으로 [Ctrl]+[D]를 눌러서 끝내게 되는데, 시스템은 커맨드를 언제 입력했는지를 보여주며 job 1에 할당되었다고 보여주고 있다.

이번에는 다른 예를 보기로 하자.

[root@bluestar bin]# at now + 2 hours
at> find / -name *.html -print
at> tee ~/html.txt
at> mount -t vfat /dev/hda1 /mnt/win98_c
at> cp ~/html.txt /mnt/win98_c/
at> < EOT>
warning: commands will be executed using /bin/sh
job 2 at 2000-03-02 13:34
[root@bluestar bin]#

위는 지금부터 2시간 후에 아래 명령들을 실행하라는 뜻이다. hours 대신에 minutes, days, week 등이 쓰일 수 있으며, 그냥 "at now" 라고 쓰면 모든 명령을 입력한 후 [Ctrl]+[D]를 입력하는 즉시 실행한다.

이러한 atd 데몬은 쉘스크립트내에서 아주 유용하게 사용되어 질 수 있는데, 만약 어떤 쉘스크립트의 마지막 부분에 "at -m -f $0 now + 3 days"라고 써주게 되면 해당 쉘스크립트를 매번 3일마다 실행하게 되며, 그 결과를 메일로도 알려주게 된다.


이제 이렇게 예약된 작업내용(:queue)을 보려면 at 명령에 -l 옵션을 주거나 atq 명령을 써면 된다.

[root@bluestar bin]# at -l
1 2000-03-02 12:00 a
2 2000-03-02 13:34 a

[root@bluestar bin]# atq
1 2000-03-02 12:00 a
2 2000-03-02 13:34 a

큐에 있는 작업을 지우려면 atrm 명령을 사용한다.

[root@bluestar bin]# atrm 2
[root@bluestar bin]# atq
1 2000-03-02 12:00 a  <- 2
번 작업이 지워졌다.
[root@bluestar bin]#

5.     batch

batch
명령은 at와 사용법이 같다.

[root@bluestar bin]# batch
at> find / -name *.html -print
at> tee ~/html.txt
at> mount -t vfat /dev/hda1 /mnt/win98_c
at> cp ~/html.txt /mnt/win98_c/
at>
warning: commands will be executed using /bin/sh
job 3 at 2000-03-02 11:56
[root@bluestar bin]#

4.     at 사용유저 제한

이러한 atd 데몬을 아무 유저나 마음데로 쓰게 된다면 시스템에 많은 부하가 걸릴 수가 있으므로 사용유저를 제한할 필요가 있는데 이 때 사용되는 파일이 /etc/at.allow/etc/at.deny 파일이다.
보통 둘중에 하나의 파일만 사용하며, /etc/at.allow 파일을 먼저 읽게 된다. /etc/at.allow 파일에 특정 유저명을 적어넣으면 그 유저들을 제외한 나머지 유저는 at를 사용할 수 없으며, /etc/at.deny는 반대이다.

[root@bluestar /root]# cat < /etc/at.allow
bluesky
jkpark
[root@bluestar /root]#

1.     ·  cron 데몬(주기적 작업실행 데몬)

2.     crond 데몬은 일정시간 주기로 반복하는 작업을 할 수 있는 데몬이다.

3.     cron 데몬의 사용 : crontab

cron
데몬의 가동은 /etc/rc.d/init.d/crond에 있다. 보통 시스템의 어떤 런레벨이든지 cron 데몬은 부팅시 시작하도록 되어 있는데, 굳이 cron 데몬을 죽이거나 다시 시작하기 위해서는 위의 /etc/rc.d/init.d/crond 실행 스크립트를 실행하면 된다. cron 데몬에 작업을 설정하기 위해서는 cron table을 설정하는 crontab라는 실행파일을 사용한다.

사용법

4.     usage:    crontab [-u user] file
              crontab [-u user] { -e | -l | -r }
                         (default operation is replace, per 1003.2)
             -e         (edit user's crontab)
             -l          (list user's crontab)
             -r          (delete user's crontab)

옵션

5.     -u 사용자 : 특정 사용자의 crontab 파일을 다루도록 지정한다. 이 명령은 root 유저인 경우만 사용하능하며, 일반적으로는 자신의 cron 스케쥴링에 걸려있는 작업만 보거나 설정을 할 수 있다.
-l : crontab
에 등록되어 있는 스케쥴을 확인한다.
-r :
사용자의 crontab 파일을 지운다.
-e :
에디터를 사용하여 crontab 파일을 수정한다.(새로운 스케쥴을 등록한다.)
file : cron table
내용을 기록한 파일에서 읽어와서 설정한다.

사용예

6.     우선 cron table을 편집하기 위해서는 crontab -e 명령을 사용한다.
"crontab -e"
를 실행하면 cron table을 편집할 수 있도록 vi 에디터가 실행이 되는데 실행하고자 하는 내용을 입력하고 빠져 나오면 되는데 입력 형식은 아래와 같다.

01 4 * * * /etc/rc.d/init.d/network stop
15 4 * * * ~/scripts/my_script.sh
00 5 * * * /etc/rc.d/init.d/network start


위의 내용이 cron table에 입력된 내용인데 이러한 입력형식은 아래와 같다.

M H D m d cmd-line

필드명

범위

설명

M

0-59,*

분을 의미하며, *는 모든 범위를 말한다.

H

0-23,*

시를 의미한다.

D

1-31,*

날짜를 의미한다.

m

1-12,*

달을 의미한다.

d

0-7,*

요일을 의미하며, 0 7은 일요일(Sun)을 의미한다.

cmd-line

실행할 명령을 그냥 써준다.

7.    
결국 위의 입력내용중 첫번째 입력인 "01 4 * * * /etc/rc.d/init.d/network stop"은 매일 4 01분에 뒤의 "/etc/rc.d/init.d/network stop" 명령을 실행하게 되며, 다른 입력내용들도 동일하게 해석된다. 각자의 사용자가 등록한 cron table/var/spool/cron 디렉토리에 저장된다.


입력 내용의 다른 예를 보면,

30 13 * * 1-5 mail -s "It's 2pm" root% Dear root%% Are you sleeping??

같은 경우는 월요일부터 금요일까지 오후 1 30분에 해당 mail 명령을 실행하게 된다.
위에서 % 문자는 개행문자 역할을 하며(풀어쓰면 아래와 같은 명령이 된다), 한줄이 넘어가는 명령을 쓰기 위해서는 백슬래쉬(\)를 써주고 다시 개행해서 쓰면 된다.

$ mail -s "It's 2pm" root
Dear root

Are you sleeping?
[EOT]
Cc:
$


이제 이렇게 작성된 cron table을 보거나 삭제하고자 할 경우에는 -l 옵션(table을 볼 때) -r 옵션(table 삭제할 때)을 사용한다.

[root@bluestar cron]# crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.9706 installed on Thu Mar 2 13:26:59 2000)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
30 13 * * 1-5 mail -s "It's 2pm" root% Dear root%% Are you sleeping??

[root@bluestar cron]# crontab -r
[root@bluestar cron]# crontab -l
no crontab for root
[root@bluestar cron]#

8.     /etc/crontab

cron table
을 작성하는 crontab 실행파일은 /usr/bin/crontab에 위치하고 있다. 그런데 /etc 디렉토리에도 crontab 파일이 있는데 이는 crontab 설정파일이다. 그 내용은 아래와 같다.

[root@bluestar /root]# cat < /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
[root@bluestar /root]#

SHELL
은 실행명령을 실행할 쉘의 종류를 적어준다.
PATH
는 실행파일을 검색할 PATH이다.
MAILTO
는 실행결과를 보고하는데 사용할 email 주소를 적어준다.

그리고 실행파일이 들어가야할 부분에 "root run-parts /etc/cron.xxxxxxx"라고 되어 있다.
root
는 뒤의 "run-parts ..."라고 나오는 명령행을 실행할 유저명을 적어준다. 위의 내용들은 각각 처음부터 만들어져 있는 스크립트로서 run-parts라는 스크립트를 이용해서 해당 디렉토리내에 있는 모든 실행파일을 실행하도록 되어있다. 그래서 만일 어떤 명령이 매시마다, 혹은 매일, 매주, 매달마다 실행되어야 하는 명령이라면 해당 디렉토리(/etc/cron.daily, /etc/cron.hourly, /etc/cron.monthly, /etc/cron.weekly)에 실행파일(혹은 스크립트)을 넣어주거나 링크파일을 넣어두면 된다.

참고로 /usr/bin/run-parts 스크립트의 내용은 아래와 같다.

[bluesky@bluestar bluesky]# cat < /usr/bin/run-parts
#!/bin/bash
# run-parts - concept taken from Debian
# keep going when something fails
set +e

if [ $# -lt 1 ]; then
             echo "Usage: run-parts < dir>"
             exit 1
fi

if [ ! -d $1 ]; then
             echo "Not a directory: $1"
             exit 1
fi

for i in $1/* ; do
             [ -d $i ] && continue
             if [ -x $i ]; then
                     $i
             fi
done

exit 0
[bluesky@bluestar bluesky]#

9.     첫번째 if문은 run-parts 명령을 인수가 없이 그냥 run-parts만 실행하면 명령어 뒤에 디렉토리를 명시하라는 사용법 메시지를 보여준다는 내용..
두번째 if문은 run-parts의 첫번째 인수가 디렉토리가 아니면 "Not a directory : 입력한 인수"를 출력하고 빠져나감.
세번째줄 for 문은 인수로 받은 디렉토리내의 파일들($1/*)을 하나씩 대입해서 실행파일이면([ -x $i ]) 실행한다는 내용이다.

10.   cron 데몬의 사용유저 제한

cron
데몬도 at 데몬과 마찬가지로 유저에 따라 사용을 제한할 수가 있는데 역시 /etc/cron.allow/etc/cron.deny 파일을 사용하며, 사용법은 at.allow/at.deny와 동일하다.

'old > Linux' 카테고리의 다른 글

smb.conf 설정 예  (0) 2010.08.10
일정 등록(자동 종료 등) - cron  (0) 2010.05.11
리눅스용 소스 비교 툴  (0) 2010.04.19
백그라운드 실행  (0) 2010.04.01
우분투 명령어 정리  (0) 2010.03.25
Posted by jazzlife
,

Meld is a visual diff and merge tool. http://meld.sourceforge.net/

효율적으로 소프트웨어를 개발하기 위해 버전별로 파일을 비교하여 차이점을 살펴볼 때가 있습니다. 예를 들어 안드로이드 cupcake, donut, eclair 소스에서 어느 부분이 달라졌는지를 살펴보거나 할 때 유용하게 사용할 수 있습니다. (물론 안드로이드의 경우는 차이 부분만 받을 수도 있고, 일반적으로는 diff 명령어를 이용할 수 있지만 알아보기 어려운 등의 불편함이 있습니다.)
diff 및 merge 기능을 가진 상용 소프트웨어들이 나와 있기는 하지만 대부분 윈도우즈 환경에서 동작하는 것으로 리눅스에서 주로 작업하는 개발자에게는 불편함이 있습니다. 물론 vi 에 능숙한 사람에게는 vimdiff 도 있겠지만 익숙하지 않은 사용자에게는 불편함이 있습니다. 그래서 (많이 알려져 있지 않은 것 같아서 ...) Ubuntu에서 작업을 시작하는 개발자를 위해 유용한 비주얼 도구를 하나 소개할까 합니다.

우분투에서 설치 방법은 다음과 같습니다.

시스템 > 관리 > 시냅틱 패키지 관리자

를 실행합니다. [빠른 검색]에서 'meld'를 입력하면 1.3.0-2 버전의 패키지가 나옵니다.
그러면 이를 선택하고 설치하면 됩니다.

명령어를 이용하고 싶은 경우에는 다음과 같이 설치할 수 있습니다.


$ sudo apt-get install meld


설치가 완료되면

프로그램 > 개발 > Meld 차이 보기

가 나타나고 이를 선택하면 실행하여 사용하면 됩니다. 참~~ 쉽 죠~~~

다음은 최신 버전으로 업데이트를 하는 방법입니다. (현재 가장 최근 버전은 1.3.1입니다.)

http://meld.sourceforge.net/

에 가서 [download]를 선택하여 1.3 디렉토리로 가도 되고, 아니면 직접

http://ftp.gnome.org/pub/gnome/sources/meld/1.3/

로 가서  

meld-1.3.1.tar.gz 혹은 meld-1.3.1tar.bz2

를 다운받습니다.

적당한 곳에 파일을 풀고 나서

$ cd meld-1.3.1
$ mv INSTALL INSTALL.org
$ cp INSTALL.org INSTALL

를 실행하고 나서 INSTALL 파일의 21행의

prefix := /usr/local


 
prefix := /usr

으로 수정합니다. 마지막으로 

$ sudo make prefix=/usr install

를 실행하면 설치가 됩니다.
Meld를 실행하여 Help > 정보 를 통해 Meld 1.3.1으로 업데이트된 것을 확인할 수 있습니다.
(기본적으로는 $ sudo make install 만으로 설치가 되지만 /usr/local 아래에 설치가 되어 시냅틱 패키지 관리자로 설치한 디렉토리와 달라지기 때문에 위와 같이 합니다. Eclipse 에서 작업을 하시는 분은 Subclipse 를 이용하시면 더 도움이 될 것 같습니다.)

그럼 삽질을 줄이는데 도움이 되시길 ...

'old > Linux' 카테고리의 다른 글

일정 등록(자동 종료 등) - cron  (0) 2010.05.11
지정 시간에 동작을 예약하는 명령어 [at 사용법]  (0) 2010.05.08
백그라운드 실행  (0) 2010.04.01
우분투 명령어 정리  (0) 2010.03.25
g++ 과 gdb 사용법  (0) 2010.03.25
Posted by jazzlife
,

백그라운드 실행

old/Linux 2010. 4. 1. 16:29

빌드서버에서 폰 관련 이미지를 빌드 하실 때 터미널(putty, Xshell )을 통해 하실텐데요.

이게 시간도 많이 걸리고 터미널을 닫았을 시 프로세스가 종료되는 문제가 있습니다.

다음 명령어를 활용해 보세요

 

nohup COMMAND [ARG]...

ex) $ nohup ./build_target.sh&

뒤에 꼭 “&”를 붙이셔야 합니다.

 

이리 하면 &명령어에 의해 백그라운드로 돌면서 터미널이 종료되어도 프로세스를 유지하게 됩니다.

그리고 기타 옵션을 주지 않았을 시 명령어를 실행한 폴더에 nohup.out 이라는 파일이 생성될 겁니다.

이 파일에 실행 시 standard out 으로 출력되는 모든 텍스트 로그를 기록하게 되는데요.

다음 명령어로 로그를 확인 할 수 있습니다.

 

$ tail f ./nohup.out

 

tail은 문서의 끝부터 일정 라인을 보여주는 명령어 인데 –f 옵션으로 append 되는 내용을 추가로 보여줍니다.

tail로 로그를 확인 중 나가고 싶으시면 그냥 Ctrl+C 하시면 되겠습니다. 그 외 자세한 옵션은 man page를 확인 해 보세요.

 

요약)

$ cd android

$ nohup ./build_target.sh &

$ tail f ./nohup.out

'old > Linux' 카테고리의 다른 글

지정 시간에 동작을 예약하는 명령어 [at 사용법]  (0) 2010.05.08
리눅스용 소스 비교 툴  (0) 2010.04.19
우분투 명령어 정리  (0) 2010.03.25
g++ 과 gdb 사용법  (0) 2010.03.25
프로그램 내에서 쉘 명령어 수행  (0) 2010.03.25
Posted by jazzlife
,

** 우분투 데스크탑 8.10 기준

** 경로가 빈칸인 명령어는 어디서나 실행가능
** 사용유형이 빈칸인 것은 실행을 뜻함


명령어

경로

사용유형

설명

.bash_history 각 계정의 홈 디렉터리 편집 사용자가 적었던 명령어 기록
.bashrc 각 계정의 홈 디렉터리 편집 단축키 설정
.profile 각 계정의 홈 디렉터리 편집 로그인시 실행될 항목
.vimrc 각 계정의 홈 디렉터리 생성->편집 vi편집기 설정
apt-get     인터넷을 통한 프로그램 설치
at     예약작업
at.allow /etc 편집 특정 계정 at 허용
at.deny /etc 편집 특정 계정 at 거부
atd /etc/init.d   at 데몬
atq     예약 작업 보기
atrm     예약 작업 지우기
bc     계산기
cal     달력
cat     파일 생성, 내용 보기
cd     디렉터리 이동
chage     계정, 암호 만료일자 설정
chattr     속성 변경
chgrp     파일의 그룹 변경
chkconfig   설치->실행 데몬 설정
chmod     파일의 퍼미션 변경
chown     파일의 사용자, 그룹 변경
clear     화면 청소
cp     복사
cpuinfo /proc 편집 cpu 정보 보기
cron /etc/init.d   예약작업 데몬
crontab   편집, 실행 예약작업
date     날짜, 시각 보기
df     전체 용량 보기
dmesg     컴퓨터의 상세한 정보 보기
dpkg     프로그램 설치, 삭제
du     디렉터리별 용량 보기
exit     로그아웃
fdisk     파티션 설정
fg     포그라운드로 불러내기
find     찾기
free     메모리 사용량 확인
fsck.ext3     수동 시스템 검사(꼭 싱글모드에서 해야함)
fstab /etc 편집 마운트 설정
ftp     파일 서버
gcc     컴파일
grep     내용 찾기
group /etc 편집 그룹 보기, 설정
groupadd     그룹 생성
groupdel     그룹 삭제
groupmod     그룹 수정
groups     유저가 속한 그룹 보기
gzip     압축
halt     컴 수동 종료
head     파일내용 앞부분 출력
history     사용 명령어 목록 출력
hosts.allow /etc 편집 호스트 허용
hosts.deny /etc 편집 호스트 차단
id     계정 정보 보기
ifconfig     ip보기, 설정
init     런레벨 실행
interfaces /etc/network 편집 네트워크 설정
issue /etc 편집 로그인전 출력할 내용
jobs     작업 보기
kill     프로세스 종료
last     부팅 로그 보기
lastlog     마지막 접속로그 보기
ln     링크하기
login.defs /etc   계정 번호 설정
logout     로그아웃
ls     파일의 목록 보기
lsattr     속성 보기
man     매뉴얼 보기
mc   설치->실행 탐색기
meminfo /proc 편집 메모리 정보 보기
menu.lst /boot/grub 편집 부팅설정
messages /var/log 편집 로그인 로그 파일
mkdir     디렉터리 생성
more     파일을 페이지 단위로 보기
motd /etc 편집 로그인후 출력할 내용
mount     장치 연결하기
mv     이동, 이름 변경
networking /etc/init.d   네트워크 데몬
passwd /etc 편집 계정 목록
passwd     암호 설정
patch     패치하기
ping     핑 보내기
profile /etc 편집 로그인시 실행될 항목
ps     프로세스 보기
pwconv     쉐도우 패스워드 설정
pwunconv     쉐도우 패스워드 해제
python     파이썬(프로그래밍 언어) 실행
rc.local /etc 편집 부팅시 이 파일 내용을 읽어들임
rcconf   설치->실행 부팅시 데몬 시작 여부 설정
reboot     재부팅
rm     파일, 디렉터리 삭제
rmdir     디렉터리 삭제
rpm   설치->실행 rpm 설치, 제거, 검색
scp     파일 주고받기
service     데몬을 시작시키거나 중지시킨다
shadow /etc 편집 계정 목록(컨버전 안된 암호가 표시됨)
shutdown     컴 끄기
squid /etc/init.d 설치->실행 프록시 서버 데몬
ssh     암호화 지원하는 원격접속 프로그램
su /etc/pam.d 편집 su 설정
su     사용자 변경
tail     파일내용 뒷부분 출력
tar     파일 묶기, 압축
tee     파일로 출력
telnet     원격접속 프로그램
touch     파일 생성
tty     터미널 번호 보기
tune2fs     자동 시스템 검사
umount     마운트 해제
uname     커널 버전 보기
useradd     계정 생성
userdel     계정 삭제
usermod     계정 수정
version /proc 편집 운영체제 버전 보기
vi     편집기
vim     vi편집기 향상판
vipw     vi /etc/passwd
w     시스템에 접속한 사용자 상황 표시
wall     메시지 보내기
who am I     자세한 자신의 정보 보기
whoami     자신의 정보 보기
xinetd /etc/init.d 설치->실행 수퍼 데몬
xinetd.conf /etc 설치->편집 텔넷 설정

'old > Linux' 카테고리의 다른 글

리눅스용 소스 비교 툴  (0) 2010.04.19
백그라운드 실행  (0) 2010.04.01
g++ 과 gdb 사용법  (0) 2010.03.25
프로그램 내에서 쉘 명령어 수행  (0) 2010.03.25
gcc 옵션  (0) 2010.03.25
Posted by jazzlife
,

g++ 과 gdb 사용법

old/Linux 2010. 3. 25. 14:32
 g++ 사용법
  • 일반적인 컴파일
    > g++ filename

    ⇒ filename이라는 파일을 컴파일하고 오류가 없을 경우 실행 파일 a.out을 생성
     
  • 실행 파일을 지정하는 컴파일
    > g++ -o exefile filename

    ⇒ filename이라는 파일을 컴파일하여 실행파일 exefile 생성
     
  • gdb를 사용하여 디버그할 때의 컴파일
    > g++ -g filename

    ⇒ filename이라는 파일을 컴파일하여 실행 파일 a.out을 생성하고 gdb로 디버그함
     
  • 실행 파일을 지정하여 gdb로 디버그할 때의 컴파일
    > g++ -o exefile -g filename

    ⇒ filename이라는 파일을 컴파일하여 실행 파일 exefile을 생성하고 gdb로 디버그함

□ gdb 사용법

  • gdb 실행
    > gdb exefile

    ⇒ 실행 파일 exefile을 디버그함 (실행 파일은 반드시 -g 옵션을 사용하여 컴파일되어야 함)
     
  • gdb 명령어 

명령어

의  미

b (breakpoint)

실행 중 디버그를 위해 멈추는 위치 지정

b 함수명

함수명에서 멈춤

b 라인번호

라인번호에서 멈춤

r (run)

실행 시작

n (next)

현재 라인 실행 (함수의 경우 실행하고 다음 라인으로 넘어 감)

s (step)

현재 라인 실행 (함수의 경우 호출된 함수 내로 들어가 실행 계속)

c (continue)

다음 breakpoint까지 실행

l (list)

현재 수행되고 있는 라인부터 10개 라인씩 연속적으로 소스 코드를 프린트

p (print) 변수명

변수명으로 저장되어 있는 내용을 프린트

h (help)

도움말

q (quit)

gdb 종료

'old > Linux' 카테고리의 다른 글

백그라운드 실행  (0) 2010.04.01
우분투 명령어 정리  (0) 2010.03.25
프로그램 내에서 쉘 명령어 수행  (0) 2010.03.25
gcc 옵션  (0) 2010.03.25
윈도우 파일시스템 마운트  (0) 2010.03.25
Posted by jazzlife
,
a.sh 이 /home/user/a.sh 이라면...

system("/home/user/a.sh"); 

'old > Linux' 카테고리의 다른 글

우분투 명령어 정리  (0) 2010.03.25
g++ 과 gdb 사용법  (0) 2010.03.25
gcc 옵션  (0) 2010.03.25
윈도우 파일시스템 마운트  (0) 2010.03.25
fdisk 사용법  (0) 2010.03.25
Posted by jazzlife
,

gcc 옵션

old/Linux 2010. 3. 25. 14:30
 

디렉토리구조에 이어 오늘은 gcc 컴파일 옵션에 대해 알아보겠습니다.


제 경험상 학교에서는 기본적인 -o 옵션정도, 회사에서는 Makefile 에 의한 자동 컴파일을 하기때문에 많은 분들이 컴파일 옵션을 잘 모르시는것 같습니다.
(컴파일옵션을 잘 모르시면 프로그램이 어떻게 동작하는지, 그리고 실행화일을 만들기 위해 어떤것들이 필요하며 디버깅은 어떻게 하는지 등을 모를수 있습니다. )
 

쉘에서 man gcc 해보시면 gcc 및 옵션에 대해 친절하지도, 그렇다고 쉽지도 않은 영어 설명이 나옵니다. 휴~


이렇게 많은 옵션중에서 반드시 필요한 몇개만 알아보도록 하겠습니다. 오늘 알아볼 옵션은 -v, -I,

-o, -D 정도입니다. (그외의 옵션은 Makefile 시간과 필요시에 그때그때 알아보도록 하겠습니다..^^)


컴파일 옵션 설명을 위해 간단한 C 소스를 하나 작성하겠습니다. 모두 잘 아시는 Hello, World 소스입니다


--------------------------------------------------------------
  #include <stdio.h>

  int main(int argc,char** argv)
  {
    printf("Hello, World\n");

    return 0;
  }
--------------------------------------------------------------


위 소스를 helloworld.c 로 저장한후에 gcc helloworld.c 실행하면 해당디렉토리에 a.out 실행화일이 생성됩니다.


 

[그림 1]


[1] -v 옵션 (컴파일 과정을 보여주는 옵션입니다)
그럼 여기서 질문하나 할까요? 컴파일과정, 즉 현재 사용하는 gcc 버젼 및 소스에서 삽입한 stdio.h 가 어느 디렉토리에 있는지등의 정보를 보려면 어떤 옵션을 사용할까요?

바로 -v  옵션입니다. -v 옵션을 사용해 컴파일 하면 컴파일러 버젼 정보, include 디렉토리, 에셈블러정보, 실행화일 형식등의 많은 정보를 보실수 있습니다. 다음 그림과 같이 gcc -v helloworld.c 를 해보고 위 [그림 1]과 비교해 보겠습니다.



[그림2]


[그림 2] 에서 보듯이 -v 옵션을 적용하면 다양한 컴파일과정이 출력됩니다. gcc 컴파일러 버젼은 3.2.2 이고 gcc 가 stdio.h 등의 헤더파일을 찾아가는 경로는 /usr/local/include, /usr/include,

/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/include 입니다.


[2] -o 옵션 (출력파일의 이름 지정하는 옵션입니다)

위에서 보듯이 출력파일의 이름을 특별히 지정하지 않으면 모든 이름은 a.out 으로 나타납니다. 실행파일의 이름을 주고 싶을땐 -o 옵션을 주시면 됩니다 (숫자 0 이 아닌 알파벳 o 입니다...). 즉, gcc -o <실행파일이름> <소스파일이름> 또는 gcc <소스파일이름> -o <실행파일이름> 으로 지정하시면 됩니다..중요한것은 -o 다음에는 반드시 출력파일이름이 와야합니다. 실수로 gcc -o <소스파일이름> <출력파일이름> 하시면 대재앙입니다....


다음은 출력파일의 이름을 helloworld 로 주는경우를 나타내 보았습니다



[그림3]


[3] -D 옵션 (외부에서 #define 을 정의하는 옵션입니다)

-D 옵션을 알아보기 위해 처음 제시한 helloworld.c 소스를 약간 수정해보겠습니다. 즉, 소스에 #ifdef ~ #endif 를 추가했습니다.


--------------------------------------------------------------
  #include <stdio.h>

  int main(int argc,char** argv)
  {

    #ifdef   TEST
    printf("Hello, World\n");

    #else

    printf("Hello, New World\n");

    #endif


    return 0;
  }
--------------------------------------------------------------

소스에서 보듯이 TEST 가 정의되어 있으면 Hello, World 를 출력하고, 정의되어 있지 않으면 Hello, New World 를 출력하는 소스입니다. 이렇게 조건부컴파일을 할때 유용하게 사용되어 지는 것이 -D 옵션입니다. (실무에서 개발중일때는 DEBUG  라는 매크로를 사용하다가 실제 출시할때는 정의하지 않응 방식을 사용합니다.)


사용방법은 다음과 같습니다.

gcc -D<매크로이름>


다음 그림 4는 -D 옵션을 사용하지 않고 컴파일/실행한 화면입니다. 결과에서 보듯이 'Hello, New World' 가 출력되었습니다



[그림 4]


다음 그림5는 -D 옵션을 사용하여 컴파일/실행한 화면입니다. 밑줄에 표시된 부분처럼 컴파일시에

-DTEST 가 정의되어 있고 실행시 'Hello, World' 가 출력됩니다



[그림 5]


[4] -I 옵션 (컴파일러가 헤더파일을 탐색할 디렉토리지정 옵션입니다)

일반적으로 C 소스에서 "AAA.h" 라고 하면 현재 작업디렉토리에서 AAA.h 를 찾고 <BBB.h> 라고 하면 컴파일러가 참조하는 디렉토리를 탐색해서 해당파일을 찾습니다. -v 옵션에서 보았듯이 gcc 컴파일러는 헤더파일의 디렉토리를 /usr/include, /usr/local/include, /usr/lib/gcc-lib/i386-redhat-linux/3.2.2/include 로 부터 탐색합니다. 그러나 실무에서는 특정디렉토리에 회사 고유의 헤더파일을 만들어 보관합니다. 이럴때 컴파일러로 하여금 특정 디렉토리를 기존의 디렉토리와 함께 탐색할수 있게 해 주는 옵션이 -I 입니다. 사용법은 다음과 같습니다

(영어 대문자 I 입니다..숫자 1이 아닙니다..)


gcc -I<디렉토리경로>


이해를 쉽게 하기 위해 helloworld.c 소스를 약간 수정해보겠습니다.

--------------------------------------------------------------
  #include <stdio.h>

  #include <myheader.h>


  int main(int argc,char** argv)
  {
    P("Hello, World\n");

    return 0;
  }
--------------------------------------------------------------

myheader.h 는 현재 디렉토리아래의 common 이라는 디렉토리에 넣어두겠습니다. 그리고 myheader.h 에는 다음과 같은 구문이 정의 되어 있습니다.


#define  P  printf



[그림 6]


위 결과에서 보듯이 참조하는 디렉토리에 /home/thelegend/test/common 이 추가되었습니다. 즉, gcc -I/home/thelegend/test/common  에서 지정한 옵션입니다..


이제 컴파일 옵션 개념을 잡으셨죠? 보셨듯이 전혀 어렵지 않습니다. 추가 옵션은 다음 Makefile 이야기 할때 추가하도록 하겠습니다..


그럼 언제나 즐거운 시간 되세요...

'old > Linux' 카테고리의 다른 글

g++ 과 gdb 사용법  (0) 2010.03.25
프로그램 내에서 쉘 명령어 수행  (0) 2010.03.25
윈도우 파일시스템 마운트  (0) 2010.03.25
fdisk 사용법  (0) 2010.03.25
vi 설정  (0) 2010.03.25
Posted by jazzlife
,
 

[마운트 방법]
mount -t type device mount-point
ex) mount -t ext3 /dev/sda2 /mnt

type : 파일시스템명
device : 파일시스템이 위치한 물리적인 장치(ex. /dev/sda2)
mount-point : 파일시스템을 마운트할 디렉토리(ex. /mnt/dvd, /media)


[언마운트 방법]
umount /dev/sda2(장치명) 또는 umount /mnt(마운트한 디렉토리)



[파일 시스템 종류]
*참고 : cat /proc/filesystems


 파일시스템            타입                  설명
Second Extended filesystem    ext2         가장 일반적인 리눅스 파일시스템
Reiser filesystem                   reiserfs    리눅스용 저널링(journaling) 파일시스템
Third Extended filesystem        ext3        ext2와 호환되는 리눅스용 저널링FS
Minix filesystem                     minix       오리지널 미닉스 파일시스템(거의사용x)
ROM filesystem                      romfs        램디스크에서 사용하기 위한 읽기전용 FS
CRAM filesystem                    cramfs      주로 PDA에서 사용하는 읽기전용 압축 FS
Network File System(NFS)         nfs        네트워크의 원격 파일을 접근
UMSDOS filesystem               umsdos     MS-DOS 파티션에 리눅스 설치
DOS-FAT filesystem               msdos      MS-DOS 파일 지원
VFAT filesystem                       vfat         윈도우 95/98 파일 접근
NT filesystem                           ntfs        윈도우 NT 파일 접근
HPFS filesystem                    hpfsOS/     OS/2 파일시스템
/proc filesystem                       proc        ps를 위한 프로세스 정보 제공
Device filesystem                     devfs       /dev 디렉토리의 파일을 표현한 다른방식
ISO 9660 filesystem                 iso9660    대부분의 CD-ROM에서 사용
Joliet filesystem                      iso9660      유니코드 파일명을 처리할 수 있도록 확장
UDF filesystem                           udf        가장 최근의 CD-ROM 파일시스템
System V filesystem                  sysv       시스템 V 계열 파일 접근
Coherent filesystem                 coherent    Coherent 파일 접근
UFS filesystem                           ufs        SunOS,BSD,Tru64 유닉스 UFS 파일 접근
BFS filesystem                           bfs         SCO 유닉스웨어 파일 접근
EFS filesystem                           efs         구형 IRIX 버전의 파일 접근
ADFS filesystem                         adfs        Acorn 파티션의 파일 접근
Apple Mac filesystem                  hfs         애플 맥킨토시의 파일 접근
QNX4 filesystem                         qnx4       QNX4 파티션 파일 접근
JFFS filesystem                           jffs         플래시(FLASH)기반의 장치 파일시스템
Novell filesystem                        ncpfs      네트워크를 통해 노벨 서버의 파일 접근
SMB filesystem                         smbfs   네트워크를 통해 윈도우 서버의 파일 접근
Coda filesystem                          coda       NFS보다 진보한 네트워크 파일시스템
RAM filesystem                          ramfs       RAM 디스크용 파일시스템
Temporary filesystem                  tmpfs      RAM만 사용하는 또 다른 파일시스템

*참고자료 : 러닝리눅스 4판

 

 

[자동실행]

# cd /mnt  

# mkdir winDisk

# cd winDisk

 

# df -a  명령으로 하드디스크 정보를 대충 봐두시고

# vi /etc/fstab 실행(여기다 추가해놓으면 부팅시 자동으로 마운트 해줌)

 

이미 설정되어 있는 것들이 보일겁니다.

맨 아래에 추가하세요

밝게 표시된 부분이 하드디스크 갯수에 따라 달라질수 있는 부분입니다.

 

보통 첫번째 하드가 hda

       두번째 하드가 hdb

이런식으로 나가니까 외우시기 편할겁니다.

 

# df -a  명령에서 보일겁니다.

  1. 하드디스크 하나일경우 윈도우 파티션의 번호가 보임(예: hda5)

  2. 두개일 경우 파티션정보가 안보입니다(저도 잘 모름 ;;). hdb1 또는 2 해보시면 될겁니다.

 

인제 아래내용 추가하세요

 

/dev/hda5   /mnt/winDisk  vfat  default  0 0

 

default,umask=000,iocharset=utf8 을 넣으면

  마운트 한 후 누구나 쓰기가 가능하다(umask=000)

  utf8환경에서 한글이 나온다(iocharset=utf8)

 

참! 중간에 있는 vfat 는 파일시스템이 fat32 일경우 쓰시구요

요즘 xp 에서 사용하는 ntfs 의 경우 vfat 대신 ntfs 라고 쓰시면 됩니다. ^^

 

그리고 /mnt/winDisk 가셔서  ls  해보시면 쭉~ 뜰꺼에요ㅎ 수고하셨습니다.

'old > Linux' 카테고리의 다른 글

프로그램 내에서 쉘 명령어 수행  (0) 2010.03.25
gcc 옵션  (0) 2010.03.25
fdisk 사용법  (0) 2010.03.25
vi 설정  (0) 2010.03.25
profile 수정  (0) 2010.03.25
Posted by jazzlife
,

fdisk 사용법

old/Linux 2010. 3. 25. 14:29
 

리눅스의 fdisk 사용 요령

 

먼저, 현재 파티션 테이블을 표시하기 위해 명령어 "p"를 사용한다. 보다시피, /dev/hda1은 (/dev/hda의 첫 번째 파티션) 61693블럭의 도스 파티션이다.

 

Command (m for help): p

Disk /dev/hda: 16heads, 38 secrors, 683 cylinders

Units = cylinders of 608 * 512 bytes

 

   Device    Boot  Begin  Start   End   Blocks   Id      System

  /dev/hda1   *        1      1   203    61693    6      DOS 16-bit >=32M

 

Command (m for help):

 

그 다음에 명령어 "n"을 사용하면 새로운 파티션을 생성시킬 수 있다. 리눅스 루트 파티션의 크기를 80 메가로 할 것이다.

 

Command (m for help): n

Command action

    e   extended

    p   primary partition (1-4)

p

 

extended 혹은 primary 파티션을 생성할 것인지 물어볼 것이다. 대부분의 경우. 한 개의 드라이브에 네 개이상의 파티션을 팔요로 하지 않는다면 primary 파티션을 사용하려 할 것이다. 더 자세한 것은 저 위의 "Repartitioning" 절을 참고하기 바란다.

 

Partition number (1-4): 2

First cylinder (204-683): 204

Last cylinder or +size or +sizeM or +sizeK (204-683): +80M

 

첫 번째 실린더는 마지막 파티션이 끝난 뒤의 실린더가 되어야 한다. 이 경우에 /dev/hda1은 실린더 203에서 끝났다. 그래서 실린더 204에서 새로운 파티션이 시작된다.

 

보다시피, "+80M" 이라고 표기를 한다면 그것은 크기가 80메가인 파티션을 규정하는 것이다. 유사하게, "+80K" 라는 표기는 80킬로바이트 파티션을 규정한다. 그리고 "+80"은 단지 80바이트 파티션을 규정한다.

 

Warning: Linux cannot currently use 33090 sectors of this partition

 

여러분이 위와 같은 경고문을 보게 된다면 무시해도 좋다. 리눅스 파일시스템의 크기가 64 메가 이상일 수 없었던 오래전의 한계에서부터 연유된것일 뿐이다. 오늘날의 파일시스템 타입에 적용되는 것이 아니다. 오늘날 파티션들의 크기는 4테라바이트까지 가능하다.

 

다음엔 10메가 스왑 파티션, /dev/hda3 을 생성한다.

 

Command (m for help): n

Command action

    e   extended

    p   primary partition (1-4)

p

partition number (1-4): 3

First cylinder (474-683): 474

Last cylinder or +size or +sizeM or +sizeK (474-683): +10M

 

다시 한번, 파티션 테이블의 내용을 표시한다. 여기에 있는 정보를 기록하여 확인하기 바란다.  특히 각 파티션의 크기가 몇 block 인지를 확인한다. 나중에 이 정보가 필요하다.

 

Command (m for help): p

Disk /dev/hda: 16 heads, 38 sectors, 683 cylinders

Units = cylinders of 608 * 512 bytes

 

   Device   Boot  Begin   Start     End   Blocks  Id  System

  /dev/hda1   *       1       1     203   61693    6  DOS 16-bit >=32M

  /dev/hda2         204     204     473   82080   83  Linux native

  /dev/hda3         474     474     507   10336   83  Linux native

 

리눅스 스왑 파티션은 (여기에서는 /dev/hda3) "Linux native" 라는 타입을 갖고 있다는 것에 주의해라. 이를 "Linux swap" 이라는 타입명으로 바꾸어야 하며 그렇게 하므로서 설치 프로그램이 스왑 파티션의 타입을 "Linux swap"으로 인식하도록 해야한다. 그렇게 하기위해 fdisk 에 "t" 라는 명령어를 사용하도록 한다.

 

Command (m for help): t

Partition number (1-4): 3

Hex code (type L to list codes): 82

 

"L"을 사용한다면 타입 코드 목록을 보여줄 것이고, 82가 리눅스 스왑과 일치하는 타입이라는 것을 알 수 있을 것이다.

 

파티션 테이블의 변경 사항을 저장하고 fdisk를 빠져나오려면 명령어 "w", 저장하지않고 그만두려면 "q"를 사용한다.

 

fdisk를 끝낸후에 바뀐 것이 효력을 발휘하도록 시스템이 여러분에게 재부팅 할건지 확인할지도 모른다. 일반적으로 fdisk를 사용한 후엔 재부팅할 이유가 없다. 요즘의 fdisk 와 cfdisk 버전은 재부팅하지 않고서도 바뀐 파티션 내용을 충분히 갱신할 수 있다 

'old > Linux' 카테고리의 다른 글

gcc 옵션  (0) 2010.03.25
윈도우 파일시스템 마운트  (0) 2010.03.25
vi 설정  (0) 2010.03.25
profile 수정  (0) 2010.03.25
WOL켜기  (0) 2010.03.25
Posted by jazzlife
,

vi 설정

old/Linux 2010. 3. 25. 14:28

개인설정으로 할 경우 ~/.exrc 또는 /.vimrc를 수정
전체설정으로 할 경우 /etc/vim/vimrc 수정


set nu
set ai
set ts=4


set syntax=on

최신버전에서 변경됨

syntax on


이렇게 이쁘게 바뀐다.


'old > Linux' 카테고리의 다른 글

윈도우 파일시스템 마운트  (0) 2010.03.25
fdisk 사용법  (0) 2010.03.25
profile 수정  (0) 2010.03.25
WOL켜기  (0) 2010.03.25
gcc와 make 강좌  (0) 2010.03.25
Posted by jazzlife
,

profile 수정

old/Linux 2010. 3. 25. 14:27

~/.profile 을 아래와 같이 수정하면

alias vi='vim'
export PS1='\[\033[1;32m\]\u\[\033[0;37m\]@\[\033[1;31m\]\h \[\033[01;34m\]\W #\[\033[00m\]'

또는

export PS1='\[\033[1;32m\]\u\[\033[0;37m\]@\[\033[1;31m\]\h \[\033[01;34m\]\W $\[\033[00m\] '

또는

export PS1='\[\033[1;32m\]\u\[\033[0;37m\]@\[\033[1;31m\]\h\[\033[1;34m\]\[\033[1;34m\] \w\n\[\033[1;35m\]#\[\033[0m\] '



'old > Linux' 카테고리의 다른 글

fdisk 사용법  (0) 2010.03.25
vi 설정  (0) 2010.03.25
WOL켜기  (0) 2010.03.25
gcc와 make 강좌  (0) 2010.03.25
고급 Bash 스크립팅 가이드  (0) 2010.03.25
Posted by jazzlife
,

WOL켜기

old/Linux 2010. 3. 25. 14:25
ethtool -s eth0 wol g 를 쳐주면 된다 물론 eth0 은 장치 이름이며 다를경우 바꿔줘야 한다.
당연하겠지만, 랜카드와 보드가 WOL 기능을 지원해야 하며 CMOS 에서도 설정 해줬을 경우 사용 가능하다.

또한 재부팅 될때 다시 비활성화 되기때문에, /etc/rc.local 에 추가하여 사용하는 것을 추천한다. 

'old > Linux' 카테고리의 다른 글

vi 설정  (0) 2010.03.25
profile 수정  (0) 2010.03.25
gcc와 make 강좌  (0) 2010.03.25
고급 Bash 스크립팅 가이드  (0) 2010.03.25
vi 명령어  (0) 2010.03.25
Posted by jazzlife
,

gcc와 make 강좌

old/Linux 2010. 3. 25. 13:55

gcc와 make 강좌

지은이 : 이만용(geoman), 옮긴이 : 조한석(junye)

v1.0, 1997년 6월 11일 수요일
이 문서는 나우누리 "Linux 사용자 모임" 12-2번 강좌란 게시판에 올라온 이만용님의 강좌 "gcc와 make에 대한 강좌"를 sgml문서로 만든 것입니다.
참고문헌

Running LINUX(Matt Welsh, Lar Kaufman), "오렐리 출판사"

1. 시작하면서

2. gcc 강좌

3. make 강좌

'old > Linux' 카테고리의 다른 글

profile 수정  (0) 2010.03.25
WOL켜기  (0) 2010.03.25
고급 Bash 스크립팅 가이드  (0) 2010.03.25
vi 명령어  (0) 2010.03.25
하드웨어 정보 확인  (0) 2010.03.25
Posted by jazzlife
,

고급 Bash 스크립팅 가이드

Bash를 이용한 쉘 스크립팅 완전 가이드

Mendel Cooper

Brindlesoft

thegrendel (at) theriver.com

차현진

terminus (at) kldp.org

2001년 12월 16일

본 튜토리얼은 여러분이 Bash에 대해서 어떠한 사전 지식도 없다고 가정을 합니다만, 금방 중/고급 수준의 명령어들을 소개합니다(...유닉스의 슬기롭고 교훈적인 부분들을 배워 나가면서). 이 문서는 교과서나, 혼자 공부할 때 볼 수 있는 메뉴얼, 쉘 스크립팅 기술에 대한 레퍼런스및 소스로 쓰일 수 있습니다. 스크립트를 배우는 유일한 방법은 스크립트를 직접 짜 보는 것이다라는 전제하에, 연습문제와 아주 자세하게 주석 처리된 예제들로 능동적인 독자들의 참여를 유도할 것입니다.

이 문서의 최신 버전은 저자의 홈페이지에서 SGML 소스와 HTML을 "타르볼"형태로 얻을 수 있습니다. 고침 변경 사항은 change log를 참고하세요.

고친 과정
고침 0.1 2000년 6월 14일 고친이 mc
초기 릴리스.
고침 0.2 2000년 10월 30일 고친이 mc
버그 수정, 내용및 예제 스크립트 추가.
고침 0.3 2001년 2월 12일 고친이 mc
메이저 업데이트.
고침 0.4 2001년 7월 8일 고친이 mc
버그 수정, 더 많은 내용및 예제 추가 - 완전한 책 형태의 개정판.
고침 0.5 2001년 9월 3일 고친이 mc
메이저 업데이트. 버그 수정, 내용 추가, 장과 절을 재편성.
고침 1.0.11 2001년 12월 16일 고친이 mc
버그 수정, 재편성, 내용 추가. Stable release.

바치는 글

모든 마법의 근원인 Anita에게 이 책을 바칩니다.

차례
Part 1. 소개
1. 왜 쉘 프로그래밍을 해야 하죠?
2. #! 으로 시작하기
2.1. 스크립트 실행하기
2.2. 몸풀기 연습문제(Preliminary Exercises)
Part 2. 기초 단계
3. 종료와 종료 상태(Exit and Exit Status)
4. 특수 문자
5. 변수와 매개변수 소개
5.1. 변수 치환(Variable Substitution)
5.2. 변수 할당(Variable Assignment)
5.3. Bash 변수는 타입이 없다(untyped)
5.4. 특수한 변수 타입
6. 쿼우팅(quoting)
7. 테스트
7.1. 테스트(Test Constructs)
7.2. 파일 테스트 연산자
7.3. 비교 연산자(이진)
7.4. 중첩된 if/then 조건 테스트
7.5. 여러분이 테스트문을 얼마나 이해했는지 테스트 해보기
8. 연산자 이야기(Operations and Related Topics)
8.1. 연산자(Operators)
8.2. 숫자 상수(Numerical Constants)
Part 3. 중급 단계(Beyond the Basics)
9. 변수 재검토(Variables Revisited)
9.1. 내부 변수(Internal Variables)
9.2. 문자열 조작
9.3. 매개변수 치환(Parameter Substitution)
9.4. 변수 타입 지정: declaretypeset
9.5. 변수 간접 참조
9.6. $RANDOM: 랜덤한 정수 만들기
9.7. 이중소괄호(The Double Parentheses Construct)
10. 루프와 분기(Loops and Branches)
10.1. 루프
10.2. 중첩된 루프
10.3. 루프 제어
10.4. 테스트와 분기(Testing and Branching)
11. 내부 명령어(Internal Commands and Builtins)
11.1. 작업 제어 명령어
12. 외부 필터, 프로그램, 명령어
12.1. 기본 명령어
12.2. 복잡한 명령어
12.3. 시간/날짜 명령어
12.4. 텍스트 처리 명령어
12.5. 파일, 아카이브(archive) 명령어
12.6. 통신 명령어
12.7. 터미널 제어 명령어
12.8. 수학용 명령어
12.9. 기타 명령어
13. 시스템과 관리자용 명령어
14. 명령어 치환(Command Substitution)
15. 산술 확장(Arithmetic Expansion)
16. I/O 재지향
16.1. exec 쓰기
16.2. 코드 블럭 재지향
16.3. 응용
17. Here Documents
18. 쉬어가기
Part 4. 고급 주제들(Advanced Topics)
19. 정규 표현식(Regular Expressions)
19.1. 정규 표현식의 간략한 소개
19.2. Globbing
20. 서브쉘(Subshells)
21. 제한된 쉘(Restricted Shells)
22. 프로세스 치환(Process Substitution)
23. 함수
23.1. 복잡 함수와 함수의 복잡성(Complex Functions and Function Complexities)
23.2. 지역 변수와 재귀 함수(Local Variables and Recursion)
24. 별칭(Aliases)
25. 리스트(List Constructs)
26. 배열
27. 파일들
28. /dev 와 /proc
28.1. /dev
28.2. /proc
29. 제로와 널(Of Zeros and Nulls)
30. 디버깅
31. 옵션
32. 몇 가지 지저분한 것들(Gotchas)
33. 스타일 있게 스크립트 짜기
33.1. 비공식 쉘 스크립팅 스타일시트
34. 자질구레한 것들
34.1. 대화(interactive)형 모드와 비대화(non-interactive)형 모드 쉘과 스크립트
34.2. 쉘 래퍼(Shell Wrappers)
34.3. 테스트와 비교: 다른 방법
34.4. 최적화
34.5. 팁 모음(Assorted Tips)
34.6. 괴상한 것(Oddities)
34.7. 이식성 문제(Portability Issues)
34.8. 윈도우즈에서의 쉘 스크립팅
35. Bash, 버전 2
36. 후기(Endnotes)
36.1. 저자 후기(Author's Note)
36.2. 저자에 대해서
36.3. 이 책을 만드는데 쓴 도구들
36.3.1. 하드웨어
36.3.2. 소프트웨어와 프린트웨어
36.4. 크레딧
서지사항
A. 여러분들이 보내준 스크립트들(Contributed Scripts)
B. Sed 와 Awk 에 대한 간단한 입문서
B.1. Sed
B.2. Awk
C. 특별한 의미를 갖는 종료 코드
D. I/O와 I/O 재지향에 대한 자세한 소개
E. 지역화(Localization)
F. 샘플 .bashrc 파일
G. 도스(DOS) 배치 파일을 쉘 스크립트로 변환
H. 연습문제
I. Copyright
예 목록
2-1. cleanup: /var/log 에 있는 로그 파일들을 청소하는 스크립트
2-2. cleanup: 위 스크립트의 향상되고 일반화된 버전.
3-1. 종료/종료 상태
3-2. !으로 조건을 부정하기
4-1. 코드 블럭과 I/O 재지향
4-2. 코드 블럭의 결과를 파일로 저장하기
4-3. 최근 하루동안 변경된 파일들을 백업하기
5-1. 변수 할당과 치환
5-2. 평범한 변수 할당
5-3. 평범하고 재미있는 변수 할당
5-4. 정수? 문자열?
5-5. 위치 매개변수
5-6. wh, whois 도메인 네임 룩업
5-7. shift 쓰기
6-1. 이상한 변수를 에코하기
6-2. 이스케이프된 문자들
7-1. 무엇이 참인가?
7-2. [ ]test 의 동일함
7-3. (( ))로 산술식 테스트 하기
7-4. 산술 비교와 문자열 비교
7-5. 문자열이 인지 테스트 하기
7-6. zmost
8-1. 산술 연산자 쓰기
8-2. && 와 || 를 쓴 복합 조건 테스트
8-3. 숫자 상수 표기법:
9-1. $IFS 와 빈 칸
9-2. 타임 아웃 처리 입력
9-3. 타임 아웃 처리 입력, 한 번 더
9-4. 내가 루트인가?
9-5. arglist: $* 과 $@ 로 인자를 나열하기
9-6. 일관성 없는 $*$@의 동작
9-7. $IFS 가 비어 있을 때 $*$@
9-8. 밑줄 변수(underscore variable)
9-9. 그래픽 파일을 다른 포맷 확장자로 이름을 바꾸면서 변환
9-10. 매개변수 치환과 : 쓰기
9-11. 변수의 길이
9-12. 매개변수 치환에서의 패턴 매칭
9-13. 파일 확장자 바꾸기:
9-14. 임의의 문자열을 파싱하기 위해 패턴 매칭 사용하기
9-15. 문자열의 접두, 접미어에서 일치하는 패턴 찾기
9-16. declare를 써서 변수 타입 지정하기
9-17. 간접 참조
9-18. awk에게 간접 참조를 넘기기
9-19. 랜덤한 숫자 만들기
9-20. RANDOM 으로 주사위를 던지기
9-21. RANDOM 에 seed를 다시 지정해 주기
9-22. C 형태의 변수 조작
10-1. 간단한 for 루프
10-2. 각 [list] 항목이 인자를 두 개씩 갖는 for
10-3. Fileinfo: 변수에 들어 있는 파일 목록에 대해 동작
10-4. for 문에서 파일 조작하기
10-5. in [list]가 빠진 for
10-6. for 문의 [list]에 명령어 치환 쓰기
10-7. 이진 파일에 grep 걸기
10-8. 특정 디렉토리의 모든 바이너리 파일에 대해 원저작자(authorship)를 확인 하기
10-9. 디렉토리에 들어 있는 심볼릭 링크들을 나열하기
10-10. 디렉토리에 들어 있는 심볼릭 링크들을 파일로 저장하기
10-11. C 형태의 for 루프
10-12. 배치 모드로 efax 사용하기
10-13. 간단한 while 루프
10-14. 다른 while 루프
10-15. 다중 조건 while 루프
10-16. C 형태의 문법을 쓰는 while 루프
10-17. until 루프
10-18. 중첩된 루프
10-19. 루프에서 breakcontinue의 영향
10-20. 여러 단계의 루프에서 탈출하기
10-21. 더 상위 루프 레벨에서 계속하기(continue)
10-22. case 쓰기
10-23. case로 메뉴 만들기
10-24. case용 변수를 만들기 위해서 명령어 치환 쓰기
10-25. 간단한 문자열 매칭
10-26. 입력이 알파벳인지 확인하기
10-27. select로 메뉴 만들기
10-28. 함수에서 select를 써서 메뉴 만들기
11-1. printf가 실제로 쓰이는 예제
11-2. read로 변수 할당하기
11-3. read로 여러줄의 입력 넣기
11-4. read파일 재지향과 같이 쓰기
11-5. 현재 작업 디렉토리 변경하기
11-6. let으로 몇 가지 산술 연산을 하기.
11-7. eval의 효과 보여주기
11-8. 강제로 로그 아웃 시키기
11-9. "rot13" 버전
11-10. 위치 매개변수와 set 쓰기
11-11. 변수를 "언셋"(unset) 하기
11-12. export를 써서, 내장된 awk 스크립트에 변수를 전달하기
11-13. getopts로 스크립트로 넘어온 옵션과 인자 읽기
11-14. 데이타 파일 "포함하기"
11-15. exec 효과
11-16. 작업을 계속 해 나가기 전에 프로세스가 끝나길 기다리기
12-1. CDR 디스크를 구울 때 ls로 목차 만들기
12-2. Badname, 파일 이름에 일반적이지 않은 문자나 공백 문자를 포함하는 파일을 지우기.
12-3. inode 로 파일을 지우기
12-4. 시스템 로그 모니터링용 xargs 로그 파일
12-5. copydir. xargs로 현재 디렉토리를 다른 곳으로 복사하기
12-6. expr 쓰기
12-7. date 쓰기
12-8. 스크립트에서 두 파일을 비교하기 위해 cmp 쓰기.
12-9. 낱말 빈도수 분석
12-10. 10자리 랜덤한 숫자 만들기
12-11. tail로 시스템 로그를 모니터하기
12-12. 스크립트에서 "grep"을 에뮬레이트 하기
12-13. 목록에 들어 있는 낱말들의 유효성 확인하기
12-14. toupper: 파일 내용을 모두 대문자로 바꿈.
12-15. lowercase: 현재 디렉토리의 모든 파일명을 소문자로 바꿈.
12-16. du: 도스용 텍스트 파일을 UNIX용으로 변환.
12-17. rot13: 초허접(ultra-weak) 암호화, rot13.
12-18. "Crypto-Quote" 퍼즐 만들기
12-19. 파일 목록 형식화.
12-20. column 으로 디렉토리 목록을 형식화 하기
12-21. nl: 자기 자신에게 번호를 붙이는 스크립트.
12-22. cpio로 디렉토리 트리 옮기기
12-23. rpm 아카이브 풀기
12-24. C 소스에서 주석을 제거하기
12-25. /usr/X11R6/bin 둘러보기
12-26. basenamedirname
12-27. 인코드된 파일을 uudecode하기
12-28. 저당에 대한 월 상환액(Monthly Payment on a Mortgage)
12-29. 진법 변환(Base Conversion)
12-30. 다른 방법으로 bc 실행
12-31. seq로 루프에 인자를 만들어 넣기
12-32. 키보드 입력을 갈무리하기
12-33. 파일을 안전하게 지우기
12-34. m4 쓰기
13-1. 지움 글자(erase character) 세팅하기
13-2. 비밀스런 비밀번호: 터미널 에코 끄기
13-3. 키누름 알아내기
13-4. pidof 로 프로세스를 죽이기
13-5. CD 이미지 확인하기
13-6. 한 파일에서 한번에 파일 시스템 만들기
13-7. 새 하드 드라이브 추가하기
13-8. killall, /etc/rc .d/init.d 에서 인용
16-1. exec으로 표준입력을 재지향 하기
16-2. 재지향된 while 루프
16-3. 다른 형태의 재지향된 while 루프
16-4. 재지향된 until 루프
16-5. 재지향된 for 루프
16-6. 재지향된 for 루프(표준입력, 표준출력 모두 재지향됨)
16-7. 재지향된 if/then 테스트
16-8. 이벤트 로깅하기
17-1. dummyfile: 두 줄짜리 더미 파일 만들기
17-2. broadcast: 로그인 해 있는 모든 사람들에게 메세지 보내기
17-3. cat으로 여러 줄의 메세지 만들기
17-4. 탭이 지워진 여러 줄의 메세지
17-5. Here document에서 매개변수 치환하기
17-6. 매개변수 치환 끄기
17-7. upload: "Sunsite" incoming 디렉토리에 파일 한 쌍을 업로드
17-8. "아무개"(anonymous) Here Document
20-1. 서브쉘에서 변수의 통용 범위(variable scope)
20-2. 사용자 프로파일 보기
20-3. 프로세스를 서브쉘에서 병렬로 돌리기
21-1. 제한된 모드로 스크립트 돌리기
23-1. 간단한 함수
23-2. 매개변수를 받는 함수
23-3. 두 숫자중 큰 수 찾기
23-4. 숫자를 로마 숫자로 바꾸기
23-5. 함수에서 큰 값을 리턴하는지 테스트하기
23-6. 큰 두 정수 비교하기
23-7. 사용자 계정 이름에서 실제 이름을 알아내기
23-8. 지역 변수의 영역(Local variable visibility)
23-9. 지역 변수를 쓴 재귀 함수
24-1. 스크립트에서 쓰이는 별칭(alias)
24-2. unalias: 별칭을 설정, 해제하기
25-1. "and list"를 써서 명령어줄 인자 확인하기
25-2. "and list"를 써서 명령어줄 인자를 확인하는 다른 방법
25-3. "or lists""and list"를 같이 쓰기
26-1. 간단한 배열 사용법
26-2. 배열의 특별한 특성 몇 가지
26-3. 빈 배열과 빈 원소
26-4. 아주 오래된 친구: 버블 정렬(Bubble Sort)
26-5. 복잡한 배열 어플리케이션: 에라토스테네스의 체(Sieve of Erastosthenes)
26-6. 복잡한 배열 어플리케이션: 기묘한 수학 급수 탐색(Exploring a weird mathematical series)
26-7. 2차원 배열을 흉내낸 다음, 기울이기(tilting it)
28-1. 특정 PID와 관련있는 프로세스 찾기
28-2. 온라인 연결 상태
29-1. 쿠키 항아리를 숨기기
29-2. /dev/zero로 스왑 파일 세팅하기
29-3. 램디스크 만들기
30-1. 버그 있는 스크립트
30-2. test24, 버그가 있는 다른 스크립트
30-3. "assert"로 조건을 테스트하기
30-4. exit 잡아채기(Trapping at exit)
30-5. Control-C 가 눌렸을 때 깨끗이 청소하기
30-6. 변수 추적하기
32-1. 서브쉘 함정(Subshell Pitfalls)
34-1. 쉘 래퍼(shell wrapper)
34-2. 조금 복잡한 쉘 래퍼(shell wapper)
34-3. awk 스크립트 쉘 래퍼(shell wrapper)
34-4. Bash 스크립트에 내장된 펄
34-5. 하나로 묶인 Bash 스크립트와 펄 스크립트
34-6. 자신을 재귀적으로 부르는 스크립트
35-1. 문자열 확장
35-2. 간접 변수 참조 - 새로운 방법
35-3. 배열과 약간의 트릭을 써서 한 벌의 카드를 4명에게 랜덤하게 돌리기
A-1. manview: 포맷된 맨 페이지를 보는 스크립트
A-2. mailformat: 이메일 메세지를 포맷해서 보기
A-3. rn: 간단한 파일이름 변경 유틸리티
A-4. encryptedpw: 로컬에 암호화 되어 있는 비밀번호로 ftp 사이트에 파일을 업로드하는 스크립트
A-5. copy-cd: 데이타 CD를 복사하는 스크립트
A-6. days-between: 두 날짜 사이의 차이를 계산해 주는 스크립트
A-7. behead: 메일과 뉴스 메세지 헤더를 제거해 주는 스크립트
A-8. ftpget: ftp에서 파일을 다운로드 해 주는 스크립트
A-9. password: 8 글자짜리 랜덤한 비밀번호 생성 스크립트
A-10. fifo: 네임드 파이프를 써서 매일 백업해 주는 스크립트
A-11. 나머지 연산자로 소수 생성하기
A-12. tree: 디렉토리 구조를 트리 형태로 보여주는 스크립트
A-13. 문자열 함수들: C 형태의 문자열 함수
A-14. 객체 지향 데이타 베이스
F-1. 샘플 .bashrc 파일
G-1. VIEWDATA.BAT: 도스용 배치 파일
G-2. viewdata.sh: VIEWDATA.BAT 의 스크립트 버전

'old > Linux' 카테고리의 다른 글

WOL켜기  (0) 2010.03.25
gcc와 make 강좌  (0) 2010.03.25
vi 명령어  (0) 2010.03.25
하드웨어 정보 확인  (0) 2010.03.25
기본 명령어  (0) 2010.03.25
Posted by jazzlife
,

vi 명령어

old/Linux 2010. 3. 25. 13:10

vi Editor's Command Collection

 command line 명령어

내 용

vi file

vi를 시작하여 지정한 파일 편집

vi -r file

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

view file

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

vi -r

되살릴 수 있는 모든 파일 이름 보여주기

vi -r file

vi를 시작하여 지정한 파일 되살리기

편 집 명 령

내 용

i

입력 모드로 전환, 커서 위치 앞에서 삽입

a

입력 모드로 전환, 커서 위치 뒤에서 삽입

I

입력 모드로 전환, 현재 줄의 앞에 삽입

A

입력 모드로 전환, 현재 줄의 끝에 삽입

o

입력 모드로 전환, 현재 줄의 아래에 전개

O

입력 모드로 전환, 현재 줄의 위에 전개

:e file

지정한 파일의 편집

:e! file

지정한 파일의 편집, 자동 점검의 생략

r

단지 한 글자만 변경(입력 모드로 바뀌지 않음)

R

입력하는 대로 겹쳐 써서 변경

s

삽입에 의해 한 단어의 변경

C

커서의 위치로부터 줄 끝까지 삽입에 의한 변경

cc

전체 줄을 삽입에 의한 변경

S

전체 줄을 삽입에 의한 변경

cmove

커서부터 move까지 삽입에 의해 변경

~

대,소문자 바꾸기

u

편집 버퍼를 수정했던 마지막 명령을 취소

U

현재 줄을 저장

.

편집 버퍼를 수정했던 마지막 명령 반복

x

커서가 있는 문자 삭제

X

커서의 왼쪽 문자 삭제

D

커서부터 줄의 끝까지 삭제

dd

현재 줄의 전체 삭제

dmove

커서부터 move까지 삭제

dG

커서부터 편집 버퍼의 끝까지 삭제

d1G

커서부터 편집 버퍼의 맨 앞까지 삭제

:<line>d

지정한 줄의 삭제

:<line>,<line>d

지정한 범위의 삭제

:<line>co<target>

지정한 줄을 복사하여 target 줄 밑에 삽입

:<line>, <line>co<target>

지정한 범위를 복사하여 target 줄 밑에 삽입

:<line>m<target?

지정한 줄로 이동하여 target 줄 밑에 삽입

:<line>, <line>m<target>

지정한 범위로 이동하여target 줄 밑에 삽입

<n>!!command

n번 줄에서 command의 실행

!move command

커서부터 move까지 command 실행

!move fmt

커서부터 move까지 줄들을 형식 맞추기

:w

원래의 파일로 데이터를 저장

:w file

지정한 파일로 데이터를 저장

:w>> file

지정한 파일에 데이터를 추가

:wq

데이터를 저장하고 종료

:q!

데이터를 저장하지 않고 종료

:set number

내부 줄 번호 디스플레이

:set nonumber

내부 줄 번호 디스플레이 않기

p

마지막으로 지워진 것을 커서의 뒤/아래에 삽입

P

마지막으로 지워진 것을 커서의 앞/위에 삽입

xp

두 문자를 바꿈

deep

두 단어를 바꿈

ddp

두 줄을 바꿈

/rexp

지정된 정규 표현식에 대해 앞으로 이동

/

이전의 패턴에 대해 앞으로 검색을 반복

?rexp

지정된 정규 표현식에 대해 뒤로 이동

?

이전의 패턴에 대해 뒤로 검색을 반복

n

/나 ?명령에 대해 같은 방향으로 반복

N

/나 ?명령에 대해 반대 방향으로 반복

:ab short long

short를 long에 대한 약어로 변경

:ab

현재 약어 목록을 표시

:una short

약어 short를 표시

r<Return>

문자를 뉴라인으로 변경

J

아래 line을 현재 line과 합치기

:set wm=n

오른쪽으로 n문자 위치에서 자동적으로 줄 나눔

h or <Left key>

커서를 한 칸 왼쪽으로 이동

j or <Down key>

커서를 한 줄 아래로 이동

k or <Up key>

커서를 한 줄 위로 이동

l or <Right key>

커서를 한 칸 오른쪽으로 이동

<Backspace>

커서를 한 칸 왼쪽으로 이동

<Space>

커서를 한 칸 오른쪽으로 이동

-

커서를 이전 줄의 처음으로 이동

+

커서를 다음 줄의 처음으로 이동

<Return>

커서를 다음 줄의 처음으로 이동

0

커서를 현재 줄의 맨 앞으로 이동

$

커서를 현재 줄의 맨 끝으로 이동

^

커서를 현재 줄의 첫글자(공백이나 탭이 아닌)로 이동

w

커서를 다음 단어의 첫 글자로 이동

e

커서를 다음 단어의 끝 글자로 이동

b

커서를 이전 단어의 첫 글자로 이동

W

w와 같음(문장 부호 무시)

E

e와 같음(문장 부호 무시)

B

b와 같음(문장 부호 무시)

(

다음 문장의 처음으로 이동

)

이전 문장의 처음으로 이동

{

다음 문단의 처음으로 이동

}

이전 문단의 처음으로 이동

H

커서를 화면 맨 위로 이동

M

커서를 중간으로 이동

L

커서를 맨 아래로 이동

^f

한 화면 아래로 이동

^b

화면 위로 이동

^d

반 화면 아래로 이동

^u

반 화면 위로 이동

n^d

n줄만큼 아래로 이동

n^u

n줄만큼 위로 이동

:!command

vi를 중단하고 지정한 셸 명령을 실행

:!!

vi를 중단하고 이전의 셸 명령을 실행

:sh

vi를 중단하고 셸을 실행

:!csh

vi를 중단하고 새로운 C-셸을 실행

:s/<pattern>/<replace>/

현재 줄의 치환

:<line>s/<pattern>/<replace>/

지정한 줄의 치환

:<line>,<line>s/<pattern>/<replace>/

정한 범위의 치환

:%s/<pattern>/<replace>/

모든 줄의 치환

:<line>r file

file의 내용을 지정한 줄 다음에 삽입

:r file

file의 내용을 현재의 줄 다음에 삽입

:<line>r !command

command의 결과를 지정한 줄 다음에 삽입

:r !command

command의 결과를 현재의 줄 다음에 삽입

:r !look pattern

지정한 pattern으로 시작된 단어 삽입

.

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

*

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

^

줄의 시작과 대응

$

줄의 끝과 대응

\<

단어의 시작과 대응

\>

단어의 끝과 대응

[ ]

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

[^ ]

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

\

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

<n>G

줄번호 n으로 건너뛰기

1G

편집 버퍼의 첫 줄로 건너뛰기

G

편집 버퍼의 마지막 줄로 건너뛰기

:map g lG

g가 lG와 같도록 매크로 정의


'old > Linux' 카테고리의 다른 글

gcc와 make 강좌  (0) 2010.03.25
고급 Bash 스크립팅 가이드  (0) 2010.03.25
하드웨어 정보 확인  (0) 2010.03.25
기본 명령어  (0) 2010.03.25
Linux Partition  (0) 2010.03.25
Posted by jazzlife
,

하드웨어 정보와 커널 정보 확인#



리눅스 시스템에 있는 하드웨어 정보와 커널 정보 확인 아래와 같이 설명드리겠습니다.


- /proc/cpuinfo : cpu 제조 회사, 클럭 속도, porcessor id, physical id등 cpu에대한 전반적인 사항을 출력한다

- /proc/devices : 사용 가능한 디바이스 정보(블록/문자 장치)

- /proc/filesystems : 지원되는 파일시스템 정보를 보여준다

- /proc/interrupts : 인터럽트 사용률을 보여준다

- /proc/meminfo : 메모리와 swap 메모리 사용량과 free byte 용량을 확인 할 수 있다.

- /proc/modules : kernel에 로드 된 모듈의 정보, lsmod 하면 나오는 정보를 볼수 있다.

- /proc/partitions : 시스템 파티션 정보를 자세하게 볼 수 있다.

- /proc/pci : pci 버스 정보

- /proc/swaps : swap 파일시스템의 사용 정보를 확인 할 수 있다.

- /proc/version : 커널 또는 배포판의 버전 정보를 확인할 수 있다.


위의 정보들을 리눅스에서 확인하기 위해서는 아래와 같은 명령어를 통해서 볼수 있습니다.

# cat /proc/cpuinfo

'old > Linux' 카테고리의 다른 글

고급 Bash 스크립팅 가이드  (0) 2010.03.25
vi 명령어  (0) 2010.03.25
기본 명령어  (0) 2010.03.25
Linux Partition  (0) 2010.03.25
tar 사용법  (0) 2010.03.25
Posted by jazzlife
,

기본 명령어

old/Linux 2010. 3. 25. 12:31

1-1-1. pwd

- 현재 작업 디렉터리 또는 현재 디렉터리를 화면에 출력

- 절대경로 형태로 화면에 출력

1-1-2. is

- 디렉터리 및 파일에 대한 정보 출력

1-1-3. mkdir

- 새로운 디렉터리 생성

1-1-4. cd

- 현재 작업중인 디렉터리를 이동

- 절대 경로와 상대 경로를 이용하여 이동함

1-2-1. 절대 주소

- 특정 디렉터리 혹은 파일이 존재하는 위치를 루트(root) 디렉터리로부터의 위치로 표시

1-2-2. 상대 주소

- 특정 디렉터리 혹은 파일이 존재하는 위치를 현재 작업 디렉터리로부터의 위치로 표시

1-2-3. cp

- 파일 복사 기능으로 한 파일을 다른 파일로 복사하거나 다른 디렉터리로 복사함

1-2-4. rmdir

- 기존의 존재하는 디렉터리 삭제

- 삭제하려는 디렉터리 내에 파일이 전혀없는 경우에만 삭제됨

1-3-1. mv

- 파일의 이름을 바꾸거나, 파일을 새로운 디렉터리로 이동 시킴

1-3-2. rm

- 파일을 삭제하거나, 디렉터리 내용 전체를 삭제

- 파일이 지워지면 복구 불가능함

1-4-1. file

- 파일의 유형을 알려줌

1-4-2. tty

- 현재 사용 중인 단말장치명을 경로(path)와 함께 출력

1-5-1. cat

- 파일의 전체 내용을 화면에 출력

- 텍스트 형식의 파일 내용을 볼 때 주로 사용함

1-5-2. head

- 파일의 처음부터 10줄 또는 지정한 줄 수의 내용을 화면에 출력

1-5-3. tail

- 파일의 내용 중 파일의 마지막 10줄 또는 지정한 줄 수의 내용을 화면에 출력

1-5-4. more

- 파일의 전체 내용을 화면에 페이지 단위로 출력

- 다음 페이지의 내용을 계속 볼 때에는 space key를 누름

- 다음 줄의 내용을 계속 볼 때에는 enter key를 누름

- 파일 내용 보기를 중단하고자 할 때에는 q key를 누름

1-5-5. 표준 입출력 전환(변경) 명령어

- < : 표준 입력(키보드)의 방향을 변경함

- > : 표준 출력(모니터)의 방향을 변경함

1-6-1. man

- 리눅스 시스템에서 실행 가능한 각 명령어에 대한 사용 매뉴얼을 출력

1-6-2. uname

- 현재 사용중인 리눅스 시스템에 대한 정보 출력

1-6-3. date

- 현재의 날짜와 시간을 화면에 출력

1-6-4. echo

- 명령어에 주어진 인자를 단순히 화면에 출력함

1-6-5. clear

- 현재 사용중인 터미널 화면의 내용을 clear함

1-6-6. sort

- 사용자가 지정한 특정 파일의 내용을 알파벳이나 숫자 순으로 정렬하여 화면에 출력

2-1-1. chmod

- 파일이나 디렉터리의 접근 권한 모드를 변경함

2-1-2. umask

- 새로운 파일 및 디렉터리를 만들 때, 접근 사용 권한 모드를 자동으로 설정해줌

2-2-1. whoami

- 현재 모니터 상에서 작업하고 있는 리눅스 시스템의 사용자 계정정보를 출력함

2-2-2. su

- 사용 중인 사용자 로그인 계정을 변경함

2-2-3. useradd

- 사용자 계정을 새로 추가함

- 슈퍼유저(root계정)만 사용 가능한 명령임

2-2-4. userdel

- 사용자 계정을 삭제함

- 슈퍼유저(root계정)만 사용 가능한 명령임

2-2-5. chown

- 파일과 디렉터리의 사용자 소유권을 변경함

- 슈퍼유저(root계정)만 사용 가능한 명령임

2-2-6. chgrp

- 파일과 디렉터리의 그룹 소유권을 변경함

- 슈퍼유저(root계정)만 사용 가능한 명령임

2-3-1. grep

- 주어진 패턴을 포함하는 파일의 라인을 출력함

2-3-2. find

- 파일과 디렉터리를 검색할 때 사용함

2-4-1. gzip/gunzip

- 파일의 내용을 압축함

2-4-2. bzip/bunzip2

- 파일의 내용을 압축함

2-4-3. tar

- 여러 개의 파일을 하나로 묶는데 사용함

2-5-1. ifconfig

- 네트웍 인터페이스 카드의 설정 내용을 확인하거나 수정하며, 네트웍 기능을 활성화 또는 비활성화 시킴

- 슈퍼유저(root계정)만 사용 가능한 명령임

2-5-2. ping

- 물리적인 네트웍의 연결이 정상적으로 이루어졌는지 확인함

- 슈퍼유저(root계정)만 사용 가능한 명령임

2-5-3. ssh

- 네트웍으로 연결된 리모트 시스템에 로그인을 함

2-6-1. ftp

- 네트웍에 연결된 리모트 시스템으로 파일을 전송함(송,수신함)

2-6-2. scp

- 네트웍으로 연결된 리모트 시스템에 있는 파일을 복사함

2-7-1. ('|') 파이프라인

- 파이프라인은 한 프로세스의 표준출력을 다른 프로세스의 표준 입력으로 연결하는 것

2-7-2. sleep

- 주어진 시간만큼 아무 동작도 하지 않고 대기함

2-7-3. ps

- 시스템에 존재하는 프로세스의 현재 상태를 보여줌

2-8-1. kill

- 지정한 프로세스에게 특정 시그널을 보냄

- 지정한 프로세스의 수행을 종료 시킴

2-9-1. du

- 디스크의 사용 현황을 출력함

2-9-2. df

- 현재 마운트되어 있는 파일시스템의 사용정보 출력

2-9-3. at

- 명령어나 스크립트의 실행을 예약함



alias (명령어 간소화하기)
apropos (관련된 명령어 찾기)
arch (컴퓨터 종류 알기)
arp (같은 서브넷의 IP 보여주기)
at (작업 시간 정하기)
atd (계획성 있는 작업 실행하기)
awk (특정 패턴 문자 처리하기)
a2p (펄 파일로 바꾸기)
badblocks (배드 블럭 검사하기)
bc (계산기)
biff (메일 수신 소리로 확인하기)
bg (후면작업; 배경화면 설정)
bind (키나 함수 순서 결합하기)
break (루프 빠져나가기)
cal (달력보기)
builtin (내부 명령어 알아보기)
case (조건 처리하기)
cat (화면상에서 파일 보기)
cd (디렉토리 변경하기)
cfdisk (디스크 설정하기)
chattr (파일 속성 변경하기)
chfn (사용자 정보 변경하기)
chgrp (파일, 디렉토리가 속했던 그룹 바꾸기)
chmod (파일 권한 바꾸기)
chown (파일 주인 바꾸기)
chsh (지정된 셸 바꾸기)
cksum (CRC값을 점검한다)
clear (화면 청소하기)
clock (CMOS 시각을 조정하기)
cmp (파일 비교하기)
colcrt (문자 변환 필터)
colrm (열 삭제하기)
column (가로 정렬하기)
comm (파일 비교 출력하기)
command (명령어 알아보기)
continue (루프 계속돌기)
cp (파일 복사하기)
cpio (복사본 만들기)
crontab (cron을 관리한다)
csplit (파일에 서식, 규칙 정하기)
cut (필요한 필드만 출력하기)
date (날짜 보기)
dd (블럭장치 읽고 쓰기)
debugfs (ext2 파일 시스템 디버깅하기)
declare (변수 선언하기)
df (파일 시스템의 사용량 보기)
dirs (디렉토리 목록 표시하기)
dmesg (부팅 메시지 보기)
dnsdomainname (DNS 이름 출력)
domainname (NIS 이름 출력&설정)
du (디렉토리와 파일의 용량 파악하기)
dumpe2fs (파일 시스템 정보 보기)
echo (표준 출력하기)
eject (장치 해제하기)
elm (메일 관련)
enable (내부 명령어 지정)
env (환경변수 출력하기)
eval (인수 읽기)
exec (셸 명령어 실행하기)
exit (종료하기)
expand (탭을 공백으로 변환하기)
export (변수 지정하기)
e2fsck (파일 시스템 복구하기)
fc (지정된 편집기 받기)
fdformat (플로피 디스크 포맷하기)
fdisk (파티션 나누기)
fg (지정된 작업을 전면 프로세스로 시작하기)
file (파일 종류 보기)
find (파일 찾기)
finger (사용자 정보 알기)
fold (정형화하기)
fmt (정형화하기)
for (반복 실행하기)
free (메모리 사용량 알아보기)
fsck (파일 시스템 검사하기)
fstab (파일 시스템에 대한 고정적인 정보 저장하기)
ftp (파일 전송 프로그램)
fuser (프로세스 ID 출력)
getkeycodes (매핑 테이블 출력하기)
grep (특정 문자 (열) 검색하기)
gzexe (실행 파일 압축하기)
gzip (압축하기)
halt (시스템 종료하기)
hash (기억해 두기; index 역할)
head (파일의 앞부분 출력하기)
help (도움말 보여주기)
host (호스트 정보 보기)
history (사용 명령어 목록보기)
hostname (서버 이름 알기)
id (계정 정보 알기)
if (조건문 실행하기)
ifconfig (랜카드에 주소 할당하기)
imolamod (모듈 설치하기)
inetd (인터넷 서비스의 최상위 데몬)
init (실행 단계 정하기)
ispell (철자법 검사하기)
jobs (수행중인 프로세스 알기)
kbd_mode (키보드 모드 출력하기)
kill (프로세스 죽이기)
klogd (커널 로그 데몬)
ldd (공유 라이브러리의 의존성 알기)
less (페이지 단위로 출력하기)
let (정규식 표현하기)
lilo (부팅하기)
ln (링크하기)
locate (패턴에 맞는 파일 찾기)
login (로그인하기)
logger (시스템 로그 기록하기)
logname (사용자 로그인명 보여주기)
logout (로그인 셸 종료하기)
look (특정 단어 검색하기)
losetup (중복 장치 확인하기)
lpd (프린트 데몬)
lpq (현재 프린트 작업 상태 출력하기)
lpr (출력하기)
lprm (대기열에 있는 문서 삭제하기)
ls (디렉토리 내용보기)
lsattr (파일 시스템의 속성 보여주기)
lsdev (하드웨어 장치 출력하기)
lsmod (모듈 정보 출력하기)
mail (메일 관련)
make (컴파일하기)
man (매뉴얼 보기)
mattrib
mbadblocks
mcd
mcopy
mdel
mdeltree
mdir
mesg (메시지를 받을 수 있는지 확인하기)
mformat
minfo
mkdir (디렉토리 만들기)
mke2fs (파일 시스템 생성하기)
mkfs (파일 시스템 만들기)
mknod (특수 파일 만들기)
mkswap (스왑 영역 지정하기)
mlabel
mmd
mmount
mmove
mpartition
mount (장치 연결하기)
more (화면 단위로 출력하기)
mrd
mren
mtoolstest
mtype
mutt (메일 관련)
mv (파일 옮기기)
mzip
netstat (현재 네트웍 상황 보기)
nice (프로세스 우선 순위 변경하기)
od (8진수로 파일 보기)
passwd (암호 입력하기)
pidof (실행중인 프로그램의 프로세스 ID 찾기)
pine (메일 관련)
ping (네트웍 확인하기)
popd (pushd 취소)
ps (프로세스 纘?알기)
pstree (프로세스 상관관계 알기)
pwd (절대경로 보여주기)
quota (디스크 한계량 알기)
rarp (rarp 테이블 관리하기)
rcp (원격 호스트에 파일 복사하기)
rdev (루트, 스왑장치, 램 크기, 비디오 모드를 조사하고 설정하기)
rdate (네트웍으로 시간 설정하기)
reboot (재부팅하기)
rmmod (모듈 지우기)
readonly (읽기 전용으로 표시하기)
renice (프로세스 우선 순위 바꾸기)
reset (터미널 초기화하기)
restore (다시 저장하기)
rlogin (바로 접속하기)
rm (파일 지우기)
rmdir (디렉토리 지우기)
route (라우팅 테이블 추가/삭제하기)
rpm (프로그램 추가/삭제)
rpm2cpio (rpm을 cpio로 변환하기)
rsh (원격으로 명령어 실행하기)
rup (호스트 상태 출력하기)
rusers (호스트에 로그인한 사용자 출력하기)
rwall (호스트 사용자에게 메시지 뿌리기)
script (기록하기)
set (변수값 설정하기)
setup (시스템 관련 설정하기)
showmount (호스트의 마운트 정보 보여주기)
shutdown (전원 끄기)
sleep (잠시 쉬기)
source (스크립트 번역하기)
split (파일 나누기)
ssh (암호화된 원격 로그인하기)
stty (터미널라인 설정 보여주기)
su (계정 바꾸기)
suspend (셸 중단하기)
swapoff (스왑 해제하기)
swapon (스왑 활성화하기)
sync (버퍼 재설정하기)
syslogd (로그인 과정 설정하기)
tac (거꾸로 보기)
tail (문서 끝부분 출력하기)
talk (이야기하기)
tar (파일 묶기)
tcpdchk (tcp wrapper 설정하기)
tcpmatch (네트웍 요청에 대해 예측하기)
tee (표준 입력으로부터 표준 출력 만들기)
telnet (원격접속하기)
test (테스트하기)
times (셸에서의 사용자와 시스템 시간 출력하기)
top (cpu 프로세스 상황 보여주기)
tr (문자열 바꿔주기)
true (종료 코드 리턴하기)
type (유형 보기)
ul (밑줄 처리해서 보여주기)
ulimit (제한하기)
umask (매스크 모드 설정하기)
umount (장치 해제하기)
unalias (별명 제거하기)
uname (시스템 정보 보기)
unexpand (공백 문자를 탭으로 변환하기)
uniq (중복된 문장 찾기)
useradd (사용자 계정 만들기)
userdel (계정 삭제하기)
usermod (사용자 계정정보 수정하기)
unset (설정 변수 해제)
uptime (시스템 부하 평균 보여주기)
users (로그인된 사용자 보여주기)
w (시스템에 접속한 사용자 상황 알아보기)
wait (프로세스 기다리기)
wall (모든 사용자에게 메시지 보내기)
wc (문자, 단어, 라인수 세기)
whatis (명령어의 간단한 설명보기)
while (루프 명령어)
who (사용자 알기)
write (콘솔 상에서 간단한 메시지 보내기)
xcopy (반복적으로 복사하기)
XFree86
ypchfn (NIS에서 사용하는 chfn 명령어)
ypchsh (NIS에서 사용하는 chsh 명령어)
yppasswd (NIS에서 사용하는 passwd 명령어)
zcat (압축 파일 보기)
zcmp (압축 파일 비교하기)
zforce (강제로 gz 만들기)

zgrep (압축 상태에서 grep 실행하기)

zmore (압축 상태에서 more 실행하기)

'old > Linux' 카테고리의 다른 글

vi 명령어  (0) 2010.03.25
하드웨어 정보 확인  (0) 2010.03.25
Linux Partition  (0) 2010.03.25
tar 사용법  (0) 2010.03.25
RPM 사용법  (0) 2010.03.25
Posted by jazzlife
,

Linux Partition

old/Linux 2010. 3. 25. 12:30

리눅스 파티션의 의미#


1) /

최상위 디렉토리이다. 루트 디렉토리의 공간은 많이 설정할 필요는 없으나 루트 디렉토리에 데이터 디렉토리를 설정하여 많은 데이터 파일들을 저장하고자 할 때에는 파티션의 크기를 크게 잡아준다.


2) /boot

부트 이미지 파티션으로 시스템이 부팅될 때 부팅 가능한 커널 이미지 파일을 담고 있는 디렉토리이다. 보통 100메가 정도 잡아주는 것이 좋다.


3) /home

일반 사용자들의 사용자 계정이 위치하는 파티션이며 익명 FTP 서비스를 할 때의 파티션이다.


4) /usr

리눅스에 필요한 대부분의 바이너리 파일들과 라이브러리 파일 그리고 X윈도우 파일들이 설치되는 파티션으로 많은 용량을 요구한다. 하위 디렉토리에는 bin, local, man등이 있으며 각각의 기능은 다음과 같다.

/usr/bin - 리눅스에 깔려있는 어플리케이션의 실행파일들이 저장되어있는 디렉토리이다., 자신이 리눅스에서 어떤 프로그램을 실행시키려면 이 밑에 있는 파일을 실행시켜야 한다.

/usr/local - 관리자에 의해 소스설치되는 프로그램들이 주로 설치되는 경로이다.

/usr/man - 도움말 페이지인 man 페이지의 내용이 들어있는 디렉토리이다.


5) /var

로그 파일 파티션이며 가변자료가 저장되는 공간이다. 발신/수신 되는 메일, 프린터 스풀, 각종 로그들이 저장된다. 메일서버, 프린터 서버, 웹호스팅을 이용한다면 이 공간을 충분히 확보해야 한다.


6) swap

가상 메모리로 사용되는 곳으로 실제 물리 메모리가 부족할 때 하드디스크에 설정된 스왑파티션을 물리 메모리처럼 사용하게 된다. 최소 크기는 리눅스가 설치된 시스템의 램의 2배 정도로 잡아주면 된다. 시스템에 너무 많은 스왑 파티션을 설정하면 그만큼 시스템 속도가 저하된다.

'old > Linux' 카테고리의 다른 글

하드웨어 정보 확인  (0) 2010.03.25
기본 명령어  (0) 2010.03.25
tar 사용법  (0) 2010.03.25
RPM 사용법  (0) 2010.03.25
QuickSynergy  (0) 2010.02.26
Posted by jazzlife
,

tar 사용법

old/Linux 2010. 3. 25. 12:30

tar 압축#


지정된 폴더만 압축할 경우#

tar -cvf file.tar dir1 dir2 dir3

--> dir1, dir2, dir3폴더를 file.tar로 압축


해제시 tar안의 특정폴더만 압축 풀 경우#

tar -xvf file2.tar dir1/dir2/dir3

--> file2.tar안에 dir1/dir2/dir3에 있는 폴더만 압축을 해제


분할 압축 #



  1. 먼저 압축하고자하는 디렉토리로 이동한다..
    # cd /var/www

    2. 다음과 같은 명령으로 압축을 실행한다.
    # tar cvf - 압축할디렉토리 | split -b 1024m - 압축파일.tar

    폴더의 권한까지 1기가로 압축을 하는 명령어입니다..
    단순히 tar로 묶어줍니다..
    (그냥 묶는것이 속도가 더 빠릅니다.그래서 저는 압축을 안하고 묶었습니다.)

    만약 압축까지하려면 다음과 같은 명령어를 넣어줍니다.
    # tar cvzf - 압축할디렉토리 | split -b 1024m - 압축파일.tar.gz


    3. 압축파일은 다음과 같은 형태로 저장되게 됩니다.
            압축파일.taraa
            압축파일.tarab
            압축파일.tarac
       뒤에 aa,ab,ac...가 붙게 됩니다..
       혹은
            압축파일.tar.gzaa

            압축파일.tar.gzab
            압축파일.tar.gzac


    4. 압축풀기
     #cat 압축파일.tar* | tar xvf -
    혹은
     #cat 압축파일.tar.gz* | tar xvz

'old > Linux' 카테고리의 다른 글

하드웨어 정보 확인  (0) 2010.03.25
기본 명령어  (0) 2010.03.25
Linux Partition  (0) 2010.03.25
RPM 사용법  (0) 2010.03.25
QuickSynergy  (0) 2010.02.26
Posted by jazzlife
,

RPM 사용법

old/Linux 2010. 3. 25. 12:29

RPM 설치#


※참고 : rpm 명령의 버젼에 따라 옵션값의 변경이나 사용법이 달라질수 도 있다.

            이 문서는 페도라 계열의 rpm-4.4.2-15.2.1 을 기준으로 작성되었다.

 

어디서나 흔히 볼 수 잇는 rpm 설치 하고 삭제 등...

1.rpm 설치

  1. #rpm -Uvh test-1.2.3.src.rpm

      : test.src.rpm을 /usr/src/<vender_name_dir>/SPEC 에 SPEC 파일과

         /usr/src/<vender_name_dir>/SOURCES/ 에 소스를 설치 한다.

         기존에 설치된 패키지가 있을 경우 업그레이드를 한다. -ivh 보다 많이 사용한다.

    #rpm -Uvh test-1.2.3.rpm

       : test-1.2.3.rpm 을 설치 한다. 기존에 test 라는 낮은 버젼의 패키지가 있으면 업그레이드. 없으면 그냥 -ivh 처럼 설치가 된다.

    #rpm -ivh test-1.2.3.rpm

       : test-1.2.3 을 처음으로 설치 한다. 처음 설치가 아니더라도 -Uvh 를 사용해도 무관 하다.


  2. 설치된 rpm 제거

    #rpm -e test

      : test 라는 이름의 패키지를 제거 한다.

    #rpm -evv test

      : test 라는 패키지를 제거 하는 과정을 보여 준다.


  3. 설치된 패키지 정보 보기

    #rpm -qi test

       : test 가 설치 되어 있다면, test 패키지에 대한 설명이 주루룩 뜰것 이다. 아래는 예...


    #rpm -qi bash
    Name        : bash                                      Relocations: /usr
    Version     : 3.1                                         Vendor: (none)
    Release     : 6.2.1.by                                 Build Date:
    Install Date:                                               Build Host: build.i386
    Group       : System Environment/Shells     Source RPM: bash-3.1-6.2.1.by.src.rpm
    Size          : 5298761                                License: GPL
    Signature   : DSA/SHA1, 2006년 08월 31일 (목) 오후 02시 04분 38초, Key ID ed71c4b0ef24e3a8
    URL            : http://www.gnu.org/software/bash
    Summary    : The GNU Bourne Again shell (bash) version 3.1.
    Description :
    The GNU Bourne Again shell (Bash) is a shell or command language
    interpreter that is compatible with the Bourne shell (sh). Bash
    incorporates useful features from the Korn shell (ksh) and the C shell
    (csh). Most sh scripts can be run by bash without modification. This
    package (bash) contains bash version 3.1, which improves POSIX
    compliance over previous versions.

    ※각 필드 별로 값이 들어 있는데 이 값들만 추축 하는 방법을 알고 싶다면, 이 노트의 rpm querytag 을 참고 하도록 한다.


  4. 강제 설치

      #rpm -Uvh --force test-1.2.3.rpm

        : 기존에 설치된 동일 버젼의 동일한 릴리즈 번호의 패키지를 덮어 씌워 설치 한다.


5. 의존성 무시 설치

     #rpm -Uvh --nodeps test-1.2.3.rpm

     #rpm -ivh --nodeps test-1.2.3.rpm

        :  test-1.2.3.rpm 패키지의 의존성을 무시하고 설치 한다. 의존성으로 인한 문제가 발생할 수도 있다.


6. 패키지가 설치한 파일들 보기

    : -ql 옵션을 사용 하여 rpm 패키지가 설치한 파일리스트를 본다.

     #rpm -ql test-1.2.3

     아래는 예제...


     #rpm -ql coreutils

     /bin/basename
     /bin/cat
     /bin/chgrp
     /bin/chmod
     /bin/chown
           .

           .

           .

        중략

7. 파일이 어느 패키지에 들어 있는지 알아보기

     : -qf 옵션을 이용하여 파일이 어느 패키지에서 설치 된것인지 알아본다.


     #whereis diff
     diff: /usr/bin/diff /usr/share/man/man1p/diff.1p.gz /usr/share/man/man1/diff.1.gz
     # rpm -qf /usr/bin/diff
     diffutils-2.8.1-15.2.1.1.by


     diff 명령이 어디 있는지 알아보기 위해 whereis 를 사용 하고, 파란글씨 부분의 실헹 파일이 어느 패키지에서 설치 된것인지 알아보기 위헤

     해당 경로를 입력 하였다. 결과 diff 라는 명령은 diffutils-2.8.1-15.2.1.1.by 에서 설치된 것임을 알 수 있다.

'old > Linux' 카테고리의 다른 글

하드웨어 정보 확인  (0) 2010.03.25
기본 명령어  (0) 2010.03.25
Linux Partition  (0) 2010.03.25
tar 사용법  (0) 2010.03.25
QuickSynergy  (0) 2010.02.26
Posted by jazzlife
,

QuickSynergy

old/Linux 2010. 2. 26. 18:01
http://gtko.springnote.com/pages/2774338?print=1


[Linux]

- server

1. QuickSynergy를 설치한다.
2. share 메뉴에서 모니터 설정에 ID를 할당한다.
3. /etc/hosts 설정
    (ex)
    192.168.0.1    windows
    192.168.0.2    linux
4. system-preferences-startup application에 등록하여 시작시 실행되게 한다.

- client

1. QuickSynergy를 설치한다.
2. share 메뉴에서 모니터 설정에 ID를 할당한다.
3. use 메뉴에서 서버의 IP와 ID를 입력한다.
3. /etc/hosts 설정
    (ex)
    192.168.0.1    windows
    192.168.0.2    linux
4. system-preferences-startup application에 등록하여 시작시 실행되게 한다.


[Windows]

1. Synergy를 설치하고 한글 패치를 한다.
2. Client와 Host의 설정을 변경한다.
3. C:\windows\system32\drivers\etc\hosts 설정
    (ex)
    192.168.0.1    windows
    192.168.0.2    linux
4. Autostart로 설정.

'old > Linux' 카테고리의 다른 글

하드웨어 정보 확인  (0) 2010.03.25
기본 명령어  (0) 2010.03.25
Linux Partition  (0) 2010.03.25
tar 사용법  (0) 2010.03.25
RPM 사용법  (0) 2010.03.25
Posted by jazzlife
,