Linux Professional Institute Learning Logo.
Перехід до основного вмісту
  • Головна
    • Усі ресурси
    • LPI Навчальні матеріали
    • Стати дописувачем
    • Видавничі партнери
    • Cтати видавничим партнером
    • Про нас
    • FAQ
    • Дописувачі
    • Переклади
    • Контакти
  • LPI.org
2.3 Урок 2
Тема 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.3 Використання папок та перегляд списку файлів
  3. 2.3 Урок 2

2.3 Урок 2

Сертифікат:

Linux Essentials

Версія:

1.6

Розділ:

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

Тема:

2.3 Використання каталогів і переліку файлів

Урок:

2 з 2

Вступ

Операційна система Unix була спочатку розроблена для мейнфреймів у середині 1960-х років. Ці комп’ютери були спільними для багатьох користувачів, які отримували доступ до ресурсів системи через термінали. Ці фундаментальні ідеї збереглися в системах Linux сьогодні. Ми все ще говоримо про використання “терміналів” для введення команд в оболонці, і кожна система Linux організована таким чином, що є можливість створити багато користувачів в одній системі.

Домашні каталоги

Це приклад звичайної файлової системи в Linux:

$ tree -L 1 /
/
├── bin
├── boot
├── cdrom
├── dev
├── etc
├── home
├── lib
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin
├── srv
├── sys
├── tmp
├── usr
└── var

Більшість із цих каталогів незмінні в усіх системах Linux. Від серверів до суперкомп’ютерів та крихітних вбудованих систем, досвідчений користувач Linux може бути впевнений, що зможе знайти команду ls всередині /bin, може змінити конфігурацію системи, змінивши файли в /etc, і прочитати системні журнали у /var. Стандартне розташування цих файлів і каталогів визначається стандартом ієрархії файлової системи (FHS, Filesystem Hierarchy Standard), який буде розглянуто в наступному уроці. Ви дізнаєтесь більше про вміст цих каталогів, продовжуючи вивчати Linux, але на даний момент знайте, що:

  • зміни, які ви внесете до кореневої файлової системи, вплинуть на всіх користувачів, і

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

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

Тепер ми зосередимося на каталозі /home, який на даний момент має бути трохи знайомим:

$ tree -L 1 /home
/home
├── user
├── michael
└── lara

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

$ tree /home/user
user
└── Documents
    ├── Mission-Statement
    └── Reports
        └── report2018.txt

Насправді справжня файлова система може виглядати так:

$ tree /home
/home
├── user
│   └── Documents
│       ├── Mission-Statement
│       └── Reports
│           └── report2018.txt
├── michael
│   ├── Documents
│   │   └── presentation-for-clients.odp
│   └── Music

…​і можна це продовжити для папки lara.

У Linux каталог /home схожий на багатоквартирний будинок. Багато користувачів можуть мати тут свій простір, розділений на окремі квартири. Відповідальність за комунальні послуги та технічне обслуговування самої будівлі лежить на коменданті root-користувачі.

Особливий відносний шлях до домашнього каталогу

Коли ви починаєте новий термінальний сеанс у Linux, ви бачите командний рядок, подібний до цього:

user@hostname ~ $

Тильда (~) тут представляє наш домашній каталог. Якщо ви запустите команду ls, то ви побачите знайомий вам результат:

$ cd ~
$ ls
Documents

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

Тепер проаналізуємо, що ми знаємо про Linux: він схожий на багатоквартирний будинок, у якому багато користувачів проживають у /home. Отже, помешкання користувача user буде відрізнятися від помешкання користувача michael. Щоб продемонструвати це, ми будемо використовувати команду su для переключення користувача.

user@hostname ~ $ pwd
/home/user
user@hostname ~ $ su - michael
Password:
michael@hostname ~ $ pwd
/home/michael

Значення ~ змінюється залежно від того, хто є користувачем. Для michael абсолютним шляхом ~ є /home/michael. Для lara абсолютним шляхом ~ є /home/lara тощо.

Відносні шляхи до файлів у домашніх каталогах

Використання ~ в командах є дуже зручним, за умови, що ви не змінюєте користувача. Ми розглянемо наступний приклад для користувача user, який розпочав новий сеанс:

$ ls
Documents
$ cd Documents
$ ls
Mission-Statement
Reports
$ cd Reports
$ ls
report2018.txt
$ cd ~
$ ls
Documents

Зауважте, що користувачі завжди починають новий сеанс у своєму домашньому каталозі. У цьому прикладі user перейшов у свій підкаталог Documents/Reports, і за допомогою команди cd ~ він повернувся туди, звідки він почав. Ви можете виконати ту ж дію, використовуючи команду cd без аргументів:

