Unix Shell 종류

  1. Shell 의 종류

     

    (1) Bourne Shell

     

    이 shell은 구조적 프로그램을 만들 수 있는 프로그램 언어를 내장했고, 특히 입/출력 제어에 강력한 기능을 제공했다. 그러나 이 shell의 프로그램 환경 (비대화식 사용자 환경 : non-interactive user interface)은 매우 훌륭한 반면 대화식 사용자 환경(interactive user interface)은 매우 빈약하여 좀 더 나은 "무엇인가"가 나타날 여지를 남겨 놓았다.

     

     

    (2) C shell

     

    Bourne shell의 단점인 대화식 사용자 환경을 강화하고 몇 가지 새로운 개념(job control, history, alias등)을 도입한 C-shell을 캘리포니아 대학교 버클리 분교에서 만들었다. 그러나 초기의 C-shell은 많은 결함(bug)이 발견되어 이것을 사용하여 완전한 shell script를 만드는 데는 문제가 있었다. 그래서 많은 사람들이 C-shell의 사용에 주저했으나, 편리한 사용자 환경으로 인해 대화식 사용자 환경은 C-shell을 사용하고 비 대화식 환경(shell program)에는 주로 Bourne shell을 사용하는 기현상이 나타났다.

     

    C Shell의 프로그램의 경우 언어 구조가 C 언어와 유사하기 때문에 이해하기가 쉽다.

     

    (3) TC shell

     

    C Shell의 결함을 고치고 몇 개의 새로운 기능(command line editing, spelling correction, login/logout watching 등)을 추가하여 TC shell(tcsh)이 만들어 졌다. 그러나 대다수의 UNIX시스템 제조업체에서 TC shell을 선택하지 않고 표준 C shell을 기본적으로 탑재했기 때문에 지금까지 비표준 shell로 남아 있다.

     

     

    (4) Korn Shell

     

    AT&T의 David Korn에게 이러한 혼돈을 정리할 수 있는 idea가 있었고, 그 결과로 Korn shell(ksh)을 만들었다. 즉 Bourne shell의 비 대화식 사용자 환경에 C shell의 훌륭한 대화식 사용자 환경을 덧붙인 것이다. Korn shell은 곧 system V의 일부가 되었지만 나머지 다른 shell들과는 달리 "공짜"가 아니어서 ksh을 사용하려면 AT&T에 사용료를 지불해야 하는 문제가 있었다.

     

     

    (5) Bourne Again Shell

     

    이 시기에 GNU project에서 Korn shell에 버금가는 기능을 갖는 "공짜" shell이 필요하다는 결정을 하였고, 그 결과 bash(Bourne Again Shell)가 탄생했다. Bash는 Korn shell과 마찬가지로 Bourne shell 에 기초하여 c-shell의 여러기능을 추가했고, Korn shell과는 달리 "공짜"였으므로 급속히 전파되어 현재 새로운 세대의 shell중에서 가장 인기 있는 shell이 되었다.

     

     

    (6) Z-shell

     

    더 완전한 shell을 향한 끝없는 추구는 지금도 계속되고 있고, 그 결과 Bourne shell에 기초한 또 다른 shell인 Z-shell(zsh)이 나타났다. 이 shell에는 전문가도 정확히 사용하기 힘든 여러 가지의 다양한 기능이 많이 추가되었다.

     

     

     

  2. Shell 비교

     

Function

sh

csh

ksh

bash

tcsh

zsh

  Job control

X

O

O

O

O

O

  Aliases

X

O

O

O

O

O

  Command history

X

O

O

O

O

O

  Command line editing

X

X

O

O

O

O

  login/logout watching

X

X

X

X

O

O

  File name completion

X

O

O

O

O

O

  Spelling correction

X

X

X

X

O

O

  Process substitution

X

X

X

O

X

O

  Shell scripts

O

O

O

O

O

O

  Freely available

X

X

X

O

O

O

  

'system > unix' 카테고리의 다른 글

