CHAP 9 UNIX.hwp

Similar documents
Windows 8에서 BioStar 1 설치하기

Microsoft Word - PLC제어응용-2차시.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

System Recovery 사용자 매뉴얼

Contributors: Myung Su Seok and SeokJae Yoo Last Update: 09/25/ Introduction 2015년 8월현재전자기학분야에서가장많이쓰이고있는 simulation software는다음과같은알고리즘을사용하고있다.

Endpoint Protector - Active Directory Deployment Guide

Microsoft PowerPoint 통신 및 압축 명령어.ppt

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

Microsoft Word - src.doc

PowerPoint 프레젠테이션

Discrete Mathematics

Microsoft PowerPoint - u4.pptx

Windows Server 2012

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

The Pocket Guide to TCP/IP Sockets: C Version

Microsoft PowerPoint - comp_prac_081223_2.pptx

PowerPoint 프레젠테이션

슬라이드 1

Computer Programming (2008 Fall)

작성자 : 기술지원부 김 삼 수

vi 사용법

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

리눅스 프로세스 관리

NTD36HD Manual

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

게임 기획서 표준양식 연구보고서

PowerPoint 프레젠테이션

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

SIGIL 완벽입문

SBR-100S User Manual

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다


PowerPoint 프레젠테이션

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

ISP and CodeVisionAVR C Compiler.hwp


PowerPoint 프레젠테이션

