✨목차
1. 사용자간 직접 통신 : write/wall/talk/mesg
2. 이메일 보내기 : mailx
3. 호스트와 개인 정보 확인
4. 파일 송수진 : ftp
✏️사용자간 직접 통신
write
- 로그인 한 사용자에게 메시지를 보낸다
- 전송: ctrl + D
- 단말기 명 = 같은 사용자 id로 로그인을 여러번 경우, 단말기 명을 지정할 수 있음
$ write user2
This is a test message //메시지 입력 후 엔터
//상대방 터미널에 다음 메시지가 표시됩니다
user2@solaris11:~$
Message from user1 on solaris11 (pts/2) [ 날짜 및 시간 ] ...
This is a test message
wall
- 시스템에 로그인 하고 있는 모든 사용자에게 메시지를 보낸다
- 파일명 ( 메시지 내용을 미리 파일로 작성한 경우 지정)
- 일반 사용자는 tty 그룹에 속해있어야 명령 사용가능
$ ls -l /usr/sbin/wall
-r-xr-s-r-x 1 root tty 20696 8월 17일 2018 /usr/sbin/wall
$ wall
wall message test!!
^D
Broadcast Message from user1 (pts/6) on solaris11 화 4월 16 20:13:!
wall message test!!
user2@solaris11:~$ Broadcast Message from user1 (pts/6) on solaris11 화 4월 16 20:13:1 ..
wall message test!!
talk
- 다른 사용자와 1:1로 대화 ( 같은 시스템 뿐 아니라 다른 시스템의 사용자와도 대화 가능)
- 사용자 주소
- 같은 시스템인경우 : 사용자명
- 다른 시스템인경우 : 사용자명 @ 호스트명
- talk가 안되는 경우
- talk 서비스가 활성화 되어 있는지 확인하고 관리자에게 요청
user1@solaris11: ~$ talk user2
[Waitinf for your party to respond] //user2의 응답을 기다리는 중
user2@solaris11: ~$
Message from Talk_Daemon@solaris11 at 20:42 ...
talk: connection requested by user1@localhost.
talk : respond with : talk user1@localhost //응답방법
user2@solaris11:~$ talk user1@localhost //talk 요청에 대한 응답
mesg
- write, wall, talk 메시지를 단말기에 출력하는 것을 허용/금지
- 옵션 { y: 매시지 수신을 허용, n : 메시지 수신을 거부 }
$ mesg n //사용자가 메시지 수신을 거부합니다
user1이 write user2를 시도하면 Permission denied 나타남
$ mesg y
✏️이메일 보내기 : mailx
- 메일 서버
- 메일 서비스를 제공하는 프로그램 또는 그 프로그램이 실행중인 시스템
- pop3, SMTP
- 메일 클라이언트
- 메일 서비스를 요청하는 프로그램
- mailx(System V), mail(BSD), 아웃룩 익스프레스
- mail을 이용한 메일 송수신
SMTP → 우편함(Var/mail/user1) → mailx → 읽기 →개인메일 박스(~/mbox)
메일 도착시 생성 ↓
삭제
- 기능
- 명령어 라인에서 메일 전송
- 메일 수신과 읽기 저장 삭제 출력
- 메일 알리아스 생성과 사용
- 특징
- '?'가 기본 프롬프트
- 읽은 메일은 홈디렉토리의 mbox파일에 저장
- 메일 수신을 위한 기본 우편함 : /var/mail/사용자명
-s | 제목 지정 |
내부명령
메일번호 | 해당 번호의 메일을 읽는다 |
d [메일번호] | 제정한 메일 삭제, 번호 없으면 마지막 삭제 |
u 메일번호 | 지워진 메일 복구 |
엔터 | 다음 메일 읽기 |
h | 메일 헤더 목록 출력 |
r | 답장보내기 |
s 파일명 | 메일을 지정한 파일명으로 저장 |
q | 읽은 메일을 ~/mbox 파일에 보관하고 종료 |
x | 읽은 메일을 저장하지않고 종료 |
? 또는 | | 사용할 수 있는 내부 명령의 목록 출력 |
$ mailx
//메일 없을경우
No mail user1
//메일 있음
2 message 2 new
>N 1 user2@solaris11 Thu Apr 18 20:53 18/583 Hello
N 2 user2@solaris11 Thu Apr 18 20:53 17/583 mail test
? _
메일 읽기)
? 1
Message 1:
From user2@solaris11 Thu Apr 18 20:53:25 2019
Date: Thu, 18 Apr 2019 20:53:25 +0900 (KST)
From: user2@solaris11
To: user1@solaris11
Subject: Hello
Test mail 1
Bye
?
답장보내기)
? 2
Message 2:
From user2@solaris11 Thu Apr 18 20:53:34 2019
Date: Thu, 18 Apr 2019 20:53:33 +0900 (KST)
From: user2@solaris11
To: user1@solaris11
Subject: mail test
mail test 2
? r
To: user2@solaris11
Subject: Re: mail test
Reply test mail
.
EOT
?
메일 관리하기(예: 삭제하고 복구하기)
? h
R 1 user2@solaris11 Thu Apr 18 21:14 18/583 Hello
>R 2 user2@solaris11 Thu Apr 18 21:14 17/583 mail test
? d 1
? h
>R 2 user2@solaris11 Thu Apr 18 21:14 17/583 mail test
? u 1
>R 1 user2@solaris11 Thu Apr 18 21:14 18/583 Hello
R 2 user2@solaris11 Thu Apr 18 21:14 17/583 mail test
?
메일 관리하기 (예: 메일 종료하기)
? h
>R 1 user2@solaris11 Thu Apr 18 21:14 18/583 Hello
R 2 user2@solaris11 Thu Apr 18 21:14 17/583 mail test
? q
Saved 2 messages in /export/home/user1/mbox
user1@solaris11:~$ ls -l mbox
-rw------- 1 user1 staff 2376 4월 18 21:17 mbox
user1@solaris11:~$
✏️호스트와 개인정보 확인
hostname
- 현재 시스템의 호스트 명을 출력
user1@solaris11:~$ hostname
solaris11
nslookup
- DNS 서버와 대화식으로 도메인 명이나 IP주소를 질의하고 응답을 받음
user1@solaris11:~$ nslookup
> www.daum.net
Server: 192.168.122.2
Address: 192.168.122.2#53
Non-authoritative answer:
www.daum.net canonical name = www.g.daum.net.
Name: www.g.daum.net
Address: 203.133.167.81
Name: www.g.daum.net
Address: 203.133.167.16
> exit //종료
user1@solaris11:~$
ping
- 시스템이 네트워크를 통해 연결되는지 확인
$ ping www.habit.co.kr
www.hanbit.co.kr is alive
finger
- 로그인한 사용자 정보 출력
- 사용자의 상세 개인정보 출력
- 다른 호스트에 로그인한 사용자 정보출력
사용자명 | 지정한 사용자 정보 출력 |
사용자명@호스트 | 지정한 호스트의 특정 사용자 정보출력 |
@호스트 | 지정한 호스트의 사용자 목록출력 |
ftp
- file transfer protocol
- 인터넷을 통해 다른 서버에 파일을 업로드/다운로드 할때 사용하는 명령
- ftp 서비스를 활성화해야사용가능( svcadm enable ftp)
- Anonymous ftp (해당 서버에 계정이 없어도 파일을 송수신 할 수 있도록 한 ftp서버)
- 전송모드
- ASCII모드 : 일반텍스트파일
- 이진 모드 : 이미지, 동영상 , 압축파일 등
cd | 서버 디렉토리 이동 | lcd | 클라이언트 디렉토리 이동 |
ls | 서버 디렉토리 내용 | prompt | 다중전송시 y/n묻지 않기 |
ascii | ASCII파일 전송모드 | hash | 전송중 표시(#)출력 |
bin | 바이너리 전송 | bye | 종료 |
get | 파일하나 다운 | dir | 서버 디렉토리 내용 긴형태 |
mget | 여러파일 다운로드 | pwd | 서버 디렉토리 위치확인 |
put | 파일 하나 업로드 | !pwd | 지역 디렉토리 위치 확인 |
mput | 여러 파일 업로드 | !ls | 지역 디렉토리 내용 |
📝사용 예 : 접속/pwd/dir
user2@solaris11:~$ ftp localhost //접속
Connected to solaris11.
220 ::1 FTP server ready
Name (localhost:user2): user1 //사용자 로그인
331 Password required for user1
Password:
230 User user1 logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd //ftp 세션의 작업디렉토리 확인
257 "/export/home/user1" is the current directory
ftp> dir //dir 명령은 현재 디렉토리의 파일 및 폴더 목록 가져옴
229 Entering Extended Passive Mode (|||13070|)
150 Opening ASCII mode data connection for file list
drwxr-xr-x 2 user1 staff 3 Apr 13 06:16 Backup
drwxr-xr-x 2 user1 staff 4 Jan 19 09:07 Desktop
drwxr-xr-x 3 user1 staff 3 Apr 8 12:11 Unix
-rw------- 1 user1 staff 2376 Apr 18 12:17 mbox
226 Transfer complete
249 bytes received in 0.0014 seconds (169.38 Kbytes/s) //데이터 전송 속도
ftp>
📝 사용 예 : get/ mget
ftp> cd Unix/ch9
250 CWD command successful
ftp> get 1.txt
229 Entering Extended Passive Mode (|||8361|)
150 Opening BINARY mode data connection for 1.txt (3072 bytes)
226 Transfer complete
local: 1.txt remote: 1.txt
3072 bytes received in 0.0036 seconds (829.28 Kbytes/s)
ftp> mget 2.txt 3.txt
mget 2.txt?
get명령어를 사용해 1.txt라는 파일을 FTP서버에서 로컬 시스템으로 다운로드
mget 명령어를 사용해 2.txt 3.txt파일을 다운로드 한다
get = 한번에 하나 다운로드
mget = 한번에 여러개 다운로드
📝(prompt/ mget}
ftp> prompt
Interactive mode off.
ftp> mget 2.txt 3.txt
229 Entering Extended Passive Mode (|||16570|)
150 Opening BINARY mode data connection for 2.txt (189 bytes)
226 Transfer complete
local: 2.txt remote: 2.txt
189 bytes received in 0.0013 seconds (141.47 Kbytes/s)
229 Entering Extended Passive Mode (|||48381|)
150 Opening BINARY mode data connection for 3.txt (189 bytes)
226 Transfer complete
local: 3.txt remote: 3.txt
189 bytes received in 0.0016 seconds (113.25 Kbytes/s)
ftp>
prompt - 대화형 모드로 전환(전송마다 확인 메시지가 나타나 사용자 동의를 구하는 모드)
📝bye
ftp> bye
221 Goodbye.
user2@solaris11:~$ ls *.txt
1.txt 2.txt 3.txt
FTP 세션 종료
익명 ftp 사용 예
user2@solaris11:~$ ftp localhost
Connected to solaris11.
220 ::1 FTP server ready
Name (localhost:user2): anonymous
331 Password required for anonymous
Password:
530 Login incorrect.
Login failed.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
🖥️ 실습
ftp 접속 - 파일 위치 이동과 확인 - 파일 전송 모드 설정 - 파일 다운- 로컬 파일 확인 및 tar 파일 내부 확
//로컬 호스트에 접속하기
$ ftp localhost
Connected to solaris11.
220 ::1 FTP server ready
Name (localhost:user2): user1 //사용자 이름
331 Password required for user1 //비밀번호 입력
Password:
230 User user1 logged in
Remote system type is UNIX. //시스템 정보 출력
Using binary mode to transfer files.
ftp> cd Unix/ch9 //디렉토리로 이동
250 CWD command successful
ftp> dir
-rw-r--r-- 1 user1 staff 4017 Apr 8 12:25 txt2.jar
-rw-r--r-- 1 user1 staff 3072 Apr 8 12:13 1.txt
-rw-r--r-- 1 user1 staff 4608 Apr 8 12:12 tmp.tar
-rw-r--r-- 1 user1 staff 1164 Apr 8 12:30 txt.jar
-rw-r--r-- 1 user1 staff 6656 Apr 8 12:20 txt.tar
ftp> ascii //전송모드
200 Type set to A
ftp> bin //바이너리 파일 전송을 위한 설정(이미지, 압축파일)
200 Type sett to I
ftp> hash //파일 다운로드 진행 상황을 해시(#)로 표현하도록 설정
Hash mark printing on
ftp> get tmp.tar //tmp.tar 파일을 다운로드
200 Entering ..
ftp> bye
221 Goodbye
$ls *.tar
tmp.tar
$ tar tvf tmp.tar //파일 내용 확인 t:나열, v:정보출력, f: 파일 이름지정
tar: blocksize = 9
drwxr-xr-x 100/10 0 Apr ..
..
..
🖥️실습2(ftp 로 디렉토리생성하고 파일 보내기)
user2@solaris11:~$ ftp localhost
Connected to solaris11.
220 ::1 FTP server ready
Name (localhost:user2): user1
331 Password required for user1
Password:
230 User user1 logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd Unix
250 CWD command successful
ftp> mkdir ch10
257 "/export/home/user1/Unix/ch10" - Directory successfully created
ftp> cd ch10
250 CWD command successful
ftp> dir
229 Entering Extended Passive Mode (|||23085|)
150 Opening ASCII mode data connection for file list
226 Transfer complete
ftp> bin //바이너리 모드 전환
200 Type set to I
ftp> !pwd
/export/home/user2
ftp> !dir
1.txt 2.txt 3.txt a.txt local.cshrc local.login local.profile tmp.tar
ftp> put tmp.tar //파일보내기
229 Entering Extended Passive Mode (|||60855|)
150 Opening BINARY mode data connection for tmp.tar
226 Transfer complete
local: tmp.tar remote: tmp.tar
4608 bytes sent in 0.00078 seconds (5767.39 Kbytes/s)
ftp> bye
221 Goodbye.
user2@solaris11:~$
파일 확인하기
user1@solaris11:~/Unix/ch10$ pwd
/export/home/user1/Unix/ch10
user1@solaris11:~/Unix/ch10$ ls
tmp.tar
user1@solaris11:~/Unix/ch10$ tar tvf tmp.tar
tar: blocksize = 9
drwxr-xr-x 100/10 0 4월 8 21:12 2019 tmp/
-rw-r--r-- 100/10 189 4월 8 21:12 2019 tmp/3.txt
-rw-r--r-- 100/10 189 4월 8 21:12 2019 tmp/2.txt
-rw-r--r-- 100/10 189 4월 8 21:12 2019 tmp/1.txt
user1@solaris11:~/Unix/ch10$
✏️연습문제
1. write 명령과 talk 명령의 차이
write : 상대방 사용자에게 메시지를 전송하는 명령
메시지를 전달하려는 사용자는 하나만지정할 수 있음
talk : 상대방 사용자와 일대일 대화가능
2. mailx에서 q명령으로 종료하면 읽은 메일은 어디에 저장될까?
홈 디렉토리의 mbox파일
3. abc.unix.com사이트의 IP주소?
nslookup abc.unix.com
4.ping명령으로 abc.unix.com 사이트가 동작하는지 확인해보았는데 응답이 없다 이에 가능한 해석?
1) abc.unix.com이 다운되어 있는 상태
2) 네트워크 이상
3) ping명령에 응답하지 않도록 보안 설정
5.ftp명령으로 호스트 elf에 접속해 a.txt b.txt c.txt 파일을 가져오려는데 각 파일마다 수신할 건지물어보기 귀찮을때 쓰는 명령어
prompt
6. ftp 명령으로 a.zip 파일을 가져왔는데 압축이 풀리지 않고 정상적인 압축 파일이 아니라고 한다.
전송 과정 중에 어떤 잘못?
압축된 파일을 가져올땐 바이너리모드로 전환하고 가져와야하는데 그냥 텍스트 모드로 가져와서
bin을 입력한후 get명령을 실행한다
7. 시스템을 다운 시키려고 한다. 시스템에 로그인하고 있는 전체 사용자에게 "System Down"이라는 긴급 메시지 보내기
wall "System Down"
8. 작업 도중 불필요한 메시지 때문에 방해받지 않도록 설정
mesg n
9. 이미 작성되어있는 파일(test.txt) 내용을 메일로 보내려고 함.
제목은 "Hello Mail"로 하려고 하고, 수신자는 samsoon이다. 메일로 발송하시오.
mailx -s "Hello Mail" test.txt > samsoon
10. userver2 호스트가 동작하고 있는지 확인
ping userver2
11. 현재 시스템에 로그인하고 있는 사용자들의 실명을 명령으로 확인
finger
12. samsoon이라는 사용자에게 특별한 계획이 있는지 명령으로 확인
finger samsoon
'유닉스 이론과 실습' 카테고리의 다른 글
chap6 .파일 접근 권한 관리하기 (0) | 2024.12.10 |
---|---|
chap7. 파일과 디렉토리 검색 (0) | 2024.12.09 |
chap 8. 프로세스와 사용자 명령 익히기 (0) | 2024.12.09 |
chap 9. 파일 아카이브와 압축 명령익히기 (0) | 2024.12.08 |
chap11. 유닉스 유틸리티 이용하기 (1) | 2024.12.08 |