Lecture 11. C 쉘(C Shell)

Download Report

Transcript Lecture 11. C 쉘(C Shell)

Lecture 11. C 쉘(C Shell)
2001.4
강의 내용
Lecture 11. C 쉘(C Shell)
C 쉘(Shell)은 Bourne shell과 같은 기능을 수행하는 대화식 명령어
번역기이며 동시에 프로그래밍 언어이다. 사용자는 Bourne shell이나
C shell 중 하나만을 사용할 수 있을 뿐, 동시에 두 쉘을 같이 사용할
수는 없다. 단지 필요에 따라 두 쉘을 번갈아 사용할 수는 있다.
이 장에서는 Bourne shell이 가지고 있지 않은 C shell의 기능들을
중심으로 학습하게 된다.
1.
2.
3.
4.
5.
C 쉘의 사용법
히스토리(History)
에일리어스(Alias)
변수 및 제어구조
내장 명령어
UNIX 실습
2
1. C 쉘의 사용법
Lecture 11. C 쉘(C Shell)
 현재 수행되고 있는 쉘의 종류 확인
 ps 명령을 활용
 쉘의 수행
 Bourne Shell : sh 명령을 이용
 C Shell
: csh 명령을 이용
UNIX 실습
3
1. C 쉘의 사용법 (계속)
Lecture 11. C 쉘(C Shell)
 쉘의 종료
 exit 명령을 이용
 가장 최근에 수행된 하나의 쉘이 종료됨
 마지막 쉘이 종료될 때에는 자동으로 로그아웃 됨
UNIX 실습
4
1. C 쉘의 사용법 (계속)
Lecture 11. C 쉘(C Shell)
 자동 실행되는 대표적 C 쉘 3가지
 .login
 사용자가 로그-온 하여 작업을 시작할 때 C 쉘이 실행시키는 파일
 작업을 시작하기 전에 필요한 환경설정 혹은 명령어 등을 담고 있음
 C 쉘을 이용하는 환경에서는 반드시 필요
 .cshrc
 새로운 C 쉘이 만들어 질 때마다 수행되는 파일
 로컬 변수나 파라메터 설정 시 사용하는 파일
 C 쉘 사용 시 가장 핵심이 되는 파일
 .logout
 로그-아웃할 때 실행되는 파일
 로그-아웃 시 저장되어야 하는 데이터나 수행 명령 등을 담고 있음
 존재하지 않아도 관계 없음
UNIX 실습
5
2. 히스토리 (History)
Lecture 11. C 쉘(C Shell)
 히스토리란?
 최근에 입력한 명령어들의 리스트
 C 쉘에서 제공하는 기능
 히스토리 리스트의 크기 정의
 .cshrc startup 파일에 정의
 ‘history’라는 쉘 변수에 값을 정의
set history = 20
 히스토리의 활용
 최근에 수행한 명령어를 보고자 할 때
 최근에 수행한 명령을 다시 수행시키고자 할 때
UNIX 실습
6
2. 히스토리 (History) (계속)
Lecture 11. C 쉘(C Shell)
 히스토리를 이용한 명령어 수행 방법
 히스토리 리스트의 번호를 이용
 사용 예
UNIX 실습
7
2. 히스토리 (History) (계속)
Lecture 11. C 쉘(C Shell)
 실습
 자신의 ‘.cshrc’ 파일에 있는 히스토리 변수 값 변경
 vi 에디터를 이용하여 set history=30으로 설정
 저장
 로그-아웃 후에 다시 로그-인
UNIX 실습
8
3. 에일리어스 (Alias)
Lecture 11. C 쉘(C Shell)
 에일리어스
 명령어의 다른 이름을 정의하는 것
 용법
 .cshrc startup 파일에 정의
 에일리어스 설정
alias new_command_name old_command_name
 에일리어스 해제
unalias new_command_name
 용도
 긴 명령어를 간단한 이름으로 바꾸고자 할 때
 자주 사용하는 옵션을 디폴트로 설정하고자 할 때
UNIX 실습
9
3. 에일리어스 (Alias) (계속)
Lecture 11. C 쉘(C Shell)
 사용 예
