6. C 셀.

Slides:



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

Python Ch.06 RaspberryPi Sejin Oh. Raspberry Pi Python  IDLE(Integrated Development Environment)  라즈베리 파이 배포본들은 일반적으로 파이썬과 파이썬 3 의 IDLE 파 이썬 개발 도구를.
5. Korn 셀.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
Database Laboratory, Hong Ik University
Chapter 7. 조건문.
Chapter 11 The C Shell.
리눅스 기본 명령어 및 Vi 명령어 정리 2015/1, 컴퓨터의 개념 및 실습.
Unix & Shell 사용법 1 번째주 Dept. of Computer Science & Engineering
데이터 파일 C 데이터 파일과 스트림(Stream) 텍스트 파일 처리
UNIX Unbounded A Beginning Approach
Chapter 04 C 연산자의 이해.
Homework #6 (1/3) 다음을 수행한 후, 화면(혹은 파일)을 출력하여 제출한다.
제6장 C 쉘(C Shell) 숙명여대 창병모
양방향 파이프의 활용 양방향 통신 파이프는 기본적으로 단방향이므로 양방향 통신을 위해서는 파이프를 2개 생성한다.
제3장 스택과 큐.
Root Filesystem Porting
C / C++ Programming in multi platform
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Root Filesystem Porting
Homework #5 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
MATLAB
프로그래밍 개요
어서와 C언어는 처음이지 제14장.
6. C 셸 한글 전환: Ctrl + Space 해보세요! 이것도 좀 해보세요. cal, bc, hostname, whoami
제4장 유닉스 쉘 숙명여대 창병모 2011 가을.
Linux/UNIX Programming
Lesson 4. 수식과 연산자.
㈜시스원이 제공하는 시스템 관리 통합 솔루션 SysmanagerOne Agent설치 안내서
27장. 모듈화 프로그래밍.
Homework #6 (1/3) 다음을 수행한 후, 화면(혹은 파일)을 출력하여 제출한다.
Linux/UNIX Programming
UNIX Unbounded A Beginning Approach
Homework #6 (1/3) 다음을 수행한 후, 화면(혹은 파일)을 출력하여 제출한다.
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
연산자 (Operator).
Linux/UNIX Programming
Regular Expression 1 Powerful pattern matching with regular expression to a string while () { if ( /ab*c/ ) { print $_; } } substitute operator s/abc*c/def/;
6장 콘 셸 뇌를 자극하는 Solaris Bible.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
17장. 제어문과 내장 함수 제어문 내장 함수 제어문 내장 함수.
Linux/UNIX Programming
Linux/UNIX Programming
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
Regular Expression 1 Powerful pattern matching with regular expression to a string while () { if ( /ab*c/ ) { print $_; } } substitute operator s/abc*c/def/;
시스템 인터페이스 Lab#5 쉘 실습.
시스템 인터페이스 Lab#5 쉡 실습.
Linux/UNIX Programming
Linux 9.X 기초에서 활용까지 Chapter 06 VI 편집기.
 파일 아카이브와 압축 명령 익히기.
Homework #5 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
Chapter 10 데이터 검색1.
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
Homework #3 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
함수, 모듈.
4. 셸을 이용한 명령어 입력. Unix 시스템 쉘 간단한 셸 명령 명령 매개변수(Command arguments)
제4장 유닉스 쉘 숙명여대 창병모
9 브라우저 객체 모델.
제8장 C 쉘 창병모
제 29 강 스트링(string) 다루기 s a i s . s T i h t g r i n.
 6장. SQL 쿼리.
Docker Study 6~7.
7 생성자 함수.
Linux/UNIX Programming
Linux/UNIX Programming
SPL-Duino 블록 편집기 이용하기 전류센서 블록 만들기 SPL-Duino 블록 편집기를 실행합니다.
1. 실습 시간에 수행한 avd 생성 및 실행, adb shell 접속 및 명령어 수행 결과를 제출한다.
Presentation transcript:

