(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크

Slides:



Advertisements
Similar presentations
Ⅰ. 연산자 Ⅱ. 제어 구조. 연산자 : 할당 연산자 - 사용자가 정의한 변수에 임의의 값을 저장하는 기능 strvar = strVar1+ “ Hello ”
Advertisements

파이썬 (Python). 1 일 : 파이썬 프로그래밍 기초 2 일 : 객체, 문자열 3 일 : 문자인코딩, 정규표현식, 옛한글 4 일 : 파일 입출력 5 일 : 함수와 모듈 6 일 : 원시 말뭉치 다루기 실습 7 일 : 주석 말뭉치 다루기 실습 8 일 : 웹 데이터로.
2014 가을학기 계산 입문 연습 #4 지도교수 : 박성우 조교 : 이다훈. Python 을 설치합시다.
Python Ch.06 RaspberryPi Sejin Oh. Raspberry Pi Python  IDLE(Integrated Development Environment)  라즈베리 파이 배포본들은 일반적으로 파이썬과 파이썬 3 의 IDLE 파 이썬 개발 도구를.
변수와 조건문 빛나리 36 호 박승운. 파이썬 쉽게 사용하기 Python IDLE 사용 FILE - New File 로 파일 만들기 Run – Run Module 로 실행하기.
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
1 08 배열. 한국대학교 객체지향연구소 2 C 로 배우는 프로그래밍 기초 2 nd Edition 배열  동일한 자료유형의 여러 변수를 일괄 선언  연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는.
7 장. 원격지에서 리눅스서버를 관리하자. 텔넷서버를 설치 / 운영한다. SSH 서버를 운영한다. VNC 서버를 설치 / 운영한다.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
Excel 일차 강사 : 박영민.
C 5장. 제어문 #include <stdio.h> int main(void) { int num;
Chapter 7. 조건문.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
Chapter09 JavaScript 구구단표 만들기
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
Lesson 3. 입출력과 제어문.
제2장 기본 문법 (2) 주제 : 연산자, 조건문, 반복문 수원과학대학 컴퓨터정보과.
7장. 셸 스크립트 프로그래밍.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
6 반복문의 기본 for 문 여러 번 반복하는 작업은 for 문으로!.
7 while 문의 흐름 제어 조건만 만족한다면 무조건 무한 반복!.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
고급 선택 제어문과 반복문 Chapter 9 C에서의 다중 선택 제어문 선 검사 반복 구조와 for 문
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Javascript Basic Sample Programs
2주차: 변수, 수식, Control Flow.
Part 07 제어 구조 ©우균, 창병모 © 우균, 창병모.
뇌를 자극하는 Windows Server 장. Windows Server 2008 개요.
6장. printf와 scanf 함수에 대한 고찰
Chapter 05. 셸 (shell ) 관리 Solaris 3. 셸 스크립트 작성
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express Slide 1 (of 27)
MATLAB
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
C 언어 교육 02 주차 – scanf & 반복문과 조건문 교육부장 조하정.
프로그래밍 개요
어서와 C언어는 처음이지 제14장.
솔라리스10 3장. 솔라리스 패키지 관리.
㈜시스원이 제공하는 시스템 관리 통합 솔루션 SysmanagerOne Agent설치 안내서
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
연산자 (Operator).
프로그래밍 원리 Chapter 05 자바스크립트 기초 신한대학교 IT융합공학부 박 호 균.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
에어 조건문.
3D 프린팅 프로그래밍 05 – 반복패턴 만들기 강사: 김영준 목원대학교 겸임교수.
8장. spss statistics 20의 데이터 변환
컴퓨터 프로그래밍 기초 - 5th : 조건문(if, else if, else, switch-case) -
Choi Seong Yun 컴퓨터 프로그래밍 기초 #06 : 반복문 Choi Seong Yun
김선균 컴퓨터 프로그래밍 기초 - 7th : 함수 - 김선균
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
5장 선택제어문 if 선택문 switch-case 선택문 다양한 프로그램 작성 조건 연산자.
Chapter 08. 함수.
17장. 제어문과 내장 함수 제어문 내장 함수 제어문 내장 함수.
[ 단원 04 ] 반복과 배열.
2nd day Indexing and Slicing
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
에어 PHP 입문.
Linux 9.X 기초에서 활용까지 Chapter 06 VI 편집기.
Flow Diagram IV While.
C++ 프로그래밍 기초 √ 원리를 알면 IT가 맛있다 3장. 연산자.
7장. 다양한 형태의 반복문. 7장. 다양한 형태의 반복문 7-1 반복문이란? 반복문의 기능 세 가지 형태의 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 7-1 반복문이란? 반복문의 기능 특정 영역을 특정 조건이 만족하는 동안에 반복.
함수, 모듈.
16장. 변수, 연산자, 사용자 정의 함수 변수 배열과 객체 연산자 함수.
8장 선택 논리 II 1. 논리연산자 1.1 논리연산자 : AND (&&) 1.2 논리연산자 : OR (||)
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
과제 4: Thread (5월 9일까지) 4장 연습문제 풀이
제 29 강 스트링(string) 다루기 s a i s . s T i h t g r i n.
Docker Study 6~7.
6 객체.
SPL-Duino 블록 편집기 이용하기 전류센서 블록 만들기 SPL-Duino 블록 편집기를 실행합니다.
1. 실습 시간에 수행한 avd 생성 및 실행, adb shell 접속 및 명령어 수행 결과를 제출한다.
Presentation transcript:

(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크 7장. 셸 스크립트 프로그래밍

페도라의 배시 셸 [P369] 기본 셸은 bash(Bourne Again SHell : ‘배시 셸’) bash 셸의 특징 •Alias 기능(명령어 단축 기능) •History 기능(위/아래 화살표키) •연산 기능 •Job Control 기능 •자동 이름 완성 기능(탭키) •프롬프트 제어 기능 •명령 편집 기능 •확장 명령어 셸의 명령문 처리 방법 (프롬프트) 명령어 [옵션…] [인자…] 예) # rm -rf /mydir

환경 변수 [P370] “echo $환경변수이름” 으로 확인 가능 “export 환경변수=값” 으로 환경 변수의 값을 변경 주요 환경변수

셸 스크립트 프로그래밍 [P371] C언어와 유사하게 프로그래밍이 가능 변수, 반복문, 제어문 등의 사용이 가능 별도로 컴파일하지 않고 텍스트 파일 형태로 바로 실행 vi나 gedit으로 작성이 가능 서버 데몬 스크립트는 셸 스크립트로 작성되어 있음

셸 스크립트 파일의 확장명은 되도록 *.sh로 주는 것이 좋다. 셸 스크립트의 작성과 실행 [P372] vi나 gedit으로 작성 실행 방법 “sh <스크립트 파일>”로 실행 “chmod +x <스크립트 파일>” 명령으로 실행 가능 속성으로 변 경한 후에, “./<스크립트파일>”명령으로 실행 셸 스크립트 파일의 확장명은 되도록 *.sh로 주는 것이 좋다. 셸 스크립트 파일을 /usr/local/bin/ 디렉토리에 복사하고, 속성을 755로 변경해 주면 모든 사용자가 스크립트를 사용할 수 있다. (이 작업은 보안상 root만 수행함)

변수의 기본 [P374] 변수를 사용하기 전에 미리 선언하지 않으며, 변수에 처 음 값이 할당되면서 자동으로 변수가 생성 모든 변수는‘문자열(String)’로 취급 변수 이름은 대소문자를 구분 변수를 대입할 때‘=’좌우에는 공백이 없어야 함

변수의 입력과 출력 [P374] ‘$’ 문자가 들어간 글자를 출력하려면 ‘’로묶어주거나 앞에 ‘\’를 붙임. ‘$’ 문자가 들어간 글자를 출력하려면 ‘’로묶어주거나 앞에 ‘\’를 붙임. “ ”로변수를 묶어 주면 안 묶은 것과 효과가 동일 01 #!/bin/sh 02 myvar="Hi Woo" 03 echo $myvar 04 echo "$myvar" 05 echo '$myvar' 06 echo \$myvar 07 echo 값 입력 : 08 read myvar 09 echo '$myvar' = $myvar 10 exit 0

숫자 계산 [P375] 변수에 대입된 값은 모두 문자열로 취급 변수에 들어 있는 값을 숫자로 해서 +, -, *, / 등의 연산을 하 려면 expr을 사용 수식에 괄호 또는 곱하기(*)는 그 앞에 꼭 역슬래쉬(\) 붙임 01 #!/bin/sh 02 num1=100 03 num2=$num1+200 04 echo $num2 05 num3='expr $num1 + 200' 06 echo $num3 07 num4='expr \( $num1 + 200 \) / 10 \* 2' 08 echo $num4 09 exit 0

파라미터(Parameter) 변수 [P376] 파라미터 변수는 $0, $1, $2…의 형태를 가짐 전체 파라미터는 $*로 표현 예) 01 #!/bin/sh 02 echo "실행파일 이름은 <$0> 이다" 03 echo "첫번째 파라미터는 <$1>이고, 두번째 파라미터는 <$2>다" 04 echo "전체 파라미터는 <$*> 다" 05 exit 0

