Shell, Bash і сценарії: все про сценарії Shell.

У цій новій можливості (Запис №8) на "Дізнайтеся сценарії оболонки" ми зосередимось більше на теорії, ніж на практиці. тобто ми не будемо встановлювати чи вивчати код чи встановлювати конкретне програмне забезпечення (пакет), але ми вникнемо у те, що таке світ Сценарії Shell власне кажучи, через відповіді на невеликі, але прямі запитання, які наведені нижче, для роз’яснення поки що більшої частини викладеного, що не стосується безпосередньо запрограмованого внутрішнього коду:

Сценарії ShellЩо таке оболонка в операційній системі GNU / Linux?

Оболонка, що по-іспанськи означає CONCHA (оболонка, кришка, захист). Цей термін, що застосовується в операційних системах, позначає інтерпретатор команд операційної системи. Загалом, це високопродуктивний текстовий інтерфейс, який проявляється у формі терміналу (консолі) і, по суті, використовується для 3 важливих робочих областей:

1. - Управління ОС,
2. - запускати програми та взаємодіяти з ними;
3. - Слугувати базовим середовищем програмування.

Багато GNU / Linux ними все ще ефективніше керувати, редагуючи їхні конфігураційні файли через Термінал. Як правило, вони знаходяться на шляху призначення: «/ і т.д. ", і в межах конкретних каталогів для кожної програми. Наприклад, програма Ліло (що розшифровується як Linux Loader) налаштовується редагуванням текстового файлу, який знаходиться і викликається як "/Etc/lilo/lilo.conf". У випадку програм (додатків) вони запускаються (виконуються / активуються), записуючи ім'я виконуваного файлу, якщо воно знайдене у шляху (шлях за замовчуванням) для всіх виконуваних файлів, як це зазвичай є "/ Usr / bin" , або ввівши ім'я виконуваного файлу, перед яким: ./, з каталогу, де вони знаходяться.

Все це добре відомо будь-якому користувачеві Shell. Однак його можливості як середовища програмування менш відомі та оцінені. Сценарії (програми), виготовлені в оболонці, не потрібно компілювати. Shell інтерпретує їх рядки за рядками. Тому вони відомі або називаються сценаріями оболонок і можуть варіюватися від простих команд до складних серій інструкцій для запуску самої ОС. Загалом, мають досить чистий (очевидний) синтаксис (побудова, упорядкування), що робить їх гарною відправною точкою для початку роботи у світі програмування.

Що таке сценарії оболонки?

Це техніка (здатність / вміння) проектування та створення сценарію (файл автоматизації завдань) за допомогою оболонки (бажано) операційної системи або текстового редактора (графічного або термінального). Це тип мови програмування, який зазвичай інтерпретується. Тобто, хоча більшість програм компілюється (кодується), оскільки вони постійно перетворюються на певний (спеціальний) код перед тим, як їх можна виконати (процес компіляції), скрипт оболонки залишається у вихідному вигляді (шрифт тексту коду) і є інтерпретується команда за командою кожного разу, коли вони виконуються. Хоча цілком можливо, що і сценарії можна компілювати, хоча це не зазвичай.

Які характеристики програм, заснованих на програмуванні за допомогою сценарію Shell?

1. - Їх легше писати (програмувати), але з більшою вартістю обробки під час їх виконання.

2. - Вони використовують інтерпретатори замість компіляторів для запуску

3. - Вони мають взаємозв’язок із компонентами, написаними іншими мовами програмування.

4. - Файли, що їх містять, зберігаються як звичайний текст.

5. - Остаточний дизайн (код), як правило, менший, ніж еквівалент компільованої мови програмування.

Які найпопулярніші типи мов у програмі Shell Scripting?

1. - Мова управління завданнями та оболонкою:

а) cmd.exe (Windows NT, Windows CE, OS / 2),
б) COMMAND.COM (DOS, Windows 9x),
в) csh, Bash, AppleScript, sh,
г) JScript через Windows Script Host,
e) VBScript через Windows Script Host,
f) REXX, серед багатьох інших.

2. - Сценарії графічного інтерфейсу (мови макросів):

а) AutoHotkey,
б) AutoIt,
в) очікуйте,
г) Автоматизатор, серед інших.

3. - Мова сценаріїв конкретних програм:

а) ActionScript у Flash,
б) MATLAB,
в) сценарій mIRC,
г) QuakeC, серед інших.

4. - Веб-програмування (для динамічних сторінок):

а) На стороні сервера:

- PHP,
- ASP (сторінки активного сервера),
- Сторінки JavaServer,
- ColdFusion,
- IPTSCRAE,
- Лассо,
- сценарій MIVA,
- SMX,
- XSLT, серед інших.