UNIX 실습
10
3. 에일리어스 (Alias) (계속)
Lecture 11. C 쉘(C Shell)
 실습
 자신의 ‘.cshrc’ 파일에 특정 명령어 들에 대한 alias 설정
 vi 에디터를 이용하여 .cshrc 파일 편집
 ls -al ->
 rm -I ->
 cat
->
dir
del
view
 저장
 로그-아웃 후에 다시 로그-인
UNIX 실습
11
4. 변수 및 제어구조
Lecture 11. C 쉘(C Shell)
 변수의 종류
 문자열 변수 : set을 이용해 선언
 숫자 변수 : @를 이용해 선언
 쉘 변수 : setenv를 이용해 선언
 숫자 변수의 활용
UNIX 실습
12
4. 변수 및 제어구조 (계속)
Lecture 11. C 쉘(C Shell)
 쉘 변수
C 쉘 변수
$argv
$#argv
$cdpath
$child
$history
$home
$path
$prompt
$shell
$$
$cwd
UNIX 실습
기능
입력되는 명령어 및 명령어의 인수 값을 저장
argv 요소의 개수를 저장
cd 유틸리티의 동작에 영향을 줌
프로세스를 분리 혹은 백그라운드 수행할 때 부모 프로세스에서 사용
히스토리 리스트의 크기를 저장
본 쉘의 HOME 변수와 유사, 사용자 홈 디렉토리 경로를 저장
본 쉘의 PATH 변수와 유사
프롬프트에 나타날 기호 혹은 문자열 값을 저장
쉘의 경로명을 저장
현재 쉘의 PID를 저장
현재 작업 디렉토리의 경로를 저장
13
4. 변수 및 제어구조 (계속)
Lecture 11. C 쉘(C Shell)
 실습
 자신의 ‘.cshrc’ 파일에 프롬프트 설정을 위한 내용 추가
 vi 에디터를 이용하여 .cshrc 파일에 아래 내용 추가
 set prompt = “$cwd] ”
 저장
 로그-아웃 후에 다시 로그-인
 참고
 제어구조는 Bourne Shell과 거의 유사
UNIX 실습
14
5. 내장 명령어
Lecture 11. C 쉘(C Shell)
 C 쉘의 내장 명령어
C 쉘 변수
@
alias
cd (chdir)
echo
exec
exit
foreach
goto
history
if
login
logout
onintr
UNIX 실습
기능
변수들의 수식을 계산하는데 사용하는 명령
명령어들에 대한 에일리어스를 정의
작업 디렉토리를 변경시키는 명령
본 쉘의 echo 명령과 유사하게 뒤에 나오는 내용을 화면에 출력해 주는 명령
현재 수행중인 프로그램을 새로운 프로그램으로 대체 (본래의 프로그램은 사라짐)
사용중인 C 쉘을 종료 시키는데 사용
foreach 제어 구조의 키워드
주어진 레이블로 시작하는 행으로 제어 흐름을 넘기는 명령
히스토리 리스트에 저장된 명령어들을 출력
if 제어 구조의 키워드
사용자 이름과 함께 입력하면 현재 사용자는 로그아웃 되고 새로운 사용자로 로그인
마지막 쉘을 종료하면서 동시에 작업 종료
인터럽트를 받았을 때 쉘 스크립트의 동작을 제어
15
5. 내장 명령어 (계속)
Lecture 11. C 쉘(C Shell)
C 쉘 변수
repeat
set
setenv
shift
source
switch
time
unalias
unset
wait
while
UNIX 실습
기능
두개의 인수를 받아서 숫자 값만큼 명령어 수행을 반복
로컬 변수값의 선언, 초기화, 출력에 사용
광역 변수값을 선언하고 초기화하는데 사용
본 쉘의 shift 명령과 유사
인수로 주어진 쉘 스크립트를 현재의 C 쉘이 수행하도록 하는 명령
switch 제어구조의 키워드
인수로 입력된 명령어를 수행 (명령어 수행 시 경과시간, 시스템시간, 실행시간 등을 출력)
설정 해놓은 alias를 해제하는 명령
set을 이용한 변수선언을 해제
모든 자식 프로세스들이 수행을 완료할 때까지 기다리는 명령
while 제어구조의 키워드
16
마무리...
Lecture 11. C 쉘(C Shell)
 좋았던 점
 나빴던 점
 수정을 요하는 부분
 건의 사항
UNIX 실습
17