기본 if 문 [P377] 형식 if [ 조건 ] then 참일 경우 실행 fi 01 #!/bin/sh 02 if [ "woo" = "woo“ ] 03 then 04 echo "참입니다" 05 fi 06 exit 0 주의해야 할 점은“[ 조건 ]”의 사이의 각 단어에는 모두 공백이 있어야 한다

if~else 문 [P377] 형식 01 #!/bin/sh 02 if [ "woo" != "woo" ] 03 then 참일 경우 실행 else 거짓인 경우 실행 fi 01 #!/bin/sh 02 if [ "woo" != "woo" ] 03 then 04 echo "참입니다" 05 else 06 echo "거짓입니다" 07 fi 08 exit 0 중복 if 문을 위해서 else if가 합쳐진‘elif’구문도 사용할 수 있다.

조건문에 들어가는 비교 연산자 [P378] 01 #!/bin/sh 02 if [ 100 -eq 200 ] 03 then 04 echo "100과 200은 같다." 05 else 06 echo "100과 200은 다르다." 07 fi 08 exit 0

파일과 관련된 조건 [P379] 01 #!/bin/sh 02 fname=/etc/init.d/httpd 03 if [ -f $fname ] 04 then 05 head -5 $fname 06 else 07 echo "웹 서버가 설치되지 않았습니다." 08 fi 09 exit 0

