300 likes | 605 Views
진 태 진 <dynaman@sparcs.kaist.ac.kr>. Introduction to Unix Systems. 목 차. OS 란 무엇인가 ? Unix (Linux) Unix 의 구성요소 Unix File System Using Unix – Shell Process UI Shell, Bash 원격접속 Editing command Line Executing a program Commands and programs Redirection,pipe References.
E N D
진 태 진 <dynaman@sparcs.kaist.ac.kr> Introduction to Unix Systems
목 차 • OS란 무엇인가? • Unix (Linux) • Unix의 구성요소 • Unix File System • Using Unix – Shell • Process • UI • Shell, Bash • 원격접속 • Editing command Line • Executing a program • Commands and programs • Redirection,pipe • References Introduction to UNIX Systems
Operating System • Operating System이란? • “자원”을 관리하는 software! <resource manager> • Memory, hardware, CPU 등을 종합관리 • program 실행 환경을 제공한다. • 이 세상에 OS가 Windows뿐일까? No ! Introduction to UNIX Systems
Unix • 왜 수많은 OS 중에 Unix는 유명하고, 널리 알려졌을까? • -> OS를 C언어로 제작! • 1969년 AT&T Bell 연구소에서 개발 • 다양한 branch • BSD (UC Berkeley – FreeBSD, OpenBSD, Mac OS X - Apple) • 상용 UNIX (SunOS/Solaris, AIX - IBM) • Linux Introduction to UNIX Systems
UNIX Unix History
Linux <Unix’s branch1> • 리누스 토발즈(Linus Torvalds)가 만든 Unix 클론 • 소스가 “완전 공개된 자유로운” 운영체제 “open source” • Linux는 전세계 개발자들이 자발적으로 참여하고 만들어가는 운영체제 • 현재도 활발하게 개발되고 있다. Introduction to UNIX Systems
Unix를 비롯한 현대 OS의 특징 및 구성 요소 • Multi-user • 하나의 컴퓨터에 여러 사용자가 동시에! 사용 가능! (time sharing) • Multi-tasking • 동시에 여러 개의 작업 • foreground / background Introduction to UNIX Systems
Unix File System • File system (Storage abstraction) • Directory와 그 안에 저장된 file을 찾기 쉽도록 유지 관리하는 system • Directory: file들의 집합 구조 • Directory를 이용하여 file들을 계층적으로 관리, 조작 가능하다. • Windows와 Unix에서는 파일 관리가 어떻게 다를까? Introduction to UNIX Systems
Unix File System Filesystem (Windows vs UNIX) Windows: C:\, D:\라는 partition 구분 (물론 A,E,G등도 가능) C:/ D:/ For example) c:\documents and settings\MYID\내문서\HaHaHa.txt Introduction to UNIX Systems
Unix File System Unix: root(/) 에서 갈라진 여러 directory.. 각각의 directory에 partition을 연결(link, mount) 할 수 있다. / bin dev usr etc … home For example) /home/MYID/hahaha.txt Introduction to UNIX Systems
Unix File System • Storage abstraction • 계층적 구조: 하나의 단일 file구조(root directory)에서 뻗어나감. • Login시 위치 → 사용자의 HOME directory • 각 파일이나 디렉토리 에는 사용자의 권한에 따른 permission 존재 Introduction to UNIX Systems
Unix File System • File permission • 시스템의 각 파일은 특정 사용자가 소유하며 파일의 퍼미션을 설정한다. • User/ group/ other • Read/ Write/ Excute • Root는 모든 권한을 가질 수 있다. $ chmod u+r a.txt User Group Other Introduction to UNIX Systems
Unix File System Hierarchy • /bin: 기본적인 프로그램 저장, ls 같은 중요한 유닉스 명령이 위치 • /dev: system의 device 관리 디렉토리 • 모든 디바이스(하드웨어)들이 이 안에 파일처럼 간주된다. • /etc: system 환경 설정 파일 • 각종 System Program 환경 설정 파일들이 저장 되 있음 • /usr: 각종 프로그램 및 공유 라이브러리 • /var: 시스템 파일이나 로그 파일 저장 • /home: 사용자들의 home directory 들이 저장됨 • Windows의 “Documents and Settings”와 같음. • /home/user_id/ 안에 개인 사용자의 자료를 자유롭게 저장할 수 있다. Introduction to UNIX Systems
Process • Process (Thread of execution abstraction) • 독립적인 실행의 단위 • 우리가 실행하는 중인 프로그램 각각이 하나의 프로세스..
Process 리눅스의 프로세스 (top) 윈도우의 프로세스 (컨트롤 + 알트 + 딜리트)
Using OS - User Interface • CUI (Character User Interface) • 문자로 모든 실행과 동작을 표현 • MS-DOS 등… • GUI (Graphical User Interface) • 그림으로 된 요소로 기능과 용도를 나타냄… • 그래픽을 직접 조작함으로써 실행 및 동작 가능 • Mac OS X, Windows, Linux 등… • 마우스 사용! Introduction to UNIX Systems
Shell • Linux/Unix System에서 사용하는 대화형 Interface • 사용자와 kernel 사이의 인터페이스 • 사용자로부터 명령을 읽어 실행하는 프로그램 • 사용자가 입력을 해석하여 kernel에 전달 • 종류 : bash, tcsh, ksh, … Introduction to UNIX Systems
다른 컴퓨터의 Shell 사용하기 - 원격 접속 • 원격 데스크탑(mstsc)과 유사함 • 네트워크를 통해 원격에 있는 컴퓨터에 접속하여 작업을 함 • 방법: SSH(Secure SHell) 이 대표적 • SSH: 암호화 기법을 사용하여 강력한 인증 + 안전한 통신 기능 • SSH client 프로그램- PuTTY, Xshell 등 Introduction to UNIX Systems
Editing command line • Shortcut • ^L: clear 기능 • ^U: line의 시작 ~ cursor 위치 까지 삭제 • ^K: cursor 위치 ~ line의 끝 까지 삭제 • ^R: 명령어 history 검색.. 과거에 사용했던 명령어 검색 Introduction to UNIX Systems
Executing a program • Path • File or directory의 주소 • 실행시킬 file까지의 path를 입력하면 file이 실행됨. <절대경로> • /: root directory <상대경로> • ./: 현재 directory • ../: 상위 directory TIP : ~/ 는 자기의 홈 디렉토리 ex) $ /bin/ls → root directory의 bin directory 안의 ls 실행.. $ ./a.out → 현재 directory의 a.out 프로그램을 실행
Various shell built-in commands and programs • Basic builtins: shell에 포함된 명령어 • cd: directory 이동 • pwd: 현재 위치 경로 출력 • exit / logout: 끝내기 • Coreutils: 자주 사용하는 프로그램들을 모은 package • mkdir / rmdir: 디렉토리 생성 / 삭제 • cp / rm / mv: 파일 복사, 삭제, 이동 • ls, cat, less, grep, sort, chmod, ps, w, ... • Applications: 기타 자주 사용하는 유용한 프로그램들 • vim, mutt, javac/java, gcc, telnet, ssh Introduction to UNIX Systems
g Permission User/group/other byte u Various shell built-in commands and programs $ ls (directory 내 file 및 directory list 목록) $ ls –a (hidden file을 포함한 모든 file 목록) $ ls –l (file의 추가 정보를 포함한 file 목록) Introduction to UNIX Systems
Various shell built-in commands and programs $ ls(directory 내 file 및 directory list 목록) $ cd ..(상위 directory) / cd ~(home directory) / cd ***(*** directory) $ mkdir temp(temp라는 이름의 directory 생성) $ rmdir temp(temp directory 삭제) $ cp old.txt new.txt(old.txt를 new.txt에 복사) $ rm old.txt(파일 삭제) / rm temp –rf(폴더 삭제) $ mv new.txt ./new.txt (파일 이동) Introduction to UNIX Systems
Various shell built-in commands and programs • 파일 내용 보기 $ vim ***(빔 파일 편집기 실행) $ cat ***(파일의 내용을 보여줌) $ less ***(한 장씩 끊어서 읽기 가능) $ ps(현재 실행중인 process) $ w (log-on 되어있는 사용자가 무엇을 하는지 보여줌) Introduction to UNIX Systems
Various shell built-in commands and programs • pwd : 현재 자신의 위치를 보여준다. • passwd : 패스워드를 바꿀 수 있다. • chsh : 사용할 쉘을 고를 수 있다. ex) chsh /bin/bash Introduction to UNIX Systems
Various shell built-in commands and programs • tab키 : 남은 명령을 유추하여, 정확한 부분은 매꿔준다. • ? : 어떤 문자, * : 어떤 문자열 -> ls 등에 응용가능 Introduction to UNIX Systems
Redirection, pipe • >, <, >> (redirection) $ ls > ls.txt : ls.txt 파일에 ls의 output이 저장 $ grep home < ls.txt : ls.txt 파일을 input으로 받아 grep home 실행 (home 이라는 단어가 들어가있는 line을 출력) $ ls –al >> ls.txt : ls.txt 파일의 뒤에 이어서 ls –al 출력 Introduction to UNIX Systems
출력 입력 (앞 command) Pipe (뒷 command) Redirection, pipe • | (pipe): (앞 command) | (뒷 command) • (앞 command)의 출력 결과를 (뒷 command)의 입력으로 생각! $ nugu | grep 07 : nugu의 결과를 화면에…→ 화면에 출력될 결과 안에 07 이라는 단어가 들어가있는 line들만 출력 $ ls –al | grep test : ls –al를 화면에…→ 그 결과를 입력으로 받아 test 가 들어가있는 line들만 출력 Introduction to UNIX Systems
Q&A Introduction to UNIX Systems