Linux Professional Institute Learning Logo.
Перехід до основного вмісту
  • Головна
    • Усі ресурси
    • LPI Навчальні матеріали
    • Стати дописувачем
    • Видавничі партнери
    • Cтати видавничим партнером
    • Про нас
    • FAQ
    • Дописувачі
    • Дорожня карта
    • Контакти
  • LPI.org
2.1 Урок 1
Тема 1: Спільнота Linux та кар'єра у світі вільного програмного забезпечення
1.1 Розвиток Linux і популярні операційні системи
  • 1.1 Урок 1
1.2 Основні застосунки з відкритим кодом
  • 1.2 Урок 1
1.3 Відкрите програмне забезпечення та ліцензування
  • 1.3 Урок 1
1.4 ІКТ навички та робота в Linux
  • 1.4 Урок 1
Тема 2: Як знайти свій шлях у системі Linux
2.1 Основи командного рядку
  • 2.1 Урок 1
  • 2.1 Урок 2
2.2 Використання командного рядку для отримання допомоги
  • 2.2 Урок 1
2.3 Використання папок та перегляд списку файлів
  • 2.3 Урок 1
  • 2.3 Урок 2
2.4 Створення, переміщення та видалення файлів
  • 2.4 Урок 1
Тема 3: Потужність командного рядка
3.1 Архівація файлів через командний рядок
  • 3.1 Урок 1
3.2 Пошук та отримання даних з файлів
  • 3.2 Урок 1
  • 3.2 Урок 2
3.3 Перетворення команд у скрипт
  • 3.3 Урок 1
  • 3.3 Урок 2
Тема 4: Операційна система Linux
4.1 Вибір операційної системи
  • 4.1 Урок 1
4.2 Розуміння апаратного забезпечення комп'ютера
  • 4.2 Урок 1
4.3 Де зберігаються дані
  • 4.3 Урок 1
  • 4.3 Урок 2
4.4 Ваш комп'ютер у мережі
  • 4.4 Урок 1
Тема 5: Безпека та права доступу до файлів
5.1 Основи безпеки та визначення типів користувачів
  • 5.1 Урок 1
5.2 Створення користувачів та груп
  • 5.2 Урок 1
5.3 Керування дозволами та правами власності на файл
  • 5.3 Урок 1
5.4 Спеціальні папки та файли
  • 5.4 Урок 1
How to get certified
  1. Тема 2: Як знайти свій шлях у системі Linux
  2. 2.1 Основи командного рядку
  3. 2.1 Урок 1

2.1 Урок 1

Сертифікат:

Linux Essentials

Версія:

1.6

Розділ:

2 Знайдіть свій шлях у системі Linux

Тема:

2.1 Основи командного рядку

Урок:

1 з 2

Вступ

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

У Linux є кілька різних оболонок, це лише деякі з них:

  • нова оболонка Борна (Bash)

  • оболонка C (csh або tcsh, покращена csh)

  • оболонка Корна (ksh)

  • Z оболонка (zsh)

У Linux найпоширенішою є оболонка Bash. Вона також буде використана в прикладах та вправах в цьому курсі.

При використанні інтерактивної оболонки користувач вводить команди у командному рядку (prompt). Для кожного дистрибутива Linux командний рядок за замовчуванням може виглядати трохи інакше, але зазвичай він відповідає наступній структурі:

username@hostname current_directory shell_type

В Ubuntu або Debian GNU/Linux рядок для введення команд у звичайного користувача швидше за все, виглядатиме так:

carol@mycomputer:~$

Командний рядок суперкористувача виглядатиме так:

root@mycomputer:~#

Натомість у CentOS або Red Hat Linux командний рядок для звичайного користувача матиме такий вигляд:

[dave@mycomputer ~]$

А командний рядок суперкористувача виглядатиме так:

[root@mycomputer ~]#

Пояснимо кожен компонент структури командного рядка:

username