6. C 셀

6.1 소개 Shell의 공통적인 기능 이외에 C Shell에 추가된 기능들 변수를 설정하고 접근하는 여러 가지 방법 조건 분기, 루프, 인터럽트 조작을 지원하는 내장 프로그래밍 언어 별명을 사용한 주문화된 고유명령어 히스토리 메카니즘을 이용한 그 이전 명령어로의 접근 개선된 작업 제어 새로운 내장 명령어와 기존 명령어의 개선 6. C 셀

6.2 시작하기 /bin/csh 시작순서 .cshrc (run commands): 자주 쓰이는 별명을 설정함 ① $HOME/.cshrc ② /etc/.login ③ $HOME/.login .cshrc (run commands): 자주 쓰이는 별명을 설정함 .login : $TERM, $PROMPT, $PATH 등의 변수 값을 설정함 (예) .cshrc (예) .login 6. C 셀

6.3 변수 단순 변수의 값 할당 ① 지역 변수(단순 변수, 리스트 변수) ② 환경 변수 set {name [= word]}* % set name = M.J. KIM % set name = "M.J. KIM" % echo $name 6. C 셀

6.3 변수 단순 변수로의 접근  $name  변수 name의 값 (독립 사용할 때)  ${name} Continue... 6.3 변수 단순 변수로의 접근  $name  변수 name의 값 (독립 사용할 때)  ${name}  변수 name의 값 (접속 사용할 때)  ${?name}  변수 name의 설정되어 있으면 1, 아니면 0의 값 6. C 셀

6.3 변수 (예) % set verb = sing % echo I like $verbing  verbing: undefined variable % echo I like ${verb}ing  I like singing (예) % cat flag.csh # set flag  flag를 null 문자로 설정함 if (${?flag}) then echo flag is set endif % flag.csh  flag is set 6. C 셀

6.3 변수 리스트 변수의 값 할당 set {name = ( {word}* ) }* (예) % set colors = ( red yellow green ) % echo $colors red yellow green 6. C 셀

6.3 변수 리스트 변수로의 접근 ① $name[selector]  리스트 변수 name의 값 (독립 사용할 때) Continue... 6.3 변수 리스트 변수로의 접근 ① $name[selector]  리스트 변수 name의 값 (독립 사용할 때) ② ${name[selector]}  리스트 변수 name의 값 (접속 사용할 때) ③ $#name  리스트 변수 name의 원소들의 개수 (독립 사용할 때) ④ ${#name} (접속 사용할 때) 6. C 셀

6.3 변수 cf. selector: start-end 형태, start가 명시 안되면 1로 간주, *는 모든 범위 (예)% set colors = ( red yellow green ) % echo $colors[1]  red % echo $colors[2-3]  yellow green % echo $colors[4]  Subscript out of range % echo $#colors  3 6. C 셀

6.3 변수 리스트 변수의 추가 원래의 리스트에 원소를 더하고, 이들을 괄호로 묶어 원래로 치환 (예) %set colors = ( red yellow green ) %set colors[4] = pink  Subscript out of range %set colors = ( $colors blue ) %echo $colors  res yellow green blue 6. C 셀

6.3 변수 C shell에 미리 정의된 여러 지역/환경 변수들 $?0 $< $argv $cdpath $cwd Continue... 6.3 변수 C shell에 미리 정의된 여러 지역/환경 변수들 $?0 $< $argv $cdpath $cwd $echo $home $history $histchars $mail $noglob $notify $path $prompt $shell $status $time $verbose $savehist $noclobber $nonomatch $ignoreeof 6. C 셀

6.3 변수 (예) % cat var5.csh [1-c6p249] echo -n "please enter your name: " set name = $< # atke a line of input echo hi $name, your current directory is $cwd 6. C 셀

