티스토리 뷰

시스템 서버

[linux] Shell Script 공부 1일차 - Chapter 1

달리는개발자 2011. 10. 21. 22:44
Chapter 1 : Quick Introduction to Linux

리눅스는 무엇인가?


Free
a. 리눅스는 무료다
b. 리눅스를 사용할 때 MS Windows 나  유닉스의 상용버전과 같이 돈을 낼 필요가 없다
c. 리눅스 소스코드를 맘대로 수정할 수 있다
d. 많은 무료 소프트웨어 어플리케이션들, 개발언어들 그리고 개발툴 등을 지원한다.

Unix Like
a. 유닉스는 거의 35년 이상된 OS이다.
b. 1964년에 MIT & General Electric의 벨 연구소에 의핸 MULTICS(Multiplexed Information and Computing System)라 불리는 OS가 개발되었다. 그러나 이 OS는 성공한 OS는 아니었다.
그때 벨 연구소의 시스템 프로그래머인 Ken Thompson는 그가 더 나아지게(?) 할 수 있다고 생각했다.(1991년에 리누스 토발즈도 Minix보다 더 나아지게 할 수 있다고 느꼈다... 역사는 반복된다(??)) 그래서 Ken Thompson는 PDP - 7 컴퓨터, 어셈블러, 몇몇 유틸리티들로 OS를 개발했다. 이것은 Unix(1969년)로 잘 알려져 있다.
그러나 이 유닉스 버전은 휴대용이 아니었다. 그때 유닉스는 C로 재작성되었다. 그것은 휴대할 수 있었다.
왜냐하면 C로 작성된 유닉스였기 때문이다. 그것은 유닉스가 다양한 하드웨어 플랫폼에서 운영될 수 있다는 것을 의미한다.
(1970-71년)
c. 그와 동시에(At the same time) 유닉스는 대학들에 배포되기 시작했다. 많은 학생과 교수들이 유닉스를 경험하기 시작했다.
유닉스가 인기를 얻었고, 몇몇 새로운 특징이 추가되었다. 그때 US 정부 와 군대에서는 inter-network를 위해 유닉스를 사용한다.(오늘날 그것은 인터넷으로 알려져 있다.)
d. 그래서 유닉스는 Multi-user, Multitasking, Internet-aware Network OS 이다. 리눅스는 거의 유닉스와 같은 특징을 가진다.
e. 유닉스처럼 리눅스 역시 C로 작성되었다.
f. 유닉스처럼 리눅스 역시 Multi-user/Multitasking/32 or 64 bit Network OS 이다.
g. 유닉스처럼 리눅스는 개발 및 프로그래밍 환경이 부유하다.(?)
h. 유닉스처럼 리눅스는 다른 하드웨어 플랫폼에서 동작한다.
    i. Intel x86 processor (Celeron/PII/PIII/PIV/Old-Pentiums/80386/80486)
    ii. Macintosh PC's
    iii. Cyrix processor
    ix. AMD processor
    x. Sun Microsystems Sparc processor
    xi. Alpha Processor(Compaq)

Open Source
a. 리눅스는 GNU Public License 아래 개발 되었다.
b. GPL 아랴의 소스코드는 그것을 원하는 누구든지 이용할 수 있고 자유롭게 수정하거나 발전시킬 수 있다. 코드를 사용함에 몇가지 제한이 있다. 만약 당신이 프로그램을 바꿨다면 모든 사람이 그것을 이용할 수 있어야한다. 이것은 기본적으로 당신이
리눅스 소스 코드를 수정하고 그것을 팔 수 없는 것을 의미한다.

Network operating system

리눅스는 누가 개발했나?
1991년에 리눅스 토발즈(Linus Torvalds)는 대학에서 유닉스를 공부했다. 그는 교육적인 목적으로 Minix (small version of Unix and used in Academic environment) 라 불리는 운영체제를 사용했다. 그러나 Minix는 그것을 소유하는데 제한이 있었다. 리누스는 그가 Minix보다 더 나아지게 할 수 있다고 느꼈다. 그래서 그는 그가 그의 소유의 Minix 버전을 개발했고 그것이 현재의 리눅스이다. 리눅스는 그 날로부터 오픈소스이다.

