Shell, Bash 및 Scripts : Shell Scripting에 관한 모든 것.

이 새로운 기회에 (항목 # 8)"셸 스크립팅 배우기" 우리는 실천보다 이론에 더 집중할 것입니다. 즉, 우리는 코드를 설치 또는 연구하거나 특정 소프트웨어 (패키지)를 설치하지 않고 쉘 스크립팅 아래에 표시된 작지만 직접적인 질문에 대한 답변을 통해 지금까지 프로그래밍 된 내부 코드를 직접 참조하지 않는 배운 내용의 대부분을 명확히합니다.

쉘 스크립팅

GNU / Linux 운영 체제에서 쉘이란 무엇입니까?

스페인어로 CONCHA (쉘, 덮개, 보호)를 의미하는 쉘. 이 용어를 운영 체제에 적용하는 것은 운영 체제의 명령 인터프리터를 의미합니다. 일반적으로 터미널 (콘솔)의 형태로 나타나는 고성능 텍스트 인터페이스이며 기본적으로 3 가지 중요한 작업 영역에 사용됩니다.

1.- OS 관리,
2.- 응용 프로그램을 실행하고 상호 작용합니다.
3.- 기본 프로그래밍 환경 역할을합니다.

많은 SO, GNU / 리눅스 터미널을 통해 구성 파일을 편집하여 더 효율적으로 관리 할 수 ​​있습니다. 일반적으로 다음은 대상 경로에 있습니다. «/기타", 그리고 각 애플리케이션의 특정 디렉토리 내에 있습니다. 예를 들어, 프로그램 릴로 (Linux Loader의 약자)는 다음과 같이 위치한 텍스트 파일을 편집하여 구성됩니다. "/Etc/lilo/lilo.conf". 프로그램 (응용 프로그램)의 경우, 모든 실행 파일의 경로 (기본 경로)에있는 경우 실행 파일 이름을 작성하여 실행 (실행 / 활성화)합니다. "/ Usr / bin" 또는 실행 파일 이름 앞에 다음을 입력합니다. ./, 그들이 위치한 디렉토리에서.

이 모든 것은 모든 Shell 사용자에게 잘 알려져 있습니다. 그러나 프로그래밍 환경으로서의 기능은 그다지 잘 알려져 있지 않고 평가되지 않습니다. 셸에서 만든 스크립트 (프로그램)는 컴파일 할 필요가 없습니다. Shell은이를 한 줄씩 해석합니다. 따라서 이것들은 Shells Scripts로 알려져 있거나 이름이 지정되며 간단한 명령에서 OS 자체를 시작하기위한 복잡한 일련의 명령에 이르기까지 다양합니다. 일반적으로, 상당히 깨끗한 (명백한) 구문 (구성, 순서 지정), 프로그래밍 세계에서 시작하기에 좋은 출발점이됩니다.

쉘 스크립팅이란 무엇입니까?

운영 체제의 셸 (바람직하게는) 또는 텍스트 편집기 (그래픽 또는 터미널)를 사용하여 스크립트 (작업 자동화 파일)를 설계하고 생성하는 기술 (기술 / 기술)입니다. 이것은 일반적으로 해석되는 프로그래밍 언어 유형입니다. 즉, 대부분의 프로그램이 컴파일 (코딩)되는 동안 실행되기 전에 특정 (특수) 코드로 영구적으로 변환되기 때문에 (컴파일 프로세스), 쉘 스크립트는 원래 형식 (코드 텍스트 소스)가 실행될 때마다 명령별로 해석됩니다. 비록 평범하지는 않지만 스크립트도 컴파일 될 수 있습니다.

Shell Scripting에서 프로그래밍을 기반으로하는 프로그램의 특징은 무엇입니까?

1.- 쓰기 (프로그램)가 더 쉽지만 실행시 처리 비용이 높습니다.

2.- 컴파일러 대신 인터프리터를 사용하여

3.- 다른 프로그래밍 언어로 작성된 구성 요소와 통신 관계가 있습니다.

4.- 그들을 포함하는 파일은 일반 텍스트로 저장됩니다.

5. 최종 디자인 (코드)은 일반적으로 컴파일 된 프로그래밍 언어에 해당하는 것보다 작습니다.

쉘 스크립팅에서 가장 많이 사용되는 언어 유형은 무엇입니까?

1.- 작업 및 셸 제어 언어 :

a) cmd.exe (Windows NT, Windows CE, OS / 2),
b) COMMAND.COM(DOS, Windows 9x),
c) csh, 배쉬, 애플스크립트, sh,
d) Windows 스크립트 호스트를 통한 JScript,
e) Windows 스크립트 호스트를 통한 VBScript,
f) REXX, 다른 많은 것들.