6.3 변수 환경 변수의 값 할당 미리 정의된 환경 변수 setenv name word (예)% setenv TERM vt100 % echo $TERM 미리 정의된 환경 변수 ① 공통적으로 미리 정의된 환경 변수 $HOME $PATH $MAIL $USER $SHELL $TERM ② C shell 특유의 환경 변수  $LOGNAME (셀 소유자의 사용자 id) 6. C 셀

6.4 연산식 C shell의 연산식 ① 문자열 연산식 ② 산술 연산식 ③ 화일 지향적 연산식 6. C 셀

6.3 변수 문자열 연산식 의 미 연산자 == != =- !~ 같으면 참 같지 않으면 참 ==와 동일. Continue... 6.3 변수 문자열 연산식 의 미 연산자 == != =- !~ 같으면 참 같지 않으면 참 ==와 동일. 단, 오른쪽에 대표문자 포함 !=와 동일. 6. C 셀

6.3 변수 (예)% cat expr1.csh [1-c6p251] # echo -n "do you like C shell? set reply = $< if ($reply == "yes") then echo you entered yes else if ( $reply =~ y* ) then echo I assume you mean yes endif 6. C 셀

6.4 연산식 산술 연산식 (C-like) 의 미 연산자 ~ ! * / % + - << >> Continue... 6.4 연산식 산술 연산식 (C-like) 의 미 연산자 ~ ! * / % + - << >> unary 음수 논리적부정 곱셈,나눗셈,나머지 덧셈, 뺄셈 bltwise shift <= >= < > 관계 연산 == != 같다, 같지 않다 & ^ | bit, and, xor, or && || logical and, or 6. C 셀

6.4 연산식 (예) % cat expr3.csh # set a = 3 set b = 5 Continue... 6.4 연산식 (예) % cat expr3.csh # set a = 3 set b = 5 if ($a > 2 && $b > 4) then echo expression evaluation seems to work endif 6. C 셀

6.4 연산식 연산식의 결과를 변수에 할당하기 위해서는 set 명령을 사용하지 않는다. @  모든 셀 변수들을 표시 Continue... 6.4 연산식 연산식의 결과를 변수에 할당하기 위해서는 set 명령을 사용하지 않는다. @  모든 셀 변수들을 표시 @variable op expression  변수 variable에 expression의 결과 할당 @variable[index] op expression  variable의 index번째에 할당 6. C 셀

6.4 연산식 (예) % set a = 2 * 2  set: Syntax error. % @ a = 2 * 2 % echo $a  4 % @ a = $a + $a % @ b = ( $a && $flag)  && 때문에 괄호 필요 % set value = 1 % @ value ++  ++ 혹은 -- 연산 가능 6. C 셀

6.4 연산식 화일 지향적 연산식 option "fileName"  만일 옵션이 참이면 1을, 아니면 0을 반환 Continue... 6.4 연산식 화일 지향적 연산식 option "fileName"  만일 옵션이 참이면 1을, 아니면 0을 반환 만일 fileName이 존재하지 않으면 0을 반환 의 미 옵 션 r w x e o z f d 셀은 fileName에 대해 읽기 허가를 갖는다. 쓰기 허가를 갖는다. 실행 허가를 갖는다. fileName이 존재한다. 셀 프로그램와 fileName의 소유자가 동일하다. fileName이 존재하되 크기 가 0이다. fileName은 정규화일이다. fileName은 디렉토리이다. 6. C 셀

6.4 연산식 (예) % cat expr4.csh # echo -n "enter the name of the fie you whish to erase: " set filename = $< if ( ! (-w "$filename") ) then echo you do not have permission to erase that file. else rm $filename echo file erased endif 6. C 셀

6.5 별명(Aliases) 자신만의 고유한 명령어를 만들어 사용한다 alias [word [string] ] (예) % alias word  word가 어떤 string의 별명인지를 보여줌 (예) % alias dir 'ls -aF’ % alias ls 'ls -aF' (예)% alias who 'date; who'  who에 대한 무한루프 발생(error) % alias who 'date; /bin/who'  who의 절대경로 사용 해결 6. C 셀

