Shell 프로필

4984 단어 shell
셸 이 뭐야?
Shell 자 체 는 C 언어 로 작 성 된 프로그램 입 니 다. 사용자 가 Unix / Linux 를 사용 하 는 다리 입 니 다. 사용자 의 대부분 작업 은 Shell 을 통 해 이 루어 집 니 다.셸 은 명령 언어 이자 프로 그래 밍 언어 이다.명령 언어 로 서 사용자 가 입력 한 명령 을 상호작용 적 으로 해석 하고 집행 합 니 다.프로 그래 밍 언어 로 서 각종 변수 와 파 라 메 터 를 정의 하고 고급 언어 에서 만 가지 고 있 는 제어 구 조 를 많이 제공 합 니 다. 순환 과 가 지 를 포함 합 니 다.
유 닉 스 / 리 눅 스 시스템 커 널 의 일부분 은 아니 지만 시스템 핵심 기능 의 대부분 을 호출 하여 프로그램 을 실행 하고 파일 을 만 들 며 병행 하 는 방식 으로 각 프로그램의 운행 을 조율 합 니 다.따라서 사용자 에 게 셸 은 가장 중요 한 실 용적 인 프로그램 으로 셸 의 특성 을 깊이 이해 하고 능숙 하 게 파악 하 는 것 이 유 닉 스 / 리 눅 스 시스템 을 잘 사용 하 는 관건 이다.
Shell 의 실행 방식
1). 인 터 랙 티 브 (Interactive): 사용자 의 명령 을 실행 하 는 것 을 설명 하고 사용자 가 명령 을 입력 하면 Shell 은 실행 하 는 것 을 설명 합 니 다.
2). 일괄 처리 (Batch): 사용 자 는 셸 스 크 립 트 (Script) 를 미리 작성 합 니 다. 그 중 많은 명령 이 있 습 니 다. 셸 이 한 번 에 이 명령 을 다 수행 하도록 합 니 다. 명령 을 하나하나 두 드 리 지 않 아 도 됩 니 다.
Shell 스 크 립 트 는 프로 그래 밍 언어 와 비슷 하고 변수 와 프로 세 스 제어 문구 도 있 습 니 다. 그러나 Shell 스 크 립 트 는 컴 파일 이 필요 하지 않 습 니 다. Shell 프로그램 은 스 크 립 트 의 한 줄 한 줄 에서 이 명령 을 읽 고 실행 합 니 다. 사용자 가 스 크 립 트 의 명령 을 Shell 프롬프트 아래로 두 드 려 서 실행 하 는 것 과 같 습 니 다.
셸 의 종류
Shell 은 스 크 립 트 언어 입 니 다. 이 스 크 립 트 를 실행 하려 면 해석 기 가 있어 야 합 니 다. Unix / Linux 에서 흔히 볼 수 있 는 Shell 스 크 립 트 해석 기 는 bash, sh, csh, ksh 등 이 있 습 니 다. 습관 적 으로 Shell 이 라 고 부 릅 니 다.우 리 는 항상 몇 가지 Shell 이 있다 고 말 하지만, 사실은 Shell 스 크 립 트 해석 기 를 말한다.
bash: Linux 표준 기본 셸, bash 는 Brian Fox 와 Chet Ramey 가 공동으로 완성 합 니 다. BourneAgain Shell 의 줄 임 말 입 니 다.
sh: Steve Bourne 이 개발 한 것 은 Bourne Shell 의 줄 임 말 이 고 sh 는 Unix 표준 기본 셸 입 니 다.
ash: Linux 에서 시스템 자원 을 가장 적 게 차지 하 는 작은 셸 은 24 개의 내부 명령 만 포함 하기 때문에 사용 하기에 매우 불편 합 니 다.
csh: Linux 의 비교적 큰 커 널 입 니 다. William Joy 를 비롯 한 총 47 명의 작가 가 만 들 었 고 모두 52 개의 내부 명령 이 있 습 니 다.
ksh: 상업 발행 판 ksh 와 거의 호 환 되 어 상업 버 전 을 돈 을 쓰 지 않 고 구 매 할 수 있 는 상황 에서 상업 버 전의 성능 을 시도 할 수 있 습 니 다.
다음 명령 으로 Liux 에 어떤 셸 이 설치 되 어 있 는 지 확인 합 니 다.
[root@chen ~]# cd /bin
[root@chen bin]# ls -la *sh
-rwxr-xr-x. 1 root root 877480 10  16 2014 bash
lrwxrwxrwx. 1 root root      4 12  29 2014 csh -> tcsh
-rwxr-xr-x. 1 root root 102216 10  17 2012 dash
lrwxrwxrwx. 1 root root      4 12  29 2014 sh -> bash
-rwxr-xr-x. 1 root root 377544 2   22 2013 tcsh