$ cd Documents/Reports
$ pwd
/home/user/Documents/Reports
$ cd
$ pwd
/home/user

Останнє, на що варто звернути увагу: ми можемо точно визначити домашні каталоги інших користувачів, вказавши ім’я користувача після тильди. Наприклад:

$ ls ~michael
Documents
Music

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

Давайте розглянемо ситуацію, коли michael хотів би переглянути файл report2018.txt у домашньому каталозі user. Припускаючи, що michael має на це дозвіл, він може використовувати команду less.

$ less ~user/Documents/Reports/report2018.txt

Будь-який шлях до файлу, який містить символ ~, називається шляхом відносно домашнього каталогу.

Приховані файли та каталоги

У попередньому уроці ми представили параметр -a для команди ls. Ми використовували ls -a під час знайомства з двома спеціальними відносними шляхами: . та ... Параметр -a покаже список всіх файлів та каталогів, включно з прихованими файлами та каталогами.

$ ls -a ~
.
..
.bash_history
.bash_logout
.bash-profile
.bashrc
Documents

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

Опція для деталізованого списку

Команда ls має багато опцій для зміни її поведінки. Давайте розглянемо один з найпоширеніших варіантів:

$ ls -l
-rw-r--r-- 1 user staff      3606 Jan 13  2017 report2018.txt

-l створює деталізований список. Інформація про кожен файл і каталог буде займати один рядок, в якому буде відображатись наступна додаткова інформація про кожен файл і каталог.

-rw-r—​r--

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

1

Кількість посилань на файл.

user staff

Вказує право власності на файл. user є власником файлу, і файл також пов’язаний з групою staff.

3606

Розмір файлу в байтах.

Jan 13 2017

Мітка часу останньої зміни файлу.

report2018.txt

Ім’я файлу.

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

Додаткові параметри команди ls

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

ls -lh

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

ls -d */

Параметр -d покаже каталоги, але не їх вміст. Якщо поєднати це з */, відображатимуться лише підкаталоги без файлів.

ls -lt

Поєднує деталізований список з можливістю сортування за часом модифікації. Файли з останніми змінами будуть угорі, а файли з найдавнішими змінами – внизу. Але цей порядок можна змінити за допомогою:

ls -lrt

Поєднує деталізований список із сортуванням за часом (модифікацією), у поєднанні з -r, забезпечує сортування у зворотному порядку. Тепер файли з останніми змінами знаходяться в нижній частині списку. На додаток до сортування за часом модифікації, файли також можна сортувати за часом доступу або за часом статусу.

ls -lX

Поєднує деталізований список з можливістю сортування за розширенням файлу. Це, наприклад, згрупує всі файли, що закінчуються на .txt, разом, усі файли, що закінчуються на .jpg тощо.

ls -S

-S сортує за розміром файлу, приблизно так само, як -t та -X сортують за часом та розширенням відповідно. Найбільші файли будуть першими, а найменші – останніми. Зауважте, що вміст підкаталогів не включено до сортування.

ls -R

Параметр -R змінить команду ls для відображення рекурсивного списку. Що це означає?

Рекурсія в Bash

Рекурсія відноситься до ситуації, коли “щось визначається в термінах самого себе”. Рекурсія є дуже важливим поняттям в інформатиці, але тут її значення набагато простіше. Давайте розглянемо наш попередній приклад:

$ ls ~
Documents

Раніше ми дізналися, що user має домашній каталог, і в цьому каталозі є один підкаталог. ls до цього часу показував нам лише файли та підкаталоги розташування, але не міг повідомити нам вміст цих підкаталогів. У цих уроках ми використовували команду tree, коли хотіли відобразити вміст багатьох каталогів. На жаль, tree не є однією з основних утиліт Linux і тому не завжди доступна. Порівняйте вихід tree з результатом ls -R у наступних прикладах: :

$ tree /home/user
user
└── Documents
    ├── Mission-Statement
    └── Reports
        └── report2018.txt

$ ls -R ~
/home/user/:
Documents

/home/user/Documents:
Mission-Statement
Reports

/home/user/Documents/Reports:
report2018.txt

