제4장 유닉스 쉘 숙명여대 창병모 2009.09.

Slides:



Advertisements
Similar presentations
SPARCS 10 이 가 영 기본 UNIX 명령어. 일단 로그인 ! Linux login 시 계정을 입력하거나 root 를 입력 Root -> # 일반 사용자 -> $ 패스워드 : echo 기능을 꺼서 볼 수 없다. 대소문자 구분 패스워드 처음 설정 시 : ~$ passwd.
Advertisements

쉘 스크립트와 cron coearth, george.
3. 유닉스 셸 (Unix Shell) 실습 컴퓨터 : fedora.incheon.ac.kr ( )
강 명 수 쉘 관리 강 명 수
시작부터 끝까지 진지한 궁서체로 진행하는 완벽한 주입식의 하드코어한 리눅스/장난감 세미나
IT Application Development Dept. Financial Team May 24, 2005
Part01. 시스템 해킹을 위한 기초 지식 Chapter01. 운영체제에 대한 이해
UNIX 기초 UNIX 기초 UNIX 기초.
Linux University of Seoul Computer Science Park Jong wook
Chapter 10 The Bourne Shell
Embedded Linux.
컴퓨터 네트워크 실습.
Unix(Linux) shell programming
UNIX 이 재 광 한남대학교 컴퓨터공학과.
디렉토리 다루기 ㅎㅎ 유닉스 파일 시스템 현재 디렉토리 확인 : pwd 디렉토리 이동 : cd
UNIX의 중급 명령어 UNIX의 고급 명령어 연습 문제
Chapter 11 The C Shell.
System administration basics
Toad for Oracle 설치 방법.
제3장 유닉스 쉘.
제6장 쉘 창병모
 13장. 배시쉘 프로그래밍.
[beginning] Linux & vi editor
Linux 9.X 기초에서 활용까지 Chapter 09 쉘(Shell).
유닉스 이론과 실습 √ 원리를 알면 IT가 맛있다 컴퓨터정보계열 이광규.
UNIX Unbounded A Beginning Approach
6 프로세스 생성과 실행.
UNIX Unbounded A Beginning Approach
Linux/UNIX Programming
UNIX Unbounded A Beginning Approach
컴퓨터 네트워크 실습.
콘 쉘 활용하기 ㅎㅎ 기본 사용법 익히기 입출력 방향 변경 콘 쉘의 환경설정 콘 쉘 명령 다루기 프롬프트 설정하기
Linux/UNIX Programming
제6장 C 쉘(C Shell) 숙명여대 창병모
제2장 유닉스/리눅스 사용.
fork로 생성한 자식 프로세스에서 exec 함수군을 호출
7장. 셸 스크립트 프로그래밍.
Shell Programming Concept of the Shell Environment of Shell
리눅스 기본 명령어 기본 명령어 명령어 기능 사 용 예 date 날짜 및 시간을 확인하고 생성.
5. 네트워킹 사용자 표시 : users/ rusers/who/w users 지역 호스트 상에 있는 사용자의 간단한 목록 표시
파일 및 디렉토리(1) 여러 함수들 chdir(“category”) || die “cannot cd to temp”;
Internet Protocol and Programming
정보검색 환경세팅 및 쉘스크립트 맛보기 IS lab. 김건영.
DataStage 운영자 지침서 Operator’s Guide
Geek-OS Project 정영진
운영체제 (Operating Systems)
기본 셸로는 Bash 셸을 사용하라. 하지만 스트립트를 실행하기 위해서는 Bourne 셸을 사용하라.
6. 파일 관리. pwd(print working directory)와 cd(change directory) ls(list)
제4장 유닉스 쉘 숙명여대 창병모 2011 가을.
Introduction to Programming Language
제8장 네트워킹 숙명여대 창병모
Internet Protocol and Programming
Linux/UNIX Programming
editing program files with vi 기본적인 Linux commands
Linux/UNIX Programming
6장 콘 셸 뇌를 자극하는 Solaris Bible.
U N I X 창원대학교 전자계산학과 김병찬.
Command line tools 한국어 정보의 전산 처리
시스템 인터페이스 Lab#5 쉘 실습.
시스템 인터페이스 Lab#5 쉡 실습.
GDB - GNU Debugger 김진용.
Internet Protocol and Programming
4. 셸을 이용한 명령어 입력. Unix 시스템 쉘 간단한 셸 명령 명령 매개변수(Command arguments)
화 일 구 조 Chapter 3 화일의 입출력 제어.
제8장 C 쉘 창병모
Linux/UNIX Programming
한국 휴렛팩커드/고객지원사업본부/IT 기술사업부 박기영
Python 기본.
Linux/UNIX Programming
Intelligent software Lab. 전재원
Presentation transcript:

