1 / 20

Shell & VI editor

Shell & VI editor. 2007. 3. 23 ( 금 ) 김 희 준 icemichy@hufs.ac.kr. Shell. 정의 / 역할 종류 주요 shell 들의 특징 기능 환경설정. Shell 의 정의와 역할. 정의 User 가 입력한 명령어를 해석하고 , 이를 kernel 로 넘김 (command interpreter) DOS 의 command.com, Windows 의 탐색기와 비슷 Shell 은 그 자체로서 완벽한 program 환경 현재 사용중인 shell 의 종류확인

kaia
Download Presentation

Shell & VI editor

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. Shell & VI editor 2007. 3. 23 (금) 김 희 준 icemichy@hufs.ac.kr

  2. Shell • 정의/역할 • 종류 • 주요 shell들의 특징 • 기능 • 환경설정

  3. Shell의 정의와 역할 • 정의 • User가 입력한 명령어를 해석하고, 이를 kernel로 넘김 (command interpreter) • DOS의 command.com, Windows의 탐색기와 비슷 • Shell은 그 자체로서 완벽한 program 환경 • 현재 사용중인 shell의 종류확인 • 역할 • 입/출력 방향 결정, foreground / background, pipe 처리 • User가 새로운 명령을 내릴 때마다 Shell은 새로운 process를 만들어 그 process에 새로운 프로그램을 실행 • 모든 program들은 서로 독립적인 process에서 작동하도록 되어 있으며, 이 program들은 모두 Shell의 child process • 각 process간의 통신은 Shell 환경을 통해 이루어지며 process간의 우선순위, 자원 배분 등을 Shell에서 처리

  4. Korn Shell Bourne Shell C Shell Bash Shell Shell의 종류 • Bourne Shell (sh) • C Shell (csh) • Korn Shell (ksh) • TENEX C Shell (tcsh) • Bourne Again Shell(bash)

  5. Shell의 특징(bourne shell) • Bourne Shell (/bin/sh) • Solaris의 기본 Shell • 대부분의 Shell은 Bourne Shell의 기능을 포함하여 확대 발전한 형태 • 강력하고 편리한 Shell 들의 등장으로 인해 특이한 상황을 제외하고는 거의 사용되지 않음 • User prompt : $ • Super-user prompt : #

  6. Shell의 특징(C Shell) • C Shell (/bin/csh) • FreeBSD의 기본 Shell • C언어 기반의 Shell • Bourne Shell의 모든 기능과 명령어 history, alias, process 관리기능 확장을 추가로 가짐 • User prompt : %

  7. Shell의 특징(bash Shell) • bash Shell (/bin/bash) • Bourne Shell의 확대발전형을 제작한다는 목표로 GNU 프로젝트 일환으로 개발 • 기본적으로 Bourne Shell을 기반으로 하며, C Shell의 기능도 일부 포함 • Linux의 표준 Shell로 채택 • User prompt : $ • Super-user prompt : #

  8. Shell의 기능(1/3) • foreground, background 실행 및 전환 • pipe : 응용 프로그램의 결과값을 다른 응용 프로그램의 입력값으로 연결해주는 역할 • alias : 긴 명령어를 입력하기 쉬운 짧은 명령어로 정의 $ netscape & $ jobs $ fg %1 $ ‘ctrl + z’, bg $ ls –al | more $ alias nova ‘telnet nova.hufs.ac.kr’

  9. Shell의 기능(2/3) • command prompt 편집 : 명령어 입력시 editor의 편집기능과 유사한 기능을 제공

  10. Shell의 기능(3/3) • history : 입력했던 명령어를 다시 찾아보고 편집할 수 있는 기능 • command 완성 : 잘 기억나지 않는 명령어를 ‘Tab’ 키로 완성시켜줌 $ !! $ !124

  11. bash shell 환경설정(1/4) • user가 login을 하게되면 자동적으로 Shell 실행 • Shell은 설정파일을 읽어 user에게 작업환경 제공 (DOS에서의 config.sys와 autoexec.bat와 비슷) • Shell 설정 파일(초기화 파일) • system 전체의 초기화 파일 • Shell이 실행되면서 가정 먼저 읽는 설정 파일 • 관리자가 설정

  12. bash shell 환경설정(2/4) • user 초기화 파일 • System 초기화 파일을 읽은 후 User 초기화 파일을 읽는다. • user가 설정

  13. command history logout 환경설정 login 환경설정 login 환경설정의 backup bash shell 환경설정(3/4) • .bash_profile 수정 후 새로운 shell 환경설정 적용 $ source .bash_profile

  14. bash shell 환경설정(4/4) • User 초기화 파일 예 # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin // path 설정 경로 SHELL=/bin/bash // 실행중인 shell의 경로 MANPATH=/usr/man:/usr/X11/man // man의 경로 EDITOR=/usr/bin/vi // text 편집기의 경로 alias l=‘ls –al | more’ // alias export EDITOR // 지역변수를 환경변수로 정의 HISTSIZE=1000 // command history size

  15. Editor • Unix(혹은 linux)에서 지원하는 대표적인 editor • vi(visual editor) • Visual display editor • traditional editor : ed(line editor) • emacs • Vim : vi의 clone • 한글 지원 vi editor • Vi의 기능에 충실 • 좀더 편리한 툴 제공

  16. : ESC Command mode Last Line mode Input mode Enter Insert, Append, Replace … Introduction to vi • Modes of Operation • The Work Buffer • During the editing session, vi make all changes in the buffer • Advantage • 오동작으로 원하지 않은 결과가 발생했을 때, 파일에 저장되지 않도록 할 수 있다. • Disadvantage • 시스템이 다운될 경우, 편집한 결과가 모두 소멸될 수 있다.

  17. Vi 명령어 (1/3) • 화면제어 ctrl + f - 화면전체의 내용이 한 화면 위로 이동 ctrl + b - 화면전체의 내용이 한 화면 아래로 이동 ctrl + e - 화면전체의 내용이 한줄씩 위로 이동 ctrl + y - 화면전체의 내용이 한줄씩 아래로 이동 • 커서(Cursor)의 제어 ENTER Key 다음행의 처음으로 이동 j 한행 아래로 이동 k 한행 위로 이동 l 현재행의 오른쪽으로 이동 h 현재행의 왼쪽으로 이동 w 다음단어의 첫자로 이동 e 현재단어의 끝자로 이동 ^ 행의 제일왼쪽으로 이동 $ 행의 제일 오른쪽으로 이동 H 화면의 좌측상단으로 이동 M 화면의 좌측 중간으로 이동 L 화면의 좌측하단으로 이동 :숫자 지정한 숫자의 행으로 이동 :/문자열 오른쪽 하방향으로 문자열 검색 :?문자열 왼쪽 하방향으로 문자열 검색 n 아래로 검색을 계속함 N 위로 검색을 계속함 ctrl+g 현재의 화일이름과 행 수를 알려줌. b 바로 이전 단어의 앞 빈칸으로 이동

  18. Vi 명령어 (2/3) • 문안편집 a (append) 현재 커서가 위치한 문자의 다음위치부터 입력함 A 현재 커서가 있는 행의 마지막부터 입력함 i (insert) 현재 커서가 있는 위치부터 입력함 I 현재 커서가 있는 행의 처음부터 입력함 o (open) 현재커서가 있는 행의 다음 행에 새로운 한 행을 삽입하면서 입력함 O 현재커서가 있는 위치에 새로운 한 행을 삽입하면서 입력함 • 문안의 삭제 x 커서위치의 한 문자 삭제 dw 커서위치의 한 행을 삭제 dd 커서위치의 한 행을 삭제 :1,$ d 1행부터 마지막 행까지 삭제 D 커서위치의 오른쪽 모두 삭제

  19. Vi 명령어 (3/3) • 문안의 이동 및 복사 nyy n행을 버퍼에 복사 p 버퍼에 복사된 내용을 화면에 인쇄 3dd 현재커서가 위치한 행으로부터 3행을 삭제(이동원지정) 3p 지워진 3행이 커서가위치한 행 부터 지웠던 3행이 인쇄된다. Yy 현재커서가 위치한 한 행을 버퍼에 복사한다.( 3yy : 3행 복사) P 버퍼에 복사된 내용이 인쇄된다. • 기타명령어 U (Undo) 직전에 수행한 명령을 취소 또는 복구한다. r 한 문자 변경 cw 한단어 변경 J 행 결합 enter key 행 삽입 :sh shell을 수행한다. :!unix 명령어 unix 명령어를 수행하고 vi로 다시 돌아온다. :r filename 지정한 화일을 수행하고 vi로 다시 돌아온다. :w filename 현재내용을 지정한 filename으로 보관한다. :1, 10 w filename 1행부터 10행까지만 지정한 filename으로 보관한다.

  20. Test • Vi Editor를 이용해 daytime을 가져오는 client와 server를 작성해보자 • UNP library사용은 option

More Related