Як бачите, за допомогою рекурсивної опції ми отримуємо набагато довший список файлів. Насправді ми наче запустили команду ls у домашньому каталозі user і натрапили на один підкаталог. Потім ми увійшли в цей підкаталог і знову запустили команду ls. Ми зіткнулися з файлом Mission-Statement та іншим підкаталогом під назвою Reports. І знову ми увійшли в підкаталог і знову запустили команду ls. По суті, запуск ls -R схожий на те, щоб сказати Bash: “Запустіть ls тут і повторіть команду в кожному підкаталозі, який ви знайдете”.

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

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

  1. Використовуйте таку файлову структуру, щоб відповісти на наступні три запитання:

    /
    ├── etc/
    │   ├── network/
    │   │   └── interfaces/
    │   ├── systemd/
    │   │   ├── resolved.conf
    │   │   ├── system/
    │   │   ├── system.conf
    │   │   ├── user/
    │   │   └── user.conf
    │   └── udev/
    │       ├── rules.d
    │       └── udev.conf
    └── home/
        ├── lost+found/
        ├── user/
        │   └── Documents/
        └── michael/
            └── Music/
    • Яка команда дозволить перейти до каталогу network незалежно від вашого поточного місцезнаходження?

    • Яку команду може ввести user може ввести, щоб перейти до свого каталогу "Documents" з /etc/udev? Використайте найкоротший шлях.

    • Яку команду може ввести user, щоб перейти до каталогу Music користувача michael? Використайте найкоротший шлях.

  2. Щоб відповісти на наступні два запитання, розглянемо результат команди ls -lh, показаний нижче. Зверніть увагу, що каталоги позначаються символом d на початку рядка.

    drwxrwxrwx  5 eric eric  4.0K Apr 26  2011 China/
    -rwxrwxrwx  1 eric eric  1.5M Jul 18  2011 img_0066.jpg
    -rwxrwxrwx  1 eric eric  1.5M Jul 18  2011 img_0067.jpg
    -rwxrwxrwx  1 eric eric  1.6M Jul 18  2011 img_0074.jpg
    -rwxrwxrwx  1 eric eric  1.8M Jul 18  2011 img_0075.jpg
    -rwxrwxrwx  1 eric eric   46K Jul 18  2011 scary.jpg
    -rwxrwxrwx  1 eric eric  469K Jan 29  2018 Screenshot from 2017-08-13 21-22-24.png
    -rwxrwxrwx  1 eric eric  498K Jan 29  2018 Screenshot from 2017-08-14 21-18-07.png
    -rwxrwxrwx  1 eric eric  211K Jan 29  2018 Screenshot from 2018-01-06 23-29-30.png
    -rwxrwxrwx  1 eric eric  150K Jul 18  2011 tobermory.jpg
    drwxrwxrwx  6 eric eric  4.0K Apr 26  2011 Tokyo/
    -rwxrwxrwx  1 eric eric  1.4M Jul 18  2011 Toronto 081.jpg
    -rwxrwxrwx  1 eric eric  1.4M Jul 18  2011 Toronto 085.jpg
    -rwxrwxrwx  1 eric eric  944K Jul 18  2011 Toronto 152.jpg
    -rwxrwxrwx  1 eric eric  728K Jul 18  2011 Toronto 173.jpg
    drwxrwxrwx  2 eric eric  4.0K Jun  5  2016 Wallpapers/
    • Коли ви запускаєте команду ls -lrS, який файл буде на початку?

    • Будь ласка, опишіть, що ви очікуєте побачити як результат команди ls -ad */.

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

  1. Виконайте команду ls -lh у каталозі, який містить підкаталоги. Зверніть увагу на вказаний розмір цих каталогів. Ці розміри файлів здаються вам правильними? Чи вони точно представляють вміст усіх файлів у цьому каталозі?

  2. Ось нова команда, яку можна спробувати: du -h. Виконайте цю команду та опишіть результат, який вона вам дає.

  3. У багатьох системах Linux ви можете ввести ll і отримати такий самий результат, як для команди ls -l. Проте зверніть увагу, що ll це не команда. Наприклад, man ll дасть вам повідомлення, що для нього не існує посібника. Це приклад псевдоніма. Чому псевдоніми можуть бути корисними для користувача?

Підсумки

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

  • що кожен користувач Linux має домашній каталог;

  • домашній каталог поточного користувача можна отримати за допомогою ~;

  • будь-який шлях до файлу, який використовує ~, називається відносним шляхом до домашнього каталогу.