6.5 별명(Aliases) unalias pattern pattern과 일치하는 별명을 제거한다. 6. C 셀

6.5 별명(Aliases) 유용한 별명 (.cshrc에 저장) Continue... 6.5 별명(Aliases) 유용한 별명 (.cshrc에 저장) % alias cd 'cd \!*; set prompt="$cwd\!>"; ls 지정된 디렉토리로 이동하고, prompt를 현재의 디렉토리와 마지막 명령 번호를 포함하도록 한 후, 현재의 목록을 보여줌 \!* (두 번째부터 마지막번째까지의 토큰 즉 모든 인수들) \! (마지막 명령어의 번호) % alias ls 'ls -F'  화일과 디렉토리에 관한 추가 정보 보이기 6. C 셀

6.5 별명(Aliases) % alias rm 'rm -i'  지울지 말지 확인을 먼저한다. % alias rm 'mv \!* ~/tomb'  지울 대상을 tomb 디레토리 밑으로 옮김 % alias h 'history'  히스토리 정보 얻기 % alias vi 'mesg n; /bin/vi \!*; mesg y'  vi 편집 기간동안 타인으로부터의 메시지 전달 방해 억제 % alias moer 'more'  일어나기 쉬운 오타 방지 % alias ls-l 'ls -l'  일어나기 쉬운 오타 방지 % alias ll 'ls -l’  상세한 목록 정보 얻기 6. C 셀

6.6 히스토리 번호가 붙여진 명령어 키보드로부터 받은 명령어들을 순서대로 기억해둠 효과적인 사용을 위해, prompt에 명령어의 번호가 붙음 % set prompt = '\! %’ 1 % echo hello 6. C 셀

6.6 히스토리 관련환경 변수 $history $savehist 히스토리 목록의 크기, defualt = 1 Continue... 6.6 히스토리 관련환경 변수 $history 히스토리 목록의 크기, defualt = 1 $savehist 히스토리 화일($HOME/.history) 에 저장되는 명령 어의 수 세션 간에 명령어 접근을 허용하는 능력 cf. .history화일은 같은 사용자에 의하여 생성된 모든 대화형 C shell에 의하여 공유된다. 6. C 셀

6.6 히스토리 (예)$ % set history 40  마지막 40개의 명령어를 기억하도록 함 (예)$ % set savehist 32  세션들 사이에 32개의 명령어를 저장함 6. C 셀

6.6 히스토리 히스토리 읽기 history [-rh] [number] 옵션이 없으면 마지막 $history 명령을 나열한다  마지막 3개의 명령어를 역순으로 읽음 6. C 셀

6.6 히스토리 명령어의 재실행 재실행된 명령어 텍스트는 echo된 후 실행된다 ① !! 마지막 명령의 텍스트로 치환된다 ① !! 마지막 명령의 텍스트로 치환된다 ② !number 명시된 사건 번호를 갖는 명령의 텍스트로 치환된다 ③ !prefix prefix로 시작되는 마지막 명령의 텍스트로 치환된다 ④ !?Substring? substring을 포함하는 마지막 명령의 텍스트로 치환 (예) % !41  41번째 명령어를 실행함 6. C 셀

6.6 히스토리 히스토리 수정자(midifier) 사건 명시자 바로 뒤에 나와서 이전 명령의 일부에 접근 Continue... 6.6 히스토리 히스토리 수정자(midifier) 사건 명시자 바로 뒤에 나와서 이전 명령의 일부에 접근 ① :0 첫 번째 토큰 ② :number (number+1)번째 토큰 ③ :start-end (start+1)부터 (end+1)번째 토큰 ④ :^ 첫 번째 토큰 (:은 생략 가능) ⑤ :$ 마지막 번째 토큰 (:은 생략 가능) ⑥ :* 두 번째부터 마지막번째 토큰 (:은 생략 가능) 6. C 셀