2.- GUI 스크립팅 (매크로 언어) :

a) 오토핫키,
b) 오토잇,
c) 기대,
d) Automator 등.

3.- 특정 애플리케이션의 스크립팅 언어 :

a) Flash의 ActionScript,
b) 매트랩,
c) mIRC 스크립트,
d) QuakeC 등.

4.- 웹 프로그래밍 (동적 페이지 용) :

a) 서버 측에서 :

-PHP,
-ASP (Active Server Pages),
-JavaServer 페이지,
-ColdFusion,
-IPTSCRAE,
-올가미,
-MIVA 스크립트,
-SMX,
-XSLT 등.

b) 클라이언트 측에서 :

-자바 스크립트,
-JScript,
-VBScript,
-Tcl 등.

5.- 워드 프로세싱 언어 :

-AWK,
-펄,
-갈증,
-XSLT,
-배쉬.

6.- 범용 동적 언어 :

-APL,
-부,
-딜런,
-Ferite,
-그루비,
-IO,
-Lisp,
-루아,
-MUMPS (M),
-NewLISP,
-누바,
-펄,
-PHP,
-파이썬,
-루비,
-계획,
- 잡담,
-슈퍼 카드,
-Tcl,
-혁명.

GNU / Linux에서 Bash는 무엇입니까?

주문을 해석하는 기능을 가진 컴퓨터 프로그램입니다. 그것은 유닉스 쉘 그리고 그것은 지원 POSIX. GNU 프로젝트 용으로 작성되었으며 대부분의 Linux 배포판의 기본 셸입니다.

GNU / Linux에서 쉘 스크립트 란 무엇입니까?

쉘 스크립트 매우 유용합니다. 우리가 가지고있는 이러한 요구 사항을 작성한 다음이 작업을 수행하는 스크립트를 편집하는 것이 좋습니다. 이제 스크립트가 정확히 무엇인지 물어볼 때입니다. 시스템이 위에서 아래로 순서대로 실행되는 일련의 셸 명령이 포함 된 텍스트 파일입니다. 이를 편집하려면 기존의 많은 것 중에서 Emacs, Vi, Nano와 같은 텍스트 편집기 만 있으면됩니다. ".sh"확장자로 (또는 일부 경우에는없이) 저장되며 sh script name.sh 명령을 사용하여 쉘에서 실행됩니다. 스크립트는 쉘 명령과 동일한 방식으로 작동합니다.

제가 개인적으로 사용하는 교육 방식 "셸 스크립팅 배우기" 즉, 각 요소가 개별적으로 작동하는 방식과 코드에 어떻게 관여하는지 이해할 때까지 완전히 기능하는 스크립트를 검사하고, 분해하고, 문장별로, 줄별로, 명령별로, 변수별로 연구하는 것은 매우 실용적이고 직접적입니다. 일반. 그것은 일종의 리버스 엔지니어링 또는 소프트웨어 리엔지니어링. 이 모든 것은 지식을 적절하게 활용하고, 개선 (최적화)하고 공유하기 위해 공동 이익과 무료 운영 체제의 더 나은 관리 및 최적화를 위해 공유합니다.

GNU / Linux Shell에서 어떻게 실행되고 작동합니까?

셸 작업의 첫 번째 단계는 셸을 실행하는 것입니다. 진실처럼 보이는 것은 존재 이유가 있습니다. 최종 사용자 중심의 일부 GNU / Linux 배포판에서는 셸이 매우 숨겨져 있습니다. 일반적으로 Konsole, Terminal, X Terminal 또는 이와 유사한 이름으로 불립니다. 또 다른 옵션은 가상 콘솔을 사용하는 것입니다. 사용 : 사용하는 GNU / Linux 배포에 따라 Ctrl + Alt + f1, f2 또는 f3에서 f7 또는 f8까지. GNU / Linux에서 가장 많이 사용되는 Shell은 Bash이지만 ksh 또는 C Shell과 같은 다른 것도 있습니다. 제 경우에는 출판물에 대해 매우 특별합니다. 저는 Bash Shell을 사용합니다.