제4장 유닉스 쉘 숙명여대 창병모 2009.09

개요 쉘이란 무엇인가? 쉘의 종류 Korn shell C shell Bourne shell core core 명령어 해석기(command interpreter) 사용자와 os 사이에 창구 역할 쉘의 종류 Bourne shell Korn shell C shell Korn shell C shell Bourne shell core core

쉘의 핵심 기능 쉘 내장명령어 스크립트 변수 리다이렉션 대표문자 파이프 명령열 서브쉘 후면처리 명령어처리 지역 환경 조건부 무조건부

쉘 선택 쉘 선택 시스템 관리자가 설정 /etc/passwd 쉘의 절대 경로명 Bourne /bin/sh , /bin/bash Korn /bin/ksh C shell /bin/csh

쉘 선택 사용자가 쉘 선택 %chsh Changing login shell for chang Old shell : /bin/csh New shell : /bin/ksh %logout login : chang passwd: $

쉘의 절차 read a startup file in the user's home directory display a prompt and waits for a user command execute the user's command Control-D Terminate

시작 파일(Startup file) Bourne shell : /bin/sh .profile .login Bourne again shell : /bin/bash .bashrc C shell : /bin/csh .cshrc

실행 파일 vs. 내장 명령어 % echo -n {arg}* Shell 내장 명령어 % cd directory 유틸리티 프로그램(utility program) 실행 허용 파일(a file with execute permission) 디렉토리에 저장되어 있음 쉘 변수 $PATH에 있는 순서대로 찾아서 실행 /bin, /usr/bin, /usr/local/bin, /usr/ucb, /etc, /usr/bin/X11 % ls ... /bin/ls

출력 리디렉션 출력을 파일에 저장 출력을 파일에 첨부(append) %command > fileName %ls > sample.txt 출력을 파일에 첨부(append) %command >> fileName %cat >> sample.txt

입력 리디렉션 입력 리디렉션 Here documents %command << word 파일을 표준입력으로 받아서 실행 %command < fileName %elm chang < sample.txt Here documents %command << word … word

파이프(Pipe) Command1의 표준 출력을 command2의 표준 입력으로 만든다. %command1 |command2 %ls | wc -w

