Microsoft PowerPoint - u5.pptx

Similar documents
Microsoft PowerPoint - u5.pptx

<4D F736F F F696E74202D20BFEEBFB5C3BCC1A6BDC7BDC D31C7D0B1E229202D20BDA92E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - 04_UsingShell

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

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

Linux SHELL

Linux SHELL

PowerPoint 프레젠테이션

Microsoft PowerPoint UNIX Shell.pptx

Microsoft PowerPoint - 02-Shell-Programming

Microsoft PowerPoint UNIX Shell.ppt

PowerPoint 프레젠테이션

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

Microsoft PowerPoint - comp_prac_081223_2.pptx

Microsoft PowerPoint - u3.ppt [호환 모드]

Unix 시스템 6장

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Content Shell 이란? Redirection & Pipes Shell Programming 변수 조건 프로그램제어 리스트 함수 Shell 에내장된명령 Here documents Page 2

/chroot/lib/ /chroot/etc/

PowerPoint 프레젠테이션

제1장 Unix란 무엇인가?

PowerPoint 프레젠테이션

제2장 리눅스 사용

chap2

untitled

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

PowerPoint 프레젠테이션

슬라이드 1

Microsoft Word - Lab_080104A.docx

10.

Sena Technologies, Inc. HelloDevice Super 1.1.0

Microsoft PowerPoint - u6.pptx

1 Shell script What the shell?

리눅스 프로세스 관리

Microsoft PowerPoint - 05_(Linux)_(Fundamental)_Shell_Programming

사용자계정관리 1. 사용자계정관리 사용자 (user), 그룹 (group) u 다중사용자시스템 (Multi-User System) - 1 대의시스템을동시에여러사람이접속하여쓸수있게하는시스템 u 사용자 (user) - 시스템관리자 : root (=Super user) -

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

MySQL-.. 1

MySQL-Ch10

ksh프로그램문법.ppt

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

제2장 유닉스 사용

Adobe Flash 취약점 분석 (CVE )

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

벤처연구사업(전동휠체어) 평가

단계

Microsoft Word ARM_ver2_0a.docx

<30392E31322E303320C1F6B1B8C1F6C1A420B9D720C1F6C7FCB5B5B8E920B0EDBDC E706466>

Tcl의 문법

Discrete Mathematics

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

C# Programming Guide - Types

Microsoft PowerPoint - ch09_파이프 [호환 모드]

2009년 상반기 사업계획

슬라이드 1

PowerPoint 프레젠테이션

Microsoft PowerPoint Unix3.ppt [호환 모드]

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구

Microsoft PowerPoint - C프로그래밍-chap15.ppt [호환 모드]

Mango220 Android How to compile and Transfer image to Target

슬라이드 1

PowerPoint 프레젠테이션

제4장 기본 의미구조 (Basic Semantics)

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

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

Secure Programming Lecture1 : Introduction

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

01Àå

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

JVM 메모리구조

Microsoft PowerPoint - 게시물2 - unix07.ppt [호환 모드]

제9장 프로세스 제어