b) На стороні клієнта:

- JavaScript,
- JScript,
- VBScript,
- Tcl, серед інших.

5. - Мови обробки текстів:

- AWK,
- Perl,
- спрага,
- XSLT,
- Баш, серед інших.

6. - Динамічні мови загального призначення:

- APL,
- Бу,
- Ділан,
- ферит,
- Groovy,
- IO,
- Lisp,
- Луа,
- ПАУКС (М),
- NewLISP,
- Нува,
- Perl,
- PHP,
- Python,
- Рубін,
- Схема,
- Невеличка розмова,
- SuperCard,
- Tcl,
- Революція, серед інших.

Що таке Bash в GNU / Linux?

Це комп’ютерна програма, функцією якої є інтерпретація замовлень. Він заснований на Оболонка Unix і він підтримує POSIX. Він був написаний для проекту GNU і є оболонкою за замовчуванням для більшості дистрибутивів Linux.

Що таке сценарій оболонки в GNU / Linux?

Сценарії оболонки вони надзвичайно корисні. Це гарна ідея написати ті потреби, які ми маємо, а потім відредагувати сценарії, які роблять цю роботу за нас. Наразі пора запитати себе, що саме являє собою сценарій. Це текстовий файл, що містить ряд команд оболонки, які система виконує впорядковано, зверху вниз. Для їх редагування вам потрібен лише текстовий редактор, наприклад Emacs, Vi, Nano, серед багатьох існуючих. Вони зберігаються з розширенням .sh (або в деяких випадках без нього) і запускаються з командної оболонки за допомогою команди: sh script name.sh. Сценарії поводяться так само, як команди оболонки.

Викладацький підхід, яким я особисто користуюся "Дізнайтеся сценарії оболонки" Це дуже практично і безпосередньо, тобто вивчити повністю функціональний сценарій, розкласти його, вивчити його речення за реченням, рядок за рядком, команду за командою, змінну за змінною, поки ви не зрозумієте, як кожен елемент працює окремо і як він взаємодіє у загальному коді. Це якось так Зворотне проектування або реінжиніринг програмного забезпечення. Все це для того, щоб привласнити знання, вдосконалити їх (оптимізувати) та поділитися ними для загальної вигоди та кращого адміністрування та оптимізації безкоштовних операційних систем.

Як це працює і працює в оболонці GNU / Linux?

Першим кроком у роботі з оболонкою є запуск оболонки. Те, що здається істиною, має свою причину існування. У деяких дистрибутивах GNU / Linux, орієнтованих на кінцевих користувачів, оболонка досить прихована. Зазвичай він називається: Konsole, Terminal, Terminal X або щось подібне. Інший варіант - використання віртуальної консолі. Використання: Ctrl + Alt + f1, або f2, або f3 - f7 або f8, залежно від розподілу GNU / Linux, який ви використовуєте. Найпоширенішою оболонкою в GNU / Linux є Bash, хоча є й інші, такі як ksh або C Shell. У моєму випадку, особливо для своїх публікацій, я використовую Bash Shell.

Отримавши скрипт, зроблений у Bash Shell, зателефонував hello_world.sh можна пояснити наступне:

Зміст:

#! / бін / баш
ехо привіт світ

Зламатися:

Перший рядок сценарію
#! / бін / баш

Позначає програму, яку повинен запускати сценарій. Якщо програму не вдається знайти, трапиться помилка.

Другий рядок сценарію
ехо привіт світ

Виконайте команду echo з аргументами Hello World, викликаючи їх відображення на екрані.

Виконання: Ми можемо запустити сценарій двома способами

Запуск інтерпретатора для запуску сценарію:
# bash hello_world.sh

Його також можна запустити як:
# sh hello_world.sh

Але оскільки ваша правильна оболонка не викликається, вона може спрацювати наполовину. В ідеалі, оболонка, що викликається в першому рядку, є тією, яка використовується для її виконання.

Ви також можете запустити сценарій безпосередньо наступним чином:
# ./ hello_world.sh

Примітка: ./ означає запуск із поточного каталогу.

Решта, що залишається проаналізувати - це код, який ви вставляєте в нього. Я сподіваюся, що як завжди вам подобається (деякі більше, ніж інші, відповідно до потреб у навчанні та знаннях) ця серія Сценарії Shell.

В Інтернеті є багато хороших посилань на цю тему, але я залишаю вам цей маленький путівник, розташований тут FromLinux.net І це інше Зовнішній путівник.

До наступного допису!


Зміст статті відповідає нашим принципам редакційна етика. Щоб повідомити про помилку, натисніть тут.

