쉘 스크립팅이란 무엇이며 사용해야 하는 이유

쉘 스크립팅이란 무엇이며 사용해야 하는 이유

셸은 시스템에서 실행할 명령을 입력할 수 있는 Linux 또는 Unix 운영 체제 내의 프로그램입니다. Linux 컴퓨터에서 터미널 창을 열면 명령을 입력할 수 있는 인터페이스를 제공하는 셸 프로그램이 시작됩니다. 이 인터페이스를 명령줄 인터페이스라고 합니다. 명령이 입력되면 쉘에 의해 실행되고 출력이 화면에 표시됩니다.





명령을 대화식으로 수락하고 실행할 수 있을 뿐만 아니라 쉘은 파일에 저장된 명령도 실행할 수 있습니다. 이 실행 모드는 쉘 스크립팅 , 그리고 이 기사에서는 쉘 스크립팅의 기본 사항을 다룹니다.





1. 쉘의 역사

1970년대 유닉스를 시작으로 쉘 프로그램이 있었다. V6 쉘 켄 톰슨에 의해 개발. 그것은 대화형 쉘이었고 스크립팅 능력이 부족했습니다.





그 뒤를 이었다 본 쉘 1977년에 만들어졌으며 오늘날에도 기본 쉘로 사용 중입니다. 뿌리 계정. 이 셸은 수년 동안 실제로 매우 유용한 것으로 입증된 스크립팅 기능을 추가했습니다.

1980년대 쉘의 추가 개발로 인해 많은 인기 있는 쉘 변형이 생겨났으며, 그 중 가장 인기 있는 것은 다음과 같습니다. C-쉘 그리고 콘 쉘 . 이러한 각 셸은 고유한 구문을 가져오며, 특정 경우에는 원래 셸과 크게 다릅니다.



오늘날 가장 인기있는 쉘 중 하나는 배쉬 쉘 . 배쉬는 본 어게인 쉘 원래 Bourne Shell의 크게 개선된 변형입니다.

가장 편견없는 뉴스는 무엇입니까

이 기사에서는 다음을 위한 쉘 스크립팅에 대해 설명합니다. 배쉬 쉘 .





2. 쉘 스크립트 실행

쉘 스크립트를 어떻게 실행합니까? 단순한. 스크립트 경로를 셸에 대한 인수로 전달하기만 하면 됩니다.

샘플 셸 스크립트:





echo 'hello world'

다음과 같이 실행하십시오.

$ bash hello.sh
# prints
hello world

메모: 셸에서는 줄을 LF 문자(줄 바꿈)로 종료해야 합니다. Windows에서 쉘 스크립트를 작성하고 Linux 시스템에서 직접 실행하려고 하면 오류가 발생할 수 있습니다. Windows는 라인 종료를 위해 CR-LF 조합(Carriage-Return-Line-Feed)을 사용합니다. 이것은 LF로만 변환해야 합니다. 이 작업을 수행하는 방법은 Windows 편집기를 확인하십시오.

쉘 스크립트를 명령으로 직접 실행하는 또 다른 방법이 있습니다. 다음 줄을 삽입하십시오( 해시뱅 선언)을 셸 스크립트의 첫 번째 줄로 사용합니다.

페이스북에서 보이지 않게 보이게 하는 방법
#!/bin/bash

이 변경으로 이제 간단한 쉘 스크립트는 다음과 같습니다.

#!/bin/bash
echo 'hello world'

이제 다음과 같이 스크립트 파일을 실행 가능하게 만들어야 합니다.

$ chmod +x hello.sh

이때 명시적으로 셸을 참조할 필요 없이 스크립트 파일을 직접 실행할 수 있습니다.

$ hello.sh
# prints
hello world

이제 쉘 스크립트 사용의 몇 가지 이점을 살펴보겠습니다.

3. 작업 자동화

쉘 스크립트를 사용하는 첫 번째 이점은 자주 실행되는 작업을 자동화한다는 것입니다. 매일 수행해야 하는 작업이 있다고 가정합니다. Linux 시스템에서 매일 여러 명령을 실행해야 하는 경우 이러한 명령을 파일에 저장하고 스크립트를 실행할 수 있습니다. 예는 다음과 같습니다.

  • 파일 또는 폴더를 매일 보관 및 업로드 클라우드 저장 시설 예를 들어 S3.
  • 매일 증가하는 경향이 있는 로그 파일을 압축합니다.
  • 주가를 가져오고 가져온 데이터를 구문 분석하고 특정 조건(너무 높거나 낮은 가격)이 충족되면 이메일 또는 SMS를 트리거합니다.