Bash Shell에서 만든 스크립트가 주어지면 hello_world.sh 다음을 설명 할 수 있습니다.

내용 :

#! / bin / bash
에코 안녕하세요 세계

고장:

스크립트의 첫 번째 줄
#! / bin / bash

스크립트가 실행되어야하는 프로그램을 나타냅니다. 프로그램을 찾을 수 없으면 오류가 발생합니다.

스크립트의 두 번째 줄
에코 안녕하세요 세계

Hello World 인수와 함께 echo 명령을 실행하여 해당 인수가 화면에 표시되도록합니다.

실행: 두 가지 방법으로 스크립트를 실행할 수 있습니다.

인터프리터를 호출하여 스크립트 실행 :
# bash hello_world.sh

다음과 같이 실행할 수도 있습니다.
# sh hello_world.sh

그러나 올바른 셸이 호출되지 않았기 때문에 절반으로 작동 할 수 있습니다. 이상적으로는 첫 번째 줄에서 호출 된 셸이이를 실행하는 데 사용됩니다.

다음과 같이 스크립트를 직접 실행할 수도 있습니다.
# ./hello_world.sh

참고 : ./는 현재 디렉토리에서 실행됨을 나타냅니다.

분석해야 할 나머지는 여기에 삽입하는 코드입니다. 나는 항상 당신이 좋아하기를 바랍니다 (학습 및 지식 요구에 따라 다른 것보다 더)이 시리즈 쉘 스크립팅.

웹에는이 주제에 대한 좋은 링크가 많이 있지만 여기에있는이 작은 가이드를 남겨 둡니다. DesdeLinux.NET 그리고이 다른 외부 가이드.

