Навчальні матеріали Onion Wiki - Вступ до Linux

onion omega Інтерфейс командної стрічки

Onion Omega Wiki >>

Цей навчальний матеріал призначений для нових користувачів Omega, які є початківцями в Linux.

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

Зміст:

Linux для початківців OMEGA

Що таке Linux?

Коротко, Linux – це операційна система (OS). Як і її аналоги, Windows та OS X, вона забезпечує програмний міст між програмними додатками та апаратними процесами. На приклад, OS передаватиме інструкції від програми до комп’ютерного процесора, а потім передаватиме результат назад до програми. На противагу раніше згаданим OS, Linux більшою мірою має відкриту платформу. Це означає, що ніхто конкретно не відповідає за розробку та підтримку, швидше розробка є спільною. Linux надходить у багатьох дистрибутивах  (версіях), кожна з яких призначена для окремих застосувань.

З якою версією працює Omega?

OMEGA працює на OpenWRT. OpenWRT – це версія, яка найчастіше використовується для вбудованого програмного забезпечення (embedded) і часто може бути знайденою на роутерах. OpenWRT надійна; вона підтримує велику кількість апаратних версій та архітектур, що робить її ідеальною для embedded пристроїв. З причин раціонального використання пам’яті, OpenWRT не поставляється з усіма програмними пакетами в одній версії як Ubuntu, а доступні програмні пакети можуть мати обмежений функціонал.

Тепер будемо рухатись до використання OpenWRT на Omega, але ми радимо користувачам спершу ознайомитись з OpenWRT wiki.

Далі, ми перейдемо до ознайомлення користувача з командною стрічкою.


Навчальні матеріали / основи Linux / CLI, частина 2

Інтерфейс командної стрічки

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

Що таке інтерфейс командної стрічки?

Інтерфейс командної стрічки (англ. Command Line Interface, CLI) – це точка доступу користувача до операційної системи через термінал. Вся взаємодія користувача інтерпретується та виконується операційною системою  через команди. Користувач вводить команди в термінал, щоб певні дії виконались.

Додатково, команди записуються з опціями, які говорять команді робити особливі речі, які пов’язані саме з цією командою. Користувач може обирати опції введенням команди слідкуючої після опцій в терміналі.

Тепер ми розглянемо деякі основні команди linux. Під’єднайте ваш Omega як показано в інструкції з початку роботи. Ви повинні побачити на екрані наступне:

onion omega Інтерфейс командної стрічки

Деякі основні команди

Спробуємо деякі основні команди:

login

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

Введіть login в командну стрічку та натисніть enter. Вам буде запропоновано ввести ім’я користувача та пароль, за умовчанням "root"  та "onioneer". Зауважте, що пароль буде прихованим при введенні. Після цього ви повинні побачити на екрані наступне:

Onion Omega - login

Вітаємо! Тільки що ви запустили вашу першу команду, тепер ви увійшли як суперкористувач.

Інформація:

Якщо ви не звикли працювати з терміналом, вам може захотіти дізнатись деяку додаткову інформацію, про те, що ви можете зробити з цим "Чорним Прямокутником".

Щоб отримати більше інформації про те, які команди ви можете викоритстовувати, просто введіть:

busybox --help

і ви отримаєте короткі відомості про busy-box та всі доступні тут команди.

busybox --list

Якщо ви надаєте перевагу списку команд.

Якщо вам необхідно більше інформації про окрему команду просто використайте:

busybox ifconfig --help

Розглянемо наступну команду:

date

Команда date виведе дату та час.

Введіть date в термінал та натисніть enter. Ви повинні побачити щось подібне:

onion omega busybox

Як можна побачити, команда вивела поточні дату та час (можуть бути не вірними, але, за потреби, скорегованими) в терміналі.

echo

Для програмістів, це аналог функції print. На приклад, введення echo "hello" виведе "hello" в командній стрічці. Введіть "echo hello" в командній стрічці. Ви повинні побачити щось подібне:

Onion Omega echo hello

echo також може використовуватись для входу в іншу команду, але ми розглянемо це в розділі перенаправлення/конвеєрування.

Тепер ми розглянемо файлову систему Omega.


Навчальні матеріали / основи Linux / файлова система частина 3

Вивчення файлової системи OpenWRT

Всі файли в операційній системі Linux розташовані в каталогах. Подібна система розміщення файлів у «папках» організована і в системі Windows. Важливо відмітити, що всі об’єкти у Linux можуть бути класифіковані як файли чи каталоги.

