Practice 02. Linux Biointelligence Laboratory School of Computer Science and Engineering Seoul National University http://bi.snu.ac.kr
Linux 핀란드헬싱키대학의학생이었던리누스토르발스 (Linus Torvalds) 라는사람이 1991 년에취미삼아만들었던미닉스터미널에뮬레이터가그시초이다. 할일없는프로그래머들이달려들어이런저런프로그램과모듈을만들면서더많은기능과더높은안전성을갖추게되었다.
Linux
Linux Kernel CPU, 메모리, 하드웨어등을관리하는소프트웨어 OS 의핵심부분 Open Source Linux 의 kernel 은오픈소스로공개되어있음
Linux Linux 는오픈소스로공개되다보니다양한확장버전이등장 실습서버는 Ubuntu 사용
ssh with putty ssh (Secure Shell) cryptographic network protocol 클라이언트에서명령어전송, 서버로부터결과확인 22번 port 사용 ( 표준 ) PuTTY PuTTY는 telnet, ssh 등의 protocol을편하게사용할수있는프로그램 http://www.chiark.greenend.org.uk/~sgtatham/putty/
putty
pp.snucse.org putty
putty 한글을위해 UTF-8 설정
색수정. 특히 ANSI Blue 가검은배경에서잘안보이므로좀옅은색으로수정. (100, 100, 187) 추천 putty
putty 지금까지의설정을저장할수있음. 적당한세션명칭을정해서저장. 나중에 Load 로불러올수있음. Open 으로서버에접속.
putty 계정 & 비밀번호입력 비밀번호는입력도중에아무것도뜨지않음. 접속후, passwd 명령어로비밀번호변경
Linux Account host : pp.snucse.org port : 22 (ssh) username: prg[student number without hyphen] ex) prg201512345 password: prg Change the password with passwd command. The connection is available from outside the university.
Linux 도 Windows 와유사한디렉토리구조로되어있음. Directory System
Directory System Absolute path 루트에서부터시작하는절대적인경로로, 자신이현재어떤폴더에있든동일 / 로시작함, ex) /home/prg01/dir1/dir2 pwd 명령어로현재 absolute path를볼수있음 Relative path 현재폴더에서부터시작해서상대적으로찾아가는경로 ex) dir1/dir2 혹은../prg01/dir1/dir2 등등
Directory System cd => 자신이위치한디렉토리를바꾸는명령어 (Change Directory 의약자 ) mkdir => 새폴더만들기 ex) apple 이라는폴더를만들기위해서는 mkdir apple rm => 폴더 / 파일지우기 폴더를지우려면 -rf 옵션을부여. ex) apple 폴더를지우기위해선 rm -rf apple mv => 파일이동하기 ( 이름도수정가능 ) ex) mv main.c p01.c
Directory System Auto completion => 폴더나파일이름의일부만치고 tab 키를누르면자동으로완성됨 ex) rm -rf wa<tab> => rm -rf wallet/ Try it out! wallet 이라는폴더를만들고, 그아래 money 라는폴더를만들고, 홈폴더로다시간다음다지워보세요
Directory System / ~... 루트디렉토리로, 맨위에있는디렉토리 홈디렉토리로, /home/ 아이디에위치해있음 현재디렉토리 현재디렉토리의상위디렉토리
Directory System ls List 의약자로, 디렉토리안에있는파일들을보여줌, 명령어뒤에여러가지옵션을붙여서파일의다른속성들을보게할수도있음 -a => 숨김파일보여주기. 리눅스에서숨김파일은. 으로시작하는데 (ex..bash_profile 이라는파일은파일앞에. 이붙어서그냥은보이지않음 ), 이런숨김파일을볼수있게해줌 -l => 한줄에파일하나씩보여줘서파일의사이즈나소유권등을자세히보여줌 -h => 파일사이즈를읽기쉽게바이트가아니라킬로바이트, 메가바이트등의단위로보여줌
Directory System
vim 유구한역사의대표적인에디터 컴퓨터공학을공부하며계속사용하게될프로그램! 서버환경에서각종파일읽기, 수정용도로사용
vim 워드처럼마우스를사용해서특정기능을사용하는대신, 어떤 mode 로들어가서단축키를눌러기능을사용 NORMAL mode 기본으로처음켜면나오는모드. 복사, 붙여넣기, 검색등등의기능을사용가능. esc 키를눌러서진입 INSERT mode 텍스트를입력할수있는모드. 노말모드에서기본적으로 i 키를눌러서진입 VISUAL mode 워드에서마우스로드래그를하듯, 텍스트의특정부분을선택할수있도록하는모드
vim 처음에 vim 을켜면아무것도못하는황량한검정화면이등장 처음에는 Normal mode 진입을해서입력이불가능하며, 텍스트를입력하려면 Insert mode 로진입을해야함 리눅스설정과 vim 버전 / 설정에따라영어로되어있을수도있고한글로되어있을수도있음
vim 텍스트를입력하려면 Insert Mode 로들어가야하는데, 처음시작할때키보드의 i 키를누르면 Insert Mode 로들어감 Try it out! test.txt 파일을열어옆의가사를입력해보세요 완성후에는 esc 를눌러 Normal mode 로복귀한후, :wq 를눌러저장하고나가보기 :w 만입력하면저장만하고, :q 를입력하면끝내기, :q! 는저장하지않고끝내기에해당
vim ftp://ftp.vim.org/pub/vim/doc/book/vimbook-opl.pdf
gcc GNU Compiler Collection gcc main.c main.c 파일을컴파일하고 a.out 이라는실행파일을만든다. gcc main.c -o apple -o 옵션으로실행파일명을지정할수있다. 실행하기./ ( 실행파일명 ) 실행파일명앞에점하고슬래시입력
과제참고사항 입출력형식준수 gcc 컴파일러로컴파일이되나확인 실습서버가아닌다른환경에서개발한경우 FileZilla(SFTP) 같은 SSH 파일전송프로그램으로서버에업로드해서컴파일가능. vim 이불편한경우, notepad++ 같이원격으로코딩할수있는프로그램사용가능. 실습서버에서컴파일이안되는경우감점.
Warning It is necessary to submit every practice problems and assignment, otherwise you will get grade below B.
Practice Submission Submit the practice problems if they are not checked in the class time. Submit the solution code of practice problem 03(only 03!) by email. Make directories and a source code of practice problem 01, 02 in your home directory. hnkwak@bi.snu.ac.kr Mail title: prg_[student number]_practice02 prg_2014-12345_practice02 Submit single source file named p03.c Due to : 3/18(Wed) 23:59 pm
Assignment Submission Create a directory named assignment in you home directory. Create a directory named 02 in you assignment directory. Put your C files named p[# of problem].c for each problem. p01.c p02.c... Due to : 3/18(Wed) 23:59 pm Question : hnkwak@bi.snu.ac.kr
practice 01 directory Make some directories structured as following figure in your home directory. your home directory assignment project practice 02 03 04
practice 02 vim & gcc Create a file named hello.c in your home directory. Type the following codes in it, and then compile it using gcc. Executable file must be named sayhello. Run it and check the result. Hello World!! should be printed out. Find out the size of sayhello. #include <stdio.h> int main() { int a, b = 2, c = 3; a = 7 * (b + c); } if (a == 35) { printf( Hello World!!\n ); }
practice 03 operators A single integer is given through input. Print 10 if the given integer is greater than 5 and less than 15, otherwise print 0. Do not use any conditional statements (condition)? A : B if (condition) {... } else {... }
assignment 01 - operators Three real number are given through input separated by whitespaces. Output the b+b2 4ac 2abc sequence. [Input] 7.5 0.66 5 [Output] -3.034836 where a, b, c are those three real numbers in
assignment 02 - comments Clarify the following codes with some comments. Most people should be able to understand what the program does only by reading the comments. #include <stdio.h> int main() { int a, b, c; scanf( %d, &a); scanf( %d, &b); } c = (a*b == a + b); printf( %d, c);