4. 여러 명령 결합

빈번한 작업을 자동화하는 것 외에도 여러 명령 시퀀스를 단일 명령으로 결합할 수 있다는 장점이 있습니다. 단일 명령을 기억하는 것은 실행해야 하는 순서는 말할 것도 없고 여러 명령보다 훨씬 간단합니다.

예를 들어 Linux 운영 체제 자체의 부팅 순서가 있습니다. 부팅의 일부로 OS는 시스템을 적절한 상태로 만들기 위해 여러 명령을 실행합니다. 이 명령은 실제로 아래에 있는 쉘 스크립트입니다. /등 예배 규칙서. 이러한 셸 스크립트 중 하나를 살펴보면 셸 스크립트가 없는 경우 수동으로 수행해야 했을 수 있는 시스템 부팅의 복잡성을 깨닫게 될 것입니다.

다음은 샘플 셸 스크립트입니다. /etc/프로필 , 사용자가 로그인할 때마다 실행됩니다. 이러한 명령을 손으로 입력한다고 상상해 보십시오!

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ '$PS1' ]; then
if [ '$BASH' ] && [ '$BASH' != '/bin/sh' ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='h:w$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ '`id -u`' -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
# The default umask is now handled by pam_umask.
# See pam_umask(8) and /etc/login.defs.
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi

5. 개발 용이성

C/C++로 작성된 일반 프로그램 내에서 쉘 스크립트와 동일한 작업을 수행하는 것이 가능합니다. 그러나 C/C++ 프로그램보다 셸 스크립트를 작성하고 디버그하는 것이 훨씬 쉽습니다. 특히 외부 명령 실행, 파일 및 디렉터리 생성 및 제거, 출력 리디렉션 등을 포함하는 시스템 관리 작업의 경우

C/C++ 프로그램은 시스템 호출 호출, 데이터 구조 조작 등과 같은 훨씬 낮은 수준의 작업에 더 좋습니다.

6. 투명성

셸 스크립트는 텍스트 파일이기 때문에 수행 중인 작업을 확인하기 위해 쉽게 볼 수 있습니다. 대조적으로, C/C++와 같은 언어로 작성된(그리고 실행 파일로 컴파일된) 프로그램이 무엇을 하는지 알 수 있는 유일한 방법은 프로그램이 알려주도록 선택하거나 소스 코드에 액세스할 수 있는지 여부입니다. 예를 들어, 쉘 스크립트가 파일을 삭제하고 있는지 확인할 수 있으며 해당 파일이 필요한 경우 다른 위치에 복사할 수 있습니다.

또한 소스 코드를 볼 수 있기 때문에 일반 프로그램보다 쉘 스크립트로 문제를 진단하는 것이 훨씬 쉽습니다. 디렉토리가 없기 때문에 해당 스크립트가 실패합니까? 스크립트 코드를 보고 디렉토리를 생성할 수 있습니다.

7. 휴대용

에게 쉘 스크립트 다른 Unix 및 Unix 유사 운영 체제로 전송되어 실행될 수 있습니다(쉘 자체가 있는 경우). x86, MIPS, Sparc 등과 같은 다른 아키텍처에서 셸 스크립트를 전송할 때에도 셸 스크립트는 C/C++ 프로그램보다 이식성이 훨씬 뛰어납니다.

C/C++ 프로그램을 전송하여 다른 시스템에서 사용할 수 있는 유일한 방법은 소스 코드를 복사하고 프로그램을 빌드하고 실행을 시도하는 것입니다. 그렇더라도 아키텍처별 코드를 사용하는 경우 예상대로 작동하지 않을 수 있습니다.

이제 쉘 스크립트가 무엇이며 많은 장점이 있는지 알았으므로 작업에 사용하고 싶지 않습니까? 그것들을 사용할 때 어떤 문제에 직면했습니까? 아래 의견에 알려주십시오.

내 디스크 사용량이 항상 100인 이유
공유하다 공유하다 트위터 이메일 VirtualBox Linux 시스템을 강화하기 위한 5가지 팁

가상 머신이 제공하는 열악한 성능에 지쳤습니까? VirtualBox 성능을 높이려면 다음을 수행해야 합니다.

다음 읽기
관련 항목
  • 프로그램 작성
  • 리눅스 배시 쉘
저자 소개 제이 스리다르(게시된 기사 17건) 제이 스리다르가 참여한 작품 더보기

뉴스레터 구독

기술 팁, 리뷰, 무료 전자책 및 독점 거래에 대한 뉴스레터에 가입하십시오!

구독하려면 여기를 클릭하세요.