PowerPoint 프레젠테이션

Similar documents
6주차.key

Microsoft PowerPoint - comp_prac_081223_2.pptx

/chroot/lib/ /chroot/etc/

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인


chap2

강의10

PowerPoint 프레젠테이션

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

01Àå

슬라이드 1

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

28 THE ASIAN JOURNAL OF TEX [2] ko.tex [5]

untitled

LXR 설치 및 사용법.doc

untitled

제2장 유닉스 사용

untitled

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

초보자를 위한 C++

휠세미나3 ver0.4

2008

PowerPoint 프레젠테이션

Sena Technologies, Inc. HelloDevice Super 1.1.0

Computer Programming (2008 Fall)

Microsoft PowerPoint - System Programming Lab Week1.ppt [호환 모드]

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

DE1-SoC Board

vi 사용법

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

Microsoft PowerPoint - 01_1_Linux_Unix_기초.ppt [호환 모드]

Microsoft PowerPoint - u4.pptx

PowerPoint 프레젠테이션

컴파일러

MySQL-Ch10

제2장 리눅스 사용

PowerPoint 프레젠테이션

Microsoft PowerPoint - 02-Shell-Programming

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

<4D F736F F F696E74202D20BFEEBFB5C3BCC1A6BDC7BDC D31C7D0B1E229202D20BDA92E BC8A3C8AF20B8F0B5E55D>

13주-14주proc.PDF

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder

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

MPLAB C18 C

PowerPoint 프레젠테이션

Orcad Capture 9.x

OCW_C언어 기초

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PRO1_09E [읽기 전용]

Mango220 Android How to compile and Transfer image to Target

MAX+plus II Getting Started - 무작정따라하기

슬라이드 1

Solaris Express Developer Edition

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Remote UI Guide

Microsoft PowerPoint - 기계공학실험1-1MATLAB_개요2D.pptx

PowerPoint 프레젠테이션

리눅스 프로세스 관리

PowerPoint 프레젠테이션

USER GUIDE

PRO1_02E [읽기 전용]

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

본 강의에 들어가기 전

10.

DocsPin_Korean.pages

PowerPoint 프레젠테이션

Copyright 2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A..,,. Sun. Sun. Berkeley BSD. UNIX X/Open Company, Ltd.. Sun, Su

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

ETL_project_best_practice1.ppt

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint APUE(Intro).ppt

PCServerMgmt7

歯J PDF

Abstract View of System Components

K7VT2_QIG_v3

C# Programming Guide - Types

PowerPoint 프레젠테이션

DW 개요.PDF

Microsoft PowerPoint - [2009] 02.pptx

4 CD Construct Special Model VI 2 nd Order Model VI 2 Note: Hands-on 1, 2 RC 1 RLC mass-spring-damper 2 2 ζ ω n (rad/sec) 2 ( ζ < 1), 1 (ζ = 1), ( ) 1

CD-RW_Advanced.PDF

FMX M JPG 15MB 320x240 30fps, 160Kbps 11MB View operation,, seek seek Random Access Average Read Sequential Read 12 FMX () 2

Microsoft PowerPoint - 07-EDU-LinuxCommand-4.ppt

Microsoft Word - Lab_080104A.docx

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

GNU/Linux 1, GNU/Linux MS-DOS LOADLIN DOS-MBR LILO DOS-MBR LILO... 6

Microsoft PowerPoint UNIX Shell.ppt

PRO1_04E [읽기 전용]

PowerPoint 프레젠테이션

Mango-AM335x LCD Type 커널 Module Parameter에서 변경하기

PowerPoint 프레젠테이션

OCW_C언어 기초

김기남_ATDC2016_160620_[키노트].key

C 언어 프로그래밊 과제 풀이

Secure Programming Lecture1 : Introduction

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

Microsoft PowerPoint UNIX Shell.pptx

1. exit logout 하는 command 는아주간단하다. exit 을커맨드에서입력하고 return 키를누르면 logout 된다. 2. ls & command option 현재 directory 에서 file 의 list 를보는명령어, 즉 DOS 에서의 dir 에해

Transcription:

What Linux is 2013. 08. 22 ~ 2013. 08. 23, UNIST 슈퍼컴퓨팅센터 GNU/Linux 박상민 UNIST 슈퍼컴퓨팅센터 sminpark@unist.ac.kr

History ENIAC 1. Simple and elegant 2. Written in the C programmin g language instead of assem bly code 3. Able to recycle code Linus Torvalds 2013-08-21 UNIST 슈퍼컴퓨팅센터 2

