책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > OS/Networking > 유닉스
· ISBN : 9788956741932
· 쪽수 : 330쪽
· 출판일 : 2004-06-15
책 소개
목차
소개
책의 구성
이 책에 사용된 규칙
이 책의 예제
감사의 글
제1장 쉘 구문
쉘 스크립트 생성하기
주석
계속 행
파일명 확장
숨겨진 파일
인용 부호 사용하기
백슬래시
단일 따옴표
이중 따옴표
언제 인용 부호를 사용해야 하는가?
어떤 타입의 인용 부호를 사용해야 하는가?
인용 예제들
역 따옴표를 이용한 명령 치환
명령 종료 상태
명령 분리자
세미콜론
파이프
백그라운드 실행
OR 실행
AND 실행
명령 그룹화하기
괄호를 사용한 그룹화
중괄호를 사용한 그룹화
제어 흐름문
if 문
elif 문
for 문
while 문
case 문
test 명령
개행 없는 구문
실무 예제로 배우는 UNIX 쉘 프로그래밍
제2장 쉘 변수
변수 사용하기
변수를 명령에 전달하기
변수의 정의
변수의 초기화
변수의 초기화 테스트하기
위치 매개변수
특수 변수
$? 변수
$$ 변수
$! 변수
$- 변수
명령 라인의 치환문
제3장 쉘 함수와 내장 명령
쉘 함수
함수 실행
매개변수 함수에 전달하기
함수 내 변수 사용하기
함수 재사용하기
내장 명령
:(널) 명령
도트 명령
break 명령
cd 명령
continue 명령
echo 명령
eval 명령
exec 명령
exit 명령
export 명령
pwd 명령
read 명령
readonly 명령
return 명령
set 명령
shift 명령
test 명령
times 명령
trap 명령
type 명령
umask 명령
unset 명령
wait 명령
제4장 파일 사용하기
표준 파일 디스크립터
리다이렉션 구문
출력 리다이렉트하기
입력 리다이렉트하기
쉘 구문 리다이렉트하기
파일 열기
파일 쓰기
파일 읽기
파일 종료
파일 삭제하기
Here Documents
파일 리다이렉션 예제들
제5장 환경
쉘 스크립트 식별하기
환경 변수
자식 환경 변경하기
부모 환경 변경하기
PATH 변수
사용자와 시스템 정보
사용자명 얻기
사용자는 슈퍼유저인가?
시스템명 얻기
시그널 사용하기
시그널 캐칭
시그널 무시하기
시그널 리셋하기
trap 명령 예제들
원격 명령 실행
원격 접속 검사하기
원격 명령 실행하기
원격 명령에서 상태 얻기
원격 명령과 함께 인용 부호 사용하기
원격 명령과 함께 파일 리다이렉션 사용하기
원격 명령 예제들
제6장 명령 라인 매개변수 파싱하기
명령 라인
명령 라인 규칙
옵션 파싱하기
getopts 명령 사용하기
getopt 명령 사용하기
getopts를 사용할 수 없을 때
비 표준 옵션 파싱하기
매개변수 파싱하기
제7장 필터 사용하기
sed를 필터로 사용하기
sed 스크립트에 변수 사용하기
다중 스크립트
구분자 변경하기
텍스트 파일의 필터
텍스트 치환하기
텍스트 삭제하기
앞에서 텍스트 삭제하기
뒤에서 텍스트 삭제하기
앞에 텍스트 삽입하기
뒤에 텍스트 삽입하기
삭제하기
다운쉬프트
업쉬프트
탭을 공백으로 바꾸기
다수 공백을 하나의 공백으로 바꾸기
whitespace를 하나의 공백으로 바꾸기
앞부분의 whitespace 삭제하기
뒷부분의 whitespace 삭제하기
라인 삭제하기
빈 라인 삭제하기
첫 라인 삭제하기
마지막 라인 삭제하기
첫 라인 출력하기
마지막 라인 출력하기
주석 삭제하기
키워드 사이의 텍스트 삭제하기
키워드 사이의 텍스트 추출하기
파일을 역으로 읽기
제8장 쉘 유틸리티
수치 연산
정수 연산
관계 연산
부동 소수점 수치 연산
16진수
문자열의 수치 여부 판단하기
한 열의 수 더하기
문자열 처리하기
문자열에 필터 사용하기
문자열 연결
불필요한 whitespace 삭제하기
문자열 길이
부분 문자열 테스트
expr 사용하여 부분 문자열 추출하기
첫 두 개의 문자 삭제하기
첫 문자를 대문자로 바꾸기
데이터 파싱하기
IFS 변수
read 명령 사용하기
for 루프 사용하기
set 명령 사용하기
awk 명령 사용하기
cut 명령 사용하기
사용자와 대화하기
대화형 쉘
메시지 출력하기
프롬프트 출력하기
질문하기
하나의 문자 읽기
타임아웃을 사용하여 읽기
조건부 출력
스크린 지우기
터미널 벨
에코 온, 오프
프로세스 처리
명칭을 이용하여 프로세스 검색하기
명칭을 이용하여 프로세스 죽이기
메일 처리하기
새 메일 검사하기
메일 메시지 카운트하기
메일 헤더와 본문 분리하기
메일링을 위한 파일 패키징
파일과 디렉토리
파일명 파싱하기
전체 경로명 알아내기
파일 목록 출력하기
디렉토리 검색하기
디렉토리 복사하기
파일 날짜 비교하기
파일 크기 알아내기
공간 가용성 알아내기
공간 사용량 알아내기
제9장 쉘 함수 예제
CheckHostname 함수
Clear 함수
DownShift 함수
FullName 함수
GetYesNo 함수
IsNewer 함수
IsNumeric 함수
IsSystemType 함수
Prompt 함수
Question 함수
StrCmp 함수
SystemType 함수
제10장 쉘 스크립트 예제
Cat 명령
DirCmp 명령
Kill 명령
MkDir 명령
Shar 명령
Wc 명령
addcolumn 명령
dircopy 명령
findcmd 명령
findfile 명령
findstr 명령
hostaddr 명령
ptree 명령
제11장 디버깅
디버깅 옵션
구문 검사하기
실행 추적하기
조건부 출력
일반적인 코딩 문제들
변수 치환
중괄호
case 문
계속 행
와일드카드 문자
test 명령
expr 명령
입.출력 리다이렉션
일반적이지 않은 파일명
빠진 인용 부호
빈 변수
스타일
구문 형식 지정을 위한 여러 가지 방법
다른 형식의 if 문
다른 형식의 인용 방법
변수 사용하기
:(널) 명령
Here Documents
입.출력 리다이렉션
명령 라인 전달하기
다른 용도의 중괄호
다른 용도의 세미콜론
제12장 이식성
UNIX 버전 구별하기
System V 혹은 BSD
제조사에 따라
구현에 따라
버전 넘버에 따라
기능에 따라
이식 기법
명령의 공통 서브셋
조건부 실행
추상화
표준 환경 제공하기
명령과 파일 위치 지정하기
파일 시스템 레이아웃
BSD 명령
어느 파일이 이식성이 있는가?
쉘 특징
쉘 실행하기
변수 초기화
쉘 내장(Built-in)을 이용한 파일 리다이렉션
쉘 함수
다른 쉘 사용하기
특정 명령과 관련된 이슈
cp 명령
df 명령
du 명령
echo 명령
env와 printenv 명령
getopts 명령
hostname 명령
ls 명령
mkdir 명령
ps 명령
pwd 명령
원격 쉘 명령
set 명령
shift 명령
test 명령
touch 명령
tr 명령
uname 명령
unset 명령
until 명령
다른 이식성 문제들
짧은 파일명
명시 경로명
제13장 Q&A
이 책의 예제 중 하나를 복사했으나 동작하지 않습니다. 무엇이 잘못 됐죠?
왜 항상 쉘 스크립트의 앞부분에서 다음 라인을 보게 되죠?
다음 라인은 쉘 스크립트에서 무엇을 의미합니까?
쉘에서 어떻게 건너뛰기(goto)를 하나요?
쉘 스크립트에 파일을 어떻게 포함하나요?
왜 다음 라인으로 명령을 진행할 때 문제가 생기는 걸까요?
어떻게 test 명령을 사용하는 표현식에서 괄호를 사용할 수 있나요?
변수 값에 적용된 값이 왜 사라지나요?
명령 라인 매개변수가 왜 사라지거나 변하는 거죠?
왜 제 쉘 스크립트는 변수 리스트를 출력하나요?
변수를 어떻게 sed에 전달할 수 있나요?
변수를 어떻게 awk에 전달할 수 있나요?
sed를 사용하여 /를 포함한 패턴을 어떻게 치환할 수 있나요?
어떻게 메시지를 표준 에러 파일에 작성할 수 있나요?
터미널에서 어떻게 읽을 수 있나요?
제 파일은 겨우 한 라인을 읽은 후 왜 비어 있는 것처럼 보이나요?
어떻게 파일을 한 번에 한 라인씩 읽을 수 있을까요?
왜 for 루프는 파일을 한 번에 한 단어씩 읽을까요?
어떻게 파일을 한 번에 한 단어씩 읽을 수 있나요?
어떻게 캐리지 리턴(^M)을 도스 파일에서 삭제할 수 있나요?
어떻게 디렉토리를 복사할 수 있나요?
파일의 디렉토리를 어떻게 검색하나요?
문자열을 포함한 파일의 디렉토리를 어떻게 찾을 수 있나요?
디렉토리의 모든 파일명을 어떻게 소문자로 바꾸죠?
xxx*라고 명명된 모든 파일을 어떻게 yyy*로 명칭을 바꾸나요?
두 개의 파일 중 어느 것이 최근에 생성된 것인지 알 수 있나요?
쉘 스크립트에서 어떻게 환경 변수를 설정하고 이 값을 현재 환경에 적용할 수 있나요?
어떻게 전체 명령 라인을 다른 명령으로 전달할 수 있을까요?
명령을 실행할 때 "command: arg list too long"이라는 메시지를 얻습니다.
어떻게 해야 하나요?
부록 A UNIX 쉘의 비교
개요
본 쉘(sh)
C 쉘(csh)
콘 쉘(ksh)
그 이외 다른 쉘
쉘 선택하기
대화식 기능
쉘 스크립트 기능
구문 스타일
이용도
요약
부록 B 구문 요약
변수
패턴
인용 부호
입.출력
다른 특수 문자
내장 명령
제어 흐름



