13 коментарі, залиште свій

Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   d4ny - сказав він

    Lilo .. Linux Loader .. решта дуже гарна інформація .. дякую .. salu2 d4ny.-

  2.   Інж. Хосе Альберт - сказав він

    Вітаємо всіх, хто незабаром відвідує Інтернет-курс "Вивчайте сценарії оболонок", ми продовжимо з іншими базовими сценаріями, щоб продовжувати привласнювати знання та продовжувати спілкувати їх із усіма.

    Я сподіваюсь, ви будете в курсі подій, тому що незабаром я почну з більш досконалих кодів, але викладених таким чином, щоб це було зрозуміло візуально, незважаючи на його складність.

    Пам'ятайте, що за допомогою Shell Scripting ви можете робити багато складних речей, які є міжплатформенними (різні дистрибутиви), використовуючи дуже маленькі файли. Я залишу вам цей невеликий скрінкаст про те, чому я навчу вас найближчим часом, тим, хто продовжує дивитись курс, і що лише з 50 Кб обіцяє багато! І це лише половина того, що можна зробити за допомогою сценаріїв Shell.

    LPI-SB8 Test ScreenCast (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adecuación-audiovisual_2016.sh / 43 Кб)

    Див. Скрінкаст: https://www.youtube.com/watch?v=cWpVQcbgCyY

    1.    Альберто Кардона - сказав він

      Привіт, ваш внесок неймовірний, справді дякую !!
      Я трохи сумніваюся, чи можу я запрограмувати компілятор з bash?
      Або принаймні лексичний аналізатор?
      має таку силу?

  3.   Інж. Хосе Альберт - сказав він

    Вітаємо всіх, хто незабаром відвідує Інтернет-курс "Вчимо сценарії оболонок", ми продовжимо інші базові сценарії, щоб продовжувати привласнювати знання та продовжувати їх спілкувати. Сподіваюся, ви будете в курсі подій, бо незабаром я почну з більш досконалих кодів, але викладених таким чином, щоб це було зрозуміло візуально, незважаючи на його складність.

    Пам'ятайте, що за допомогою Shell Scripting ви можете робити багато складних речей, які є міжплатформенними (різні дистрибутиви), використовуючи дуже маленькі файли. Я залишу вам цей невеликий скрінкаст про те, чому я навчу вас найближчим часом, тим, хто продовжує дивитись курс, і що лише з 50 Кб обіцяє багато! І це лише половина того, що можна зробити за допомогою сценаріїв Shell.

    LPI-SB8 Test ScreenCast (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adecuación-audiovisual_2016.sh / 43 Кб)

    Див. Скрінкаст: https://www.youtube.com/watch?v=cWpVQcbgCyY

  4.   Альберто - сказав він

    Привіт Хосе,
    Спочатку дякую, що поділилися знаннями. Ваші статті дуже цікаві.

    Дві речі, я думаю, що дуже важливо використовувати подвійні лапки "Hello World" і мати чистий результат нашого сценарію з виходом 0

  5.   Інж. Хосе Альберт - сказав він

    Дякуємо за ваш внесок, у наступному сценарії ви побачите використання виходу 0, перерви та інших!

  6.   Вілларманд - сказав він

    Привіт.
    Дуже цікаво, ви робите це виглядати просто; Тепер я виявив, що я не можу програмувати в Linux за допомогою cron або at, shutdown / suspend / hibernate, з подальшим автоматичним запуском за допомогою команди rtc wake, я не знаю, чи допоможе сценарій з цією командою, або вони слідкував би за cron і t, нічого не роблячи, або це просто неможливо зробити, або це робиться по-іншому, або я дуже амбіційний, але в Windows це порівняно просто зробити. Я хочу перейти на Linux, але мені важливо запланувати вимкнення / призупинення / сплячий режим і запустити ПК самостійно. З повагою.

  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.    ящірка - сказав він

      Шановний Едуардо, я вважаю, що це чудовий проект, можливо, ти міг би поділитися ним з усією спільнотою desdelinux, пам’ятай, що ти можеш опублікувати статтю про свій проект на нашому веб-сайті. Якщо ти не знаєш, як це зробити, рекомендую прочитати https://blog.desdelinux.net/guia-redactores-editores/ де найкращі практики створення статей у desdelinux та процедура їх виконання. Можливо, для громади цілком добре спочатку знати про переваги вашого проекту, а по-друге, навчитися робити подібні речі. Ми запрошуємо вас та запрошуємо решту рекламувати свої проекти разом із нами та широкою спільнотою, яка нас оточує.

  10.   Мігель Уроса Руїс - сказав він

    Привіт добрий день.
    Я новачок у світі адміністрування машин Linux, і я хотів би знати, що ви для нього рекомендуєте: ksh, bash, perl, php, python….
    Велике спасибі та вітання.
    Мігель.