학번 : 이름 : 1. 다음파일트리구조를가진유닉스시스템이있다. / /bin/ /home/ /home/taesoo/ /home/taesoo/downloads /usr/ /usr/lib/ /usr/local/lib /media 모든폴더에파일이하나도없다고가정했을때사용자 (t

PowerPoint 프레젠테이션

vi 사용법

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

untitled

<30352D30312D3120BFB5B9AEB0E8BEE0C0C720C0CCC7D82E687770>

歯mp3사용설명서

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor

Microsoft PowerPoint Unix4.ppt

Microsoft PowerPoint - 07-EDU-LinuxUser-3.ppt

Microsoft PowerPoint - chap08-1 [호환 모드]

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

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

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

Microsoft PowerPoint - chap01-C언어개요.pptx

DocsPin_Korean.pages

PowerPoint 프레젠테이션

제 1604 회리눅스마스터 2 급 2 차 A 형정답

Solaris 9 (x86) Installation Guide for VMware 7 Writer : 이경호

6주차.key

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

PowerPoint 프레젠테이션

슬라이드 1

제8장 프로세스

LXR 설치 및 사용법.doc

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

Transcription:

주요미리정의된변수의의미 PS1 1 차프롬프트문자열 명령어입력을기다리고있음을알려줌 특수한내용표시방법은 p108 표참조 PS1의기본값 : "[\u@\h \W]\$ " [gdhong@magics dir]$ $ PS1="[\W] $ "... 디렉토리이름만나타나게변경 PS2 2 차프롬프트문자열 명령어입력후 Enter를입력했을때에추가입력을기다림을알려줌 $ echo "Linux... " 로시작하면 " 로끝나야함 > shell... 2차프롬프트출력, 입력요청 > prompt"... 2차프롬프트출력, 입력요청 PS2의기본값 :">" $ PS2="2> "... 변경 주요미리정의된변수의의미 (2) HOME 사용자홈디렉토리 HOME 값이변경되면다음 cd 명령어동작에영향을줌 $ cd ; cd $HOME 동작 CDPATH 이동할디렉토리위치를찾는디렉토리경로로사용 "cd 절대경로 " 또는 "cd 상대경로 " 해당디렉토리로이동 "cd 디렉토리명 " 현재디렉토리와 CDPATH 에등록된디렉토리를검색하여이동할디렉토리를찾아서해당디렉토리로이동 $ CDPATH=/lib:/usr/lib... CDPATH에 2개의디렉토리추가 $ cd java /usr/lib/java... /usr/lib에있는java 디렉토리로이동 33 34 5.13 명령어대치 명령어대치 : `command` `command` 가 command 의실행결과로대치됨 이기능을사용하면명령어의출력을인수로사용할수있다. $ echo Today is `date` Today is 2015. 09. 24. ( 목 ) 13:21:35 KST $ echo 현재 `who wc -l`명이사용중입니다. 현재 4명이사용중입니다. bash의명령어대치 : $(command) $(command) 은 `command`와같지만, 중첩하여사용하기가쉽다. $ date +%Y... 오늘의연도를출력 2016 $ echo 올해는 $(date +%Y) 년이다.... 명령어대치사용올해는 2016년입니다. $ echo 내년은 $(expr $(date +%Y) + 1) 년... 명령어대치중첩사용내년은 2017년입니다. expr : 수식연산명령어 35 ( 요약 ) 셸의 3 가지대치기능 파일이름대치 와일드카드 (*,?, [.. ]) *.c 파일이름패턴에매칭되는파일이름목록 변수대치 변수값접근 $var 변수 var 값 명령어대치 `command`, $(command) 명령어 command의실행결과 프로그램 ( 명령어 ) 에값을전달하는경로 command 대치 argument process 1 pipe stdin process 2 stdout variable 대치 variable env. variable 36

5.14 인용 (quote) 과대치금지 5.15 별명 (alias) 메타문자기능금지 역슬래시문자 \( 탈출문자 ) 와함께사용, 또는 인용부호 ( 따옴표 ) 안에서사용 작은따옴표 ' ' 모든대치금지 : 파일이름대치, 변수대치, 명령어대치, 메타문자 큰따옴표 " " 파일이름대치금지 $ myvar=korea $ echo f* $myvar `expr 1 + 2` \$ 모든대치가능 $ echo 'f* $myvar `expr 1 + 2` \$'... 모든대치, 탈출문자기능금지 $ echo "f* $myvar `expr 1 + 2` \$"... 파일이름대치금지 중첩된인용부호는바깥쪽인용부호가유효함 $ echo "f* '$myvar' `expr 1 + 2` \$" 'Korea'... 변수대치동작 alias 자주사용하는옵션을포함한명령어에별명을부여 $ alias del='rm i' ; = 전후에빈칸없음 $ alias cp='cp i' ; 같은이름의별명 별명내용출력 $ alias del ; 별명의정의내용출력 $ alias ; 현재부여된별명출력 명령어대신에별명을사용하여실행 (csh부터제공 ) $ del file1 ; rm i file1 $ cp file1 file2 ; cp i file1 file2 alias 제거 $ unalias cp alias 사용금지 \ 를앞에붙이거나작은따옴표사용 $ \cp file1 file2 ; 원래의명령어실행 cp file1 file2 $ 'cp' file1 file2 37 38 5.16 셸시작파일 (startup file) 시작파일과 source 명령어 셸시작 ( 초기화 ) 파일 셸이시작되기전에먼저실행되는명령어를포함한파일 자주사용하는 alias 정의, 셸변수값초기화작업에주로사용됨 대화형 (interactive) 셸의시작파일 (bash) 로그인셸의시작파일탐색및실행순서 /etc/profile ~/.bash_profile, ~/.bash_login, ~/.profile 비로그인셸의시작파일탐색및실행순서 ~/.bashrc ( 이파일은대개.bash_profile 에포함되어있음 ).bash_profile 로그인할때만실행하는명령어포함.bashrc 대화형셸을시작할때마다수행하는명령어포함 비대화형셸의시작파일 시작파일 = 환경변수 BASH_ENV 에저장된파일이름의파일 $ export BASH_ENV="~/.bashrc" ; 대화형셸의시작파일그대로사용 ( 예 ) 시작파일 ".bash_profile" - 환경변수 export PATH=$PATH:$HOME/bin export HISTSIZE=20 export HISTFILESIZE=10 ".bashrc" - alias, 지역변수 alias dir='ls F' alias rm='rm i' PS1="$ " source 명령어 현재셸에서셸프로그램실행 ( 주로시작파일사용 ) $ source.bash_profile $..bash_profile 39 40

5.17 히스토리 (history) history 참조 history 최근에실행한명령어들의목록을출력 $ history csh에서부터제공된기능으로재실행할때에사용 history 와관련된변수 HISTSIZE history 목록에저장할명령어개수 ( 기본 500) HISTFILE history file 이름 (~/.bash_history) HISTFILESIZE 다음세션을위해 history file 에저장할명령어개수 history 를포함한프롬프트 -\! $ PS1="\!$ " 36$ history 참조내용은명령어재실행또는인수로사용할수있음 $!! ; 이전명령어실행 $!ec ; 최근의 ec로시작하는명령어실행 $ echo bash $ ^bash^tcsh ; echo tcsh 실행 41 42 history 일부접근 파일이름일부접근 / 수정 history 의일부인수를선택하여사용가능 인수로사용된파일이름을수정하여사용가능 20$echoIlikehorseback riding 21 $ echo!!:3 // horseback 22 $ echo!20:2-$ // like horseback riding $ ls /usr/include/stdio.h $ echo!!:1:h /usr/include $ echo!-2:1:s/stdio/stdlib/ /usr/include/stdlib.h 43 44

fc 명령어와자동완성기능 fc fixed command 히스토리편집후실행가능 $ fc l ; 히스토리목록 $ fc s 42 ; 42번명령어재실행 $ fc s ; 직전명령어재실행 $ fc 42 ; 42번명령어편집후재실행 vi편집 자동완성기능 명령어완성 가능한명령어가 $ bz<tab><tab> ; 여러개이면목록출력 $ bzl<tab> ; 한개이면명령어자동완성 파일이름완성 / 변수완성 명령어완성과유사 /usr/include/st<tab><tab> $HIST<Tab><Tab> /usr/include/stdl<tab> $HiSTS<Tab> 5.18 디렉토리스택 pushd 인수디렉토리를디렉토리스택에저장하고, 인수디렉토리로이동 $ pushd /usr popd 디렉토리스택위의디렉토리를제거하고, 그다음디렉토리로이동 $ popd dirs 디렉토리스택내용출력 (~ 부터저장되어있음 ) $ dirs /etc /usr ~ 45 46 5.19 간단한셸프로그램 shell script 셸에서실행될수있는명령어들을포함하는파일 일반프로그램에서사용하는제어구문도사용할수있음 shell program이라고도하며, 실행허가권이부여되면실행가능 반복적으로수행할필요가있는다양한작업에유용 간단한 shell script의작성및실행 $ vi script1 ; 편집기로작성 echo Hi! Shell Script echo HOME=$HOME echo Today is `date` $ chmod +x script1 ; 실행허가권부여 $./script1 ; shell script 실행 Script 실행셸지정 Shell Script 를실행하는셸지정 첫줄내용에따라서 command를처리하는 shell이결정됨 1) # 없음 : /bin/sh 2) # 로시작 : 현재 shell 3) #! pathname : pathname ( 프로그램의절대경로명 ) 나머지줄의 # 은 comment로사용됨 # echo Hi! Shell Script echo HOME=$HOME echo Today is `date` #!/bin/bash echo Hi! Shell Script echo HOME=$HOME echo Today is `date` # comment 현재 shell script 실행 subshell ` script 에포함된유틸리티들 47 48