По вивченню цього розділу, читач зможе:

  1. переміщуватись каталогами
  2. створювати/видаляти каталоги та файли

Як переміщуватись каталогами в Linux

Спершу, під’єднайте ваш Omega та відкрийте термінал.

Команда pwd

Перша команда, яку ми вивчимо це pwd, яка призначена для відображення робочого каталогу. Введіть pwd в командну стрічку та натисніть enter.

Ви повинні побачити

onion omega linux pwd

Команда вивела "/", це означає, що ми знаходимось найвищому, кореневому каталозі. Якщо ваша командна стрічка вивела щось інше, на приклад "abc/def/ghi" це означає, що ви знаходитесь в даному каталозі.

Команда ls

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

onion omega linux cli ls

Як можна побачити, команда показала вміст нашої "домашньої" папки. Ви можете побачити або не побачити пункти у кольорі в залежності від того, як було під’єднано Omega. Оскільки ми використовуємо Putty, ми бачимо їх кольоровими. Нижче наведено короткий список значення кольорів:

  1. блакитний = каталог
  2. зелений = виконавчий або впізнаний файл
  3. небесно блакитний = файл зі зв’язком
  4. жовтий з чорним фоном = пристрій
  5. рожевий = графічне зображення
  6. червоний = архів

Якщо вам все ще цікаво дізнатись про кольори в терміналі, ви можете прочитати це. Додатково, ви можете використовувати команду ls з опцією –l для отримання більш детального списку каталогу, ми скористаємося цим в розділі власники/доступ.

Команда cd

cd (зміна каталогу) – це головна команда, яку ми будемо використовувати для переходу між каталогами.

Для зміни каталогу, все що нам необхідно зробити це ввести cd та шлях в термінал,

cd <шлях>

Змінимо наш каталог на </usr/bin/>:

onion omega linux cli cd

Команда pwd використана, щоб показати успішність переходу до іншого каталогу.

В таблиці нижче показано деякі зручні опції, які можна використовувати з командою cd. Спробуйте попрактикуватись з ними.

Команда [опція] Опис
cd Використання однієї команди cd перенаправить вас до кореневого каталогу
cd .. Це перенесе вас у каталог попереднього рівня, батьківський каталог
cd . Це залишить вас у поточному каталозі
cd - Це перенесе вас у попередній каталог, зручно при одночасній роботі у двох каталогах

Як створити/видалити файли та каталоги

Команда mkdir

Команда mkdir дозволяє створювати каталоги. Найпростіший спосіб використання цієї команди - це ввести mkdir та ім’я нового каталогу в терміналі та натиснути enter.. Це створить новий каталог у вашому поточному робочому каталозі.

mkdir newdirectoryname

Створимо новий каталог з ім’ям "NewDirectory"

onion omega linux cli mkdir

Ми успішно створили новий каталог з назвою "NewDirectory" в нашому поточному каталозі.

Ви також можете створити одразу кілька каталогів в поточному каталозі введенням в терміналі наступного:

mkdir newdirectoryname1 newdirectoryname2 newdirectoryname3

Спробуйте зробити це самостійно. Введіть команду ls і ви зможете побачити три щойно створені каталоги.

Ми також можемо використовувати mkdir для створення каталогу у каталозі відмінному від поточного. Просто введіть mkdir та <Шлях/Ім’яНовогоКаталогу>. В нашому прикладі ми створимо новий каталог з назвою "NewDirectory" в підкаталозі </tmp/usr/>, знаходячись в нашому поточному каталозі.

mkdir <path/newdirectoryname>

onion omega linux cli mkdir

На знімку екрану вище, ми використовуємо команди cd, pwd та ls, щоб показати вміст підкаталогу /tmp/usr/ до та після виконання команди mkdir з каталогу /. Ми успішно створили "NewDirectory" в підкаталозі /tmp/usr.

Ви також можете створити кілька каталогів одночасно в довільному каталозі веденням у терміналі наступного:

mkdir <path/newdirectoryname1> <path/newdirectoryname2> <path/newdirectoryname3>

Спробуйте зробити це самостійно. Введіть команду ls і ви зможете побачити всі три щойно створені каталоги у вашому поточному каталозі.

Тепер коли ми створили всі ці каталоги, було б доцільно навчитись їх видаляти.

Команда rmdir

Команда rmdir дозволяє видаляти каталоги. Вона використовується за практично ідентичним способом, що й команда mkdir. З цієї причини ми пропустимо більшість опису і просто покажемо приклад використання на знімку екрана нижче. Пропонуємо читачам спробувати це самостійно.

