Shell Scripting в Linux - Комп'ютери взагалі розуміють мову 0-х та 1-х, яка відома як двійкова мова. Десятиліття тому люди писали програми та програми, як навіть калькулятори на бінарних мовах. Але це було не дуже. Просто уяви! Ви хочете обчислити 73 + 96, як би ви писали? Вам слід скоріше обчислити двійкове ціле число для 73 та 96, а потім додати їх. Людина повинна бути досить дурною, щоб це зробити. Краще обчислити 73 та 96 на папері та йти далі. Але це для меншої частини. Що робити, якщо вам доведеться обчислити щось на кшталт (19273/23 * (2967 3)). Зараз я б сказав, що це досить інтенсивно.
Отже, нестандартна людина, яка вчиться кодувати все бінарною мовою, не має сенсу. Це головна причина, чому комп’ютери не були популярними в 70-х і 80-х. Але пізніше, ще до того, як була розроблена Windows, люди почали розробляти ядра та подібні речі, які були основною частиною операційної системи. Ядра використовуються для розуміння читаного людським форматом певної програми, а потім перетворюють його в машинний код. І саме тут виникли мови програмування та змінили всю епоху комп'ютерного світу. Програми створювались на C та C ++, а згодом із Java, Python, Ruby та Perl.
На сьогоднішній день існує понад 50 мов програмування навколо. І це принаймні ті, про які я знаю. Не кажучи вже про те, що існують інші мови програмування, які навіть важче зрозуміти, ніж машинний код. Моя думка, такі приклади, як куряче програмування та Malbolge. Вони є деякими серйозними неприємними справами.
Програмування оболонки… .errr… Сценарій?
Тепер вам може бути цікаво, чому я не згадував програмування Shell вище разом з іншими мовами програмування. Основна причина, що сама Shell - це не мова програмування. Це мова сценаріїв. Shell - це просто інтерактивна програма для користувача, яка інтерпретує будь-які дані користувача та дає результат за умови коректності команди. Потім програма передає ядро для його виконання. Оболонка не є частиною ядра, але натомість використовує ядро для виконання своєї роботи із створення та створення файлів.
Види програми сценаріїв оболонок
Зараз, на відміну від C, C ++ або Java, існує кілька інших типів оболонок, які можна використовувати для сценарію Shell. Нижче наведено чотири типи оболонки, доступні до цього часу:
Ні. | Тип оболонки | Опис |
1. | Bash aka Bourne Again Shell | Це найпоширеніша оболонка, доступна в усіх системах Linux та debian. Це відкритий і безкоштовний код. |
2. | CSH або C Shell | Ця програма сценаріїв Shell використовує синтаксис оболонки програмування C і майже подібний до C. |
3. | KSH або Korn Shell | Korn - це сценарій програми Shell Shell на основі Unix, спочатку заснований на сценарії Bash Shell. Ця оболонка є досить розвиненою та її мовою програмування високого рівня. |
4. | TCSH | Немає конкретної повної форми TCSH. Це як є. TCSH - це вдосконалена версія оболонки Berkeley Unix C. Він знову підтримує синтаксис стилю C |
Щодо сьогодні, то тут не всі нас цікавлять усі вищезазначені снаряди. Нас цікавить тільки шкаралупа Баша, оскільки вона є найбільш часто використовуваною оболонкою у світі сьогодні.
Оболонка Баша
Програма сценаріїв Bash Shell - це сценарій мови високого рівня, подібний до мови пітона. Але якщо у вас є досвід роботи з Python раніше, то ви дійсно виявите, що сценарій Bash Shell набагато простіше, ніж будь-яка інша мова сценаріїв. Можна писати сценарії в bash набагато швидше, ніж у C, C ++, Java або Python. Термінал за замовчуванням у найсучаснішому середовищі Linux, скажімо, наприклад: - Ubuntu, Linux Mint Cinnamon / Rafaela, Fedora, Arch Linux або будь-яке інше середовище debian складається з Bash як Shell за замовчуванням. Однак ви можете перевірити всі середовища оболонки, наявні у вашій системі, ввівши в Термінал за замовчуванням наступне:
$ cat / тощо / оболонки |
(Примітка. Знак долара на початку використовується для ідентифікації терміналу.)
Синтаксис 'cat', який використовується для читання текстових файлів. Типи програм сценаріїв оболонок у середовищі Linux, Unix або Debian зберігаються у файлі оболонки в каталозі etc. Кожна оболонка має свій унікальний набір синтаксисів та власний набір вбудованих функцій. У DOS або windows також є своя оболонка, відома як сумнозвісна "командна строка" або "powerhell" від Windows 8.1 і далі, але вона все ще не така потужна, як баш. Синтаксис кота надасть вам список оболонок, наявних у системі, однак, щоб знайти оболонку за замовчуванням або перевірити поточний за допомогою оболонки, у терміналі сценарію оболонки оболонки можна використовувати такий синтаксис: -
$ echo $ SHELL |
Синтаксис 'ехо' використовується для друку будь-якого твердження. Тут 'SHELL' - це змінна, призначена для друку поточної оболонки. Знак долара після «відлуння» використовується для відображення змінної у програмі Shell Scripting.
Рекомендовані курси
- Курс сертифікації в сплячому режимі Java
- Весняний курс Java
- Інтернет-навчання WordPress
- Тренування рубінів
Сценарій оболонок
Отже, тепер ви знаєте, що таке оболонка, давайте подивимось на сценарій Shell та чому це так відомо. Shell Scripting - це не що інше, як серія команд у простому текстовому файлі, що закінчується розширенням '.sh'. '.Sh' визначає, що це виконуваний файл оболонки. Після написання сценарію оболонки потрібно змінити виконавчий дозвіл за допомогою функції «chmod». За замовчуванням будь-яка новостворена оболонка не виконується в середовищі UNIX або Linux, якщо дозволи спеціально не змінені. Shell Scripting майже схожий на програму пакетного програмування з Windows, але різниця полягає в тому, що Shell Scripting є досить потужнішим та забезпечує набагато більш високе інтерактивне середовище разом із доповненнями вкладок. Для написання сценарію оболонки потрібно використовувати хороший текстовий редактор. Кілька кращих, про які я знаю, - це Vim, Gedit та Leafpad.
На відміну від інших мов програмування, сценарії Shell швидше писати та виконувати. Вам не потрібно завантажувати якісь певні пакети чи залежності, які потрібно виконати. Вони можуть бути використані не тільки системним адміністратором, але і звичайною людиною для щоденного виконання автоматизованих сценаріїв. Далі наводиться простий приклад сценарію, написаного тут.
#! / бін / баш echo -e "Ласкаво просимо до першої програми оболонки. \ n" echo -e "Напишіть щось тут, і ця програма буде надрукувати те саме. \ n" # вимагаючи від користувача введення введення для читання # читаючи вхід від користувача ехо "Ви введено: $ input ” вихід 0 |
Тепер дозвольте мені пояснити всі параметри у наведеному вище коді. Перш за все, запишіть наведений вище код у текстовий файл у форматі "як є" та збережіть його з розширенням, що закінчується на ".sh". Наприклад, назвіть файл як "main_program.sh". Переконайтеся, що це не 'main_program.sh.txt'. Більшість початківців схильні робити те саме, і тоді це не виконується. Після того як вищезгаданий код скопійовано, змініть його дозволи, використовуючи наступний синтаксис у терміналі: -
$ chmod + x main_program.sh АБО $ chmod 755 main_program.sh |
Сміливо використовуйте будь-яку з перерахованих вище команд, оскільки обидві виконують те саме. У сучасних програмах скриптів для bash shell '755' змінюється на '+ x'; тож не має значення, яким саме ви користуєтесь. Після зміни дозволів введіть наступне, щоб виконати його.
$. / main_program.sh |
Період і коса риса використовуються для ідентифікації та виконання скриптів оболонки. Після виконання вищевказаного сценарію він надрукує першу заяву ехо, а потім попросить вас щось ввести. Після того, як ви введете його, він надрукує вам те саме, що вийде та вийде з перекладача. Тож дозвольте мені пояснити всі синтаксиси вище. '#! / Bin / bash' використовується для того, щоб сказати інтерпретатору, що це сценарій bash, і програма сценаріїв оболонки Bash знаходиться в каталозі 'bin'. Команда 'echo' використовується для друку будь-якого оператора, а прапор '-e' використовується для вказівки оболонки про те, що буде або новий рядок, ідентифікований як 'slash n або \ n', або в косому рядку t або \ t 'або подобається це всередині відгомоненого висловлювання. Хеш-частина другого рядка використовується для ідентифікації коментаря в скрипті bash. Що б ви не писали після того, як хеш виходить, коментується і не виконуватиметься. Але це не стосується "#! / Bin / bash" у першому рядку. Ось як мається на увазі працювати сценарій. Синтаксис "читання" використовується для зчитування будь-яких даних від користувача. А «вхід», про який я згадував після синтаксису «читати», - це змінна, в якій зберігається вхід від користувача. Замість входу можна використовувати будь-яку змінну. У другому останньому рядку введення $ використовується для ідентифікації себе як змінної та виведення збереженого вводу всередині нього. Нарешті команда exit використовується для виходу з інтерпретатора з чистим нульовим виходом.
Інтерактивний сценарій
Зараз наведений приклад просто досить простий. Але є вбудовані модулі, які ви можете використовувати замість того, щоб давати всі входи самостійно. Далі йде фрагмент коду, який виводить ім’я користувача, яке зараз увійшло, поточний час, календарну дату та кількість входів: -
#! / бін / баш # Цей скрипт буде друкувати поточну інформацію про користувача, кількість яких увійшли, дата, час та календар ехо "Привіт, $ USER" відлуння "Сьогоднішня дата та час - дата". Відлуння "Кількість користувачів, які увійшли в систему:` хто | wc -l` ”
відлуння "Календар" кал вихід 0 |
Виконайте цей скрипт, змінивши дозволи на файл вище. Тепер вам може бути цікаво, що в попередньому сценарії ми насправді ввели вхід, а потім він повернув вхід, використовуючи th змінну. Але тут ми не надали жодного вводу всередині змінної '$ USER', то як це друкує точного користувача. Основна причина цих речей вже налаштована в системі. Пам'ятайте, я розповідав вам про $ SHELL раніше на старті, як це визначено за замовчуванням? Так, подібний випадок з US USER тут. Що стосується дати, якщо ви просто введете "дата" без жодних лапок в терміналі, вона буде надрукувати точну дату та час. Я просто використав одну цитату (`), щоб ідентифікувати себе як синтаксис, а не як частина повторюваного твердження. Єдина цитата (`) виконає будь-який синтаксис, надрукований всередині нього, будь то у виписці чи деінде. Що стосується кількості користувачів, яка використовується, команда "хто" використовується для перевірки поточних користувачів, які ввійшли в систему, а також процесів, що входили в систему, а також дати та часу, коли вона була запущена. Але що стосується вищезгаданої команди, я фактично усікав її, щоб просто вивести кількість користувачів, які ввійшли в неї за допомогою команди wc -l. Стрижка (|) або те, що в народі називають трубою, використовується для об'єднання двох команд. Насправді ця труба коштує набагато більше, але я не буду тут детально розбиратися. І нарешті я надрукував календар, використовуючи вбудовану команду 'cal' для друку поточної дати в календарі.
Нуль виходу
Вихід Zero - це те, чого я не пояснював ні в одній з вищеописаних програм. Основна причина того, що "Exit Zero" має набагато більше тяжкості до неї, ніж будь-який із синтаксисів, описаних вище в Shell Scripting. За замовчуванням кожен раз, коли ви виконуєте скрипт у дистрибутиві Linux або Unix, він повертає два типи значень або, більш конкретно, статус виходу, щоб перевірити, чи вдале виконання сценарію оболонки чи ні. Якщо воно повертає значення як Zero, то виконання було успішним, інакше воно або не виконується, або під час виконання сталася якась помилка. Таким чином, набравши 'exit 0' в кінці будь-якого сценарію перевіряється стан виконання сценарію.
Усі речі, які я тут висвітлював, - лише найменша основна частина сценаріїв Shell в дистрибутиві Linux. Частина нульового виходу та труба відіграють важливу роль при виконанні декількох сценаріїв оболонок у командах Linux та використанні її разом із умовними операторами if та else.
Схожі статті: -
Ось кілька статей, які допоможуть вам отримати більш детальну інформацію про типи сценаріїв оболонки для новачків Linux, тому просто перейдіть за посиланням.
- Питання для інтерв'ю щодо сценарію оболонки | Топ-10 корисних питань
- Linux проти Windows - з'ясуйте 9 найдивовижніших відмінностей
- Питання та відповіді щодо інтерв'ю Linux | Корисні та найбільш запитувані
- Кар'єра в адміністрації Linux
- Правила та положення параметрів сценарію оболонки