2부 7장 셀의 기본
쉘을 다루기 전에 쉘 을 적을 에디터를 사용하던 도중 gedit이 깔리지 않아서 오류를 찾아보았다.
(gedit이 vi보다 더 사용하기 쉽고 보기도 편해서 골랐습니다.)
이유를 알아보니 스탠다드 배포에는 없어서 그랬다고 한다.
apt-get update 를 해줘야하는 이유
쉘 시작하기
소스 설명
1. 주석(#!) 형태로 bash를 사용하겠다는 의미
리눅스에서는 Bourne shell(/bin/sh), bash shell(/bin/bash)을 사용하는데 bash를 더 많이 사용합니다. 참고로 bash쉘은 Bourne shell의 기능을 향상시킨 버전으로 bash는 Brourne Again Shell)의 줄임말입니다. /bin/sh와 /bin/bash는 거의 비슷하지만 bash에 기능이 몇가지 더 추가된 형태입니다. 맥북에서는 zsh을 많이 사용합니다
2. $USERNAME, $HOSTNAME :과 같은 환경 변수들을 출력하겠다는 의미
3. exit 은 종료 코드
ls -l *.sh 쉘 파일 존재여부 확인
sh 로 쉘 실행.
디렉토리 사용법
항목 | 설명 |
cd 디렉토리 경로 | 이동하려는 디렉토리로 이동 |
cd . | 현재 디렉토리 |
cd .. | 한 단계 상위 디렉토리로 이동 |
cd / | 최상위 디렉토리로 이동 |
cd $변수명 | 변수에 저장된 경로로 이동 |
cd ~ cd $HOME cd |
사용자 홈 디렉토리로 이동 |
cd ~계정명 | 입력한 사용자의 홈디렉토리로 이동 |
cd - | 이전 경로로 이동 |
/root | root 디렉토리로 이동 |
변수 입력과 출력
변수입력으로 만들고 출력시 $을 사용해서 출력한다.
예시
testval = Hello
echo $testval
파라미터 변수
$* ,$번호로 파라미터 변수를 능동적으로 입력이 가능하며 sh파일이랑 같이 실행 하면 적용이된다.
예시
sh paravar.sh 값1 값2 값3
함수
1.함수 정의
함수 이름 (파라미터) {
}
2.함수 호출
함수 이름 파라미터1, 파라미터2
eval
문자열을 명령문으로 인식하고 실행한다.
예시
str ='ls -l anaconda.cfg'
eval $str
export
외부 변수로 선언한다. 선언한 변수를 다른 프로그램에서도 사용 할 수 있게 한다.
지역 변수는 현재 프로그램 내부에서만 사용되어서 다른 프로그램에서 호출해도 호출이 안된다.
set
명령어를 실행하고 나서 결과를 파라미터로 사용하고자 할때 set을 쓴다. 그리고 명령어를 사용하려면 $(명령어)를
해야한다.
예시
$(date)
set $(date) >> date명령어를 실행했을때 파라미터들이 $1~$n에 저장된다.