logo

Вступ до оболонки Linux і сценаріїв оболонки

Якщо ми використовуємо будь-яку основну операційну систему, ми опосередковано взаємодіємо з оболонка . Під час запуску Ubuntu, Linux Mint або будь-якого іншого дистрибутива Linux ми взаємодіємо з оболонкою за допомогою терміналу. У цій статті ми обговоримо оболонки Linux і сценарії оболонки, тому перш ніж зрозуміти сценарії оболонки, ми повинні ознайомитися з наступною термінологією:

  • Ядро
  • оболонка
  • Термінал

Зміст



Що таке ядро?

Ядро — це комп’ютерна програма, яка є ядром операційної системи комп’ютера та повністю контролює все в системі. Він керує такими ресурсами системи Linux:

  • Керування файлами
  • Управління процесами
  • Керування введенням/виведенням
  • Управління пам'яттю
  • Керування пристроєм тощо.

Часто помиляються, що Лінус Торвальдс розробив ОС Linux, але насправді він відповідає лише за розробку ядра Linux.

Повна система Linux = ядро ​​+ GNU системні утиліти та бібліотеки + інші скрипти керування + сценарії встановлення.



Що таке Shell?

Оболонка — це спеціальна програма користувача, яка надає користувачеві інтерфейс для використання служб операційної системи. Shell приймає зрозумілі людині команди від користувачів і перетворює їх на те, що може зрозуміти ядро. Це інтерпретатор командної мови, який виконує команди, зчитані з пристроїв введення, таких як клавіатури, або з файлів. Оболонка запускається, коли користувач входить в систему або запускає термінал.

мова прологу
Оболонка Linux

Оболонка Linux

Shell загалом класифікується на дві категорії:



  • Оболонка командного рядка
  • Графічна оболонка

Оболонка командного рядка

Користувачі можуть отримати доступ до Shell за допомогою інтерфейсу командного рядка. Спеціальна програма під назвою «Термінал» у Linux/macOS або «Командний рядок» у ОС Windows призначена для введення зрозумілих людині команд, таких як cat, ls тощо, а потім вона виконується. Потім результат відображається на терміналі для користувача. Термінал у системі Ubuntu 16.4 виглядає так –

командний рядок linux

командний рядок linux

На скріншоті вище ls команда с опція виконується. Він перерахує всі файли в поточному робочому каталозі у форматі довгого списку.
Робота з оболонкою командного рядка трохи складна для початківців, оскільки важко запам’ятати стільки команд. Це дуже потужно; це дозволяє користувачам зберігати команди у файлі та виконувати їх разом. Таким чином будь-яке повторюване завдання можна легко автоматизувати. Ці файли зазвичай називають пакетними файлами в Windows і оболонка Скрипти в системах Linux/macOS.

Графічні оболонки

Графічні оболонки надають засоби для керування програмами на основі графічного інтерфейсу користувача (GUI), дозволяючи такі операції, як відкриття, закриття, переміщення та зміна розміру вікон, а також перемикання фокусу між вікнами. ОС Window або ОС Ubuntu можна розглядати як хороший приклад, який надає користувачеві графічний інтерфейс для взаємодії з програмою. Користувачам не потрібно вводити команди для кожної дії. Типовий графічний інтерфейс системи Ubuntu –

GUI Shell

GUI Shell

сплячий діалект

Для систем Linux доступно декілька оболонок, наприклад:

  • BASH (Bourne Again SHell) – це найбільш широко використовувана оболонка в системах Linux. Він використовується як оболонка входу за замовчуванням у системах Linux і macOS. Його також можна встановити на ОС Windows.
  • CSH (C SHell) – Синтаксис оболонки C та її використання дуже схожі на мову програмування C.
  • KSH (Korn SHell) – Korn Shell також була основою для специфікацій стандарту POSIX Shell тощо.

Кожна оболонка виконує однакову роботу, але розуміє різні команди та надає різні вбудовані функції.

Що таке термінал?

Програма, яка відповідає за надання інтерфейсу користувачу, щоб він/вона міг отримати доступ до оболонки. По суті, це дозволяє користувачам вводити команди та переглядати результати цих команд у текстовому інтерфейсі. Великі сценарії, написані для автоматизації та виконання складних завдань, виконуються в терміналі.


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

відкрити термінал

Тут ви можете побачити, як виглядає термінал Red Hat Linux.

введення користувача java

термінал

Сценарії оболонки

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

Оскільки оболонка також може приймати команди як вхідні дані з файлу, ми можемо записати ці команди у файл і виконати їх у оболонці, щоб уникнути цієї повторюваної роботи. Ці файли називаються Сценарії оболонки або Програми оболонки . Сценарії оболонки подібні до пакетного файлу в MS-DOS. Кожен сценарій оболонки зберігається за допомогою `.sh` розширення файлу, наприклад, myscript.sh.