Unix & Linux 개요 Company 서울대학교통계학과 2010년 2학기컴퓨터의개념및실습 ( Thanks to: cancho & facewhite from SPARC/KAIST, Bruce La Plante fro

[ 컴퓨터시스템 ] 3 주차 1 차시. 디렉토리사이의이동 3 주차 1 차시디렉토리사이의이동 학습목표 1. pwd 명령을사용하여현재디렉토리를확인할수있다. 2. cd 명령을사용하여다른디렉토리로이동할수있다. 3. ls 명령을사용하여디렉토리내의파일목록을옵션에따라다양하게확인할수

Solaris Express Developer Edition

..,. Job Flow,. PC,.., (Drag & Drop),.,. PC,, Windows PC Mac,.,.,. NAS(Network Attached Storage),,,., Amazon Web Services*.,, (redundancy), SSL.,. * A

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

PowerPoint 프레젠테이션

Microsoft PowerPoint UNIX Shell.ppt

untitled

PowerPoint 프레젠테이션

PowerPoint Presentation

Studuino소프트웨어 설치

PowerPoint 프레젠테이션

강의 개요

슬라이드 1

슬라이드 1

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

PowerPoint 프레젠테이션

Visual Basic 반복문

PowerPoint Presentation

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

Microsoft PowerPoint - 10Àå.ppt

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

게시판 스팸 실시간 차단 시스템

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

Assign an IP Address and Access the Video Stream - Installation Guide

목차 백업 계정 서비스 이용 안내...3 * 권장 백업 정책...3 * 넷하드(100G 백업) 계정 서버로 백업하는 2가지 방법...3 * 백업서버 이용시 주의사항...3 WINDOWS 서버 사용자를 위한 백업서비스 이용 방법 네트워크 드라이브에 접속하여

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

Microsoft Word - Windows_apahce_php_CUBRID2008

< FBBE7B0EDB3EBC6AE5FB5F0C6FAC6AEC6D0BDBABFF6B5E5C3EBBEE0C1A128BCF6C1A4292E687770>

PowerPoint 프레젠테이션

1

침입방지솔루션도입검토보고서

PowerPoint 프레젠테이션

목차 데모 홖경 및 개요... 3 테스트 서버 설정... 4 DC (Domain Controller) 서버 설정... 4 RDSH (Remote Desktop Session Host) 서버 설정... 9 W7CLIENT (Windows 7 Client) 클라이얶트 설정

PowerPoint Template

Contents Test Lab 홖경... 3 Windows 2008 R2 서버를도메인멤버서버로추가... 4 기존 Windows 2003 AD 홖경에서 Windows 2008 R2 AD 홖경으로업그레이드를위한사젂작업 7 기존 Windows 2003 AD의스키마확장...

CHAP 10 PERL.hwp

네이버블로그 :: 포스트내용 Print VMw are 에서 Linux 설치하기 (Centos 6.3, 리눅스 ) Linux 2013/02/23 22:52 /carrena/ VMware 에서 l

4S 1차년도 평가 발표자료

문서의 제목 나눔고딕B, 54pt

Microsoft Word - Armjtag_문서1.doc

Microsoft PowerPoint - 권장 사양

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

제1장 Unix란 무엇인가?

목 차 1. 드라이버 설치 설치환경 드라이버 설치 시 주의사항 USB 드라이버 파일 Windows XP에서 설치 Windows Vista / Windows 7에서 설치 Windows

슬라이드 1

Chapter 05. 파일접근권한관리하기

Microsoft PowerPoint - Java7.pptx

슬라이드 1

Install stm32cubemx and st-link utility

Transcription:

제 9 장 Unix/Linux 의이해 9.1 UNIX/Linux Operating System 역사 컴퓨터를사용하기위해서는필수적으로운영체제 (Operating System) 가필요하다. 이운영체제중에서가장흔히접할수있는것은 Microsoft Windows 이다. 이외에애플 (Apple, Inc.) 사의제품에는 MacOS X가탑재되어있다. 이와같은다양한운영체제중에서, 사용자가직접사용하는컴퓨터가아닌, 뒤에서다양한서비스를제공해주는서버 (Server) 를운영하는데가장많이쓰이는운영체제는 UNIX 계열의운영체제이다. UNIX는 1970 년대에멀티테스킹 (Multitasking) 과멀티유저 (Multiuser) 를지원하는운영체제로개발이되었다. 그당시에멀티테스킹및멀티유저에대한개념은한대의거대한컴퓨터 ( 메인프레임등 ) 을놓고, 이를여러사람이터미널을통해서접속하여사용하는구조에서시작하였다. 이를바탕으로여러컴퓨터회사에서 UNIX 운영체제를지속적으로개선하여 BSD(University of California, Berkeley), AIX(IBM), Xenix(Microsoft), Solaris(Sun Microsystems) 등이상업적으로사용되고있다 ( 그림 9.1). 그림 9.1. 다양한종류의 Unix 운영체제계보도

Box 9.1. 메인프레임 (Mainframe) 과터미널 (Terminal). 메인프레임 (mainframe) 컴퓨터는 1950 년대후반부터 1970 년대에주로제작이되었다. IBM 을포함해서 Burroghs, UNIVAC, NCR, Control Data, Honeywell, General Electric, RCA 회사에서주로제작하였다. 위의사진은 IBM 704 메인프레임으로 1964년에제작이된사진이다. 사진상에있는여성분의키와동일한캐비닛여러개가있을정도로거대한크기를자랑하였다. 지금의컴퓨터와는달리자기테이프를사용해서자료를저장하는방식을사용하였다. 당시에는컴퓨터가매우고가의장비였기때문에, 컴퓨터의자원을최대한활용하기위해서메인프레임컴퓨터에접속해서사용할수있는터미널 (terminal) 이있었다. 위의사진처럼터미널은모니터와키보드가주요부품이며, 저장장치및연산은메인프레임에서수행될수있도록설계된컴퓨터이다. 앞으로나올터미널에뮬레이터 (terminal emulator) 프로그램인 Putty도지금 PC에서과거터미널을사용하는것과동일한환경을만들어주는역할을담당한다. 1991 년 9월에리눅스토발즈 (Linus Torvalds) 가이 UNIX 를기반으로하여새로운운영체제인리눅스 (Linux) 버전 0.1 을공개하고커널 (Kernal) 을포함한모든소스코드를공개하였다. 초기에는운영체제의안정성부분에서문제가있었지만, 계속적인업그레이드를통해서매우안정적인운영체제로자리잡고, 대부분의서버용컴퓨터에서사용이되고있다. 2017 년 2월 22일현재커널은 4.10 까지개발되었다 ( 그림 9.2). 최근에는동시에빠르고많은연산을하는슈퍼컴퓨터들도리눅스를사용하고, 현재 TOP500 슈퍼컴퓨터 (https://www.top500.org/) 중 99% 이상이리눅스를탑재하고있다.

그림 9.2 최신버전의리눅스커널을제공하는 http://www.kernel.org 메인페이지 Box 9.2. TOP500 Supercomputers. 슈퍼컴퓨터 (Supercomputer) 는단어그대로고성능을가진컴퓨터를의미한다. 과거에는슈퍼컴퓨터제작을위해서해당컴퓨터만의독특한컴퓨터구조를사용해서고성능을낼수있도록설계를하였다. 대표적인예가크레이사 (Cray Inc.) 의슈퍼컴퓨터들이다. 1972 년에크레이사가설립되어다양한슈퍼컴퓨터를만들어왔다. 크레이사의슈퍼컴퓨터는사진 (Cray-2) 처럼일반박스형태가아닌원통형구조를가지고있는데, 이는성능을극대화하기위해서부품간거리를최소한으로설계를한결과이다. 실제로해당컴퓨터를제작하기위해서몸이작은여공이직접저원통안으로가서일일이조립하는방법을사용하였다. 이같은단일슈퍼컴퓨터개념에서 1980년대이후로는상대적으로성능은떨어지는프로세서 (processor; CPU) 를병렬로연결해서보다강력한슈퍼컴퓨터를만들려는시도가이어졌다. 이에, 현재세계에서가장빠른슈퍼컴퓨터의대부분은병렬프로세서를이용해서구현이되어있다. https://www.top500.org/ 에는 2016년 11월기준가장빠른슈퍼컴퓨터의목록을제공하는데, 가장빠른슈퍼컴퓨터는중국의 Sunway TaihuLight 으로코어수가무려 10,649,600개를가지고있고, 초당 93.0146 PFlop (9경 3014조 6천억번의부동소수점연산을수행 ) 을자랑한다.

이같은배경때문에 Unix 및 Linux 의경우는기본적으로터미널 (terminal) 환경을기반으로명령어를주고결과를얻는형태로운영이되고있다. 이방식은 PC에서주로사용되는운영체제인윈도우즈 (Windows) 의 GUI (Granphical User Interface) 와같은편리함대신텍스트기반의환경을기본적으로지원하게된다. 이는눈으로보고클릭을통해명령을실행하는것이아니라, 키보드를통해서직접명령어를입력하고그결과를텍스트로보는방식으로윈도우즈의 GUI 에익숙한사용자에게는숙달될때까지시간이걸리기도한다 ( 그림 9.3). 그림 9.3. Linux 의터미널화면모드 하지만 1970, 1980 년대의컴퓨터환경을고려하였을때, 이방법은매우효율적이었고, 특히여러사용자가원격에서큰컴퓨터에접속하여동시에사용할수있는환경을제공하는이점이있다. 1990 년대이후컴퓨터의성능이계속적으로향상됨에따라서 Unix 기반에서도윈도우와같은그래픽환경을제공하는기능이개발되었고 (X Windows System ; X11), 최근의 Linux 배포판의경우는예외없이 X11 을탑재하여쉽게사용할수있도록사용자의편의를제공하고있다 ( 그림 9.4).

그림 9.4. X Windows System 화면예제. 9.2 Unix/Linux 과생물정보학 운영체제의설계는컴퓨터성능을최대로발휘시키는데있어서가장중요한부분에속한다. Unix 는 1970 년대에개발이되었지만멀티유저 (Multiuser) 와멀티테스킹 (Multitasking) 을기본기능을설계를하였기때문에, 그당시대형컴퓨터 (Main frame) 의자원을여러사람이효율적으로나누어서사용할수있게끔하였다 ( 그림 9.5). 이후 Unix 는여러가지버전이개발되었지만, 그근간은바뀌지않았기에 DOS (Disk Operating System) 를기반으로개발이된윈도우즈보다훨씬효율적인운영체제로자리잡게되었다. Linux 또한이 Unix 를기반으로개발이되어서다양한분석을수행하는데있어서훨씬효율적일뿐만아니라무료로배포가되었기때문에초기생물정보학사용자들이주로사용하게되었다. 이후, 대부분의분석프로그램들이 Linux 에서개발이되어서배포되고있다. 그림 9.5 Linux 는기본적으로 Multitasking 을지원한다. 추가적으로애플컴퓨터의경우는 MacOS 9 버전까지는자체적인운영체제를개발및운영하여왔으나,

MacOS X 부터는운영체제를완전히새로개발하면서 Unix 기반의커널중하나인 Mach 커널을기반으로개발하였다. 이는간접적으로 Unix 가얼마나안정적인지를보여주는또다른예이다. 지금판매되는모든맥노트북및데스크탑은모두 Unix 기반의운영체제에의해서구동된다고보아도무방하다.

9.3 Unix/Linux 시작하기 Unix/Linux 를사용하기위해서는운영체제에계정 (acocunt) 이있어야한다. 이는운영체제를사용하기에앞서서내가누구인지인증을하는과정이다. 참고로윈도우즈의경우도여러사람이사용할때는계정을여러개만드는경우가있는데, 이것과동일한기능으로보면된다. 계정생성은시스템관리자에게문의를하여발급을받도록한다. 계정이준비되었으면서버로접속을해야한다. 보통서버의접속은인터넷을통해서진행을하므로, IP 주소 (IP address) 혹은도메인이름 (domain name) 이필요하다. 이주소와함께, 어떠한프로토콜 (protocol) 로접속을할것인지에대한정보가필요하다. 이프로토콜이란서버와통신하는방법을정의한것으로과거에는 telnet 을많이사용하였고, 지금은보안이강화된 SSH (Secure SHell) 을주로사용한다. Box 9.3. IP 주소 (IP Address). IP는 Internet Protocol 의약자로, 인터넷에연결된컴퓨터의고유주소를의미한다. 현재널리사용되고있는 IP 주소구조는 IPv4 로총 4개의숫자로이루어져있다. 이론적으로는최대 256 4 = 2 32 = 4,294,967,296 개의주소를표현할수있다. 하지만몇몇 IP 주소는특수한용도로사용이되는데, 192.168.x.x 는내부망 (private network) 에서사용되는수치가그예이다. 최근들어서, 다양한종류의모바일기기, 사물인터넷기기들이출현하면서 IP 주소가충분하지않게되어 IPv6 기반으로보다많은기기의고유번호를가질수있는규약 (protocol) 이제정되었다. 우리나라의경우는아직 IPv6 는거의보급되지않고있고 IPv4 를사용하고있다. 윈도우환경에서 Unix/Linux 서버에접속하기위해서는터미널에뮬레이터 (Terminal Emulator) 가필요하다. 본장에서는 Putty 프로그램을기반으로설명하도록한다. 이프로그램은무료프로그램이며 http://www.putty.org/ 에서다운로드가가능하다. 현재버전은 0.67 이다. 프로그램설치후실행을시키면아래그림과같은화면이나타난다 ( 그림 9.6). 여기에 IP주소를입력하고 SSH를선택하여서버에접속을한다. 그림 9.6. 무료터미널프로그램인 Putty 의첫화면.

정상적으로접속이되면 ID와암호를묻는과정을거치게된다 ( 그림 9.7). 정상적인아이디와암호를입력하게되면가장마지막에프롬프트 (Prompt) 가출력된다. 이는서버가현재명령을대기하고있음을알려주는공통된신호이다. 앞의부분의문자는 Linux 배포판에따라서다양하게나타날수있지만가장마지막의 $ 는공통적으로보여주는부분이다. 만약이 $ 대신에 # 이있는경우는관리자 (superuser) 권한으로접속이된것임을알려준다. 드디어 Unix/Linux 운영체제가설치된서버에접속을하였다. 그림 9.7. 서버접속에성공한화면. 9.4 Unix/Linux 명령어 프롬프트가정상적으로나오게되면서버에명령을주어서원하는동작을시킬수있는상태이다. 이프롬프트에명령어를입력하면서버는해당명령어에대한결과를출력해준다. Unix/Linux 는윈도우즈와다르게이름의대소문자를구분함에유의한다. 9.4.1 ls Unix/Linux 의공통적인명령어중에현재위치의파일을보여주는명령어이다. 명령어다음에한칸띄고옵션을줄수있는데, 아래화면의예제에있는 al 옵션은숨김파일을포함한모든파일 (-a) 을출력하고, 각파일에대한구체적인정보를리스트형태로 (-l) 보여달라고하는것을의미한다 ( 그림 9.8). 명령어 1 ls -al 그림 9.8. ls al 명령의결과화면. 위의화면에서보면첫줄과두번째줄에. 과.. 이파란색으로나타나는데, 이는특수폴더 (directory) 를의미한다. 첫번째. 은현재폴더를의미하는것이고, 두번째.. 은상위폴더를의미하는것이다. 두번째명령어인 cd를이용해서현재폴더를변경하고자할때이특수폴더를사용할수있다. 그다음에. 으로시작하는파일이 4개가나오는데, 파일이름이. 으로시작을하면 Linux 에서는숨김파일에해당된다. 이에, -a 옵션을빼면,. 으로시작하는파일이출력되지않는다 ( 그림 9.9).

그림 9.9. ls l 의결과화면. 9.4.2 cd 및 pwd cd는현재위치를변경하는명령어로 change directory 의약자이다. 명령어다음에원하는폴더 (directory) 이름을입력하면해당폴더로이동하게된다 ( 그림 9.10). 상위폴더로이동시에는 cd.. 을입력하면된다 (9.4.1 의특수폴더참조 ). 명령어 2 cd [directory name] 명령어 3 cd.. 그림 9.10. cd 명령어를통한폴더이동결과. pwd 는현재경로를출력하는명령어로자신의경로를아래와같이표시해준다 ( 그림 9.11). /home/starflr/test 중에서앞부분인 /home/starflr 는본계정의홈폴더이다. 명령어 4 pwd 그림 9.11. 현재경로출력 (pwd).

9.4.3 clear 현재보이는화면을지울때쓰는명령어이다. 터미널에나와있는글씨가모두소거된다 ( 그림 9.12). 명령어 5 clear 그림 9.12 clear 명령전후화면변화 9.4.4 cat 특정파일의내용을화면으로출력하는명령어이다. cat 다음에파일이름을입력하면해당파일내용이출력된다 ( 그림 9.13). 아래예제는 test.txt 파일의내용을출력하기위해서 cat 명령을사용한경우이다. ls al 명령을통해서현재폴더에 test.txt 파일이있음을확인한후에 cat test.txt 를입력하여안의내용을출력하였다. 명령어 6 cat [filename] 그림 9.13. cat 명령을통해 test.txt 파일의내용을화면에출력하였다. 연속적으로여러개의파일내용을출력하고자할때는원하는파일이름을계속써주면된다. 예를들면, cat test1.txt test2.txt 하면두개의파일을순차적으로화면에출력해준다.

명령어 7 cat test1.txt test2.txt 그림 9.14 cat test1.txt test2.txt 실행예제 Box 9.4. 두개의파일합치기 (Redirect) Linux 에서는 command line을이용해서매우다양한일들을수행할수있다. cat 프로그램은단순하게파일내용을출력하는역할을하는데, 이를이용해서 2개의파일을 1개의파일로합치는것도가능하다. cat test1.txt test2.txt 명령어결과를보면 2개의파일내용이순차적으로나오는것을확인할수있는데 ( 그림 9.14), 이결과를파일로다시쓰면합쳐진파일을생성할수있게된다. 이를위해서아래와같이명령어에한가지를더추가해보자. 명령어 8 cat test1.txt test2.txt > test3.txt > 는 redirect 를의미하는데, 이는 > 왼쪽에서화면에출력되는결과를오른쪽파일에쓰라는의미이다. 좀더엄밀하게말하면왼쪽명령어의 STDOUT ( 화면출력 ) 의결과를파일 test3.txt 에쓰라는의미가된다. test3.txt 내용을확인하면아래와같다. 2 개의파일내용이하나로합쳐저서 test3.txt 에잘보관되었다. 9.4.5 grep Unix/Linux 에서는 text 파일을다룰수있는많은프로그램이준비되어있다. 9.4.4 의 cat 도그중에하나이고, grep 은지정한파일 ( 들 ) 에서특정한문자열이존재하는지를찾는프로그램이다. 사용예제는아래와같다 ( 그림 9.15).

명령어 9 grep Linux test1.txt 그림 9.15. grep 사용방법예제. grep [ 문자열 ] [ 파일이름 ] 형태로입력하면 [ 파일이름 ] 의파일에서 [ 문자열 ] 이있는경우해당문자열이포함된줄을출력해준다. grep Linux test.txt 의경우해당파일안에 Linux 가있으므로해당줄이출력되고 Linux 가빨간색으로표시되었다. 두번째명령어에서는 This 를찾는명령어이나, 결과가없으므로아무것도출력되지않았다. 마지막으로없는파일이름을지정하는경우는파일이없다는에러메시지가출력된다. Box 6.5. 파일내용일부분만추출해서새로운파일만들기 Box 6.4 에서파일을합치는예제를 cat 과 redirect 를사용하여수행하였다. 이번에는 grep 을이용해서특정파일의부분만을추출하여새로운파일을만들어보는것을진행해본다. 명령어 10 grep test1.txt test3.txt > test4.txt 위의명령어는 test3.txt 에서 test1.txt 라는문자열이있는줄만을추출 (grep) 하여 test4.txt 파일에쓰라는의미이다. 해당명령어를실행시켜보면아래와같은결과가나타난다. 9.4.6 pipe ( ) Unix/Linux 에서는간단한명령어들을조합해서여러가지기능을할수있는명령을만드는것이가능하다. Box 9.4 와 Box 9.5 에서소개한 redirect 가그런예중의하나이다. 이와비슷하게, 서로다른프로그램을연결

하는방법으로 Linux 에서는파이프 (pipe) 라는방법을제공하고있다 ( 그림 9.16). 이는프로그램에서결과로나오는내용을다음프로그램의입력으로처리되도록두프로그램을동시에구동하여처리하게된다. 이방법은간단한프로그램을연속적으로연결해서원하는결과를쉽게얻을수있도록도와준다. 파이프를정의할때는 문자를사용한다. 그림 9.16. Unix 파이프구조. 파이프는두개이상의프로그램을연속적으로도연결할수있다. 예를들어서, 특정파일 (test2.txt) 에서 Linux 와 This 가동시에들어있는줄을찾고자하는경우에는 9.4.5 의 grep 명령어로한번에결과를얻을수없게된다. 하지만, 처음에 Linux 를찾는명령 (grep Linux test2.txt) 를사용한후에다시그결과를바탕으로 This 를찾게된다면, 원하는결과를얻을수있게된다. 또다른예제로, ls al 의결과에서 test2.txt 라는문자열을골라내고싶을때 ls al 명령어의출력을 grep 명령의입력으로사용하게되면원하는결과를얻어낼수있다. 명령어 11 grep Linux test2.txt grep This 그림 9.17. pipe 를이용하여두개의문자열을동시에검색하는예제. ( 파이프기호 ) 를첫번째명령어다음에쓴두번째명령어 grep 에서는파일이름을명시하지않는다. 왜냐하면, 입력이파일이아니라첫프로그램의결과가될것이기때문이다. 대부분의 Unix 프로그램은입력소스를명시하지않으면 STDIN, 즉사용자로부터의입력을대기하게되는데, 파이프는이입력 (STDIN) 에이전프로그램의결과를넣어주는역할을하여, 두번째프로그램은첫번째프로그램의결과를기반으로해당기능을수행하게된다. 이와같이, 두개이상의프로그램을연결해서사용하게되면복잡한명령을새로운프로그램을만들지않고바로해결할수있는장점이있고, 실제생물정보학분석에서도파이프는매우빈번하게사용되고있다. Box 9.6. STDIN, STDOUT, STDERR Box 9.1 에서메인프레임과터미널에대해서소개를하였다. 터미널에서는사용자의입력 (STDIN; Standard Input) 을받아서 ( 키보드로부터 ) 그내용을처리하고결과를화면으로출력

(STDOUT; Standard output) 하는기능을수행하게된다. 여기에프로그램의에러나경고의경우는 STDERR로출력이되게된다. 기본적으로 STDOUT 과 STDERR는모두화면에표시되기때문에눈으로보기에는큰차이가없으나, redirect 를이용해서두가지출력은구분이가능하다. 명령어 12 ls al > output.txt 2> error.txt 위의명령어를보면 ls al 의결과를 output.txt 에저장하도록하고, STDERR로출력되는메시지는 error.txt 로저장되도록하는명령어이다. redirect 에서 > 는 STDOUT 에서나온결과를저장하는것을의미하고 2> 는 STDERR로나오는문자를저장하는것을의미한다. 9.4.7 vi editor Linux 에서주로사용하는텍스트에디터 (text editor) 로는 vi와 emac 가가장대표적이다. Linux 사용자는보통이두개의에디터중하나를주로사용하는데, 본교재에서는 vi 에대해서간단하게소개를하려한다. Box 9.7. Editor War Unix 계열운영체제에서가장많이쓰이는 text editor 는 vi와 emacs 이다. 거의대부분의사용자가둘중한개의에디터를사용하다보니두그룹사이에서는미묘한긴장감이항상흐르게된다. 이를가리켜서 Editor war 라는표현을사용한다. (https://en.wikipedia.org/wiki/editor_war) 서버에접속된상태에서 vi 에디터로새로운파일 ( 파일이름 : test3.txt) 을만들고저장해보도록한다. 먼저 vi test3.txt 명령어를입력한다 ( 그림 9.18). 그림 9.18. vi 에디터구동명령어입력 : test3.txt 파일을새로만든다. 명령어입력후에 vi 에디터화면이나타난다. 새로운파일을만드는것이므로, 하단에 [New File] 이라는메시지가뜨고빈화면이나타난다. 여기에서는더이상프롬프트가나타나지않는데, 이는 vi 에디터가실행중임을의미한다 ( 그림 9.19).

그림 9.19. vi 에디터실행화면. vi 에디터는일반적인워드프로세서와매우다른개념이있다. 지금보는화면에서는실제원하는텍스트를바로입력할수있는것이아닌명령어를입력하는모드이다. 이모드에서는커서의이동, 파일의저장, 복사및붙여넣기등의기능을키보드만으로수행한다 ( 터미널프로그램은윈도우의화면과완전하게동일하지않으므로붙여넣기, 마우스휠을이용한스크롤등을시도하고자할때혼동이있을수있다 ). 텍스트입력을위해서소문자 i를입력하면화면하단에 INSERT 가나타나는것을볼수있다. 이글씨가보이면자유롭게글씨를입력할수있다 ( 그림 9.20). 그림 9.20. vi 에디터의입력모드. 테스트로 This is an example of vi editor under Linux. 문장을입력해보았다. 다음줄로이동하려면 Enter 키를누르면다음줄로이동하게된다. 이상태에서커서이동은화살표키로가능하며, 글씨삭제는 Backspace 키혹은 Del 키를사용하면된다 ( 그림 9.21).

그림 9.21. vi 에디터에서한문장을입력한화면. 입력이완료되면 ESC 키를누른다. 이는입력모드에서탈출한다는의미이며, 실제로하단의 INSERT 가사라진것을볼수있다. 이상태에서 :w를입력하고 Enter 키를누르면파일이저장된다. 파일이성공적으로저장되면하단에파일이름과문자의총개수 (45C) 가함께출력이된다 ( 그림 9.22). 그림 9.22. vi 에디터에서파일을저장한경우. 파일저장이끝났으므로 vi 에디터를종료해보도록한다. 종료하는방법은입력모드가아닌현상태에서 :q 를입력하면종료된다. q는 quit 의약자이다 ( 그림 9.23).

그림 9.23 vi editor 종료를위한명령어입력화면 파일을생성하였으므로해당파일이잘만들어졌는지를 ls 명령어로확인하고해당내용을 cat 프로그램으로확인해보도록한다 ( 그림 9.24) 그림 9.24. vi 에디터로생성한파일확인및내용확인. 위와같이파일이잘생성되었고내용이입력한것과동일한것을확인할수있다. Box 9.8. vi editor 와화살표키 지금의키보드는대부분 101키를근간으로만들어져있다. 88키구조와는달리오른쪽에숫자키패트가추가가된구조이며, 보통숫자에는화살표 ( 왼쪽 4, 위쪽 8, 오른쪽 6, 아래쪽 2) 가그려져있고, 키패드왼쪽으로친절하게 4개의화살표키가제공된다. 과거에는이렇게친절한화살표키가존재하지않다보니, 영문자를이용해서상하좌우를이동하곤하였다. 이때사용된문자는 h ( 왼쪽 ), l ( 오른쪽 ), j ( 윗쪽 ), k ( 아랫쪽 ) 을의미한다. 이키는 vi editor 의명령어모드에서커서의위치를이동시킬때여전히사용이되며, 화면분할후에화면간이동에서도사용이된다. 9.4.8 w

Linux 명령어들은대부분간결하게정의가되어있는데, w의경우도그에해당한다. w 명령은, 현재접속된사용자에대한정보를보여준다. 처음에서도언급했듯이 Linux 는 multiuser 를근간으로하기때문에동시에여러사용자가한서버에접속해서사용하는것이기본기능이된다. 이에따라서현재접속한접속자에대한정보도쉽게조회할수있다. 또한한개의계정으로여러개의접속이가능한데, 아래그림 9.25 에서보면한개의아이디어여러번접속해서서로다른명령어를실행하고있음을알수있다. 그림 9.25 현재접속한사용자정보조회

9.4.9 exit or logout 현재사용중인세션 (session) 을종료하고자할때 exit 혹은 logout 명령을통해서종료를할수있다 ( 그림 9.26). 물론 Putty 프로그램을그냥종료해도되지만, 명시적으로종료를하는것이더좋다. 그림 9.26. quit 명령화면