case~esac 문 (1) [P380] if 문은 참과 거짓의 두 경우만 사용 (2중분기) 01 #!/bin/sh 02 case "$1" in 03 start) 04 echo "시작~~" ;; 05 stop) 06 echo "중지~~" ;; 07 restart) 08 echo "다시 시작~~" ;; 09 *) 10 echo "뭔지 모름~~" ;; 11 esac 12 exit 0

case~esac 문 (2) [P381] 01 #!/bin/sh 02 echo "페도라가 재미있나요? (yes / no)" 03 read answer 04 case $answer in 05 yes | y | Yes | YES ) 06 echo "다행입니다." 07 echo "더욱 열심히 하세요" ;; 08 [nN]* ) 09 echo "불행입니다. ㅠㅠ" ;; 10 *) 11 echo "yes 아니면 no만 입력했어야죠" 12 exit 1 ;; 13 esac 14 exit 0

AND, OR 관계연산자[P381] and는 ‘-a’ 또는 ‘&&’를 사용 or는 ‘-o’ 또는 ‘||’를 사용 01 #!/bin/sh 02 echo "보고 싶은 파일명을 입력하세요." 03 read fname 04 if [ -f $fname ] && [ -s $fname ] ; then 05 head -5 $fname 06 else 07 echo "파일이 없거나, 크기가 0입니다." 08 fi 09 exit 0

반복문 – for문 (1) [P382] 형식 for 변수 in 값1 값2 값3 … do 반복할 문장 done 01 #!/bin/sh 02 hap=0 03 for i in 1 2 3 4 5 6 7 8 9 10 04 do 05 hap='expr $hap + $i' 06 done 07 echo "1부터 10까지의 합 : "$hap 08 exit 0 3행은 for((i=1;i<=10;i++)) 또는 for i in ‘seq 1 10’ 로 변경 할 수 있음

반복문 – for문 (2) [P383] 현재 디렉토리에 있는 셸 스크립트 파일(*.sh)의 파일명 과 앞 3줄을 출력하는 프로그램 01 #!/bin/sh 02 for fname in $(ls *.sh) 03 do 04 echo "--------$fname-------" 05 head -3 $fname 06 done 07 exit 0

반복문 – while문 (1) [P384] 조건식이 참인 동안에 계속 반복 01 #!/bin/sh 02 while [ 1 ] 03 do 04 echo "페도라 11" 05 done 06 exit 0 [ 1 ] 또는 [ : ]가 오면 항상 참이 됨. 그러므로 4행을 무한 루프로 반복함.