6.6 히스토리 (예)48 % echo I like horseback riding I like horseback riding 49 % !!:0 !!:1 !!:2 !!:4 echo I like riding I like riding 50 % echo !48:1-$ echo I like horseback riding 6. C 셀

6.6 히스토리 화일 수정자 기존의 히스토리 수정자에 덧붙여 화일 이름의 특정한 부분을 접근함 ① :h 화일의 바로 앞 부분 Continue... 6.6 히스토리 화일 수정자 기존의 히스토리 수정자에 덧붙여 화일 이름의 특정한 부분을 접근함 ① :h 화일의 바로 앞 부분 ② :r 화일의 루트 부분 ③ :e 화일의 확장자 부분 ④ :t 화일의 뒤 부분 6. C 셀

6.6 히스토리 (예) 53 % ls /usr/include/stdio.h  /usr/include/stdio.h 54 % echo !53:1:h  /usr/inlcude 55 % echo !53:1:r  /usr/inlcude/stdio 56 % echo !53:1:e  h 57 % echo !53:1:t  stdio.h 6. C 셀

6.6 히스토리 대치 수정자 텍스트가 대치된 후 재실행됨 !event:s/pattern1/pattern2/ (예)58 % ls /usr/include/stdio.h  /usr/include/stdio.h 58 % !58:0 !58:1:s/stdio/signal/  /usr/include/signal.h 6. C 셀

6.7 제어구조 foreach-end C-like 명령어 목록이 반복 실행됨, 반복시마다 해당 변수가 다른 값을 가짐 Continue... 6.7 제어구조 C-like foreach-end 명령어 목록이 반복 실행됨, 반복시마다 해당 변수가 다른 값을 가짐 foreach name ( wordlist ) commandlist end 6. C 셀

6.7 제어구조 (예)% cat foreach.csh # foreach color (red yellow green blue) echo one color is $color end % foreach.csh one color is red one color is yellow one color is green one color is blue 6. C 셀

6.7 제어구조 goto 무조건 분기 goto label ……… label : 6. C 셀

6.7 제어구조 if-then-else-endif if ( expr) command if ( expr1) then commandlist1 else if ( expr2 ) then commandlist2 else commandlist3 endif 6. C 셀

6.7 제어구조 Onintr 키보드로부터 ^C (interrrupt, SIGINT) 값을 받았을 때 분기하도록 지시 onintr [ - | label ] - 인터럽트 무시 label label로 분기 6. C 셀

6.7 제어구조 repeat (예) % repeat 2 echo hi there  2개의 줄 표시 단일 명령어를 지정된 시간의 수만큼 반복 수행한다 (예) % repeat 2 echo hi there  2개의 줄 표시 hi there repeat expr command 6. C 셀

6.7 제어구조 switch-case-endsw 다중 분기 지원 switch (expr) case pattern1 : commandlist1 breaksw case pattern2 : case pattern3 : commandlist2 defaut : endsw 6. C 셀

6.7 제어구조 while-end 참인 동안 명령어를 반복 수행함 while ( expr ) commandlist end cf. break continue 6. C 셀

6.7 제어구조 예제 : JUNK junk -lp {fileName}* 지정된 화일을 지우는 rm대신 사용하는 명령으로, 화일을 지우지않고 $HOME/.junk에 이동시킨다. -l $HOME/.junk의 내용을 보여준다(list). -p $HOME/.junk을 제거한다(purge). 만일 .junk 디렉토리가 없으면 자동으로 생성해준다. 6. C 셀

6.9 개선점 명령어 재실행을 위한 최적 방법 메타문자 { } pattern1^pattern2 (예) % cc fil.txt → Can't open file fil.txt % ^fil^file → cc file.txt 메타문자 { } a{b,c}d → abd acd(접두사, 접미사의 입력시간 감소) (예) % cp /usr/include/{stdio,signal}.h . → 두 파일을 복사 6. C 셀

