12.6. 통신 명령어

정보및 통계

host

DNS를 써서 호스트 이름이나 IP로 그 호스트에 대한 정보를 찾습니다.

vrfy

인터넷 이메일 주소를 검증해(verify) 줍니다.

nslookup

호스트에 대해서 IP를 이용해 인터넷 "네임 서버 룩업"을 합니다. 대화형 모드로 돌거나 스크립트에서 비대화형 모드로 돌 수 있습니다.

dig

nslookup와 비슷하게, 호스트에 대해 IP를 이용해 인터넷 "네임 서버 룩업"을 합니다. 대화형 모드로 돌거나 스크립트에서 비대화형 모드로 돌 수 있습니다.

traceroute

리모트 호스트에 보내는 패킷의 경로를 추적합니다. 이 명령어는 LAN, WAN, 인터넷을 통해서 동작합니다. 리모트 호스트는 IP 주소로 지정되어야 합니다. 파이프에서 grep이나 sed를 이용해 이 명령어의 출력을 필터링 할 수도 있습니다.

ping

지역 네트워크나 외부 네트워크에 있는 다른 머신에게 "ICMP ECHO_REQUEST" 패킷을 브로드캐스트합니다. 네트워크 연결을 테스트 하는데 쓰이는 진단 도구이고, 조심해서 써야 됩니다.

ping이 성공하면 0종료 상태를 리턴하기 때문에 스크립트에서 테스트를 걸 수 있습니다.

bash$ ping localhost
PING localhost.localdomain (127.0.0.1) from 127.0.0.1 : 56(84) bytes of data.
Warning: time of day goes back, taking countermeasures.
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=0 ttl=255 time=709 usec
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=1 ttl=255 time=286 usec

--- localhost.localdomain ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/mdev = 0.286/0.497/0.709/0.212 ms
	      

whois

DNS(Domain Name System) 룩업을 수행. -h 옵션을 쓰면 어떤 서버로 쿼리를 날릴지를 지정할 수 있습니다. 예 5-6을 참고하세요.

finger

네트워크상에 있는 특정 사용자에 대한 정보를 알려줍니다. 사용자의 ~/.plan, ~/.project, ~/.forward 파일이 존재한다면 그 정보들을 표시해 줄 수도 있습니다.

bash$ finger bozo
Login: bozo                             Name: Bozo Bozeman
Directory: /home/bozo                   Shell: /bin/bash
On since Fri Aug 31 20:13 (MST) on tty1    1 hour 38 minutes idle
On since Fri Aug 31 20:13 (MST) on pts/0   12 seconds idle
On since Fri Aug 31 20:13 (MST) on pts/1
On since Fri Aug 31 20:31 (MST) on pts/2   1 hour 16 minutes idle
No mail.
No Plan.
	      

보안때문에 많은 네트워크들은 finger 관련 데몬들을 꺼 놓습니다. [1]

리모트 호스트 접근

sx, rx

sxrx 명령어는 xmodem 프로토콜을 써서 리모트 호스트와 파일을 주고 받을 수 있게 해 줍니다. 이 명령어들은 보통 minicom 같은 통신 패키지의 일부분입니다.

sz, rz

szrz 명령어는 zmodem 프로토콜을 써서 리모트 호스트와 파일을 주고 받을 수 있게 해 줍니다. zmodem 프로토콜은 xmodem 프로토콜보다 더 나은 전송률을 갖고, 전송이 중지된 파일을 다시 재전송하는 등의 이점이 있습니다. sxrx처럼 이들도 보통은 통신 패키지의 일부분입니다.

ftp

리모트 호스트와 파일을 업로드/다운로드 할 수 있게 해 주는 유틸리및 프로토콜입니다. ftp 세션은 스크립트에서 자동화 될 수 있습니다(예 17-7, 예 A-4, 예 A-8 참고).

cu

리모트 시스템을 호출(Call Up)해서 간단한 터미널로 연결. 일종의 간단한 telnet 버전입니다.

uucp

유닉스간 복사(UNIX to UNIX copy). 이 명령어는 유닉스 서버간에 파일을 전송하는데 쓰이는 통신 패키지입니다. 쉘 스크립트는 uucp 명령어 순서를 효과적으로 처리할 수 있습니다.

인터넷 이메일의 등장으로 uucp는 거의 쓰이지 않지만 여전히 존재하고 있고, 인터넷 연결이 불가능하거나 잘 안 되는 경우에도 이 명령어는 완벽하게 동작합니다.

telnet

리모트 호스트로 연결해 주는 프로토콜및 유틸리티.

경고

telnet 프로토콜은 보안 구멍이 있기 때문에 쓰지 말아야 합니다.

rlogin

Remote login, 리모트 호스트로 세션을 초기화 해줍니다. 이 명령어는 보안 이슈가 걸려 있기 때문에 ssh을 쓰세요.

rsh

Remote shell, 리모트 호스트에서 명령어를 실행시킵니다. 이 명령어는 보안 이슈가 걸려 있기 때문에 ssh을 쓰세요.

rcp

리모트 복사(Remote copy), 네크워크로 물린 서로 다른 머신끼리 복사를 할 수 있게 해 줍니다. 쉘 스크립트에서 rcp나 비슷한 종류의 유틸리티들을 쓰는 것은 보안 문제와 관련이 있기 때문에 추천하지 않습니다. 대신 ssh 이나 expect 스크립트를 고려해 보기 바랍니다.

ssh

Secure shell, 리모트 호스트로 로그인 해서 명령어를 실행 시킴. 신원 인증및 암호화를 써서 telnet, rlogin, rcp, rsh을 대치하는 명령어입니다. 자세한 사항은 맨 페이지를 참고하세요.

지역 네트워크(Local Network)

write

터미널간 통신을 위한 유틸리티입니다. 자신의 터미널(콘솔이나 hanterm)에서 다른 사용자 터미널로 메세지를 보낼 수 있게 해 줍니다. mesg 명령어는 자신의 터미널로 들어오는 write 메세지를 막을 수 있게 해 줍니다.

write은 대화형 모드로 동작하기 때문에 보통은 스크립트에서 쓰이지 않습니다.

Mail

vacation

메일 수신자가 휴가중(vacation)이거나 잠시 메일을 받을 수 없을 때 자동으로 이메일에 답장을 보내주는 유틸리티입니다. 이 명령어는 sendmail과 같이 네트워크에서 동작하기 때문에 다이얼업 POP 메일 계정에서는 쓸 수 없습니다.

주석

[1]

데몬(daemon)은 터미널 세션과 연결되어 있지 않는 백그라운드 프로세스입니다. 데몬은 주어진 시간이나 어떤 이벤트가 발생했을 때 지정된 서비스를 수행합니다.

"데몬"이란 말은 신비스럽거나 거의 초자연적인 무언가가 있는 유령이란 뜻의 그리스어인데, 유닉스 데몬이 남몰래 조용히 자신에게 주어진 일을 수행하는 방법을 나타냅니다.