서브셸과변수 Shell Script 주석 서브셀의작업디렉토리 서브셀은자신만의작업디렉토리를가짐 서브셸에서의작업디렉토리변경이부모셸에영향을주지않음 셸변수와서브셸 환경변수 : 서브셸 ( 또는자식프로세스 ) 에복사됨 유용한정보전달에사용됨 지역변수 : 서브셸에복사되지않음 부모 shell 환경 지역 복사 환경 지역 subshell subshell 에서추가된변수 ( 부모 shell 에영향없음 ) # 로시작 ( 첫째줄제외 ) 콜론 (:) 명령어사용 콜론명령어 : 아무동작도하지않음. null 명령 $ : 'colon command' argument : ' comment line 1 comment line 2 ' here document 사용 <<MARK comment line 1 comment line 2 MARK 49 50 Argument 변수 5.20 셸의기타기능 인수 (argument) 접근셸변수 $0 : command name $n : n 번째 command line argument (n=1-9) $* : 모든 argument 의 list $# : argument 개수 $$ : shell 의 process id ( 임시파일이름생성에유용 ) 예 : script2 echo $0 and $1 and $2 and $3 echo $* : $# arguments $./script2 a b c d 표준입출력과파일기술자번호 0 : 표준입력 1 : 표준출력 2 : 표준에러출력 3 이상 : 추가로 open 되는파일들 표준에러출력의방향전환 : 2>, 2>> (cf) > 와 >> 는 1> 와 1>> 이다. $ cat in1 in2 2> out2 ; in1 존재, in2 미존재 $ cat in1 in2 > out1 2> out2 ; 두출력각각방향전환 두출력의연계 : 2>&1 ( 표준에러출력을표준출력장치로 ) $ cat in1 in2 2>&1 $ (cat in1 in2 2>&1) > out3 ; 두출력같은파일로방향전환 $ cat in1 in2 > out3 2>&1 ; 두출력같은파일로방향전환 $ cat in1 int2 2>&1 > out3 ; 에러출력 ( 원래표준출력 = 화면 ) ; 표준출력 (out3) 51 52