su 명령 사용 허가하기  (0) 2008.09.17
bash 환경 설정  (0) 2008.09.17
시스템에서 사용하는 port 1024 개  (0) 2007.11.09
^M문자 없애기  (2) 2007.11.02
[HP-UX] 시스템 명령어  (0) 2007.10.31

시스템에서 사용하는 port 1024 개

etc/srevices 파일을 열어 보시면 확인 하실 수 있습니다.

 

 

 

# /etc/services:
# $Id: services,v 1.32 2003/01/09 17:56:30 dwalsh Exp $
#
# Network services, Internet style
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, most entries here have two entries
# even if the protocol doesn't support UDP operations.
# Updated from RFC 1700, ``Assigned Numbers'' (October 1994).  Not all ports
# are included, only the more common ones.
#
# The latest IANA port assignments can be gotten from
#       http://www.iana.org/assignments/port-numbers
# The Well Known Ports are those from 0 through 1023.
# The Registered Ports are those from 1024 through 49151
# The Dynamic and/or Private Ports are those from 49152 through 65535
#
# Each line describes one service, and is of the form:
#
# service-name  port/protocol  [aliases ...]   [# comment]

tcpmux          1/tcp                           # TCP port service multiplexer
tcpmux          1/udp                           # TCP port service multiplexer
rje             5/tcp                           # Remote Job Entry
rje             5/udp                           # Remote Job Entry
echo            7/tcp
echo            7/udp
discard         9/tcp           sink null
discard         9/udp           sink null
systat          11/tcp          users
systat          11/udp          users
daytime         13/tcp
daytime         13/udp
qotd            17/tcp          quote
qotd            17/udp          quote
msp             18/tcp                          # message send protocol
msp             18/udp                          # message send protocol
chargen         19/tcp          ttytst source
chargen         19/udp          ttytst source

ftp-data        20/tcp
ftp-data        20/udp
# 21 is registered to ftp, but also used by fsp
ftp             21/tcp
ftp             21/udp          fsp fspd
ssh             22/tcp                          # SSH Remote Login Protocol
ssh             22/udp                          # SSH Remote Login Protocol
telnet          23/tcp
telnet          23/udp
# 24 - private mail system
smtp            25/tcp          mail
smtp            25/udp          mail
time            37/tcp          timserver
time            37/udp          timserver
rlp             39/tcp          resource        # resource location
rlp             39/udp          resource        # resource location
nameserver      42/tcp          name            # IEN 116
nameserver      42/udp          name            # IEN 116
nicname         43/tcp          whois
nicname         43/udp          whois
tacacs          49/tcp                          # Login Host Protocol (TACACS)
tacacs          49/udp                          # Login Host Protocol (TACACS)
re-mail-ck      50/tcp                          # Remote Mail Checking Protocol
re-mail-ck      50/udp                          # Remote Mail Checking Protocol
domain          53/tcp                          # name-domain server
domain          53/udp
whois++         63/tcp
whois++         63/udp
bootps          67/tcp                          # BOOTP server
bootps          67/udp
bootpc          68/tcp                          # BOOTP client
bootpc          68/udp
tftp            69/tcp
tftp            69/udp
gopher          70/tcp                          # Internet Gopher
gopher          70/udp