rmdir DirectoryName

або

rmdir <path/directoryname>

onion omega linux cli rmdir

Тепер, коли ми навчились створювати та видаляти каталоги, ми навчимось робити те ж саме з файлами.

Команда touch

Команда touch – це найпростіший спосіб створення файлу в linux. Вона використовується аналогічно до команд mkdir та rmdir, включаючи створення кількох файлів одночасно.

touch newFileName

або

touch <path/newFileName>

Приклад використання наведено на знімку екрана нижче

onion omega linux cli touch

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

Команда cat

cat – це потужна команда, яка дозволяє нам як записувати інформацію у файл, так і відображати вміст файлу.

Спершу для створення файлу введіть це в командну стрічку та натисніть enter (впевніться, що папка ще не містить файлу з таким іменем, інакше файл буде перезаписано):

cat > newfile

Тепер ви зможете помітити, що ви не повернулись до командної стрічки, замість цього термінал чекає введення. Тут ви можете ввести вміст файлу. Як тільки ви завершите запис інформації у файл, ви можете повернутись до командної стрічки використавши <kbd>.

Аналогічно ви можете зробити те ж саме з файлами в інших каталогах використавши:

cat > <path/newfile>

Для відображення вмісту файлу ми можемо використати команду cat так:

cat filename

або

cat <path/filename>

В прикладі нижче ми створимо файл з назвою HelloWorld.txt в каталозі відмінному від поточного, запишемо Hello World! у файл та виведемо вміст в терміналі:

onion omega linux cli cat

Користувачі, які хочуть дізнатись про редагування файлів детальніше, натисніть тут.

Нарешті вивчимо як видаляти файли.

Команда rm

Команда rm використовується для видалення файлів тим самим способом, що й команда rmdir для видалення каталогів.

rm filename

або

rm <path/filename>

Як приклад ми видалимо файл HelloWorld.txt, створений нами вище:

onion omega linux cli rm

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


Навчальні матеріали / основи Linux / перенаправлення чаcтина 4

Перенаправлення

Використовуючи засоби перенаправлення ми можемо створити динамічні команди.

Вхідне та вихідне перенаправлення

Ми можемо використовувати перенаправлення для надсилання вихідних даних команди до файлу.

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

Коли ми виконали команду:

cat > filename

Після того, як файл було створено, термінал запросив нас здійснити введення з клавіатури. В результаті виконання команди cat ми були перенаправленні до введення інформації у файл. Цей процес відомий як перенаправлення виводу.

Аналогічно ми можемо використати команду echo.

Слідуйте прикладу нижче.

onion omega linux cli redirecting

Ми можемо перенаправити вихідні команди і це не перепише вміст файлу, а швидше допише до нього. Для цього ми використовуємо символ >>.

Скажімо, що ми хочемо додати дату та час до файлу, що ми створили в попередньому прикладі. Для цього ми можемо використати таку команду

onion omega linux cli redirecting

Команда sort

Тепер розглянемо вхідне перенаправлення, що дозволяє нам передавати файли як вхід до команд. Для цього ми розглянемо нову команду sort, що за умовчанням сортує вміст файлу за алфавітним порядком.

sort < filename

В наступному прикладі ми створимо новий файл з довільно розсортованими символами, з назвою alpha. Ми використаємо команду:

sort < alpha.txt

Це відобразить символи у файлі в алфавітному порядку

onion omega linux cli sort

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

sort < alpha.txt > ordered.txt

onion omega linux cli sort

Як можна побачити, файл ordered.txt містить дані файлу alpha.txt в алфавітному порядку.

Тепер ми перейдемо до конвеєрування.

Конвеєрування

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

Щоб продемонструвати можливості конвеєрування ми створимо файл з назвою "names.txt", який міститиме різні назви в кожній стрічці. Далі ми запустимо наступну команду.

cat names.txt | grep a

Вихід команди cat передається як вхід команди grep, яка шукає всі стрічки, що містять символ "a", а потім стрічки з символом "j". В кінцевому результаті буде виведено всі стрічки, що містять символи "a" та "j". Ми продемонстрували це на знімку екрана нижче.

onion omega linux cli grep

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


Навчальні матеріали / основи Linux / сценарій командної стрічки частина 5

Сценарій командної стрічки