커널은 무엇인가?
커널은 리눅스 Os의 심장이다.
그것은 리눅스 Os의 자원을 관리한다. 자원은 리눅스에서 이용할 수 기능들을 의미한다. 데이터 저장 기능, 프린터의 프린터 데이터, 메모리, 파일 관리 등....
커널은 이 자원을 누가, 얼마나 오래.., 그리고 언제 사용할지를 결정한다.
그것은 당신의 프로그램 또는 바이너리 파일들을 실행으로 동작한다.
그 커널은 컴퓨터 하드웨어와 다양한 프로그램/어플리케이션/쉘 사이의 중재자 역할을 한다.
그것은 리눅스 메모리 일부에 거주하고 다음의 작업들을 수행한다.
 a. I/O 관리(management)
 b Process 관리
 c. Device 관리
 d. File 관리
 e. 메모리 관리

리눅스 쉘이 무엇인가?
a. 컴퓨터는 0과 1로 불리는 이진 언어(binary language) 를 이해한다.
b. 초창기 컴퓨터 시절에 명령어는 우리가 읽거나 쓰기 어려운 이진 언어로 제공됐다. 그래서 Os에는 쉘이라 부리는 특별한 프로그램이 있었다. 쉘은 영어로 당신의 지시나 명령을 받는다 그리고 명령이 유효하면 커널에 보낸다.
c. 쉘은 사용자 프로그램이거나 상호작용을 위한 환경을 제공한다. 쉘은 표준 입력 장치(키보드와 같은) 나 파일로 부터 읽은 명령어들은 실행하는 명령어 해석 프로그램이다.
d. 쉘은 시스템 커널의 일부가 아니다. 그러나 파일을 생성하는 것과 같이 프로그램을 실행하기 위해 시스템 커널을 사용한다.
e. 몇몇 쉘은 그것이 포함된 리눅스에서 이용할 수 있다.
 Shell Name Developed by Where  Remark 
 BASH(Bourne-Again SHell)  Brian Fox and Chet Ramey Free Software Foundation  리눅스의 가장 일반적인 쉘
프리웨어 쉘 
 CSH(C SHell)  Bill Joy University of California
(For BSD) 
 The C shell's 구문과 사용이 C 프로그래밍 언어와 가장 유사하다.
 KSH (Korn SHell)  David Korn AT & T Bell Labs   
 TCSH  $ man tcsh 를 쳐서 매뉴얼을 봐라    TCSH는 향상시켰지만 가장 완벽하고 호환성이 좋은 버젼은 Berkeley UNIX C shell(CSH) 이다.

팁 : 당신의 시스템의 이용가능한 쉘들을 찾기위해 다음의 명령어를 입력하시오.
$ cat /etc/shells
각 쉘은 같은 일을 하지만 각각은 다른 명렁어 구문을 이해하고 그리고 다른 내장된 functions를 제공한다.
MS-DOS에서 쉘 이름은 command.com 이고 같은 목적으로 사용되지만 그것은 리눅스 쉘만큼 강력하지 않다.
위에 나와있는 어떤 쉘이든 사용자(키보드나 마우스를 통해)로부터 입력된 명령어를 읽는다. 그리고 리눅스 Os에 사용자가 원하는 것이 무엇인지 말해준다.
팁 : 현재 쉘을 찾기 위해 다음의 명령어를 입력하시오
$ echo $SHELL


쉘 스크립트가 무엇인가?
a. 일반적으로 쉘은 상호작용적이다. 그것은 쉘이 당신(키보드를 통한)으로부터 명령을 받아들이고 그것을 실행하는 것을 의미한다. 그러나 만약 당신이 차례대로 명령어를 사용하면 당신은 텍스트 파일에 명령어를 저장하고 명령어들을 입력하는 대신에 텍스트 파일을 실행하라고 말할 수 있다. 이것이 잘 알려진 쉘 스크립트이다.
b. 쉘 스크립트는 다음과 같이 정의된다.
   "쉘 스크립트는 텍스트 파일에 쓰여진 명령어의 연속이다. 쉘 스크립트는 단지 MS-DOS의 batch file과 같다. 그러나 좀 더
    힘이 있다."

왜 쉘 스크립트를 작성할까?
a. 쉘 스크립트는 사용자나 파일로 부터 입력을 받고 화면에 출력할 수 있다.
b. 우리의 명령어를 생성하기에 유용하다.
c. 많은 시간을 절약한다.
d. To automate some task of day today life
e. 시스템 관리 부분을 자동으로 할 수 있다.


※ 영어에 약한 관계로 오역이 있을 수 있으니 너그러운 마음으로 지적해 주셨으면 합니다 ^^

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함