6.9 개선점 화일 이름 대치 ① 화일 이름 대치 금지: 변수 $noglob 설정 (default: 비설정) Continue... 6.9 개선점 화일 이름 대치 ① 화일 이름 대치 금지: 변수 $noglob 설정 (default: 비설정) ② 패턴 불일치시 에러 보고 금지: 변수 $nonomatch 설정 (default: 비설정) 6. C 셀

6.9 개선점 (예) % echo *p prog1.c prog2.c % set noglob → 대표문자 처리 금지 (예) % echo *a echo: No match. % set nonomatch % echo *a *a → 에러 발생하지않고 원래 패턴 인쇄 6. C 셀

6.9 개선점 redirection ① 표준 에러 채널을 리다이렉션: >& 또는 >>& ② 에상외의 덮어씌우기로부터 화일 보호: $noclobber 설정 (default: 비설정) (예) % (process1 > file1) >& file12 →표준 출력은 file1으로 표준 에러는 file2로 저장함 (예) % set noclobber % cc a.c >& errors errors: File exists. 6. C 셀

6.9 개선점 표준출력 뿐 아니라 표준에러도 pipe시킴 |& (예) % cc a.c |& more (예)% (process1 > file1) |& process2 process1의 표준 출력은 file1으로 저장하고, 명령어 그룹의 출력과 에러 채널을 process2로 파이프 처리함 6. C 셀

6.9 개선점 작업 제어를 위한 추가적 내장명령어 제공 ① stop {%job}*  지정된 작업을 중단한다. Continue... 6.9 개선점 작업 제어를 위한 추가적 내장명령어 제공 ① stop {%job}*  지정된 작업을 중단한다. %job [1-c5p216] %integer 작업번호가 integer인 작업 %prefix prefix로 이름이 시작하는 작업 %+ 마지막으로 참조된 작업 (default) %% %+와 동일 %- 마지막에서 두 번째로 참조된 작업 (예) % stop %man % stop %1 6. C 셀

Continue... 6.9 개선점 ② suspend  su나 script 등으로 불러들인 shell을 중단시킴 6. C 셀

6.9 개선점 ③ nice [+/- number] [command]]  command의 우선순위를 number로 설정한다. Continue... 6.9 개선점 ③ nice [+/- number] [command]]  command의 우선순위를 number로 설정한다. (적당한 때 수행) 우선순위가 높을수록 실행은 더 늦다. 슈퍼유저 만이 음수의 우선순위를 설정할 수 있다. 우선순위가 생략되면 4로 간주한다. command가 명시되지 않으면 현재의 shell에 대한 것으로 간주 6. C 셀

6.9 개선점 ④ nohup command  command를 수행하고 모든 방해조건 으로부터 보호한다 Continue... 6.9 개선점 ④ nohup command  command를 수행하고 모든 방해조건 으로부터 보호한다 command가 명시되어 있지 않으면 해당 셀의 모든 명령어가 됨 backgounding command도 해당됨에 주의 6. C 셀

6.9 개선점 ⑤ notify {%job}*  지정된 작업이 상태를 바꿀 때 즉시 통보 하도록 한다. Continue... 6.9 개선점 ⑤ notify {%job}*  지정된 작업이 상태를 바꿀 때 즉시 통보 하도록 한다. 모든 작업에 대해서 할 때는, $notify를 설정한다 ⑥ 로그인 셀의 다양한 종료 방법 ㈀ logout : login shell만을 종료 ㈁ exit : login shell 및 interactive shell의 종료 ㈂ control-D : 입력 종료 ($ignoreeof이 설정되면 무력해짐) 6. C 셀

6.9 개선점 C shell 종료시에, 2개의 끝내기 화일을 탐색 (예) % set ignoreeof % ^D Continue... 6.9 개선점 (예) % set ignoreeof % ^D use "logout" to logout % logout C shell 종료시에, 2개의 끝내기 화일을 탐색 ㈀ $HOME/.logout ㈁ /etc/logout cf. 끝내기 화일의 주요 내용 임시 디렉토리 지우기, 종료 메시지등 6. C 셀