Сценарій командної стрічки, по простому – це скрипт, що виконує серії команд, записаних у ньому, за один раз з терміналу. Це є аналогом будь якої мови програмування, в якій ви можете виконати програмний код з консолі. Linux може поставлятись з двома типами оболонок, C та Bourne Shell. Оскільки ми використовуємо OpenWRT ми маємо справу лише з останнім варіантом, який ми викликаємо введенням sh в командну стрічку. Зараз ми напишемо простий скрипт та опишемо, що стається на кожному кроці його виконання. В даному скрипті використовуються деякі загальні принципи програмування. Отож, якщо ви початківець в програмуванні, ми рекомендуємо спершу прочитати це для глибшого розуміння.

# Все, що записано після символу решітки вважається коментарем.

# Цей скрипт створить запис з часом його виконання

# та ім’ям користувача, що його запустив. Запис буде збережено у

# файл з назвою log.txt, розташований у каталозі "/". Скрипт також

# покаже вміст файлу log.txt в терміналі.

#Стрічка нижче говорить Linux, яку оболонку використовувати

#!/bin/bash

# Створюємо змінну NAME зі значенням name

NAME=name

# Створюємо змінну DATE зі значенням date

DATE=date

#Запрошуємо користувача ввести ім’я

echo -n "Please Enter Your Name >"

#Зберігаємо ім’я введене користувачем в змінну username

read username

#Присвоюємо значення змінної username змінній NAME

NAME=$username

#Змінна DATE зберігає значення, повернене командою date. з $(команда)

DATE=$(date)

#Запишемо значення змінних NAME та DATE до файлу log.txt

echo $NAME $DATE >> /log.txt

#Покажемо вміст файлу log.txt

cat /log.txt

Скопіюйте скрипт до папки "/" на вашому Omega та збережіть його як LogGen.sh. Запустіть скрипт ввівши в терміналі наступне

sh LogGen.sh

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

Це має виглядати приблизно так

onion omega linux cli shell scripting

onion-omega-linux-019

Нашою останньою темою зі вступу до Linux буде право власності та доступ в системі Linux.


Навчальні матеріали / основи Linux / доступ частина 6

Право власності та доступ

В системі linux існує ієрархічна система користувачів, з root правами, також відомими як права суперкористувача, налаштованими на початку. Кожен з користувачі має право власності на власні файли та право читати, записувати та виконувати їх. Користувачі на мають такого ж доступу, до файлів інших користувачів. Виключенням є права суперкористувача або root. На Omega, ми не будемо пов’язувати себе з системою користувачів, оскільки завжди будемо входити з правами суперкористувача.

Для подальшого опису, давайте розглянемо останній розділ зі створення скриптів.

В останньому розділі ми створили сценарій командної стрічки з використанням:

sh LogGen.sh

Тепер команда працює так, наче ми, скажімо, захотіли вилучити sh та запустити команду:

./LogGen

Ми отримаємо таке повідомлення з командної стрічки

/bin/ash: ./LogGen.sh: Permission denied

Отже розглянемо доступ до сценарію командної стрічки. Щоб це зробити, запустіть команду ls з опцією -l. Це покаже нам детальний опис файлів та підкаталогів в нашому поточному каталозі.

ls -l

Ви повинні побачити щось подібне:

onion omega linux access rights

Тепер все, що ми бачимо, це колонка з текстом схожим на drwxr-xr-x. Якщо ви хочете отримати більш детальний опис перейдіть до статті.

Отже розглянемо наш доступ до файлу LogGen.sh. Ваш повинен виглядати так.

-rw-r--r--

Перший символ "-" показує, що це файл, якби це був каталог, ми б побачили на цьому місця символ "d" (англ. directory). Наступні три символи показують, чи суперкористувач має права читання, запису та виконання. Аналогічно наступні 6 символів відображають доступ для користувачів та груп користувачів, де символи "rwx" показують повний доступ та символи "---" показують повну заборону.

Команда chmod

Оскільки ми маємо права суперкористувача, ми можемо надати собі повний доступ до файлу. Отже давайте змінимо права доступу. Для цього нам потрібно застосувати команду chmod. Прочитайте цю статтю, де описано, як використовувати команду.

Для надання для нас повного доступу використаємо цю команду:

chmod 777 LogGen.sh

Для перевірки зміни прав доступу введемо це:

ls -l

Ви повинні побачити щось подібне

onion omega linux access rights chmod

Ми вдало надали собі права повного доступу.

Отже спробуємо знову запустити файл LogGen.sh без sh.

onion omega linux access rights

Залишити відповідь