Shell 스 크 립 트 언어 와 컴 파일 형 언어의 차이
대체적으로 프로 그래 밍 언어 를 컴 파일 형 언어 와 해석 형 언어 로 나 눌 수 있다.
컴 파일 형 언어: 많은 전통 적 인 프로 그래 밍 언어, 예 를 들 어 Fortran, Ada, Pascal, C, C + + 와 Java 는 모두 컴 파일 형 언어 이다.이러한 언어 는 우리 가 작성 한 소스 코드 (source code) 를 대상 코드 (object code) 로 미리 변환 해 야 합 니 다. 이 과정 을 '컴 파일' 이 라 고 합 니 다.
프로그램 을 실행 할 때 대상 코드 (object code) 를 직접 읽 습 니 다.컴 파일 된 대상 코드 (object code) 는 컴퓨터 의 밑바닥 에 매우 가 깝 기 때문에 실행 효율 이 매우 높다 는 것 이 컴 파일 형 언어의 장점 이다.
그러나 컴 파일 형 언어 는 대부분 밑바닥 에서 작 동 하기 때문에 바이트, 정수, 부동 소수점 또는 다른 기계 등급 의 대상 을 처리 하고 간단 한 기능 을 실현 하려 면 대량의 복잡 한 코드 가 필요 하 다.예 를 들 어 C + + 에 서 는 '한 디 렉 터 리 에 있 는 모든 파일 을 다른 디 렉 터 리 에 복사 합 니 다' 와 같은 간단 한 조작 을 하기 어렵 습 니 다.
해석 형 언어: '스 크 립 트 언어' 라 고도 불 린 다.이러한 프로그램 을 실행 할 때 해석 기 (interpreter) 는 우리 가 작성 한 소스 코드 (source code) 를 읽 고 대상 코드 (object code) 로 변환 한 다음 컴퓨터 에서 실행 해 야 합 니 다.매번 프로그램 을 실행 할 때마다 컴 파일 하 는 과정 이 많아 효율 이 떨 어 지기 때문이다.
스 크 립 트 프로 그래 밍 언어 를 사용 하 는 장점 은 컴 파일 형 언어 보다 높 은 등급 에서 실행 되 고 파일 과 디 렉 터 리 같은 대상 을 쉽게 처리 할 수 있다 는 것 이다.컴 파일 형 언어 보다 효율 이 떨 어 지 는 것 이 단점 이다.그러나 저울질 해 보면 보통 스 크 립 트 프로 그래 밍 을 사용 하 는 것 은 가치 가 있 습 니 다. 한 시간 동안 쓴 간단 한 스 크 립 트 입 니 다. 같은 기능 은 C 나 C + + 로 작 성 됩 니 다. 이틀 이 걸 릴 수도 있 습 니 다. 그리고 일반적으로 스 크 립 트 의 실행 속 도 는 매우 빠 르 고 성능 상의 문 제 를 무시 할 정도 로 빠 릅 니 다.스 크 립 트 프로 그래 밍 언어의 예 는 awk, Perl, Python, Ruby, Shell 입 니 다.
 
셸 은 언제 사용 합 니까?
셸 은 각 UNIX 시스템 간 에 통용 되 는 기능 으로 보이 고 POSIX 표준 화 를 거 쳤 기 때문이다.따라서 셸 스 크 립 트 는 한 번 만 열심히 쓰 면 많은 시스템 에 적 용 될 수 있다.따라서 Shell 스 크 립 트 를 사용 하려 는 이 유 는:
1. 단순 성: Shell 은 고급 언어 이다.그것 을 통 해 복잡 한 조작 을 간결 하 게 표현 할 수 있다.
2. 이식 성: POSIX 가 정의 하 는 기능 을 사용 하면 스 크 립 트 를 수정 하지 않 아 도 다른 시스템 에서 실행 할 수 있 습 니 다.
3. 개발 이 쉽다: 짧 은 시간 안에 강력 하고 사용 가능 한 스 크 립 트 를 완성 할 수 있다.
단, Shell 스 크 립 트 의 명령 제한 과 효율 문 제 를 고려 하여 다음 경 우 는 Shell 을 사용 하지 않 습 니 다.
1. 자원 집약 적 인 임무, 특히 효율 을 고려 해 야 할 때 (예 를 들 어 정렬, hash 등).
2. 큰 임 무 를 처리 하 는 수학 적 조작, 특히 부동 소수점 연산, 정확 한 연산 또는 복잡 한 산술 연산 이 필요 하 다.
3. 크로스 플랫폼 (운영 체제) 이식 수요 (일반적으로 C 또는 자바 사용) 가 있 습 니 다.
4. 복잡 한 응용 은 구조 화 프로 그래 밍 을 사용 해 야 할 때 (변수의 유형 검사, 함수 원형 등 이 필요 합 니 다).
5. 시스템 의 전체 성에 영향 을 주 는 관건 적 인 임무 응용.
6. 안전 에 대한 요구 가 높 은 임무, 예 를 들 어 침입 방지, 해독, 악의 적 파괴 등 튼튼한 시스템 이 필요 하 다.
7. 프로젝트 는 일련의 의존 적 인 각 부분 으로 구성 된다.
8. 대규모 파일 작업 이 필요 합 니 다.
9. 다 차원 배열 의 지원 이 필요 하 다.
10. 데이터 구조의 지원 이 필요 하 다. 예 를 들 어 링크 나 수 등 데이터 구조 가 필요 하 다.
11. 그래 픽 인터페이스 GUI 를 생 성하 거나 조작 해 야 한다.
12. 시스템 하드웨어 를 직접 조작 해 야 한다.
13. I / O 또는 socket 인터페이스 가 필요 합 니 다.
14. 라 이브 러 리 나 남 겨 진 오래된 코드 의 인 터 페 이 스 를 사용 해 야 한다.
15. 개인 적 이 고 닫 힌 소스 의 응용 (셸 스 크 립 트 는 코드 를 텍스트 파일 에 넣 고 전 세계 에서 볼 수 있 습 니 다).
만약 당신 의 응용 이 위의 임의의 항목 에 부합된다 면, 더 강력 한 언어 를 고려 해 보 세 요. 아마도 Perl, Tcl, Python, Ruby - 또는 더 높 은 차원 의 컴 파일 언어, 예 를 들 어 C / C + +, 또는 자바.그럼 에 도 불구 하고 셸 을 사용 하여 애플 리 케 이 션 을 원형 개발 하 는 것 은 개발 절차 에서 도 매우 유용 하 다 는 것 을 알 게 될 것 이다.

좋은 웹페이지 즐겨찾기