Thanks, Richard *Richard Stallman announces GNU. Richard Stallman, a programmer at MIT s Artif icial Intelligence Lab, experienced a significan t shift in attitudes during the late 1970s. Whe reas the MIT hacker culture was one of sharin g and openness, the commercial software wo rld moved towards secrecy and access to sou rce code became ever more restricted. Richard Stallman Stallman set out to develop a free alternative to the popular Unix operating syste m. This operating system called GNU (for Gnu's Not Unix) was going to be free o f charge but also allow users the freedom to change and share it. Stallman found ed the Free Software Foundation (FSF) based on this philosophy in 1985. While the GNU work did not immediately result in a full operating system, it pro vided the necessary tools for creating Linux. The software developed as part of t he GNU project continues to form a large part of Linux, which is why the FSF ask s for it to be called GNU/Linux. 2013-08-21 UNIST 슈퍼컴퓨팅센터 3

Linux OS in TOP500 2013-08-21 UNIST 슈퍼컴퓨팅센터 4

Installation Pre-requisites Hardware Desktop PC Workstation / Server Virtual Machine Software GNU/Linux image RHEL, CentOS, Fedora, Ubuntu, Suse, etc. 2013-08-21 UNIST 슈퍼컴퓨팅센터 5

Linux Structure KERNEL 운영체제의핵심 시스템자원들을관리하는부분 Shell 명령어해석기 사용자와시스템간의명령의전달 File System 계층구조를이루고있음 정보들을저장할수있는장소 여러유저가하나의시스템을공유할수있도록설계 2013-08-21 UNIST 슈퍼컴퓨팅센터 6

Basic Concept Log in Linux 시스템을사용하기위해서는 Linux account(id) 와비밀번호를가지고시스템에로그인해야한다. Linux 2.6.32-220.el6 (lion) Lion login: smpark Password: Last login: Fri Aug 16 11:03:08 2013 from 10.12.8.191 [smpark@lion ~]$ Caution! Don t login as root unless you should Use su command to switch users to root 2013-08-21 UNIST 슈퍼컴퓨팅센터 7

Basic Concept User Users are identified by user identifications(uids) UID is associated with an integer in the range of 0 to 4294967295 UID=0 are given superuser privileges. Users are placed in groups, identified by group identifications(gids) Integer range of GID is same as UIDs 2013-08-21 UNIST 슈퍼컴퓨팅센터 8

Basic Concept Group Groups define functional areas/responsibilities They allow a collection of users to share files A user can belong to multiple groups You can see what groups you belong to using the groups command: 2013-08-21 UNIST 슈퍼컴퓨팅센터 9

Basic Concept adding new user useradd 명령어를이용 passwd 명령어를이용하여비밀번호설정 [root@lion]# useradd ryu [root@lion]# passwd ryu Changing password for user ryu New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully [root@lion]# 2013-08-21 UNIST 슈퍼컴퓨팅센터 10

What Linux is 2013. 08. 22 ~ 2013. 08. 23, UNIST 슈퍼컴퓨팅센터 File System

File System Linux 파일들은하나의루트 (root) 에저장된다. 루트하위에계층적으로파일시스템들이존재한다. directories / root home etc usr ryu smpark p001psd passwd inittab user home directories A B 2013-08-21 UNIST 슈퍼컴퓨팅센터 12

Structure of Linux 2013-08-21 UNIST 슈퍼컴퓨팅센터 13

Special Files /home 모든사용자의 home 디렉터리가저장됨 /bin, /usr/bin 시스템명령어위치 /sbin, /usr/sbin 시스템관리자가사용하는명령어위치 /etc 모든종류의설정파일들이위치 /var logs, spool 디렉터리등이위치 /dev 디바이스 (device) 파일위치 /proc 특별한시스템파일이위치 2013-08-21 UNIST 슈퍼컴퓨팅센터 14

File Permissions #1 Every file 누군가가소유 (own) 하고, 그룹에소속되어있으며, 소유자 (owner), 그룹 (group), 다른사용자 (others) 를위한특정한접근권한을갖고있다. Every user uid(login name) 와 gid(login group) 를가지며, 어떤 group 에속한사용자는 group 권한에따라 group 에속한파일에접근할수있다. 2013-08-21 UNIST 슈퍼컴퓨팅센터 15

File Permissions #2 Linux 는 3 가지형태의권한을제공한다. Read 읽기 (read) 권한을가진사용자는파일이나디렉터리리스트를읽을수있다. Write 쓰기 (write) 권한을가진사용자는파일쓰기가가능하고, 디렉터리에새로운파일을추가할수있다. Execute 실행 (execute) 권한을가진사용자는파일을실행시키는것이가능하며, 디렉터리내에있는파일을볼수있다. $ ls -l -rw-r--r-- 1 pedun60 pe0038 10240 Feb 8 09:40 all.tar -rw-r--r-- 1 pedun60 pe0038 156 Feb 8 09:50 all.tar.gz -rw-r--r-- 1 pedun60 pe0038 0 Feb 8 09:20 b -rw-r--r-- 1 pedun60 pe0038 0 Feb 8 09:20 g -rw-r--r-- 1 pedun60 pe0038 0 Feb 8 09:20 r Permissions Owner Group 2013-08-21 UNIST 슈퍼컴퓨팅센터 16

File Permissions #3 -rwxrwxrwx Other permissions Group permissions Owner permissions Directory flag (d=directory; l=link) 2013-08-21 UNIST 슈퍼컴퓨팅센터 17

File Permissions #4 chmod 파일권한변경 User Group Other Read Write execute Read Write execute Read Write execute r w x r w x r w x 400 200 100 40 20 10 4 2 1 chmod 755 file chmod 500 file2 chmod 644 file3 chmod +x file chmod u-r file chmod a+w file # Owner=rwx Group=r-x Other=r-x # Owner=r-x Group=--- Other=--- # Owner=rw- Group=r-- Other=r-- # Add execute permission to file for all # Remove read permission for owner # Add write permission for everyone 2013-08-21 UNIST 슈퍼컴퓨팅센터 18

Starting X-windows GUI 2013-08-21 UNIST 슈퍼컴퓨팅센터 19

What Linux is 2013. 08. 22 ~ 2013. 08. 23, UNIST 슈퍼컴퓨팅센터 Linux Command

Linux Commands Linux 명령어의실행을위해서는, command line 에서명령어와 argument 를입력하면된다. Linux 명령어는다양한옵션을사용할수있다. ls l /home Command name Options(flags) Arguments 2013-08-21 UNIST 슈퍼컴퓨팅센터 21

Special Characters Characters / 디렉터리구분. 현재디렉터리 (Current directory).. 한단계상위디렉터리 (Parent directory) ~ 사용자홈디렉터리 Description * 파일, 디렉터리에서 0 또는그이상의 character 표현 ( 예 ) $ ls pic*2012? 파일이름에서단하나의 character 표현 ( 예 ) $ ls hello?.txt & 입력된명령어를 background에서작동하도록한다. 즉시 shell로돌아오기때문에다른작업을할수있다. ( 예 ) $ walk.x > walk.out & ; 명령어구분, 명령어여러개를동시실행 ( 예 ) $ cal ; ls ; date && 위의 ; 와비슷하나, && 는첫번째명령이완료된후에두번째명령이실행 >, < Redirection >> Redirection 을존재하는파일의끝부분에추가 2013-08-21 UNIST 슈퍼컴퓨팅센터 22

Primary Linux Commands ls 디렉터리내의파일목록을보여줌 옵션 의 미 -a 모든파일보기 -l 자세히보기 -k 파일의크기를 KB 단위로보기 -R 하위디렉터리의파일까지보기 -h 파일크기단위로보기 cat text 파일의내용을스크린에보여줌 $ cat memo This is a small file I made. 2013-08-21 UNIST 슈퍼컴퓨팅센터 23

Primary Linux Command rm 파일이나디렉터리삭제 옵션 의 미 -i 삭제할때확인 -f 강제로삭제 -r 디렉터리삭제시하위디렉터리및파일까지 모두삭제 -v rm 명령어진행과정출력 less/more text 파일내용을스크린에출력 ( 페이지단위출력 ) less와 more는내용이긴파일을확인할때용이하며, 둘다거의유사한기능을제공 차이점 : less는파일끝에서 END 메시지를보여주며기다림. q 입력하여종료. more는바로 shell로빠져나감. 2013-08-21 UNIST 슈퍼컴퓨팅센터 24

Primary Linux Command cp 파일복사 $ ls memo $ cp memo memo.copy $ ls memo memo.copy * 주의 : cp 명령으로복사할때, destination-file( 복사본파일명 ) 이이미존재하면, 파일을덮어써버린다. $ cp i orange orange.2 cp: overwrite orange.2? y 2013-08-21 UNIST 슈퍼컴퓨팅센터 25

Primary Linux Command mv 파일, 디렉터리의이름을바꾸거나위치변경 $ ls memo $ mv memo memo.2012 $ ls memo.2012 head 파일의첫부분출력 tail 파일의끝부분출력 wc 줄또는단어개수출력 -l : 라인개수 -w : 단어개수 2013-08-21 UNIST 슈퍼컴퓨팅센터 26

Primary Linux Command grep 매칭되는문자열검색 $ cat memo Stallman set out to develop a free alternative to the popular Unix operating system. This operating system called GNU (for Gnu's Not Unix) was going to be free of charge but also allow users the freedom to change and share it. $ grep GNU memo GNU (for Gnu's Not Unix) was going to be free of charge but 참고 만약, 위 memo 라는파일에 GNU/Linux, GNU 등의단어가포함되어있다면, grep 은이단어들이포함된모든라인을출력해준다. 2013-08-21 UNIST 슈퍼컴퓨팅센터 27

Primary Linux Command (PIPE) 명령어간의 communication 어떤명령어의결과가다른명령어의입력이되도록함 $ cat months grep Feb Feb echo command line 에입력한내용을스크린에출력 $ echo hello world hello world pwd 현재위치 ( 디렉터리 ) 를출력 $ pwd /home/smpark 2013-08-21 UNIST 슈퍼컴퓨팅센터 28

Primary Linux Command mkdir 새로운디렉터리를생성 rmdir 디렉터리를삭제 참고 : 디렉터리삭제는 rm r 도가능 tar file 을묶거나풀어줌 옵션 c x u r v f t z j C 의미 Creat a tar file Extract the contents of tar file Update Replace Verbose output Specify a file name Display a table of contents for the archive Use gzip compression Use bzip2 compression Change directory 2013-08-21 UNIST 슈퍼컴퓨팅센터 29

Primary Linux Command tar examples $ ls l r g b -rw-r--r-- 1 pedun60 pe0038 0 Feb 8 09:20 b -rw-r--r-- 1 pedun60 pe0038 0 Feb 8 09:20 g -rw-r--r-- 1 pedun60 pe0038 0 Feb 8 09:20 r $ tar cvf all.tar r g b r g b $ tar czf all.tar.gz r g b (use gzip) $ ls all.tar all.tar.gz b g r $ tar xvf all.tar $ tar xzvf all.tar.gz r g b $ tar xzvf all.tar.gz C./rgb/ 2013-08-21 UNIST 슈퍼컴퓨팅센터 30

Primary Linux Command which / whereis 명령어의위치를보여준다 $ which tar /bin/tar $ whereis tar tar: /bin/tar /usr/include/tar.h /usr/share/man/man1/tar.1.gz locate 파일찾기 $ locate motd /etc/motd /etc/news/motd.news /lib/security/pam_motd.so /lib64/security/pam_motd.so /usr/share/doc/inn-2.4.3/samples/motd.news 2013-08-21 UNIST 슈퍼컴퓨팅센터 31

Primary Linux Command find 파일찾기 하드디스크의파일 ( 파일명, 디렉터리명 ) 을찾는명령어 Syntax find [directory-list] [option] [expression] $ find /home/smpark name *.c /home/smpark 디렉터리또는그하위디렉터리에서.c 로끝나는파일을찾아보여줌 $ find / -name et* type d / 에서 et 로시작되는모든디렉터리를찾아보여줌 $ find /phome01/pedun60 name *.c ls /home/smpark 디렉터리또는그하위디렉터리에서.c 로끝나는파일을찾아 ls 형식으로보여줌 2013-08-21 UNIST 슈퍼컴퓨팅센터 32

Redirection 명령어나프로그램의결과를스크린에보여주는것처럼파일로방향전환을하는기능 파일의입력또는출력으로사용 명령의결과를다른명령의입력으로사용가능 프로그램의결과를파일로출력 $ walk.x > walk.out $ cal > Feb.txt 파일의내용을명령의입력으로사용 $ walk.x < input.walk > walk.out $ mail steve < letter 2013-08-21 UNIST 슈퍼컴퓨팅센터 33

Process Management Linux 시스템에서는모든 process, daemon 들이 PID(process ID) 라불리는고유한 ID 를갖고있음. 사용되지않는 process 를정리해서시스템관리실시 관련 commands ps 실행중인 process 확인 $ ps PID TTY TIME CMD 17379 pts/1 00:00:00 bash 18707 pts/1 00:00:00 ps ps ef : 표준문법을사용하여시스템에작동하는모든프로세스확인 $ ps ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 2011? 00:00:04 init [5] root 2 1 0 2011? 00:00:04 [migration/0] root 3 1 0 2011? 00:00:00 [ksoftirqd/0] 2013-08-21 UNIST 슈퍼컴퓨팅센터 34

Process Management $ ps ef grep smpark root 19414 25061 0 14:34? 00:00:00 sshd: smpark [priv] smpark 19416 19414 0 14:34? 00:00:00 sshd: smpark@pts/1 smpark 19417 19416 0 14:34 pts/1 00:00:00 -bash smpark 19470 19417 0 14:34 pts/1 00:00:00 ps -ef smpark 19471 19417 0 14:34 pts/1 00:00:00 grep smpark top 시스템에서실행되는 process 를실시간으로확인 $ top top - 14:39:28 up 165 days, 20:06, 1 user, load average: 0.19, 0.06, 0.02 Tasks: 168 total, 1 running, 167 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 99.7%id, 0.2%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 8245996k total, 6754796k used, 1491200k free, 268052k buffers Swap: 16779884k total, 194848k used, 16585036k free, 5783228k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 4921 loadl 15 0 166m 6696 4892 S 0.7 0.1 64:24.80 LoadL_startd 19679 smpark 15 0 10860 1068 760 R 0.3 0.0 0:00.45 top 2013-08-21 UNIST 슈퍼컴퓨팅센터 35

Process Management kill process 죽이기 Syntax : kill [option] PID-list $ sleep 20 & [1] 20307 $ ps PID TTY TIME CMD 19417 pts/1 00:00:00 bash 20307 pts/1 00:00:00 sleep 20308 pts/1 00:00:00 ps $ kill 20307 [1]+ Terminated sleep 20 $ 2013-08-21 UNIST 슈퍼컴퓨팅센터 36

Alias alias 는복잡하거나길이가긴명령어를 ( 일반적으로짧은 ) 이름으로연결하여 shell 작동하게해준다 $ alias alias ll='ls -l --color=tty' alias ls='ls --color=tty' alias 설정은보통사용자의환경설정파인.bashrc (bash),.tcshrc(c shell) 에서포함하여주면된다. $ vi ~/.bashrc alias golion= ssh smpark@10.0.7.40 $ source ~/.bashrc 2013-08-21 UNIST 슈퍼컴퓨팅센터 37

What Linux is 2013. 08. 22 ~ 2013. 08. 23, UNIST 슈퍼컴퓨팅센터 Vi Editor

Vi Editor #1 Early form of word processing Not especially easy to use However, exists on all UNIX/LINUX systems Approximately 100 commands 2013-08-21 UNIST 슈퍼컴퓨팅센터 39

Vi Editor #2 파일열기 $ vi filename (edit mode) ( 예 ) $ vi memo $ view filename (read-only mode) ( 예 ) $ view memo modes 입력모드 입력하는모든것이편집버퍼에입력됨 입력모드에서빠져나오기 (to 명령모드 ) : ESC key 명령모드 입력하는모든것이명령어로해석됨 ( 파일열기 / 닫기, 쓰기, 문자열찾기 / 치환, 복사등 ) 2013-08-21 UNIST 슈퍼컴퓨팅센터 40

Vi Editor #3 Insert, Append, Open, Replace, Change Command mode ESCAPE Colon(:) RETURN Last Line mode Input mode 2013-08-21 UNIST 슈퍼컴퓨팅센터 41

Vi Editor #4 moving the cursor Moving the Cursor(Command Mode) 기본단위커서이동 H 커서를한문자왼쪽으로이동 J 커서를아래줄같은컬럼으로이동 K 커서를위줄같은컬럼으로이동 L 커서를한문자오른쪽으로이동 <Enter> 커서를한문자오른쪽으로이동방향키화면단위커서이동 H M L 화면의맨위쪽으로커서이동 화면의중간줄로커서이동 화면의맨아래줄로커서이동 2013-08-21 UNIST 슈퍼컴퓨팅센터 42

Vi Editor #5 단어, 문장, 절단위이동 W 다음단어의첫문자로커서이동 b 커서가위치한앞방향의단어로커서이동 e 커서가위치한단어의끝으로커서이동 ) 다음문장으로커서이동 } 다음절로커서이동 ( ) 와반대 { } 와반대 0 현재줄의첫문자로커서이동 ^ 현재줄의처음으로커서이동 ( 탭이나공백이아닌 ) $ 현재줄의마지막으로커서이동 2013-08-21 UNIST 슈퍼컴퓨팅센터 43

Vi Editor #6 Ctrl + F 한화면아래로이동 Ctrl + B 한화면위로이동 Ctrl + D 반화면아래로이동 Ctrl + U 반화면위로이동 :$ 마지막줄로이동 G ng : 줄번호 n 으로이동 1G : 편집버퍼의첫줄로이동하기 G : 편집버퍼의마지막줄로이동하기 2013-08-21 UNIST 슈퍼컴퓨팅센터 44

Vi Editor #7 input mode 데이터첨가, 삽입, 치환, 해제 a 현재커서위치오른쪽부터데이터첨가 i 현재커서위치의왼쪽부터데이터첨가 o 현재줄아래줄을공백줄로만듦 A 현재줄의마지막에데이터첨가 I 현재줄의첫문자앞에문자삽입 O 현재줄의위줄을공백줄로만듦 r 현재커서가위치한한문자치환 R 현재커서위치에서 <esc> 키를칠때까지문자치환 cw 현재커서위치의단어를다른단어로치환 C 현재커서의위치부터그줄의마지막까지치환 s 현재커서의문자를치환 S 현재커서의줄을치환 cc 현재커서가위치한줄을다른내용으로치환 ~ 현재커서위치의한문자를소문자, 대문자로전환 <ESC> 데이터입력모드에서벗어남 2013-08-21 UNIST 슈퍼컴퓨팅센터 45

Vi Editor #8 데이터삭제 x X dw db dd D 현재커서가위치한한문자삭제현재커서가위치한앞문자를삭제현재커서가위치한오른쪽단어삭제현재커서가위치한왼쪽단어삭제현재커서가위치한줄삭제현재커서가위치한곳에서오른쪽의내용삭제 명령의취소및반복 u 바로앞의행한명령취소 U 한줄내에서행한명령취소. 바로앞에행한명령재수행 2013-08-21 UNIST 슈퍼컴퓨팅센터 46

Vi Editor #9 데이터이동과복사 yw yy ny p P 현재커서가위치한단어를버퍼에복사 현재줄이버퍼에복사 10yy : 10 줄을복사 현재커서위치로부터 n 줄만큼복사 현재커서오른쪽또는아래줄에버퍼내용복사 현재커서의왼쪽또는위줄에버퍼내용복사 줄의결합 J 현재줄과다음줄을연결 2013-08-21 UNIST 슈퍼컴퓨팅센터 47

Vi Editor #10 command mode vi 종료 :x ZZ :wq :wq 파일명 :q! 파일을디스크에저장한후 vi를벗어난다파일을디스크에저장한후 vi를벗어난다기존파일명을새로운파일명에저장하고 vi 벗어남파일을디스크에저장하지않고 vi에서벗어남 기타명령어 :set nu :set nonu vi 상태에있는파일에줄번호를부여 파일에있는줄번호취소 2013-08-21 UNIST 슈퍼컴퓨팅센터 48

Vi Editor #11 vi 옵션들 -t tag tag 를포함하는파일과위치에편집 -r 파일명지정한파일을복구 -Wn 생략시의윈도우크기를 n 으로한다 -R 읽기전용모드 ( 파일의 overwrite 방지 ) + 명령어 편집전에지정한 ex 명령어수행 -L 모든파일의이름이출력 -C 명령어 지정된편집기의명령어를실행함으로써편집시작 view 파일명 파일을 vi의읽기전용모드로화면에표시 vi file1 file2 파일편집을위해 2개파일을 vi로부른다. 2013-08-21 UNIST 슈퍼컴퓨팅센터 49

Vi Editor #12 검색관련키 / 검색어커서가위치한행포함아래로해당검색어검색? 검색어커서가위치한행포함위로해당검색어검색 n or / 커서의위치를검색한검색어의다음위치로이동 N 커서의위치를검색한검색어의이전위치로이동 파일관련명령어 :w 파일명 변경한파일내용저장 (:w 파일명 해당파일명으로저장 ) (1,5w 파일명 1-5 행까지해당파일로저장 ) :q vi 종료 :e 파일명 :r 파일명 vi 실행후특정파일을불러들여편집 :e# 편집했던이전파일을다시연다 특정파일을불러들임 (1,5r 파일명 해당파일의 1-5 행까지만불러들임 ) 2013-08-21 UNIST 슈퍼컴퓨팅센터 50

Vi Editor #13 :s/pattern/replace :%s/old/new/g :%s/^old/new/g :%s/old$/new/g :%s/aaa//g :10,50s/old/new/g 치환관련명령 현재줄에서치환 파일내의특정단어를새로운단어로치환 ( 문장치환시해당문장을 로묶음 ) 파일내의특정단어로시작하는단어만새로운단어로치환 ( 해당단어가중간에포함된단어제외 ) 파일내의특정단어로끝나는단어만새로운단어로치환 ( 해당단어가중간에포함된단어제외 ) 파일내의 aaa 라는단어를삭제 ( 문장삭제시해당문장을 으로묶음 ) 파일내의 10 행에서 50 행사이의특정단어를새로운단어로치환 ( 문장치환시해당문장을 로묶음 ) 2013-08-21 UNIST 슈퍼컴퓨팅센터 51

Vi Editor #14 vi 환경에서 shell 명령수행 명령모드에서 :! 을입력하고원하는 shell 명령어입력 :!ls :!pwd Shell 로돌아가 ls 명령수행 현재작업 directory 보여줌 명령을수행한뒤 (enter 를치면 ) vi 편집기 ( 명령모드 ) 로복귀 2013-08-21 UNIST 슈퍼컴퓨팅센터 52

Vi Editor #8 2013-08-21 UNIST 슈퍼컴퓨팅센터 53

Other Useful Applications Yum Gnuplot Xterm LibreOffice/OpenOffice/NeoOffice/Office Web Apps GIMP/InkScape/Blender Audacity 2013-08-21 UNIST 슈퍼컴퓨팅센터 54

What Linux is 2013. 08. 22 ~ 2013. 08. 23, UNIST 슈퍼컴퓨팅센터 Programming on the Linux System

Programming Find problems Make algorithms Open editor vi, emacs, gedit, etc. Write the codes Matrix multiplication Pi calculation Random walk 2013-08-21 UNIST 슈퍼컴퓨팅센터 56

Compiling #1 개요 컴파일의의미 사용자가작성한소스코드를컴퓨터가실행가능하도록바이너리화하는과정. 큰의미에서는이미작성해놓은라이브러리를포함시키는것까지포함. 컴파일러 컴파일작업을수행해주는역할을한다. 사용하는언어의종류에따라표준화되어있으며, 제작업체별로여러가지버전이존재한다. 대표적인 C 컴파일러 icc (Intel), xlc (IBM), gcc (GNU) 대표적인 Fortran 컴파일러 ifort (Intel), xlf (IBM), gfortran (GNU) 2013-08-21 UNIST 슈퍼컴퓨팅센터 57

Compiling #2 환경설정 환경변수확인 Execution platforms ONLY Execution platform 중한가지시스템으로로그인되어있어야함 사용자가원하는컴파일러가사용할준비가되었는지확인 Ex) which gcc 특히 MPI 라이브러리를사용할경우필요한라이브러리를 load 해서환경설정해야함 export PATH=/opt/mpi/intel/bin:$PATH export LD_LIBRARY_PATH=/opt/mpi/intel/lib:$LD_LIBRARY_PATH Environment module toolbox 이용가능 2013-08-21 UNIST 슈퍼컴퓨팅센터 58

Compiling #3 Sequential code OpenMP 지시어나 MPI 라이브러리를사용하지않는일반적인사용자코드컴파일 Platform 별바이너리호환이되지않으므로반드시해당 platform 으로로그인하여수행함 컴파일러종류 다양한컴파일러가설치되어있으므로사용자의용도에맞게선택 Fortran : xlf, ifort, gfortan C : xlc, icc, gcc C++ : xlc, ifort, g++ 컴파일러사용예 $ ifort o exam exam.f90 2013-08-21 UNIST 슈퍼컴퓨팅센터 59

Compiling #4 OpenMP code OpenMP 지시어가포함된사용자코드컴파일 Platform 별바이너리호환이되지않으므로반드시해당 platform 으로로그인하여수행함 컴파일러종류 다양한컴파일러가설치되어있으므로사용자의용도에맞게선택 Fortran : xlf,_r, ifort -openmp, gfortan fopenmp C : xlc_r, icc -openmp, gcc fopenmp C++ : xlc_r, ifort -openmp, g++ -fopenmp 컴파일러사용예 $ ifort o exam openmp exam.f90 2013-08-21 UNIST 슈퍼컴퓨팅센터 60

Compiling #5 MPI code MPI 라이브러리를사용하여작성한사용자코드컴파일 Platform 별바이너리호환이되지않으므로반드시해당 platform 으로로그인하여수행함 컴파일러종류 다양한컴파일러가설치되어있으므로사용자의용도에맞게선택 Fortran : mpif77, mpif90 C : mpicc C++ : mpicc 컴파일러사용예 $ mpif90 o exam exam.f90 2013-08-21 UNIST 슈퍼컴퓨팅센터 61

Random walk on 1D #include <stdio.h> #include <stdlib.h> #define N 3 #define step 1000 int main(){ int i,j,x[step][n]; double rn; } for(i=0;i<step;i++) for(j=0;j<n;j++){ x[i][j] = 0; } srand48(time(null)); for(i=1;i<step;i++){ for(j=0;j<n;j++){ rn = drand48(); } if(rn<0.5)x[i][j]=x[i-1][j]-1; else x[i][j]=x[i-1][j]+1; } printf("%d\t%d\t%d\t%d\n", i,x[i][0],x[i][1],x[i][2]); program random_walk integer,parameter :: N=3, STEP=1000 integer,dimension(0:step,n) :: x integer :: i,j real :: rnd call random_seed() call random_number(rnd) x(0,:)=0 do i=1,step do j=1,n call random_number(rnd) if(rnd<0.5) then x(i,j)=x(i-1,j)+1 else x(i,j)=x(i-1,j)-1 endif enddo print*,i,x(i,:) enddo end program random_walk 2013-08-21 UNIST 슈퍼컴퓨팅센터 62

Compiling Compiler 사용을위한환경설정 직접환경설정 스크립트이용 module 이용.bashrc 파일에추가 Compile ifort random.f90(fortran), icc random.c (c) Execution $./random.x > walk.out $ head walk.out # STEP N= 1 N= 2 N= 3 N= 4 N= 5 1-1 -1-1 1 1 2 0 0 0 2 0 3 1 1-1 3 1 4 0 0 0 4 2 5 1 1 1 5 1 2013-08-21 UNIST 슈퍼컴퓨팅센터 63

Visualization 결과그리기 $ gnuplot gnuplot> plot walk.out u 1:2 w l, walk.out u 1:3 w l, \ walk.out u 1:4 w l, walk.out u 1:5 w l, \ walk.out u 1:5 w l, walk.out u 1:6 w l gnuplot> 2013-08-21 UNIST 슈퍼컴퓨팅센터 64

Pi Calculation using Integration Problem Get PI value using numerical integration 1 4 dd = π 1 + x2 0 f ( x 1 ) f ( x 2 ) f ( x n ) Requirement n π 4 i= 1+ (( i 0.5) 1 ) n 1 2 1 n 1 n... x = (2 0.5) 1 x1 = (1 0.5) n 2 1 n 1 x n = ( n 0.5) n 2013-08-21 UNIST 슈퍼컴퓨팅센터 65

Pi Calculation #include <stdio.h> #include <math.h> int main() { const long num_step=100000000; long i; double sum, step, pi, x; step = (1.0/(double)num_step); sum=0.0; printf( -----------------------------------------------------------\n ); for (i=0; i<num_step; i++) { x = ((double)i - 0.5) * step; sum += 4.0/(1.0+x*x); } pi = step * sum; printf( PI = %5lf (Error = %e)\n, pi, fabs(acos(-1.0)-pi)); printf( -----------------------------------------------------------\n ); return 0; } 2013-08-21 UNIST 슈퍼컴퓨팅센터 66

Pi Calculation PROGRAM Pi_cal3 IMPLICIT NONE!! Number of count INTEGER(KIND=8), PARAMETER :: num_step=100000000 INTEGER(KIND=8) :: i DOUBLE PRECISION :: pi WRITE(*,200) pi = 0.0d0 DO i=0, num_cnt-1 pi = pi + 4.0d0 * (dble(-1)**i/ dble(2*i+1)) ENDDO WRITE(*, 100) pi, dabs(dacos(-1.0d0)-pi) WRITE(*, 200) 100 FORMAT( PI =, F17.15, (Error =, E11.5, ) ) 200 FORMAT( --------------------------------------------------- ) STOP END PROGRAM 2013-08-21 UNIST 슈퍼컴퓨팅센터 67

What Linux is 2013. 08. 22 ~ 2013. 08. 23, UNIST 슈퍼컴퓨팅센터 Shell Programming

Shell #1 introduction 목적 Unix/Linux 시스템의기본명령어를반복적으로사용하고자할때유용하게사용 Shell script 는 shell 에서제공하는기능을순차적으로사용하기위하여프로그램처럼동작하도록 script 로만드는것 필요에따라서 shell 용연산자와옵션들을사용할수있음 주요 shell bash(bourne-again Shell) ksh(korn Shell) csh(c shell) 2013-08-21 UNIST 슈퍼컴퓨팅센터 69

Shell #2 introduction Shell script 작성 시스템콜, 여러프로그래밍도구, 유틸리티, 실행파일등을묶어서작성 모든종류의 Unix/Linux 명령어, 유틸리티, 도구사용가능 분기문또는순환문등의 shell 내부명령어를사용가능 Shell script 실행권한 Shell script 파일실행을위해서는읽기 / 실행권한을가져야함 실행권한이없고읽기권한이있는경우에는 sh filename.sh 와같이 s h 명령을통해실행이가능 읽기권한이없는경우는 script 내용을읽을수없기때문에실행자체가불가능 Shell script 구조 첫줄에사용하고자하는 shell 명시 ( 예 ) #!/bin/bash) 실행부분 ( 실제적인프로그래밍부분 ) 프로그램종료를위해 exit 0( 생략가능 ) 2013-08-21 UNIST 슈퍼컴퓨팅센터 70

Shell #3 Examples #!/bin/bash echo hello exit 0 $ sh hello.sh hello $ $ ls -rw-r--r-- 1 pedun60 pe0038 32 Feb 9 13:34 hello.sh $./hello.sh -bash:./hello.sh: Permission denied $ chmod a+x hello.sh $ ls -rwxr-xr-x 1 pedun60 pe0038 32 Feb 9 13:34 hello.sh $./hello.sh hello $ 2013-08-21 UNIST 슈퍼컴퓨팅센터 71

Shell #4 script 성공 / 실패확인 Shell script 성공 / 실패확인 명령어실행이성공하면 $? 에숫자 0 이저장된다. 명령어실행이실패한경우에는종료상태값이 $? 에저장된다. 명령어실행의성공여부에따라다른동작을하게만들고자할때유용하게사용할수있다. Example #!/bin/bash echo hello echo $? ech hello echo $? exit 0 2013-08-21 UNIST 슈퍼컴퓨팅센터 72

Shell #5 주석 주석 (comment) # 으로시작하는줄은주석으로처리 # 다음부분부터주석처리 단, #! 은사용 shell 을나타내므로주석처리되지않음 Example #!/bin/bash # print hello echo hello echo $? # success, $? is 0 ech hello echo $? # failure, $? is not 0 exit 0 2013-08-21 UNIST 슈퍼컴퓨팅센터 73

Shell #6 명령어구분자 Shell script 명령어구분자 한줄에 2 개이상의명령어를사용하고자할때, 세미콜론 (;) 을사용하여명령어구분 2 중세미콜론 (;;) 은 case 문의종료를나타냄 Example #!/bin/bash # print hello echo hello; echo world echo $? # success, $? is 0 ech hello echo $? # failure, $? is not 0 exit 0 2013-08-21 UNIST 슈퍼컴퓨팅센터 74

Shell #7 변수할당과치환 Shell script 에서의변수 변수이름이 variable 이라면변수의값은 $variable 로표현 variable 에값을할당할때는 = 연산자를사용 ( 예 ) variable=0 최초변수타입은꼭정해져있지않아, 변수할당시그값의타입에따라변수타입이정해짐 타입다른변수간의할당이나연산은하지않는것이좋음 Example #!/bin/bash variable1=world echo hello $variable1 variable2=$? echo $variable2 # success, $? is 0 exit 0 2013-08-21 UNIST 슈퍼컴퓨팅센터 75

Shell #8 변수할당연산자 Shell script 에서의변수할당 변수값을초기화하거나변경 Shell 에서는산술식과문자열을할당해주는역할을모두수행함 할당연산자앞에는빈칸이들어가서는안됨 테스트문에서사용되는비교연산자와는다른의미 Example #!/bin/bash color=red number=12 echo $number apples are $color exit 0 2013-08-21 UNIST 슈퍼컴퓨팅센터 76

Shell #9 산술연산자 기본산술연산자 더하기 (+), 빼기 (-), 곱하기 (*), 나누기 (/) 제곱 (exponentiation): ** Example #!/bin/bash let a=5 let b=6 let c=a+b**2 echo 5+6^2 = $c exit 0 2013-08-21 UNIST 슈퍼컴퓨팅센터 77

Shell #10 산술연산자 & 논리연산자 산술연산자 상수값만큼증가 : += 상수값만큼감소 : -= 상수값만큼곱함 : *= 상수값만큼나눔 : /= 상수값으로나눈나머지값 : %= 논리연산자 and : && or : 2013-08-21 UNIST 슈퍼컴퓨팅센터 78

Shell #11 숫자표기 숫자상수표기방법 10 진수 : 64 8 진수 (0 으로시작 ) : 0100 16 진수 (0X 로시작 ) : 0X40 다른진법 ( 진수 # 숫자, 진수는 2~32) : 32#20 Example #!/bin/bash let a=64 let b=0100 let c=0x40 let d=32#20 echo $a $b $c $d exit 0 2013-08-21 UNIST 슈퍼컴퓨팅센터 79

Shell #12 조건문 if/then/else/fi if 문장의명령어목록의종료상태 ($?) 가 0 인경우 then 문장실행 if 문장의 [ expression ] 이 0 인경우 then 문장실행 그렇지않은경우는 else 문장실행 Example #!/bin/bash let a=1 let b=$a if [ $a eq $b ] then echo a = b else echo a!= b fi exit 0 2013-08-21 UNIST 슈퍼컴퓨팅센터 80

Shell #13 비교연산자 정수비교 같음 : [ $a eq $b ] 같지않음 : [ $a ne $b ] 더큼 : [ $a gt $b ] 더크거나같음 : [ $a ge $b ] 더작음 : [ $a lt $b ] 더작거나같음 : [ $a le $b ] 2013-08-21 UNIST 슈퍼컴퓨팅센터 81

Shell #14 순환문 for/in/do/done 순환문구조 #!/bin/bash for argument in [list] do commands done exit 0 argument는루트인덱스에해당 list는 argument에할당되는값의목록 argument 값이변화되면서반복적으로 commands 수행 2013-08-21 UNIST 슈퍼컴퓨팅센터 82

Shell #15 조건문 Example #!/bin/bash Ofiles= porion pgaia hamel kigi Nfiles= porion pgaia daisy hamel kigi cheetah for file in $Ofiles do touch $file done for file in $Nfiles do if [ -e $file ] then mv $file ${file}_old else touch ${file}_new fi done exit 0 2013-08-21 UNIST 슈퍼컴퓨팅센터 83

What Linux is 2013. 08. 22 ~ 2013. 08. 23, UNIST 슈퍼컴퓨팅센터 Building Applications

Common Procedure Configure has a lot of options configure -h 를통해서확인필수! prefix, FC, CC/CXX, FFLAGS, CFLAGS, LDFLAGS, etc. Make The purpose of the make utility is to determine automatically which p ieces of a large program need to be recompiled, and issue the comm ands to recompile them. Make install installation 2013-08-21 UNIST 슈퍼컴퓨팅센터 85

Parallel Libraries MPI(Message Passing Interface) 분산및병렬처리에서정보의교환에대해기술하는표준 OpenMPI, MPICH, MVAPICH, etc. OpenMPI (http://www.open-mpi.org) Source download : http://www.open-mpi.org/software/ompi/v1.6/ openmpi-1.6.5 (stable) Example(using GNU compiler) $./configure --prefix=path/to/install CC=gcc CXX=g++ FC=gfort ran F77=gfortran $ make $ make install 2013-08-21 UNIST 슈퍼컴퓨팅센터 86

Numerical Analysis Libraries FFTW(http://www.fftw.org) C subroutine library for computing the discrete Fourier transform (DF T) in one or more dimensions, of arbitrary input size, and of both real and complex data MPI support : 2.1.5, 3.3.x or later The API of FFTW 3.x is incompatible with that of FFTW 2.x Single / double precision Example(single precision, non-mpi) $./configure --prefix=path/to/install CC=gcc CXX=g++ FC=gfort ran F77=gfortran --enable-float --enable-shared $ make $ make install 2013-08-21 UNIST 슈퍼컴퓨팅센터 87

What Linux is 2013. 08. 22 ~ 2013. 08. 23, UNIST 슈퍼컴퓨팅센터 Assignment

2013-08-21 UNIST 슈퍼컴퓨팅센터 89