쉘프로그래밍을 하게되면 머가좋죠?

리눅스초보입니다 이제 명령어 기본정도 활용하고있는데 쉘프그래밍이라는 파트가 있던데…쉘프로그래밍을 햇을때 이점이 있나요?

[quote="bench87":38cds8ky]리눅스초보입니다 이제 명령어 기본정도 활용하고있는데 쉘프그래밍이라는 파트가 있던데…쉘프로그래밍을 햇을때 이점이 있나요?[/quote:38cds8ky]
쉘배치 (shell batch)를 사용해서 반복 명령어를 자동으로 또는 쉽게 실행 할 수 있습니다.

아이콘을 (더블)클릭하면 쉘명령어가 실행되는 것과 같은 효과나 그보다 더 많은 효과를 얻어낼 수 있습니다.

쉘프로그래밍 이란 거는 SHELL(명령 실행 프로그램)에서 처리해 주는 프로그래램을 작성하는 법을 말하는 것입니다. 장점은 실제로 유닉스에서 제공하는 다양한 작은 명령들을 조합해서 필요한 작업을 하게 하는 프로그램을 작성할 수 있다는 것입니다.

예를 들어 X 란 파일이 있으면 X의 생성일자를 붙인 파일이름으로 변경한다던가 파일 이름에 특정 부분을 분류해서 디렉토리로 옮기는 작업을 주기적으로 처리한다던가 하는 일을 해 줄 수 있습니다. 초기에 SHELL 프로그래밍은 매우 간단한 작업만 가능했었는데 최근에는 좀 더 많은 기능을 처리해 주는 작은 프로그램들이 생기면서 상당히 복잡한 것도 처리할 수 있도록 발전되어 사용되고 있습니다.

파일이나 시스템관리 측면의 작업에 한해서는 직접 프로그램을 작성하는 것 보다 SHELL프로그래밍을 이용하는 것이 유리합니다.

쉘이란게 먼고하니…
운영체제와 어플리케이션 사이를 연결하는 넘이에요

운영체제 부분은 로우레벨(어려움)이고
어플리케이션 부분은 하이레벨로 볼 수 있죠(쉽게 접근가능).
그사이에서 쉘이 동작하는데 bash,csh,tcsh,zsh등등 이 있죠.

우리가 기본적으로 리눅스에서 명령을 내리는것은 일단 쉘에서 처리하게 되요.
그런데 한 줄 한 줄 입력하려면 번거롭자나요?
그래서 쉘들은 나름대로의 문법으로 스크립팅언어를 지원해요
csh이란건 (C shell)은 C언어와 비슷한 문법을 가진 쉘이죠

쉘프로그래밍이라는것은 쉘에게 명령을 내리는데
요걸 쉘에서 제공하는 언어 문법을 이용하여 자동적으로 실행 함을 말하는 거구요

해당 스크립팅 언어로 여러 명령의 조합으로 파일로 만들어
실행하는 과정을 배치( Batch)라고 하죠

도스배치파일인 .bat확장자도 그와 같은 맥락이지만 도스의 쉘인 command.com의
스크립팅 언어가 너무 단순해서 보통은 명령들을 줄줄이 적기만 하죠.

쉘스크립트를 만들어서 배치작업을 하게 되면…
많은 명령의 조합을 하나의 명령처럼 단순화 할 수 있게되고, 또 그 과정을 잊어버려도
파일로 저장해놓으면 그냥 실행하거나 옵션만 바꿔서 실행하면 되니깐
많이 편해져요

예를 들어 1.44M 플로피디스크 이미지를 만든다고 하면
#!/bin/bash
IMG_FILE=${1:-flp14.ima}
dd if=/dev/zero of=$IMG_FILE bs=10k count=144
mkfs.vfat $IMG_FILE

요렇게 스크립트를 만들어 놓고
sh mkflp.1440 dosboot.ima
이런 명령으로 dosboot.ima라는 파일(1.44M FAT32로 포멧된 플로피이미지) 이 만들어지게 되죠