다음 게시물까지!


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   d4ny

    Lilo .. Linux Loader .. 나머지 아주 좋은 정보 .. 감사합니다 .. salu2 d4ny.-

  2.   잉. 호세 앨버트

    "Learn Shell Scripting"의 온라인 과정을 따르는 모든 분들께 인사드립니다. 곧 다른 기본 스크립트를 계속 사용하여 지식을 계속 활용하고 모두에게 계속해서 사회화 할 것입니다.

    곧 고급 코드로 시작하지만 복잡성에도 불구하고 시각적으로 이해할 수있는 방식으로 노출 될 것이기 때문에 계속 지켜봐 주시기 바랍니다.

    셸 스크립팅을 사용하면 매우 작은 파일을 사용하여 여러 플랫폼 (다른 배포판)의 복잡한 작업을 수행 할 수 있습니다. 이 작은 스크린 캐스트는 제가 곧 여러분에게 가르쳐 줄 것입니다. 코스를 계속 시청하는 사람들에게, 그리고 50Kb만으로도 많은 것을 약속합니다! 셸 스크립팅으로 수행 할 수있는 작업의 절반에 불과합니다.

    LPI-SB8 테스트 ScreenCast (LINUX POST INSTALL-SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adaptation-audiovisual_2016.sh / 43Kb)

    Screencast 참조 : https://www.youtube.com/watch?v=cWpVQcbgCyY

    1.    알베르토 카르 도나

      안녕하세요, 귀하의 기여는 대단합니다. 정말 감사합니다 !!
      약간의 의심이 있습니다. bash로 컴파일러를 프로그래밍 할 수 있습니까?
      아니면 적어도 어휘 분석기?
      그 힘이 있습니까?

  3.   잉. 호세 앨버트

    "Learn Shell Scripting"의 온라인 과정을 따르는 모든 분들께 인사드립니다. 곧 다른 기본 스크립트를 계속 사용하여 지식을 계속 활용하고 모두에게 계속해서 사회화 할 것입니다. 곧 고급 코드로 시작하지만 복잡성에도 불구하고 시각적으로 이해할 수있는 방식으로 노출 될 것이기 때문에 계속 지켜봐 주시기 바랍니다.

    셸 스크립팅을 사용하면 매우 작은 파일을 사용하여 여러 플랫폼 (다른 배포판)의 복잡한 작업을 수행 할 수 있습니다. 이 작은 스크린 캐스트는 제가 곧 여러분에게 가르쳐 줄 것입니다. 코스를 계속 시청하는 사람들에게, 그리고 50Kb만으로도 많은 것을 약속합니다! 셸 스크립팅으로 수행 할 수있는 작업의 절반에 불과합니다.

    LPI-SB8 테스트 ScreenCast (LINUX POST INSTALL-SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adaptation-audiovisual_2016.sh / 43Kb)

    Screencast 참조 : https://www.youtube.com/watch?v=cWpVQcbgCyY

  4.   알베르토

    홀라 호세,
    먼저 지식을 공유해 주셔서 감사합니다. 당신의 기사는 매우 흥미 롭습니다.

    두 가지, 큰 따옴표 "Hello World"를 사용하고 exit 0으로 스크립트를 깔끔하게 출력하는 것이 매우 중요하다고 생각합니다.

  5.   잉. 호세 앨버트

    기여 해주셔서 감사합니다. 다음 스크립트에서는 exit 0, break 등의 사용을 볼 수 있습니다!

  6.   윌라만드

    인사말.
    매우 흥미 롭습니다. 간단하게 보이게합니다. 이제 cron 또는 at, shutdown / suspend / hibernate를 사용하여 Linux에서 프로그래밍 할 수 없다는 것을 발견했습니다 .rtc wake 명령을 사용하여 결과적으로 자동 시작됨, 해당 명령이있는 스크립트가 도움이되는지 또는 cron을 따를 것인지 모르겠습니다. 그리고 t 아무것도하지 않고, 아니면 그냥 할 수 없거나, 다른 방식으로 할 수 있습니다. 또는 저는 매우 야심적이지만 Windows에서는 비교적 간단합니다. Linux로 이동하고 싶지만 종료 / 일시 중지 / 최대 절전을 예약하고 PC가 자동으로 시작되도록하는 것이 중요합니다. 문안 인사.

  7.   잉. 호세 앨버트

    아마도 이것은 당신에게 몇 가지 혁신적인 아이디어를 줄 것입니다. http://cirelramos.blogspot.com/2016/01/reiniciar-apagar-o-ejecutar-otra-tarea.html

  8.   윌라만드

    감사합니다. 자세히 읽어 보겠습니다. 뭔가 도움이 될 것입니다. 문안 인사.

  9.   에두아르도 쿠 오모

    얼마 전에 저는 일종의 프로젝트를 시작했습니다. Framewok Bash의 프로토 타입입니다. 시스템에 Bash 만 필요합니다.
    다른 사람이 관심이있는 경우 시도해보고 협업하도록 초대합니다!

    https://github.com/reduardo7/bashx

    안녕하십니까!

    1.    도마뱀

      친애하는 Eduardo, 저는 이것이 훌륭한 프로젝트라고 생각합니다. 아마도 전체 커뮤니티와 공유할 수 있을 것입니다. desdelinux, 저희 웹사이트에 귀하의 프로젝트에 대한 기사를 게시할 수 있다는 점을 기억하세요. 어떻게 해야 할지 모르신다면 다음 글을 읽어 보시기 바랍니다. https://blog.desdelinux.net/guia-redactores-editores/ 기사 작성에 대한 모범 사례는 어디에 있습니까? desdelinux 그리고 수행할 절차. 아마도 커뮤니티의 경우 먼저 프로젝트의 이점에 대해 알고 두 번째로 이러한 유형의 작업을 수행하는 방법을 배우는 것이 매우 좋습니다. 우리는 귀하를 초대하고 다른 사람들이 자신의 프로젝트를 우리 및 우리를 둘러싼 대규모 커뮤니티와 공유하도록 초대합니다.

  10.   미구엘 우 로사 루이즈

    아침 안녕하세요, 좋아.
    저는 Linux 머신 관리의 세계에 익숙하지 않습니다. ksh, bash, perl, php, python… 등 여러분이 추천하는 것이 무엇인지 알고 싶었습니다.
    감사와 안부.
    미겔.