UNIX 및실습 10 장. 인터넷과통신명령 익히기 1
10 장. 인터넷과통신명령익히기 학습목표 유닉스에서사용자간직접통신하는명령의사용방법을익힌다. 호스트명과도메인명, 개인정보를확인하는방법을익힌다. 전자메일을사용하는방법을익힌다. 파일을송수신하는명령의사용방법을익힌다. 2
Section 01 사용자간직접통신 write [1/4] write 로그인 ID [ 단말기명 ] 사용자에게메시지를보낸다. 메시지를작성하면 ctrl+d를입력하면전송된다. 수신자의입장을고려하여긴급한경우에만사용한다. 로그인되지않은사용자에게는전달되지않는다. 단말기명 같은사용자 ID 로입력을여러개하고있을경우단말기명지정가능 3
사용자간직접통신 write [2/4] 사용법 1 user1 -> user2 에게 write $ write guest user1 2 $ Message from kgu@lily.mmu.ac.kr on pts/0 at 14:35... user2 4
사용자간직접통신 write [3/4] 5 사용법 ( 계속 ) 3 4 user1 -> user2 에게 write $ write guest This is a test Hi! ^D $ user1 $ Message from kgu@lily.mmu.ac.kr on pts/0 at 14:35... This is a test Hi! EOF user2
1 사용자간직접통신 write [4/4] 사용법 단말기를지정해야하는경우 [guest@lily ~]$ w 14:38:03 up 21 days, 20:40, 4 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT kgu pts/0 220.68.173.204 14:34 2:23 0.13s 0.13s -bash guest pts/1 220.68.173.204 14:35 0.00s 0.14s 0.01s w kgu pts/25 daisy.mmu.ac.kr 26Apr13 7days 0.14s 0.14s -bash 2 단말기번호를지정하지않을경우 [guest@lily ~]$ write kgu write: kgu is logged in more than once; writing to pts/0 kgu 가 2 개로그인 3 [guest@lily ~]$ write kgu pts/0 단말기번호를지정할경우 6
사용자간직접통신 wall [1/2] wall [ 파일명 ] 로그인하고있는모든사용자에게메시지를보낸다. 긴급하게전달할메시지가있을경우에사용 파일명 메시지를별도의파일로저장하였을경우지정 일반사용자는 tty 그룹에속해있어야사용가능 (UNIX 계열 ) $ cat /etc/group... tty::7:root,tty,adm,user1 lp::8:root,lp,adm... 7
사용자간직접통신 wall [2/2] 사용법 1 [guest@lily ~]$ wall Hi! This is a test! ^d user1 2 다른사용자 [kgu@lily ~]$ Broadcast message from guest@lily.mmu.ac.kr (pts/1) (Fri May 3 14:45:51 2013): Hi! This is a test! 8
사용자간직접통신 talk [1/5] talk 사용자주소 [ 단말기명 ] 다른사용자와 1:1 로대화 긴급하게전달할메시지가있을경우에사용 사용자주소 사용자명 @ 호스트명또는같은호스트일경우사용자명만 9
사용자간직접통신 talk [2/5] 사용법 1 user1 -> user2 에게 talk $ talk user2 user1 2 user1 [Waiting for your party to respond] user2의응답을 ------------------------------------------------ 기다리는중 10
사용자간직접통신 talk [3/5] 사용법 ( 계속 ) 3 user2 -> user1 으로응답 $ user2 4 Message from Talk_Daemon@hanbitbook at 11:36... user2의화면 talk: connection requested by user1@hanbitbook. user1의 talk talk: respond with: talk user1@hanbitbook 요청메시지 $ talk user1@hanbitbook user2 user1 의 talk 요청에대한응답 11
사용자간직접통신 talk [4/5] 사용법 ( 계속 ) 5 user1 <-> user2 에게 talk 대화 6 [Connection established] Hello user1이메시지를 ------------------------------------------------ 입력 [Connection established] user1 user2 12 ------------------------------------------------ user1이 Hello 입력한메시지출력
사용자간직접통신 talk [5/5] 사용법 ( 계속 ) 7 user1 <-> user2의 talk 종료 : ctrl+d 또는 ctrl+c [Connection closing. Exiting] Hello ^D ------------------------------------------------ user1 종료하려면 Ctrl-d 를입력 8 $ [Connection closing. Exiting] user2 13 ------------------------------------------------ Hello $ 연결이종료됨
메시지허용 / 거부명령 mesg [ y n ] 메시지를단말기로출력하는것을허용 (y) 하거나거부 (n) 옵션 mesg : 수신 (is y), 거부 (is n) 를출력 mesg n : write 메시지수신을거부 mesg y : write 메시지수신을허용 사용법 1 2 $ mesg is y $ mesg n $ user2 $ write user2 사용권리가거부됨 $ user1 14
[ 실습하기 ] write/wall/talk/mesg 옆사람과짝을이루어실습합니다. 1) write 옆사람 id 2) wall 3) mesg n 4) write 옆사람 id 15
Section 02 이메일보내기 [1/2] 메일서버 메일클라이언트 UNIX mailx System V mail BSD PC 용메일클라이언트 아웃룩익스프레스 웹메일 16
이메일보내기 [2/2] 이메일의동작구조 PC 환경 PC 환경 사용자메일프로그램 ( 아웃룩 ) POP3 메일데몬 메일서버 인터넷 TCP/IP 메일서버 POP3 메일데몬 사용자메일프로그램 ( 아웃룩 ) SMTP SMTP 사용자메일프로그램 (mailx) UNIX 환경 UNIX 환경 사용자메일프로그램 (mailx) 17
mailx [1/11] mailx 를이용한메일송수신 메일데몬 수신 우편함 mailx /var/mail/user1 읽기 삭제 메일도착시생성 개인메일박스 ~/mbox 18
mailx [2/11] mailx [-sf] [ 사용자명 @ 호스트 ] mailx 의기능 명령어라인에서메일전송 메일수신과읽기, 저장, 삭제, 출력 메일알리아스생성과사용? 가기본프롬프트 읽은메일은홈디렉토리의 mbox 파일에저장 메일수신을위한기본우편함 : /var/mail/ 사용자명 옵션 -s : 제목지정 -f : mbox 의내용확인 19
mailx [3/11] 기능요약 보내기 읽기 삭제 기능명령설명 삭제취소 답장 종료 $ mailx user2 $ mailx user2 < text 입력방향전환이용? 번호? d 번호? d 번호번호? d 번호 - 번호? u 번호? u 번호번호? u 번호 - 번호? r [ 번호 ]? R [ 번호 ]? q? x 송신자에만답신전체회신 읽은메시지저장후종료변경내용저장안함 저장? s [ 번호 ] 파일명별도파일에저장 20
mailx [4/11] 메일헤더 : mailx의기본적출력 프로그램버전 메일과관련된도움을위한물음표 (?) 우편함의위치 우편함의상태 우편함에있는메시지수 새로운메시지수 메시지상태 (new 또는 read) 메시지수신순서 송신자 메시지가전송된날짜와시간 메시지크기 메시지의주제 21
메시지표시문자 mailx [5/11] 문자 N U R O 메시지의상태새로도착한메시지이전에수신된메시지이지만, 아직읽지않은메시지새로운메시지이며, mailx로읽었음이전에읽었던메시지로 mailx를이용하여저장됨 > 현재메시지 22
mailx [6/11] 메일시작 1 $ mailx user1 에대한우편없음 $ user1 메일이없을경우 2 [kgu@lily ~]$ mailx Heirloom Mail version 12.5 7/5/10. Type? for help. "/var/spool/mail/kgu": 1 message 1 new >N 1 kgu Fri May 3 15:34 20/705 "Test" & 메일이있을경우 23
mailx [7/11] 메일읽기 3 [kgu@lily ~]$ mailx Heirloom Mail version 12.5 7/5/10. Type? for help. "/var/spool/mail/kgu": 1 message 1 new >N 1 kgu Fri May 3 15:34 20/705 "Test" & Message 1: From kgu@lily.mmu.ac.kr Fri May 3 15:34:28 2013 Return-Path: <kgu@lily.mmu.ac.kr> From: kgu <kgu@lily.mmu.ac.kr> Date: Fri, 03 May 2013 15:34:28 +0900 To: kgu@lily.mmu.ac.kr Subject: Test User-Agent: Heirloom mailx 12.5 7/5/10 Content-Type: text/plain; charset=us-ascii Status: R This is a test. & 24
메일보내기 -s, -f 옵션 mailx [8/11] [kgu@lily ~]$ mailx kgu Subject: test mail This is a test.. EOT [kgu@lily ~]$ user2 내용작성후. 이나 ctrl+d 를입력하면전송 $ mailx s 메일시험 user1 < mail.txt $ user2 mail.txt 의내용을전송 25
답장으로보내기 mailx [9/11] $ mailx? r To: user2 Subject: Re: mail test user1 Mail test. EOT? s mail.1 "mail.1" [New file] 14/376? q $ 26
메일관리하기 mailx [10/11] $ mailx mailx version 5.0 Sun Oct 14 13:42:02 PDT 2001 도움말필요시? 입력. /usr/mail/user1 : 1 개메시지 1 개신규 >N 1 홍길동 Sat Mar 11 11:43 13/364 mail test? Message 1: From user2 Sat Mar 11 11:43:33 2006 Date: Sat, 11 Mar 2006 11:43:33 +0900 (KST) From: 홍길동 <user2> To: user1 Subject: mail test mail test? d 1? n 해당메시지없음? u 1? n 1 번메일삭제 >R 1 홍길동 Sat Mar 11 11:43 13/364 mail test? 삭제한메일복구 27
mailx [11/11] 메일종료 [kgu@lily ~]$ mailx Heirloom Mail version 12.5 7/5/10. Type? for help. "/var/spool/mail/kgu": 4 messages 1 new 2 unread 1 kgu Fri May 3 15:34 21/716 "Test" A 2 kgu Fri May 3 15:36 21/705 U 3 kgu Fri May 3 15:36 21/720 "test mail" >N 4 kgu Fri May 3 15:37 23/912 "reply" & q Held 4 messages in /var/spool/mail/kgu [kgu@lily ~]$ 28
Section 03 호스트와개인정보 확인 hostname 현재시스템의호스트명을출력 사용법 [kgu@lily ~]$ hostname lily.mmu.ac.kr [kgu@lily ~]$ 29
호스트의동작확인 ping 호스트명또는 IP 주소 시스템이네트워크를통해연결되는지확인 사용법 [kgu@lily ~]$ ping lily.mmu.ac.kr PING lily.mmu.ac.kr (203.232.252.110) 56(84) bytes of data. 64 bytes from lily.mmu.ac.kr (203.232.252.110): icmp_req=1 ttl=64 time=0.029 ms 64 bytes from lily.mmu.ac.kr (203.232.252.110): icmp_req=2 ttl=64 time=0.026 ms 64 bytes from lily.mmu.ac.kr (203.232.252.110): icmp_req=3 ttl=64 time=0.026 ms ^C --- lily.mmu.ac.kr ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 1999ms rtt min/avg/max/mdev = 0.026/0.027/0.029/0.001 ms$ 30
개인정보확인 [1/2] finger [id id@host @host] 현재로그인한사용자정보를출력한다. who 의결과에덧붙여사용자의완전한이름 (/etc/passwd), 호스트명등추가정보를출력 옵션 id : 특정사용자정보출력 id@host : 특정호스트의특정사용자정보출력 @host : 특정호스트의사용자목록출력 31
사용법 개인정보확인 [2/2] [kgu@lily ~]$ finger Login Name Tty Idle Login Time Office Office Phone Host 7019jins 20104015 문진우 pts/11 25 May 3 15:19 (203.232.252.148) abc3187 20094052 박선홍 pts/17 7 May 3 15:23 (203.232.252.142) cdkim 20123309 김창동 pts/12 May 3 15:22 (203.232.252.159) [kgu@lily ~]$ finger guest Login: guest Name: Temp user Directory: /home/students/guest Shell: /bin/bash On since 금 5월 3 14:35 (KST) on pts/1 from 220.68.173.204 1 hour 2 minutes idle No mail. No Plan. 특정사용자의개인정보 32
[ 실습하기 ] hostname/ping/finger 옆사람과짝을이루어실습합니다. 1) hostname 2) ping www.naver.com 3) ping 호스트명 (lily.mmu.ac.kr, mail.mmu.ac.kr 등 ) finger 1) finger 옆사람 id 2) finger @ 호스트명 33
Section 04 파일송수신 [1/7] ftp host 명또는 IP 주소 TCP/IP 를사용하는파일송수신명령 File Transfer Protocol 의약자 ASCII 모드와바이너리모드로전송 Anonymous( 익명 ) ftp 익명으로 ftp 서버에접속하여파일송수신 ftp 프롬프트 ftp> 34
ftp 내부명령 파일송수신 [2/7] 명령 기능 명령 기능 cd 서버디렉토리이동 lcd 클라이언트디렉토리이동 ls 서버디렉토리내용 prompt 다중전송시 y/n 묻지않기 ascii ASCII파일전송모드 hash 전송중표시 ( # ) 출력 bin 바이너리전송모드 bye 종료 get 파일하나다운 dir 서버디렉토리내용-긴형태 mget 여러파일다운 pwd 서버디렉토리위치확인 put 파일하나업!pwd 지역디렉토리위치확인 mput 여러파일업!ls 지역디렉토리내용 35
파일송수신 [3/7] 사용법 접속 /pwd/dir [kgu@lily ~]$ ftp daisy.mmu.ac.kr Connected to daisy.mmu.ac.kr (203.232.252.113). 220 (vsftpd 2.2.2) Name (daisy.mmu.ac.kr:kgu): kgu 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> 36 ftp> pwd 257 "/" ftp> ls 227 Entering Passive Mode (203,232,252,113,215,147). 150 Here comes the directory listing. drwxrwxr-x 2 500 503 4096 Mar 16 08:06 BACKUP drwxrwxr-x 9 500 503 4096 Apr 19 06:43 ais drwxrwxr-x 2 500 503 4096 Apr 17 12:33 bin drwxr-xr-x 2 500 503 4096 Jan 24 05:51 템플릿 226 Directory send OK. ftp>
파일송수신 [4/7] 사용법 get/mget ftp> get make_common local: make_common remote: make_common 227 Entering Passive Mode (203,232,252,113,138,49). 150 Opening BINARY mode data connection for make_common (914 bytes). 226 Transfer complete. 914 bytes received in 2.7e-05 secs (33851.85 Kbytes/sec) ftp> ftp> mget make* mget make_common? mget 의경우전송할것인지물어본다. 37
파일송수신 [5/7] 사용법 prompt -> mget ftp> prompt Interactive mode off. ftp> mget local.cshrc local.login 200 PORT command successful. 150 Opening ASCII mode data connection for local.cshrc (136 bytes). 226 Transfer complete. local: local.cshrc remote: local.cshrc 142 bytes received in 0.02 seconds (6.84 Kbytes/s) 200 PORT command successful. 150 Opening ASCII mode data connection for local.login (157 bytes). 226 Transfer complete. local: local.login remote: local.login 164 bytes received in 0.021 seconds (7.76 Kbytes/s) ftp> pompt 명령을입력하면 mget 에서전송할것인지안물어본다 38
파일송수신 [6/7] 사용법 hash/bye ftp> hash Hash mark printing on (8192 bytes/hash mark). ftp> get a.out 200 PORT command successful. 150 Binary data connection for a.out (5908 bytes). ### 226 Binary Transfer complete. local: a.out remote: a.out 5908 bytes received in 0.0089 seconds (648.04 Kbytes/s) ftp> bye $ bye 는 ftp 종료명령이다. hash 명령을입력하면전송할때 # 을출력한다. 39
파일송수신 [7/7] 40 사용법 익명 ftp 접속 $ ftp han Connected to han 220 han FTP server ready. Name (han:user1): anonymous 331 Guest login ok, send your complete e-mail address as password. Password: 530 Login incorrect. Login failed. ftp> 익명 ftp 는서버에익명 ftp 설정이되어있어야사용이가능하다. 익명 ftp 는로그인명으로 anonymous 를사용하고암호는본인의이메일주소를사용한다.
[ 실습하기 ] ftp 지정된서버로작업합니다 1) ftp.kaist.ac.kr 접속 2) anonymous 접속 3) 공개된 sw 목록확인 4) 그중하나를선택하여다운로드 5) prompt, hash, mget 등활용 6) 종료 7) 다운받은파일설치또는실행 41