Ви також дізналися про деякі з найпоширеніших способів модифікації команди `ls.

-a (all)

виводить всі файли/каталоги, включно з прихованими

-d (directories)

надає список каталогів, а не їх вміст

-h (human readable)

виводить розміри файлів у форматі, зручному для людини

-l (long list)

надає додаткові відомості, один файл/каталог на рядок

-r (reverse)

змінює порядок сортування

-R (recursive)

надає у списку кожен файл, включаючи файли в кожному підкаталозі

-S (size)

сортує за розміром файлів

-t (time)

сортує за часом модифікації

-X (eXtension)

сортує за розширенням файлу

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

  1. Використовуйте таку файлову структуру, щоб відповісти на наступні три запитання:

    /
    ├── etc/
    │   ├── network/
    │   │   └── interfaces/
    │   ├── systemd/
    │   │   ├── resolved.conf
    │   │   ├── system/
    │   │   ├── system.conf
    │   │   ├── user/
    │   │   └── user.conf
    │   └── udev/
    │       ├── rules.d
    │       └── udev.conf
    └── home/
        ├── lost+found/
        ├── user/
        │   └── Documents/
        └── michael/
            └── Music/
    • Яка команда дозволить перейти до каталогу network незалежно від вашого поточного місцезнаходження?

      cd /etc/network
    • Яку команду може ввести user може ввести, щоб перейти до свого каталогу "Documents" з /etc/udev? Використайте найкоротший шлях.

      cd ~/Documents
    • Яку команду може ввести user, щоб перейти до каталогу Music користувача michael? Використайте найкоротший шлях.

      cd ~michael/Music
  2. Щоб відповісти на наступні два запитання, розглянемо результат команди ls -lh, показаний нижче. Зверніть увагу, що каталоги позначаються символом d на початку рядка.

    drwxrwxrwx  5 eric eric  4.0K Apr 26  2011 China/
    -rwxrwxrwx  1 eric eric  1.5M Jul 18  2011 img_0066.jpg
    -rwxrwxrwx  1 eric eric  1.5M Jul 18  2011 img_0067.jpg
    -rwxrwxrwx  1 eric eric  1.6M Jul 18  2011 img_0074.jpg
    -rwxrwxrwx  1 eric eric  1.8M Jul 18  2011 img_0075.jpg
    -rwxrwxrwx  1 eric eric   46K Jul 18  2011 scary.jpg
    -rwxrwxrwx  1 eric eric  469K Jan 29  2018 Screenshot from 2017-08-13 21-22-24.png
    -rwxrwxrwx  1 eric eric  498K Jan 29  2018 Screenshot from 2017-08-14 21-18-07.png
    -rwxrwxrwx  1 eric eric  211K Jan 29  2018 Screenshot from 2018-01-06 23-29-30.png
    -rwxrwxrwx  1 eric eric  150K Jul 18  2011 tobermory.jpg
    drwxrwxrwx  6 eric eric  4.0K Apr 26  2011 Tokyo/
    -rwxrwxrwx  1 eric eric  1.4M Jul 18  2011 Toronto 081.jpg
    -rwxrwxrwx  1 eric eric  1.4M Jul 18  2011 Toronto 085.jpg
    -rwxrwxrwx  1 eric eric  944K Jul 18  2011 Toronto 152.jpg
    -rwxrwxrwx  1 eric eric  728K Jul 18  2011 Toronto 173.jpg
    drwxrwxrwx  2 eric eric  4.0K Jun  5  2016 Wallpapers/
    • Коли ви запускаєте команду ls -lrS, який файл буде на початку?

      Усі три папки мають розмір 4,0 КБ, що є найменшим розміром файлу. ls потім сортує каталоги в алфавітному порядку за замовчуванням. Правильною відповіддю є файл scary.jpg.

    • Будь ласка, опишіть, що ви очікуєте побачити як результат команди ls -ad */.

      Ця команда покаже всі підкаталоги, включно з прихованими підкаталогами.

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

  1. Виконайте команду ls -lh у каталозі, який містить підкаталоги. Зверніть увагу на вказаний розмір цих каталогів. Ці розміри файлів здаються вам правильними? Чи вони точно представляють вміст усіх файлів у цьому каталозі?

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

  2. Ось нова команда, яку можна спробувати: du -h. Виконайте цю команду та опишіть результат, який вона вам дає.

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

  3. У багатьох системах Linux ви можете ввести ll і отримати такий самий результат, як якщо б ви ввели ls -l. Проте зверніть увагу, що ll це не команда. Наприклад, man ll дасть вам повідомлення, що для нього не існує посібника. Це приклад псевдоніма. Чому псевдоніми можуть бути корисними для користувача?

    ll є псевдонімом ls -l. У Bash ми можемо використовувати псевдоніми для спрощення команд, які часто вже використовуються. ll часто визначено для вас у Linux, але ви також можете створити свій власний псевдонім.

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

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

2.4 Створення, переміщення та видалення файлів (2.4 Урок 1)

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

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

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

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

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

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

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

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