Ім’я користувача, який запустив оболонку.

hostname

Ім’я хоста, на якому працює оболонка. Існує також команда hostname, за допомогою якої ви можете відобразити або встановити ім’я хоста системи.

current_directory

Каталог, у якому зараз знаходиться оболонка. "~" означає, що оболонка знаходиться в домашньому каталозі поточного користувача.

shell_type

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

# вказує, що оболонка запускається суперкористувачем root.

Оскільки нам не потрібні якісь спеціальні привілеї, ми будемо використовувати непривілейований запит у наступних прикладах. Для стислості ми просто будемо використовувати $ як командний рядок.

Структура командного рядка

Більшість команд у командному рядку мають однакову базову структуру:

команда  [опція(ї)/параметр(и)...]  [аргумент(и)...]

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

$ ls -l /home

Пояснимо призначення кожного компонента:

Команда

Програма, яку буде запускати користувач – ls у наведеному вище прикладі.

Опція(ї)/Параметр(и)

“Перемикач”, який певним чином змінює поведінку команди, наприклад -l у наведеному вище прикладі. Доступ до параметрів можна отримати як у короткому, так і в довгому вигляді. Наприклад, -l ідентичний --format=long.

Також можна комбінувати кілька варіантів, а для короткої форми літери зазвичай можна вводити разом. Наприклад, усі наступні команди роблять те саме:

$ ls -al
$ ls -a -l
$ ls --all --format=long
Аргумент(и)

Додаткові дані, які потрібні програмі, як-от ім’я файлу або шлях, наприклад /home у наведеному вище прикладі.

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

Note

Більшість команд показують короткий огляд доступних команд, коли вони запускаються з параметром --help. Незабаром ми дізнаємося додаткові способи дізнатися більше про команди Linux.

Типи поведінки команд

Оболонка підтримує два типи команд:

Внутрішні

Ці команди є частиною самої оболонки і не є окремими програмами. Таких команд близько 30. Їх головна мета - виконувати завдання всередині оболонки (наприклад, cd, set, export).

Зовнішні

Ці команди містяться в окремих файлах. Зазвичай ці файли є бінарними програмами або скриптами. Коли виконується команда, яка не є внутрішньою командою оболонки, оболонка використовує змінну PATH для пошуку виконуваного файлу з таким же ім’ям, що й команда. На додаток до програм, які встановлюються за допомогою менеджера пакунків дистрибутива, користувачі також можуть створювати власні зовнішні команди.

Команда type показує, якого типу є конкретна команда:

$ type echo
echo is a shell builtin
$ type man
man is /usr/bin/man

Цитування

Як користувачу Linux, вам доведеться створювати файли чи змінні, маніпулювати ними в різний спосіб. Це легко під час роботи з короткими іменами файлів та одиничними значеннями, але стає складнішим, якщо, наприклад, задіяні пробіли, спеціальні символи та змінні. Оболонки забезпечують функцію, яка називається цитуванням, вона інкапсулює такі дані за допомогою різних типів лапок (" ", ' '). У Bash є три типи цитування:

  • Подвійні лапки

  • Одинарні лапки

  • Escape-символи

Наприклад, наступні команди не діють однаково через цитування:

$ TWOWORDS="two words"
$ touch $TWOWORDS
$ ls -l
-rw-r--r-- 1 carol carol     0 Mar 10 14:56 two
-rw-r--r-- 1 carol carol     0 Mar 10 14:56 words
$ touch "$TWOWORDS"
$ ls -l
-rw-r--r-- 1 carol carol     0 Mar 10 14:56  two
-rw-r--r-- 1 carol carol     0 Mar 10 14:58 'two words'
-rw-r--r-- 1 carol carol     0 Mar 10 14:56  words
$ touch '$TWOWORDS'
$ ls -l
-rw-r--r-- 1 carol carol     0 Mar 10 15:00 '$TWOWORDS'
-rw-r--r-- 1 carol carol     0 Mar 10 14:56  two
-rw-r--r-- 1 carol carol     0 Mar 10 14:58 'two words'
-rw-r--r-- 1 carol carol     0 Mar 10 14:56  words
Note