표준에러출력의방향전환 set 명령어사용한셸기능변경 (bash) 두출력의연계 : 1>&2 ( 표준출력을표준에러출력으로 ) $ echo This is stderr output 1>&2 ; echo 를사용한표준에러출력 표준출력과표준에러출력의동시방향전환 : >&, &> $ cat in1 in2 >& out3 표준에러출력의파이프전달 $ cat in1 in2 2>&1 wc ; 두출력파이프에동시전달 $ cat in1 in2 2>&1 > out4 wc ; 표준에러출력만파이프에전달 셸기능설정제어 noglob 파일이름대치금지 noclobber 파일덮어쓰기금지 notify 백그라운드작업종료시즉시알림 ignoreeof ^D 입력무시 설정방법 $ set o noglob ; 설정 $ set +o noglob ; 설정해제 $ set o noclobber (cf) csh에서는 set과 unset을설정과해제에사용함 noclobber 설정시에덮어쓰기 : > 53 54 5.21 내장명령어 help (bash) $ help 내장명령어목록을출력 $ help read 내장명령어사용법을출력 hash (sh) 경로디렉토리를검색하지않고명령어위치를빠르게찾도록, 명령어경로이름을해시테이블에저장 $ hash 해시테이블목록과사용횟수출력 type (bash) 명령어경로, 내장명령어여부, 별명정보제공 command (bash) 인수로제공된명령어실행시별명 (alias) 이나함수를사용하지않음 enable (bash) 내장명령어활성화 / 비활성화 $ enable n pushd ; 비활성화 $ enable pushd ; 활성화 55