6.10 추가 내장 명령어 chdir[path] glob {arg} cd와 동일 cho와 비슷하나, 마지막 출력에 공백대신 널(ASCII 0)로 arg 목록을 구분하는 것이 echo와 다름 6. C 셀

6.10 추가 내장 명령어 source [-h] fileName (예)% source .login → .login화일을 재실행 (서브셀을 부르지않음) 6. C 셀

6.11 디렉토리 스택 pushd [ +number | name ]  명시된 디렉토리를 디렉토리 스택에 추가시킴 ② -number가 주어지면, 스택의 number번째 원소는 스택의 탑으로 옮겨지고 현재의 작업 디렉토리가 된다. 스택의 원소는 탑을 0으로하여 오름차순으로 번호가 메겨져있다. ③ 인수가 주어지지 않으면, 스택 탑의 두 원소는 자리바꿈을 한다 6. C 셀

6.11 디렉토리 스택 popd [ +number ]  명시된 디렉토리를 디렉토리 스택에 삭제하고,  명시된 디렉토리를 디렉토리 스택에 삭제하고, ① -number가 주어지면, 셀은 스택의 number번째 디렉토리로 옮겨간다 ② 인수가 주어지지 않으면, 셀은 스택 탑의 디렉토리로 옮겨가고 그 디렉토리를 스택에서 삭제한다. 6. C 셀

6.11 디렉토리 스택 dirs  현재 디렉토리 스택의 내용을 보여준다 (예) % pwd /usr/mjkim  현재 디렉토리 스택의 내용을 보여준다 (예) % pwd /usr/mjkim % pushd / / ~ % pushd /usr/inlude /usr/include / ~ % pushd / /usr/include ~ % popd /usr/inlude ~ 6. C 셀

6.11 디렉토리 스택 hash table C shell은 해시 테이블이라는 내부적 자료 구조를 유지하여 실행화일 탐색을 빠르게 함 ① $PATH가 바뀔 때마다 ② 새로운 실행화일이 $PATH 안의 어떤 디렉토리에 해시 테이블을 다시 작성한다. (예) % rehash → 해시 테이블을 다시 작성 (예) % hashstat → 해시 통계 자료 표시 6. C 셀

6.12 명령줄 옵션 만일 명령 줄의 첫째 인수가 -라면, C shell은 login shell로 시작된다. Continue... 6.12 명령줄 옵션 만일 명령 줄의 첫째 인수가 -라면, C shell은 login shell로 시작된다. 여기에 추가로 C shell은 다음의 명령 줄 옵션을 지원한다. 표준 입력으로부터 한 줄을 읽고 실행한다. 의 미 옵션 -c string -e -f string 명령을 실행하기 위하여 셀을 생성한다. 어떤 명령어가 0이 아닌 종료 코드를 반환하면, 셀은 종료된다. 셀은 시작하지만, .cshrc에서 명령을 읽지는 않는다. -t -v -V $verbose를 설정하게 한다. .cshrc이 실행되기 전에 $verbose를 설정하는 것을 제외하고는 -v와 같다. 6. C 셀

6.12 명령줄 옵션 의 미 옵션 의 미 -i -n -s 대화형 셀을 형성한다. 즉, SIGTERM, SIGINT, SIGQUIT 메시지를 모두 무시하는 것을 제외하고는 -s와 같다. 명령을 문법적으로 분석 하지만, 실행하지는 않는다. 단지 디버깅을 위한 것임 표준 입력으로부터 명령을 읽고 셀 메시지를 표준 에러 채널에 보내는 셀을 생성한다. -x -X fileName .cshrc가 읽혀지기 전에 $echo를 설정하는 것을 제외하고는 -x와 같다. 만일 -c, -i, -s, -t 옵션이 사용되지 않으면 fileName에 있는 셀 명령어들을 실행한다. fileName 스크립트 내에서 fuleName은 $0이다. $echo를 설정하게 한다. 6. C 셀