Сценарій оболонки має синтаксис, як і будь-яка інша мова програмування. Якщо у вас є попередній досвід роботи з будь-якою мовою програмування, як-от Python, C/C++ тощо. Почати з нею буде дуже легко.

круговий розклад

Сценарій оболонки містить такі елементи:

  • Ключові слова оболонки – if, else, break тощо.
  • Команди оболонки – cd, ls, echo, pwd, touch тощо.
  • Функції
  • Потік керування – if..then..else, цикли case та shell тощо.

Навіщо нам потрібні сценарії оболонки?

Є багато причин писати сценарії оболонки:

  • Щоб уникнути повторюваної роботи та автоматизації
  • Системні адміністратори використовують сценарії оболонки для регулярного резервного копіювання.
  • Системний моніторинг
  • Додавання нових функцій до оболонки тощо.

Деякі переваги сценаріїв оболонки

  • Команда та синтаксис точно такі ж, як ті, що безпосередньо вводяться в командному рядку, тому програмістам не потрібно переходити на зовсім інший синтаксис
  • Написання сценаріїв оболонки набагато швидше
  • Швидкий початок
  • Інтерактивне налагодження тощо.

Деякі недоліки сценаріїв оболонки

  • Схильність до дорогих помилок, одна помилка може змінити команду, що може бути шкідливим.
  • Повільна швидкість виконання
  • Недоліки дизайну в синтаксисі мови або реалізації
  • Не дуже підходить для великих і складних завдань
  • Забезпечте мінімальну структуру даних на відміну від інших мов сценаріїв. тощо

Проста демонстрація сценаріїв оболонки за допомогою Bash Shell

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

перейдіть до каталогу python:

перейдіть до каталогу python:

Це дуже засмучує, тож чому б нам не створити утиліту, де нам просто потрібно ввести назву каталогу, і ми зможемо безпосередньо перейти до нього, не виконуючи cd ../ команда знову і знову. Збережіть сценарій як стрибок.ш

удар
# !/bin/bash # A simple bash script to move up to desired directory level directly function jump() {  # original value of Internal Field Separator  OLDIFS=$IFS  # setting field separator to '/'  IFS=/  # converting working path into array of directories in path  # eg. /my/path/is/like/this  # into [, my, path, is, like, this]  path_arr=($PWD)  # setting IFS to original value  IFS=$OLDIFS  local pos=-1  # ${path_arr[@]} gives all the values in path_arr  for dir in '${path_arr[@]}'  do  # find the number of directories to move up to  # reach at target directory  pos=$[$pos+1]  if [ '' = '$dir' ];then  # length of the path_arr  dir_in_path=${#path_arr[@]}  #current working directory  cwd=$PWD  limit=$[$dir_in_path-$pos-1]  for ((i=0; i; i++))  do  cwd=$cwd/..  done  cd $cwd  break  fi  done }>

Наразі ми не можемо виконати наш сценарій оболонки, оскільки він не має дозволів. Ми повинні зробити його виконуваним, ввівши таку команду –

$ chmod +x шлях/до/нашого/файлу/jump.sh

Тепер, щоб зробити це доступним під час кожного термінального сеансу, ми повинні вставити це .bashrc файл.

.bashrc це сценарій оболонки, який оболонка Bash запускає під час кожного інтерактивного запуску. Метою файлу .bashrc є надання місця, де ви можете налаштувати змінні, функції та псевдоніми, визначити наш запит та визначити інші параметри, які ми хочемо використовувати, коли відкриваємо нове вікно терміналу.

Тепер відкрийте термінал і введіть таку команду:

фрагмент java масиву

$ echo джерело ~/шлях/до/нашого/файлу/jump.sh>> ~/.bashrc

Тепер відкрийте свій термінал і спробуйте нову функцію переходу, ввівши таку команду-

$ jump dir_name

як на скріншоті нижче:

стрибок dir_name

стрибок dir_name

Висновок

У цій статті ми дізналися про основні частини систем Linux: ядро, яке контролює все, оболонку, яка дозволяє нам взаємодіяти з операційною системою, і термінал, наш інтерфейс для надання команд. Ми досліджували командний рядок і графічні оболонки, такі як BASH, і зрозуміли, що термінал – це місце, де ми вводимо команди. У статті було представлено сценарії оболонки, спосіб автоматизації завдань за допомогою простих сценаріїв, а також обговорено переваги та недоліки їх використання. На практичному прикладі продемонстровано створення скрипта для швидкої навігації по каталогу. Нарешті ми побачили, як зробити так, щоб скрипт працював і став доступним у кожному термінальному сеансі. Ця стаття є посібником для початківців із розуміння та використання оболонок Linux і сценаріїв оболонки. linux — хороша мова, вона написана мовою linux