netrjs-1        71/tcp                          # Remote Job Service
netrjs-1        71/udp                          # Remote Job Service
netrjs-2        72/tcp                          # Remote Job Service
netrjs-2        72/udp                          # Remote Job Service
netrjs-3        73/tcp                          # Remote Job Service
netrjs-3        73/udp                          # Remote Job Service
netrjs-4        74/tcp                          # Remote Job Service
netrjs-4        74/udp                          # Remote Job Service
finger          79/tcp
finger          79/udp
http            80/tcp          www www-http    # WorldWideWeb HTTP
http            80/udp          www www-http    # HyperText Transfer Protocol
kerberos        88/tcp          kerberos5 krb5  # Kerberos v5
kerberos        88/udp          kerberos5 krb5  # Kerberos v5
supdup          95/tcp
supdup          95/udp
hostname        101/tcp         hostnames       # usually from sri-nic
hostname        101/udp         hostnames       # usually from sri-nic
iso-tsap        102/tcp         tsap            # part of ISODE.
csnet-ns        105/tcp         cso             # also used by CSO name server
csnet-ns        105/udp         cso
# unfortunately the poppassd (Eudora) uses a port which has already
# been assigned to a different service. We list the poppassd as an
# alias here. This should work for programs asking for this service.
# (due to a bug in inetd the 3com-tsmux line is disabled)
#3com-tsmux     106/tcp         poppassd
#3com-tsmux     106/udp         poppassd
rtelnet         107/tcp                         # Remote Telnet
rtelnet         107/udp
pop2            109/tcp         pop-2   postoffice      # POP version 2
pop2            109/udp         pop-2
pop3            110/tcp         pop-3           # POP version 3
pop3            110/udp         pop-3
sunrpc          111/tcp         portmapper      # RPC 4.0 portmapper TCP
sunrpc          111/udp         portmapper      # RPC 4.0 portmapper UDP
auth            113/tcp         authentication tap ident
auth            113/udp         authentication tap ident
sftp            115/tcp
sftp            115/udp
uucp-path       117/tcp
uucp-path       117/udp
nntp            119/tcp         readnews untp   # USENET News Transfer Protocol
nntp            119/udp         readnews untp   # USENET News Transfer Protocol
ntp             123/tcp
ntp             123/udp                         # Network Time Protocol
netbios-ns      137/tcp                         # NETBIOS Name Service
netbios-ns      137/udp
netbios-dgm     138/tcp                         # NETBIOS Datagram Service
netbios-dgm     138/udp
netbios-ssn     139/tcp                         # NETBIOS session service
netbios-ssn     139/udp
imap            143/tcp         imap2           # Interim Mail Access Proto v2
imap            143/udp         imap2
snmp            161/tcp                         # Simple Net Mgmt Proto
snmp            161/udp                         # Simple Net Mgmt Proto
snmptrap        162/udp         snmp-trap       # Traps for SNMP
cmip-man        163/tcp                         # ISO mgmt over IP (CMOT)
cmip-man        163/udp
cmip-agent      164/tcp
cmip-agent      164/udp
mailq           174/tcp                         # MAILQ
mailq           174/udp                         # MAILQ
xdmcp           177/tcp                         # X Display Mgr. Control Proto
xdmcp           177/udp
nextstep        178/tcp         NeXTStep NextStep       # NeXTStep window
nextstep        178/udp         NeXTStep NextStep       # server
bgp             179/tcp                         # Border Gateway Proto.
bgp             179/udp
prospero        191/tcp                         # Cliff Neuman's Prospero
prospero        191/udp
irc             194/tcp                         # Internet Relay Chat
irc             194/udp
smux            199/tcp                         # SNMP Unix Multiplexer
smux            199/udp
at-rtmp         201/tcp                         # AppleTalk routing
at-rtmp         201/udp
at-nbp          202/tcp                         # AppleTalk name binding
at-nbp          202/udp
at-echo         204/tcp                         # AppleTalk echo
at-echo         204/udp
at-zis          206/tcp                         # AppleTalk zone information
at-zis          206/udp
qmtp            209/tcp                         # Quick Mail Transfer Protocol
qmtp            209/udp                         # Quick Mail Transfer Protocol
z39.50          210/tcp         z3950 wais      # NISO Z39.50 database
z39.50          210/udp         z3950 wais
ipx             213/tcp                         # IPX
ipx             213/udp
imap3           220/tcp                         # Interactive Mail Access
imap3           220/udp                         # Protocol v3
link            245/tcp         ttylink
link            245/ucp         ttylink
fatserv         347/tcp                         # Fatmen Server
fatserv         347/udp                         # Fatmen Server
rsvp_tunnel     363/tcp
rsvp_tunnel     363/udp
rpc2portmap     369/tcp
rpc2portmap     369/udp                         # Coda portmapper
codaauth2       370/tcp
codaauth2       370/udp                         # Coda authentication server
ulistproc       372/tcp         ulistserv       # UNIX Listserv
ulistproc       372/udp         ulistserv
ldap            389/tcp
ldap            389/udp
svrloc          427/tcp                         # Server Location Protocl
svrloc          427/udp                         # Server Location Protocl
mobileip-agent  434/tcp
mobileip-agent  434/udp
mobilip-mn      435/tcp
mobilip-mn      435/udp
https           443/tcp                         # MCom
https           443/udp                         # MCom
snpp            444/tcp                         # Simple Network Paging Protocol
snpp            444/udp                         # Simple Network Paging Protocol
microsoft-ds    445/tcp
microsoft-ds    445/udp
kpasswd         464/tcp         kpwd            # Kerberos "passwd"
kpasswd         464/udp         kpwd            # Kerberos "passwd"
photuris        468/tcp
photuris        468/udp
saft            487/tcp                         # Simple Asynchronous File Transfer
saft            487/udp                         # Simple Asynchronous File Transfer
gss-http        488/tcp
gss-http        488/udp
pim-rp-disc     496/tcp
pim-rp-disc     496/udp
isakmp          500/tcp
isakmp          500/udp
gdomap          538/tcp                         # GNUstep distributed objects
gdomap          538/udp                         # GNUstep distributed objects
iiop            535/tcp
iiop            535/udp
dhcpv6-client   546/tcp
dhcpv6-client   546/udp
dhcpv6-server   547/tcp
dhcpv6-server   547/udp
rtsp            554/tcp                         # Real Time Stream Control Protocol
rtsp            554/udp                         # Real Time Stream Control Protocol
nntps           563/tcp                         # NNTP over SSL
nntps           563/udp                         # NNTP over SSL
whoami          565/tcp
whoami          565/udp
submission      587/tcp         msa             # mail message submission
submission      587/udp         msa             # mail message submission
npmp-local      610/tcp         dqs313_qmaster  # npmp-local / DQS
npmp-local      610/udp         dqs313_qmaster  # npmp-local / DQS
npmp-gui        611/tcp         dqs313_execd    # npmp-gui / DQS
npmp-gui        611/udp         dqs313_execd    # npmp-gui / DQS
hmmp-ind        612/tcp         dqs313_intercell # HMMP Indication / DQS
hmmp-ind        612/udp         dqs313_intercell # HMMP Indication / DQS
ipp             631/tcp                         # Internet Printing Protocol
ipp             631/ucp                         # Internet Printing Protocol
ldaps           636/tcp                         # LDAP over SSL
ldaps           636/udp                         # LDAP over SSL
acap            674/tcp
acap            674/udp
ha-cluster      694/tcp                         # Heartbeat HA-cluster
ha-cluster      694/udp                         # Heartbeat HA-cluster
kerberos-adm    749/tcp                         # Kerberos `kadmin' (v5)
kerberos-iv     750/udp         kerberos4 kerberos-sec kdc
kerberos-iv     750/tcp         kerberos4 kerberos-sec kdc
webster         765/tcp                         # Network dictionary
webster         765/udp
phonebook       767/tcp                         # Network phonebook
phonebook       767/udp
rsync           873/tcp                         # rsync
rsync           873/udp                         # rsync
telnets         992/tcp
telnets         992/udp
imaps           993/tcp                         # IMAP over SSL
imaps           993/udp                         # IMAP over SSL
ircs            994/tcp
ircs            994/udp
pop3s           995/tcp                         # POP-3 over SSL
pop3s           995/udp                         # POP-3 over SSL