반복문 – while문 (2) [P385] 1에서 10까지의 합계를 출력 (‘반복문 – for문 (1)’ 슬라 이드와 동일) 01 #!/bin/sh 02 hap=0 03 i=1 04 while [ $i -le 10 ] 05 do 06 hap='expr $hap + $i' 07 i='expr $i + 1' 08 done 09 echo "1부터 10까지의 합 : "$hap 10 exit 0 until 문은 조건식이 참일 때까지(= 거짓인 동안) 계속 반복 4행을 until 문으로 바꾸면, until [ $i -gt 10 ]

반복문 – while문 (3) [P385] 비밀번호를 입력받고, 비밀번호가 맞을 때까지 계속 입 력받는 스크립트 01 #!/bin/sh 02 echo "비밀번호를 입력하세요." 03 read mypass 04 while [ $mypass != "1234" ] 05 do 06 echo "틀렸음. 다시 입력하세요." 07 read mypass 08 done 09 echo "통과~~" 10 exit 0

break, continue, exit, return 문 [P386] 01 #!/bin/sh 02 echo "무한반복 입력을 시작합니다(b: break, c: continue, e: exit)" 03 while [ 1 ] ; do 04 read input 05 case $input in 06 b | B ) 07 break ;; 08 c | C ) 09 echo "continue를 누르면 while의 조건으로 돌아감" 10 continue ;; 11 e | E ) 12 echo "exit를 누르면 프로그램(함수)를 완전히 종료함" 13 exit 1 ;; 14 esac; 15 done 16 echo "break를 누르면 while을 빠져나와 지금 이 문장이 출력됨." 17 exit 0

사용자 정의 함수 [P387] 형식 함수 이름 { 내용들… } 01 #!/bin/sh 02 myFunction () { 03 echo "함수 안으로 들어 왔음" 04 return 05 } 06 echo "프로그램을 시작합니다." 07 myFunction 08 echo "프로그램을 종료합니다." 09 exit 0

함수의 파라미터 사용 [P388] 형식 함수이름 { $1, $2 … 등을 사용 } 함수이름 파라미터1 파라미터2 … 01 #!/bin/sh 02 hap () { 03 echo 'expr $1 + $2' 04 } 05 echo "10 더하기 20을 실행합니다" 06 hap 10 20 07 exit 0

eval [P389] 문자열을 명령문으로 인식하고 실행 01 #!/bin/sh 02 str="ls -l install.log" 03 echo $str 04 eval $str 05 exit 0

export [P389] 외부 변수로 선언해 준다. 즉, 선언한 변수를 다른 프로그램에 서도 사용할 수 있도록 해줌 exp1.sh 01 #!/bin/sh 02 echo $var1 03 echo $var2 04 exit 0 exp2.sh 02 var1="지역 변수" 03 export var2="외부 변수" 04 sh exp1.sh 05 exit 0

printf [P390] C언어의 printf() 함수와 비슷하게 형식을 지정해서 출력 01 #!/bin/sh 02 var1=100.5 03 var2="Hello World~~" 04 printf "%5.2f \n\n \t %s \n" $var1 "$var2" 05 exit 0

set과 $(명령어) [P391] 리눅스 명령어를 결과로 사용하기 위해서는 $(명령어) 형식을 사용 리눅스 명령어를 결과로 사용하기 위해서는 $(명령어) 형식을 사용 결과를 파라미터로 사용하고자 할 때는 set과 함께 사용 01 #!/bin/sh 02 echo "오늘 날짜는 $(date) 입니다." 03 set $(date) 04 echo "오늘은 $4 요일 입니다." 05 exit 0

shift (1) [P391] 파라미터 변수를 왼쪽으로 한 단계씩 아래로 쉬프트시킴 10개가 넘는 파라미터 변수에 접근할 때 사용 단, $0 파라미터 변수는 변경되지 않음 원하지 않는 결과의 소스 01 #!/bin/sh 02 myfunc() { 03 echo $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 04 } 05 myfunc AAA BBB CCC DDD EEE FFF GGG HHH III JJJ KKK 06 exit 0

shift (2) [P392] shift 사용을 통한 해결 01 #!/bin/sh 02 myfunc() { 03 str="" 04 while [ "$1" != "" ] ; do 05 str="$str $1" 06 shift 07 done 08 echo $str 09 } 10 myfunc AAA BBB CCC DDD EEE FFF GGG HHH III JJJ KKK 11 exit 0