명령어 대치 backquote(`)로 둘러 쌓인 명령어는 그 표준출력으로 대치된다. %echo the date today is `date`

명령어 조합 명령어 그룹 %(command1; ... ; commandn) 자식쉘(서브쉘)에 의해서 실행 표준 입력, 표준 출력, 표준 에러 공유 하나의 명령어처럼 리디렉션과 파이프 처리 가능 %date; ls; pwd > out.txt %(date; ls; pwd) > out.txt

명령어 조합 명령어 열 조건 명령어 열(Conditional sequence) %command1; …; commandn 순서적으로 실행 조건 명령어 열(Conditional sequence) % command1 && command2 Command1이 성공적으로(0 반환) 실행되면 command2 실행 %cc myprog.c && a.out % command1 || command2 Command1이 성공적으로 실행되지 않으면 command2 실행 %cc myprog.c || echo compilation failed

파일 이름 대치 파일 이름 대치 대표(wildcard) 문자를 이용 여러 파일들을 지정 예 %ls *.c %ls */* %ls [ac]* %cc *.c 대표문자 의미 * Matches any string, including the empty string ? Matches any single character [..] Matches any one of the characters between the brackets. A range of characters may be specified.

후면 처리 후면 처리(Background Processing) 예 command & % find . -name b.c -print & 27174 %date & pwd & 27310 27311 command & shell command

후면 처리 후면 프로세스의 리디렉션 후면 프로세스의 출력이 터미널에 나타나는 것을 방지 출력을 파일에 리디렉션 %find .-name a.c -print > find.txt & 출력을 메일로 보내기 % find . -name a.c -print | mail glass & 입력 리디렉션 % mail glass < inputfile &

쉘 프로그램(Shell Script) 쉘 프로그램이란 ? 쉘 프로그램의 종류 1. 일련의 쉘 명령어들을 포함하는 파일 2. 실행 허가권(execute permission) 3. 이름을 타이핑하여 실행 쉘 프로그램의 종류 1. C shell script, if the first line is # 2. If the first line is #!pathName, the executable program pathName is used to interpret the script. 3. Otherwise, it is Bourne shell script.

쉘 프로그램: 예 script.csh #This is sample C shell scripts echo -n the date today is date script.ksh #!/bin/ksh #This is sample Korn shell scipt. 실행 준비 %chmod 700 script.csh script.ksh

자식 쉘(서브 쉘) Parent  An initial login shell Parent when you log into UNIX  When your current shell(parent) creates a new (child) shell ? 1. When a grouped command is executed, such as (ls; pwd; date). 2. When a script is executed. 3. When a background job is executed. Parent Child Parent Env. vars Local vars Child Env. vars Local vars

환경 변수 대 지역 변수 쉘의 두 종류의 변수 1. 환경 변수(environment variable) 자식 쉘은 부모의 환경 변수를 상속 받는다. 2. 지역 변수(local variable) 자식 쉘은 깨끗한 지역 변수를 갖는다.

환경 변수 사전 정의 환경 변수 %echo HOME=$HOME, PATH=$PATH, MAIL=$MAIL

지역 변수 지역 변수 이미 정의된 지역 변수 - export 는 지역 변수를 환경 변수로 만든다. - 사전 정의 환경 변수를 제외한 모든 변수 - export 는 지역 변수를 환경 변수로 만든다. 이미 정의된 지역 변수

예 $firstname=Graham $lastname=Glass $echo $firstname $lastname $export lastname $sh $^D

인용부호 쉘의 wildcard 대치, 변수 대치, 명령어 대치를 제한 1. single quote (') inhibit wildcard replacement, variable substitution, and command substitution 2. double quote (") inhibit wildcard replacement only 3. when quotes are nested, the outer quote have any effect.

인용 부호 예 % echo 3 * 4 = 12 % echo "3 * 4 = 12" % echo '3 * 4 = 12' % set name = Graham % echo 'my name is $name and the date is 'date`' % echo "my name is $name and the date is 'date' "

작업 제어  Process status: ps ps -arux list process status information, by default your processes. -a option : all processes  sleep seconds sleeps for the specified number of seconds and then terminate  wait [pid] The shell suspends until the child process with pid terminates. If no arguments are supplied, the shell waits for all its child processes

작업 제어  Signaling process : kill kill [-signalId] {pid}+ kill -l 1. Kill(TERM signal) process or 2. sends the signal with code signalId to the list of numbered processes. %(sleep 10; echo done) & %ps 27390 %kill -9 27390 %sleep 30 & sleep30 & sleep 30 %kill –9 0

실습:쉘 리다이렉션 파일 이름 대치 파이프 사용 명령어 대치 명령열 조건부 명령열 후면처리 (152) (154) (155) (157) 명령열 조건부 명령열 (158) 후면처리 (159)

실습:쉘 쉘 작업 제어 명령어 찾기 간단한 쉘 스크립트 생성 및 실행(162) 쉘 변수 사용(164-165) 인용(166) Here document(167) 작업 제어 프로세스 상태: ps (168) 명령어 찾기 $PATH(173)