#
# UNIX specific services
#
exec            512/tcp
biff            512/udp         comsat
login           513/tcp
who             513/udp         whod
shell           514/tcp         cmd             # no passwords used
syslog          514/udp
printer         515/tcp         spooler         # line printer spooler
printer         515/udp         spooler         # line printer spooler
talk            517/udp
ntalk           518/udp
utime           519/tcp         unixtime
utime           519/udp         unixtime
efs             520/tcp
router          520/udp         route routed    # RIP
ripng           521/tcp
ripng           521/udp
timed           525/tcp         timeserver
timed           525/udp         timeserver
tempo           526/tcp         newdate
courier         530/tcp         rpc
conference      531/tcp         chat
netnews         532/tcp
netwall         533/udp                         # -for emergency broadcasts
uucp            540/tcp         uucpd           # uucp daemon
klogin          543/tcp                         # Kerberized `rlogin' (v5)
kshell          544/tcp         krcmd           # Kerberized `rsh' (v5)
afpovertcp      548/tcp                         # AFP over TCP
afpovertcp      548/udp                         # AFP over TCP
remotefs        556/tcp         rfs_server rfs  # Brunhoff remote filesystem

 

 

 

자주 쓰는 프로그램, 서비스의 포트 번호

  포트 포워딩을 하려면 인터넷 서비스, 소프트웨어가 쓰는 포트 번호를 알아야 한다. 사람들이 많이 쓰는 네트워크 서비스, 메신저, P2P 프로그램의 포트 번호를 정리한다.

  ▲ 21번: FTP
  ▲ 22번: 보안 텔넷(SSH)
  ▲ 23번: 텔넷
  ▲ 25번: SMTP(메일 발송)
  ▲ 42번: 호스트 네임 서버
  ▲ 53번: 도메인 메인 서버
  ▲ 70번: 고퍼(Gopher)
  ▲ 79번: 핑거(Finger)
  ▲ 80번: 웹(HTTP)
  ▲ 88번: 커베로스 보안 규격
  ▲ 110번: POP3(메일 수신)
  ▲ 118, 156번: SQL 서비스
  ▲ 137~139번: NetBIOS(파일 서버)
  ▲ 161번: SNMP(네트워크 관리)
  ▲ 220번: IMAP3(일부 메일 서비스)
  ▲ 812, 987번: 버디버디
  ▲ 1214번: 카자
  ▲ 1720번: 넷미팅
  ▲ 1863, 6891~6900번: MSN 메신저
  ▲ 3389번: 터미널 서비스(원격 데스크톱)
  ▲ 4000번: ICQ
  ▲ 4000, 6112번: 배틀넷(디아블로, 스타크래스트, 워크래프트)
  ▲ 4662번: e동키(기본값)  ▲ 5500, 5800, 5900번: VNC
  ▲ 6257, 6699번: 윈MX(기본값)
  ▲ 6346번: 그누텔라
  ▲ 6699번: 냅스터
  ▲ 7674, 22321번: 소리바다 2
  ▲ 9292, 9999번: 구루구루
  ▲ 28290번: PDBOX

  여기에 나오지 않은 프로그램의 포트 번호는 소프트웨어 제조사에 물어보면 알 수 있다. 몇몇 프로그램은 정해진 포트 번호를 쓰지 않고 사용자가 마음대로 정하는 메뉴를 둔다. 그런 프로그램을 쓴다면 포트 번호를 10,000번보다 높은 숫자로 정하는 것이 좋다. 이렇게 하면 다른 프로그램과 포트가 충돌하는 문제가 생기지 않는다.

 

 

 