Рядок із TWOWORDS= є змінною Bash, яку ми створили самостійно. Ми розглянемо змінні пізніше. Це лише для того, щоб показати вам, як цитування впливає на вихід змінних.

Подвійні лапки

Подвійні лапки говорять оболонці прийняти текст між лапками ("...") як звичайні символи. Усі спеціальні символи втрачають сенс, за винятком $ (знак долара), \ (зворотна коса риска) та ` (зворотні лапки). Це означає, що змінні, підстановка команд і арифметичні функції все ще можна використовувати.

Наприклад, подвійні лапки не впливають на заміну змінної $USER:

$ echo I am $USER
I am tom
$ echo "I am $USER"
I am tom

Пробіл, з іншого боку, втрачає своє значення як роздільник аргументів:

$ touch new file
$ ls -l
-rw-rw-r-- 1 tom students 0 Oct 8 15:18 file
-rw-rw-r-- 1 tom students 0 Oct 8 15:18 new
$ touch "new file"
$ ls -l
-rw-rw-r-- 1 tom students 0 Oct 8 15:19 new file

Як бачите, у першому прикладі команда touch створює два окремих файли, оскільки команда інтерпретує два рядки як окремі аргументи. У другому прикладі команда інтерпретує обидва рядки як один аргумент, тому створює лише один файл. Однак найкраще уникати пробілу в іменах файлів. Замість цього можна використовувати символ підкреслювання (_) або крапку (.).

Одинарні лапки

Одинарні лапки не мають винятків для певних символів на відміну від подвійних лапок. Вони скасовують будь-яке особливе значення кожного символу. Давайте візьмемо один із перших прикладів зверху:

$ echo I am $USER
I am tom

При застосуванні одинарних лапок ви бачите інший результат:

$ echo 'I am $USER'
I am $USER

Тепер команда відображає точний рядок без заміни змінної.

Escape-символи

Ми можемо використовувати escape-символи, щоб видалити спеціальні значення символів із Bash. Повернемося до змінної середовища $USER:

$ echo $USER
carol

Ми бачимо, що за замовчуванням вміст змінної відображається в терміналі. Однак, якщо ми поставимо перед знаком долара символ зворотної косої риски (\), то особливе значення знаку долара буде зведено нанівець. Це, у свою чергу, не дозволить Bash вивести значення змінної як ім’я користувача - особи, яка виконує команду, а натомість інтерпретуватиме ім’я змінної буквально:

$ echo \$USER
$USER

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

Вправи до посібника

  1. Розділіть рядки нижче на наступні компоненти - команду(и), опцію(ї)/параметр(и) та аргумент(и):

    • Приклад: cat -n /etc/passwd

      Команда:

      cat

      Опція:

      -n

      Аргумент:

      /etc/passwd

    • ls -l /etc

      Команда:

      Опція:

      Аргумент:

    • ls -l -a

      Команда:

      Опція:

      Аргумент:

    • cd /home/user

      Команда:

      Опція:

      Аргумент:

  2. Знайдіть, до якого типу належать такі команди:

    Приклад:

    pwd

    Внутрішня команда

    mv

    Зовнішня команда

    cd

    cat

    exit

  3. Визначте наступні команди, які використовують лапки:

    Приклад:

    echo "$HOME is my home directory"

    echo /home/user is my home directory

    touch "$USER"

    touch 'touch'

Дослідницькі вправи

  1. За допомогою однієї команди та за допомогою дужок в Bash (перегляньте сторінку керівництва для Bash) створіть 5 файлів з номерами від 1 до 5 з префіксом game (game1, game2, …​).

  2. Видаліть усі 5 файлів, які ви щойно створили за допомогою однієї команди, використовуючи інший спеціальний символ (перегляньте Розширення назви шляху на сторінках керівництва Bash).

  3. Чи є інший спосіб змусити дві команди взаємодіяти одна з одною? Який саме?

​

Підсумки

У цій лабораторній роботі ви дізналися про:

  • Концепції оболонки Linux

  • Що таке оболонка Bash

  • Структура командного рядка

  • Вступ до цитування

Команди, які використовуються у вправах:

bash

Найпопулярніша оболонка на комп’ютерах Linux.

echo

Вивести текст на термінал.

ls

Перелік вмісту каталогу.

type

Показує тип команди, яка виконується.

touch

Створює порожній файл або оновлює дату зміни наявного файлу.

hostname

Показує або змінює ім’я хоста системи.

Відповіді до вправ посібника

  1. Розділіть рядки нижче на наступні компоненти - команду(и), опцію(ї)/параметр(и) та аргумент(и):

    • ls -l /etc

      Команда:

      ls

      Опція:

      -l

      Аргумент:

      /etc

    • ls -l -a

      Команда:

      ls

      Опція:

      -l -a

      Аргумент:

    • cd /home/user

      Команда:

      cd

      Опція:

      Аргумент:

      /home/user

  2. Знайдіть, до якого типу належать такі команди:

    cd

    Внутрішня команда

    cat

    Зовнішня команда

    exit

    Внутрішня команда

  3. Визначте наступні команди, які використовують лапки:

    touch "$USER"

    tom

    touch 'touch'

    Створює файл з назвою touch

Відповіді до дослідницьких вправ

  1. За допомогою однієї команди та за допомогою дужок в Bash (перегляньте сторінку керівництва для Bash) створіть 5 файлів з номерами від 1 до 5 з префіксом game (game1, game2, …​).

    Діапазони можна використовувати для відображення чисел від 1 до 5 в одній команді:

    $ touch game{1..5}
    $ ls
    game1  game2  game3  game4  game5
  2. Видаліть усі 5 файлів, які ви щойно створили за допомогою однієї команди, використовуючи інший спеціальний символ (перегляньте Розширення назви шляху на сторінках керівництва Bash).

    Оскільки всі файли починаються з game і закінчуються одним символом (у цьому випадку числом від 1 до 5), ? можна використовувати як спеціальний символ для останнього символу в назві файлу:

    $ rm game?
  3. Чи є інший спосіб змусити дві команди взаємодіяти одна з одною? Який саме?

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

Linux Professional Institute Inc. Всі права захищені. Відвідайте веб-сайт навчальних матеріалів: https://learning.lpi.org
Ця робота ліцензована відповідно до міжнародної ліцензії Creative Commons Attribution-некомерційна-NoDerivatives 4.0.

Наступний Урок

2.1 Основи командного рядку (2.1 Урок 2)

Прочитайте наступний урок

Linux Professional Institute Inc. Всі права захищені. Відвідайте веб-сайт навчальних матеріалів: https://learning.lpi.org
Ця робота ліцензована відповідно до міжнародної ліцензії Creative Commons Attribution-некомерційна-NoDerivatives 4.0.

LPI є некомерційною організацією.

© 2023 Linux Professional Institute (LPI) - це глобальний стандарт сертифікації та організація підтримки кар'єри для професіоналів з відкритим вихідним кодом. Маючи понад 200 000 власників сертифікатів, це перший і найбільший в світі незалежний від постачальників орган з сертифікації Linux і з відкритим вихідним кодом. LPI має сертифікованих фахівців в більш ніж 180 країнах, здає іспити на декількох мовах і має сотні партнерів по навчанню.

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

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Зв'яжіться з нами
  • Політика конфіденційності та Cookie-файлів

Помітили помилку або хочете допомогти поліпшити цю сторінку? Просимо дайте нам знати.

© 1999–2023 Linux Professional Institute Inc. Всі права захищені.