1 / 155

UNIX

UNIX. 이 재 광 한남대학교 컴퓨터공학과. 목 차. 1. 유닉스란 ? 2. 일반 사용자를 위한 유닉스 3. 유닉스 쉘 4. 유틸리티 5. 네트워킹. 1. 유닉스란 ?. 정 의 AT&T 의 Bell 연구소에서 개발된 하나의 운영체제 역 사 1960 년대 초 MIT, Bell 연구소 등이 공동으로 MULTICS 개발 1969 년 Bell 연구소의 Ken Thompson 이 MULTICS 를 기초로 Unics 개발 , 이후로 UNIX 로 수정

hideaki
Download Presentation

UNIX

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. UNIX 이 재 광 한남대학교 컴퓨터공학과

  2. 목 차 1. 유닉스란? 2. 일반 사용자를 위한 유닉스 3. 유닉스 쉘 4. 유틸리티 5. 네트워킹

  3. 1. 유닉스란? • 정 의 AT&T의 Bell 연구소에서 개발된 하나의 운영체제 • 역 사 • 1960년대 초 MIT, Bell 연구소 등이 공동으로 MULTICS 개발 • 1969년 Bell 연구소의 Ken Thompson이 MULTICS를 기초로 Unics개발, 이후로 UNIX로 수정 • 1973년 Dennis Ritchie가 Unix를 C언어로 개정

  4. 1. 유닉스란?(계속) • UNIX의 특징 • 다중 사용자(Multiuser)와 멀티 태스킹(Multitasking)기능을 가진 대화형 시스템 • 이식성과 확장성 용이 • 트리 형태의 계층적 구조로 된 파일 시스템 • 네트워킹 기능 • 자원의 공유 • 프로세스가 CPU시간을 “시간조각”으로 나누어 CPU를 공 유한다. • 메모리를 페이지 단위로 나누어 프로세스간에 공유한다.

  5. 유닉스 System V 계열 (AT&T의 Bell연구소) BSD 계열 (Berkeley 대학) V.2 V.2 IBM AIX V.3 V.3 Apollo V.4 OSF/1 V.4.1 Sun OS (Solaris) HP/UX 1. 유닉스란?(계속) • UNIX의 계보

  6. 파일 시스템 쉘 커널 H/W 1. 유닉스란?(계속) • 유닉스 시스템의 구성

  7. 1. 유닉스란?(계속) • 커널(Kernel) • 운영체제의 핵심 부분 • 디바이스, 메모리, 프로세서, 데몬(daemon)을 관리 • 응용프로그램과 시스템간에 정보 전송을 제어 • 쉘(Shell) • 표준 유닉스 명령 인터프리터(Interpreter) • 사용자와 커널간의 인터페이스 담당

  8. / usr bin test.c doc james glass myfile.txt 디렉토리 계층 구조 1. 유닉스란?(계속) • 파일 시스템( File system) • UNIX 시스템의 파일은 디렉토리로 분류 • UNIX 파일 시스템은 트리 구조

  9. 디렉토리 의 미 / Unix커널의 실행 파일 및 시스템관리에 필요한 파일 포함 /bin Unix의 기본 명령어 파일 포함 /etc 시스템 관리용 명령어나 데이터 파일 포함 /lib 명령어가 사용하는 기본적인 파일 포함 /temp 임시 파일을 위한 디렉토리 /usr 일반적으로 시스템 관리자 파일 포함 1. 유닉스란?(계속) • 파일의 종류 • 일반(Ordinary)파일 a.txt, index.html와 같은 일반파일 • 디렉토리(Directory) 파일

  10. 디렉토리 의 미 /usr/bin 워드, DB 관리 프로그램과 개발된 프로그램 등 포함 /usr/home 사용자의 홈 디렉토리 /usr/include 시스템 관리용 명령어나 데이터 파일 포함 /usr/man 명령어가 사용하는 기본적인 파일 포함 /usr/spool 임시 파일을 위한 디렉토리 /usr/adm 일반적으로 시스템 관리자의 파일 포함 1. 유닉스란?(계속) • 특수 파일 • 프린터, 터미널, 디스크 등의 입출력 장치를 접근하고, 관리하는 • 채널에 대한 정보를 가지고 있는 파일

  11. 1. 유닉스란?(계속) • 파일명과 경로명 • 파일명(File name) • 255문자이내에서 사용 가능 • 대,소문자 구분 • “.”, “_”로 시작되는 파일명은 시스템 파일들이 많이 사용하기 때문에 사용하지 않는 것이 바람직하다. • 경로명(Path name) • 절대 (Absolute)경로: 루트 디렉토리로부터 목적 경로 이름 • 상대 (Relative)경로: 현재 디렉토리로부터 목적 경로 이름

  12. 1. 유닉스란?(계속) / usr bin File C 현재 위치 File B kim kang . : 현재 디렉토리 .. : 부모 디렉토리 File A 화 일 절대 경로 이름 화 일 상대 경로 이름 File A A /usr/kim/ File A A .. / File B B /usr/ File B B /bin/ File C .. /.. /bin/ File C C C

  13. 2. 일반 사용자를 위한 유닉스 • 시동과 종료 • 로그인(login) • 사용자ID와 패스워드를 입력 • 사용자ID는 다른 사용자와 구분해 주는 고유 이름 login: // 사용자ID 입력 password: // 사용자 패스워드 입력

  14. 2. 일반 사용자를 위한 유닉스(계속) • 로그인 실패 시 • 로그인 후 첫번째 메시지 Login incorrect login://다시 로그인 시도 Last login: Mon Mar 8 16:13:30 from netwk.hannam.ac.kr Sun Microsystems Inc. SunOS 5.5.1 Generic May 1996 # _

  15. 2. 일반 사용자를 위한 유닉스(계속) • 패스워드 설정과 변경 • 일반적으로 6문자 이상 입력 • /etc/passwd에 암호화된 형태로 저장 # passwd passwd: Changing password for james Enter login password: // 현재 패스워드 입력 New password: // 새로운 패스워드 입력 Re-enter new password: // 새로운 패스워드 재입력 # _

  16. 2. 일반 사용자를 위한 유닉스(계속) • 로그아웃(logout) 사용자가 컴퓨터 시스템 사용을 종료하고자 할 경우, 그 시스템으로 부터 빠져 나오는 과정 # logout 또는 # exit 또는 # ^D

  17. 2. 일반 사용자를 위한 유닉스(계속) • 유닉스 명령 형식 • 명령어는 반드시 소문자로 입력한다. • 명령어와 옵션, 옵션과 인수 사이에는 한 개 이상의 공백이 있어야 한다. 명령어[ - 옵션인수] 명령 수행의 대상 명령 수행의 방법 작업 지시어

  18. 2. 일반 사용자를 위한 유닉스(계속) • 온라인 도움말 정보(man: manual page) man [ chapter ] word man -k keyword -k: 키워드 검색 • # man -k mode //키워드를 mode로 가지는 도움말 정보 출력 chmod chmod (1) - change the permissions mode of file chmod chmod (2) - change access permission mode of a file def_prog_mode curs_kernel (3x) - low-level curses routines def_shell_mode curs_kernel (3x) - low-level curses routines ….

  19. 2. 일반 사용자를 위한 유닉스(계속) • 특수 문자 (메타 문자) • 터미널에 입력되었을 때 특수하게 해석되는 문자 • 메타 문자 목록 얻기 stty all or -a //모든 메타 문자 목록 얻기

  20. 2. 일반 사용자를 위한 유닉스(계속) # stty -a // 모든 메타 문자 목록 출력 erase kill werase rprnt flush lnext susp intr quit stop eof ^H ^U ^W ^R ^O ^V ^Z/^Y ^C ^\ ^S/^Q ^D # stty kill ^k // 줄 삭제를 ^k로 변경 # stty -a erase kill werase rprnt flush lnext susp intr quit stop eof ^H ^k ^W ^R ^O ^V ^Z/^Y ^C ^\ ^S/^Q ^D # _

  21. 2. 일반 사용자를 위한 유닉스(계속) • 프로세스의 종료: Control-C 작업 완료 이전에 프로세스의 종료 • # man man //man에 대한 도움말 정보 man(1) User Commands man(1) NAME man - find and display reference manual pages SYNOPSIS man [ - ] [ -adFlrt ] [ -M path ] [ -T macro-package ] [-s section ] name ... man [ -M path ] -k keyword … ^c // 작업의 종료 # _

  22. 2. 일반 사용자를 위한 유닉스(계속) • 출력의 정지: Control-S / Control-Q • ^S: 터미널 출력의 일시 중시 • ^Q: 터미널 출력의 재개 • # man ls ls(1) User Commands ls(1) NAME ls - list contents of directory SYNOPSIS ^S //터미널 출력의 일시 중지 ^Q // 터미널 출력의 재개 /usr/bin/ls [ -aAbcCdfFgilLmnopqrRstux1 ] [ file... ] /usr/xpg4/bin/ls [ -aAbcCdfFgilLmnopqrRstux1 ] [ file... ] SUNWcsu

  23. 2. 일반 사용자를 위한 유닉스(계속) • 입력의 끝: Control-D # cat > test In my dreams that fill the night, I see our eyes ^D // 입력의 끝 # _

  24. 2. 일반 사용자를 위한 유닉스(계속) • 작업 디렉토리 확인(Print Working Directory) pwd # pwd // 현재 작업 디렉토리를 출력 /user/james # _

  25. cat -n { filename } -n: 출력에 줄 번호 표시 2. 일반 사용자를 위한 유닉스(계속) • 화일 생성: cat 표준 입력이나 파일로부터 입력 받아 이를 표준 출력에 표시한다. # cat > test // 키보드 입력을 test파일에 저장 hi! I hope that you get this file. ^D # cat -n test //줄 번호를 포함한 파일의 내용보기 1 hi! 2 I hope that you get this file. # _

  26. 2. 일반 사용자를 위한 유닉스(계속) # cat test // 줄번호를 포함시키지 않고, test파일 보기 hi! I hope that you get this file. # _

  27. 2. 일반 사용자를 위한 유닉스(계속) • 디렉토리 내용 보기: ls ls -adglsFR {filename} {directoryname} -a : 숨겨진 파일 나열 -d: 디렉토리 자체의 상세 정보 -g: 파일의 그룹 정보 -l: 허가정보, 소유권, 최종변경일자를 포함하는 긴 목록 제공 -s: 파일들이 차지하는 크기를 디스크 블록 단위로 제공 -F:파일 이름 다음에 파일의 특성을 나타내기 위한 문자 제공 -R: 디렉토리의 내용과 그 서브 디렉토리의 내용을 재귀적으로 제공

  28. 2. 일반 사용자를 위한 유닉스(계속) # ls // 현 디렉토리의 모든 파일 출력 heart heart1 heart2 tmp # ls -a // 숨겨진 파일 출력 . .. heart heart1 heart2 tmp # ls -l // 허가정보, 소유권 등을 포함한 긴 목록 제공 -rw-r--r-- 1 james netwk 106 5월 16일 14:25 heart -rw-r--r-- 2 james netwk 135 5월 27일 11:19 heart1 -rw-r--r-- 2 james netwk 133 5월 27일 11:19 heart2 drwxr-xr-x 2 james netwk 512 5월 27일 16:55 tmp # ls -R // 디렉토리 내용과 그 서브 디렉토리 내용을 재귀적으로 출력 . : heart heart1 heart2 tmp . /tmp: test1 test2 test3 # _

  29. more -f { +lineNumber} {fileName} -f: 긴 라인을 연속적으로 출력 +lineNumgber: 시작 번호 명시, 디폴트는 첫번째 줄부터 시작 2. 일반 사용자를 위한 유닉스(계속) • 파일의 내용보기: more/ page/ head/ tail • more: 한번에 한 페이지씩 출력 • page: 각 페이지를 화면에 표시하기 전에 전체 화면을 지우는 것을 제외하고는 more와 동일

  30. head -n {fileName} -n: n 번째 라인까지 출력, 디폴트는 10 tail -n {fileName} -n: 마지막 줄에서 n번째 라인의 줄부터 출력 2. 일반 사용자를 위한 유닉스(계속) • head: 파일의 처음 n줄을 출력 • tail: 파일의 마지막 n 줄부터 출력

  31. 2. 일반 사용자를 위한 유닉스(계속) # cat > heart //heart 파일 생성 I hear her breathing, I'm surrounded by the sound. Floating in this secret place, I never shall be found. ^D # head -2 heart //heart 파일의 첫번째 두줄 출력 I hear her breathing, I'm surrounded by the sound. # tail -2 heart // heart 파일의 마지막 두줄 출력 Floating in this secret place, I never shall be found. # _

  32. 2. 일반 사용자를 위한 유닉스(계속) • 파일의 이름 변경 및 이동: mv mv -i oldfile newfile // oldfile을 newfile로 변경 mv -i {filename} directoryname // filename을 directoryname으로 이동 mv -i olddirectory newdirectory // olddirectory을 newdirectory로 변경 -i : 새로운 파일 이름이 이미 존재하는 경우를 위한 확인 프롬프트 생성

  33. 2. 일반 사용자를 위한 유닉스(계속) # ls -R // 현재 디렉토리 목록을 재귀적으로 출력 . : old.txt tmp ./tmp: test # mv old.txt new.txt // old.txt를 new.txt로 이름을 변경 # ls new.txt tmp # mv tmp temp // tmp 디렉토리를 temp 디렉토리로 변경 # ls new.txt temp # mv -i new.txt temp // new.txt를 temp 디렉토리로 이동 # ls -R . : temp ./temp: new.txt test # _

  34. 2. 일반 사용자를 위한 유닉스(계속) • 디렉토리 만들기: mkdir mkdir Directoryname # ls -l -rw-r--r-- 1 james netwk 133 5월 27일 11:19 temp.txt # mkdir newdir // newdir 디렉토리 생성 # ls -l drwxr-xr-x 2 james netwk 512 5월 30일 22:01 newdir -rw-r--r-- 1 james netwk 133 5월 27일 11:19 temp.txt # _

  35. 2. 일반 사용자를 위한 유닉스(계속) • 다른 디렉토리로 이동: cd cd [Directoryname] Directoryname의 인수가 없는 경우에, 사용자의 홈 디렉토리로이동 # pwd /user/james/tmp # cd temp //temp디렉토리로 이동 # pwd /user/james/tmp/temp # cd // 사용자의 홈 디렉토리로 이동 # pwd /user/james # _

  36. 2. 일반 사용자를 위한 유닉스(계속) • 파일 복사: cp cp -i oldfile newfile cp -r olddirectory newdirectory - i : 이미 존재하는 경우를 위한 확인 옵션 - r : olddirectory내에 있는 모든 파일과 서브디렉토리를 재귀적 으로 newdirectory에 복사

  37. 2. 일반 사용자를 위한 유닉스(계속) • # ls -l drwxr-xr-x 2 james netwk 512 6월 17일 10:30 tmp -rw-r--r-- 1 james netwk 124 6월 17일 19:37 text • # cp text newtext // text를 newtext로 복사 • # ls • text newtext tmp • # cd tmp • # ls -l drwxr-xr-x 2 james netwk 512 6월 20일 19:37 sub_tmp -rwxr-xr-x 3 james netwk 215 6월 20일 10:30 data.txt # cd .. # cp -r tmp tmp2 // tmp를 tmp2에 재귀적으로 복사 # cd tmp2 # ls -l drwxr-xr-x 2 james netwk 512 6월 22일 16:07 sub_tmp -rwxr-xr-x 3 james netwk 215 6월 22일 16:07 data.txt # _

  38. 2. 일반 사용자를 위한 유닉스(계속) • 디렉토리 제거 rmdir {directoryname} • 디렉토리가 제거 되기 전, 그 디렉토리내에 있는 모든 파일은 제거되 • 어야 한다. • rm -r : 디렉토리와 그 내용 모두를 재귀적으로 제거 # rmdir temp rmdir: 디렉토리 ”temp": 디렉토리가 비어 있지 않음 # rm -r temp # ls # _

  39. -f : 어떤 에러 메시지나 지시 사항도 나타내지 않는다. -r: 서브디렉토리를 포함한 모든 내용을 재귀적으로 삭제 -i: 화일 삭제 전 사용자에게 확인 요구 2. 일반 사용자를 위한 유닉스(계속) • 파일의 삭제 rm -fir {filename} # ls file1 file2 file3 # rm * //해당 디렉토리내의 모든 파일 삭제 # ls -a . .. // 해당 디렉토리내에 파일이 존재하지 않음 # _

  40. 2. 일반 사용자를 위한 유닉스(계속) • 파일 내 단어 수 세기: wc wc -lwc {filename} - l : 줄 수 - w : 단어 수 - c : 문자 수 • # cat heart I hear her breathing, I'm surrounded by the sound. Floating in this secret place, I never shall be found. # wc -lwc heart 4 19 106 heart // 줄, 단어, 문자 순으로 출력 # _

  41. 필드 값 -rw-r--r-- 1 james netwk 106 5월 16일 14:25 heart 2. 일반 사용자를 위한 유닉스(계속) • 화일 속성 • 필드의 속성 # ls -l heart -rw-r--r-- 1 james netwk 106 5월 16일 14:25 heart 의 미 허가권 모드 하드 링크 갯수 파일 소유자의 사용자 ID 파일의 그룹ID 파일의 크기, 단위는 바이트 파일이 마지막으로 변경된 시간 파일 이름

  42. 문 자 파일 유형 - 일반 파일 d 디렉토리 파일 b (디스크 드라이브와 같이) 버퍼된 특수 파일 c (터미널 같이) 버퍼되지 않은 특수 파일 l 심볼릭 링크 p 파이프 s 소켓 2. 일반 사용자를 위한 유닉스(계속) • 파일 유형 첫번째 필드의 첫번째 문자는 다음과 같이 부호화된 파일의 유형을 나타내고 있다.

  43. 읽 기 허가 쓰기 허가 실행 허가 r w x 2. 일반 사용자를 위한 유닉스(계속) • 화일 허가권 • 하드 링크 계수 : 얼마나 많은 레이블이 동일한 물리적 파일을 가리키는 가를 표시 r w - r - - r - x User group others

  44. 2. 일반 사용자를 위한 유닉스(계속) • 그룹 목록 보기: groups groups [userID] # groups netwk # _

  45. 2. 일반 사용자를 위한 유닉스(계속) • 파일 그룹 변경: chgrp chgrp -R groupID {fileName} -R: 디렉토리내에 있는 모든 파일의 그룹을 재귀적으로 변경 # ls -l heart -rw-r--r-- 1 kang netwk 106 5월 16일 14:25 heart # chgrp ce heart // 파일의 그룹을 ce로 변경 # ls -l -rw-r--r-- 1 kang ce 106 5월 17일 10:05 heart

  46. 2. 일반 사용자를 위한 유닉스(계속) • 화일의 허가권 변경: chmod • mode chmod -R mode {filename} -R: 디렉토리내에 있는 파일 모드를 재귀적으로 변경 형식: 대상 + 허가권 대상 - 허가권 대상 = 허가권 대상: u(user), g(group), o(others), a(all) 허가권: r(read), w(wirte), x(excute)

  47. 허가권모드 요구 사항 g+w 그룹 쓰기 허가권 추가 u-rw 사용자 읽기 및 쓰기 허가권 제거 a+x 모든 사람에게 실행 허가권 추가 2. 일반 사용자를 위한 유닉스(계속) • mode 예

  48. 2. 일반 사용자를 위한 유닉스(계속) # ls -l heart -rw-r--r-- 1 kang netwk 106 5월 16일 14:25 data.txt # chmod g+w data.txt //그룹에게 쓰기 허가권 부여 # ls -l data.txt -rw-rw-r-- 1 kang netwk 106 5월 16일 14:25 data.txt # chmod +x data.txt // 실행 허가권을 모두에게 부여 # ls -l data.txt -rwxrwxr-x 1 kang netwk 106 5월 16일 14:25 data.txt # chmod -w data.txt // 모든 사람에게 쓰기 허가권 제한 # ls -l data.txt -r-xr-xr-x 1 kang netwk 106 5월 16일 14:25 data.txt

  49. 사용자(user) 그룹(group) 모든 사용자(all) 설정 rwx r-x --- 2진수 111 101 000 8진수 7 5 0 2. 일반 사용자를 위한 유닉스(계속) • 8진수를 이용한 파일 허가권 설정 • 각 8진수는 세 단위(u,g,a) 의 허가권을 나타낸다.

  50. 2. 일반 사용자를 위한 유닉스(계속) # ls -l heart -rw-r--r-- 1 kang netwk 106 5월 16일 14:25 heart # chmod 750 heart # ls -l heart -rwxr-x--- 1 kang netwk 106 5월 16일 14:25 heart # chmod 777 heart # ls -l heart -rwxrwxrwx 1 kang netwk 106 5월 16일 14:25 heart # chmod 111 heart # ls -l heart ---x--x--x 1 kang netwk 106 5월 16일 14:25 heart

More Related