첨부1) P2P 프로그램이 사용하는 네트워크 포트



첨부2) 메신저 프로그램 사용 포트

'system > unix' 카테고리의 다른 글

su 명령 사용 허가하기  (0) 2008.09.17
bash 환경 설정  (0) 2008.09.17
Unix Shell 종류  (0) 2008.09.17
^M문자 없애기  (2) 2007.11.02
[HP-UX] 시스템 명령어  (0) 2007.10.31

^M문자 없애기

^M문자없애기

      vi로 문서를 보다 보면 줄끝마다 ^M 이 보이는 경우가 있습니다.
      이는 윈도우시리즈(도스포함)에서 작성된 문서를 유닉스로 볼때 생기는 현상 입니다.

      이런 현상이 왜 생기는 이유는 윈도우와 유닉스에서의 ASCII화일 형식이 서로 다릅니다.

      일단 윈도우에서는 엔터시에 한줄을 내리고 커서를 앞으로 보내주지만 즉,엔터 한번으로
      두 명령이 입력되는거죠..

      하지만 유닉스에서는 엔터치면 단지 줄만 바뀌죠..즉 한번의 엔터는 단지 한번의 명령일 뿐 입니다..^^;

      그래서 도스파티션에 있는 화일을 그냥 카피하면 ^M자들이 지저분하게 보이죠..

      반대로 유닉스용 화일을 도스로 카피해서 도스용 에디터로 보면 전부 한줄로 붙어서 나타나게 된답니다.

      아래는 몇가지 방법입니다.

      1. vi 에디터를 이용해서 ^M 문자 없애는 방법

             1) tr 을 이용합니다.
                vi 에디터에서 다음과 같이 입력합니다. 여기서 1G는 첫라인으로 간다는
                뜻이고, 느낌표부터는 쉘명령 tr을 이용한다는 겁니다.

                1G!Gtr -d ^M

             2) ed 명령을 사용합니다.
                vi 에디터에서 다음과 같이 입력합니다. 여기서 : 는 아시다시피
                명령모드로 가는 거구, 1은 첫라인을 $는 마지막 라인을 의미합니다.
                그러므로 여기서 1,$ 는 첫라인부터 마지막라인까지라는 뜻이겠죠?
                s는 substitute의 약자로써 다음의 /피대체어/대체어/ 에서
                피대체어를 대체어로 바꾼다는 것입니다. 여기서는 ^M을 없애라는
                뜻이겠죠? 마지막의 g는 global의 약자로 각 라인에서 해당문자열이
                나올때마다 몽땅 바꾸라는 의미.

                :1,$s/^M//g


      2. perl 을 이용하는 방법

             perl -pi -e 's/\r//' inputfile


      3. sed 를 이용하는 방법

             1 번 vi 에디터를 이용하는 방법에서 언급 되었습니다. 커맨드라인상에서
             바로 수정하는 방법.

             sed 's/^M//g' inputfile > outputfile


      4. awk 를 이용하는 방법

             print $0 는 문서전체를 의미합니다.

             awk '{print $0,"\r"}' inputfile > outputfile


      5. tr 을 이용하는 방법

             1 번 vi 에디터를 이용하는 방법에서도 언급되었지만 에디터를 부르지
             않고 커맨드라인상에서 바로 고치는 방법입니다. -d 옵션은 delete를 의미.

             tr -d '\015' < inputfile > outputfile


      6. mcopy 이용시 옵션을 주는 방법

             -t 옵션을 이용하면 mcopy로 복사할때 ^M 문자가 없어지고 copy됩니다.
         
             mcopy -t a:/test.cap .

      7. fromdos 명령을 이용하는 방법

             간단히 리눅스에 포함되어있는 유틸리티를 이용하는 방법입니다. fromdos는
             도스용 문서를 리눅스(유닉스)용으로, todos는 리눅스에서 도스용으로 변환
             할때 사용할 수 있습니다.

             fromdos inputfile

            
      참고 : ^M 의 입력은 [Ctrl+V][Ctrl+M] 입니다.


      또다른 방법하나.

      //g$s/
      요렇게 하면 몽땅 지워집니다.
      1 은 첫라인부터
      $ 은 마지막라인까지
      s 는 다음과 같이 바꾸는데...
      ^M 은 입력할때 Ctrl+V M 요렇게 해야허구...
      // 는 원래 요사이에 뭔 string이 들어가야하지만
        없애야하기에 암껏두 안썼음.
      g 는 문서전체에 걸쳐 몽땅...

      이게 귀찮으시면 그냥 fromdos 명령 사용하세요~


      저는 보통 vi 편집기 명령모드에서 :1,$s/^M//g 이걸로 ^M을 없애고 있습니다..


'system > unix' 카테고리의 다른 글

su 명령 사용 허가하기  (0) 2008.09.17
bash 환경 설정  (0) 2008.09.17
Unix Shell 종류  (0) 2008.09.17
시스템에서 사용하는 port 1024 개  (0) 2007.11.09
[HP-UX] 시스템 명령어  (0) 2007.10.31