русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Шановні українці! Матеріал був перекладений з російської мови. Тому можуть бути незначні помикли...

Файли в linux

1. Структура файлової системи і каталогів linux

Пристрій файлової системи linux дуже сильно відрізняється від пристрою в windows. Для початку, в лінуксі немає дисків C або d Один пфизический диск (або декілька) при установці системи розбивається на каталоги та підкаталоги. Основний, кореневий каталог позначається псимволом / (слеш) Замість файлу підкачки існує окремий розділ /swap. Кожен каталог можна форматувати в потрібну файлову систему, пв залежності від завдань користувача. Наприклад Ext3, ReiserFS, JFS або іншу. пВ різних дистрибутивах linux схема і призначення деяких каталогів може трохи відрізнятися. пможна створювати свої каталоги. Наприклад, розмістити на окремому диску каталог з фільмами. В кореневому розділі він пбудет виглядати як /films.

 

 

Опис основних каталогів і підкаталогів в linux:

/bin - В ньому знаходяться основні файли команд.
/boot - В цьому каталозі знаходиться завантажувач (Grub або Lilo) і файли, необхідні для завантаження системи.
/dev - В каталозі dev розміщуються файли описания пристроїв комп'ютера. В linux всі пристрої вважаються файлами. Навіть порти, диски, принтери - все файл.
/etc - Каталог, в якому знаходяться конфігураційні файли системи, програм, стартові сценарії.
/etc/rc.d - файли команд, що запускають програми при завантаженні системи.
/etc/passwd - у файлі зашифровані всі дані про користувачів.
/etc/fstab - у файлі міститься інформація про файлових системах, автоматично монтируемых при запуску системи
/home - Користувальницький, домашній каталог. В linux може бути безліч користувачів. Кожен користувач має свій каталог.(наприклад, /home/user) В ньому знаходяться будь-які файли користувачів до яких він має безпосередній доступ запису/видалення. Також у домашньому каталозі знаходяться користувацькі програми, настройки. Їх імена починаються на точку і виглядають, наприклад, ось так - .kde .fonts
/lib - Тут знаходяться різні бібліотеки системи, модулі ядра
/lib/firmware - невільні модулі ядра з закритою ліцензією
/lib/modules - подгружаемые модулі ядра. Наприклад драйвери пристроїв, каталогів.
/mnt - У цей каталог тимчасово монтуються різні пристрої, що підключаються. Флешки, дискети, диски
/opt - В каталог встановлюються додаткові пакети програм.
/proc - Каталог з віртуальної файлової системи. У ньому, у вигляді файлів міститься інформація про перебувають у системі процесах.
/proc/modules - у цьому файлі знаходиться інформація про список завантажених модулів ядра.
/proc/cpuinfo - детальна інформація про процесор.
/proc/meminfo - інформація про оперативної пам'яті.
/proc/devices - драйвери пристроїв вбудованих в ядро системи.
/proc/uptime - інформація про uptime системи. Тобто Час роботи без перезавантаження.
/proc/version - версія використовуваного системою ядра linux. пвсі ці дані можна виводити в консолі за допомогою командиcat.r
Наприклад cat /proc/cpuinfo
/root - Домашній каталог адміністратора(root) системи. Використовується адміністратором у разі якщо основний каталог home по якимось причинам недоступний.
/sbin - Тут знаходяться основні програми, що виконуються root.
/tmp - Каталог для тимчасового зберігання даних програмами.
/usr - Основний каталог для установки програм. Крім програм, в ньому знаходяться файли документації, вихідні коди програм, ядра.
/usr/local - в цьому каталозі знаходяться окремо встановлені пакети програм.
/usr/src - вихідні встановлених програм і ядра.
/usr/man - файли посібників до встановлених програм.
/usr/lib - незмінні конфігураційні файли і дані програм.
/var - В каталозі var знаходяться дані які часто змінюються в процесі роботи системи. Наприклад логи, кеші програм.
/var/local - змінні дані програм, встановлених адміністратором в /usr/local.r
/var/log - логи різних системних програм.
/var/run - тимчасові файли. Інформація в них зберігається до чергової перезавантаження системи.
/var/tmp - каталог для тимчасових файлів.

 

 

2. Команди роботи з архівами

Імена упакованих файлів у більшості випадків закінчуються на:

  • .tar - файл усобран утилітою tar;
  • .gz - упакований файл архіватором gzip;
  • .bz2 - упакований файл архіватором bzip2 (стискає ефективніше, ніж gzip).
  • .tar.bz2 - файл усобран утилітою tar і упакований архіватором bzip2 .
  • .tar.gzip - файл усобран утилітою tar і упакований архіватором gzip .
  • .zip - zip-файлы.
  • .rar - rar-файли.

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

Спорідненої "tar"-утилітою є утиліта cpio (див. man cpio або cpio --help чи info cpio), яка копіює файли в архіви і з них.

Однак, основним засобом архівування в UNIX (а, отже, і в Linux) є комплекс із двох програм - tar gzip. пХотя ніхто не забороняє користуватися arj, pkzip, lha, rar і т. д. - версії цих програм для Linux є загальнодоступними. пПросто уже історично склалося, що користувачі Unix/Linux частіше застосовують саме tar і gzip, і саме в такому форматі поширюється пбольшая частина програмного забезпечення для Unix. Тому опанувати роботою з tar і gzip - справа честі для будь-якого користувача Linux.

У користувача, який звик до архіваторам типу arj, які збирають файли в єдиний архів і відразу "стискають" їх, може виникнути пвопрос "А навіщо використовувати дві програми?" Вся справа в тому, що tar розшифровується як Tape ARchiver, він не псжимает дані, а лише поєднує їх у єдиний файл з послідовним доступом для подальшого запису на стрічку. За промовчанням пархивный файл створюється на стрічковому накопичувачі, точніше на пристрій /dev/rmt0. Якщо ви хочете створити архівний файл на диску, пто необхідно використовувати команду tar з опцією f, після якої вказується ім'я архівного файлу (детальніше опції tar)

Приклади

# tar-cf primer.tar /home/primer.txt # Створити архів tar-з ім'ям primer.tar що містить /home/primer.txt;
# tar-czf primer.tar.gz /home/primer.txt # Створити архів tar-з стиснення Gzip по імені primer.tar.gz (утиліта tar викликає з під себе Gzip);
# tar-cjf primer.tar.bz2 /home/primer.txt # Створити архів tar-із стисненням Bzip2 по імені primer.tar.bz (утиліта tar викликає з під себе Bzip2);
# tar -xf primer.tar # Розпакувати архів primer.tar у поточну теку;
# tar-xzf primer.tar.gz; # Розпакувати архів tar-з Gzip;
# tar-xjf primer.tar.bz # Розпакувати архів tar-з Bzip2;

Стиснення та упаковка файлів також може виконуватися за допомогою наступних утиліт:


gzip - Стиснути файли за допомогою програми GNU Zip
gunzip - Розтиснути файли GNU Zip
compress - Стиснути файли традиційним методом Unix
uncompress - Розтиснути файли традиційним методом Unix
zcat - Стиснути/розтиснути файл через стандартні потоки вводу/виводу (gzip або compress)
bzip2 - Стиснути файли у форматі BZip
bunzip2 - Розтиснути файли BZip
zip - Стиснути файли у форматі Windows Zip
unzip - Розтиснути файли Windows Zip
rar - Стиснути файли у форматі rar
unrar - Розтиснути файли rar

Хоча програма tar створює архіви, вона, як було сказано, не стискає архіви, а просто з'єднує окремі файли в єдиний архівний файл. Для стиснення цього файлу часто застосовують до оманду gzip.

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

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

Увага! За умовчанням і gzipі bzip2 видаляють запаковані (або розпаковані файли, якщо тільки ви не використовуєте попцию-c. У bzip2 ви можете уникнути цього, скориставшись спеціальною опцією. У gzip еквівалентної опції немає.

У Linux/Unix є утиліти, які дозволяють переглядати запаковані файли відразу без попередньої їх розпакування.

  • bzcat - перегляд упакованого файлу bzip2
  • bzless - перегляд упакованого файлу bzip2
  • zcat - перегляд упакованого файлу gzip
  • zless - перегляд упакованого файлу gzip

 

 

3. Властивості файлу

Вміст файлів в Linux - це тільки пполовина інформації. Кожен файл і директорія, крім іншого, пимеют атрибути, які описують власника, розмір, права пдоступа та іншу інформацію. Команда Is -1 виводить деякі з цих патрибутов, а для перегляду інших атрибутів використовуються пописаны нижче команди,з деякими з них ви вже ознакомались в попередніх роботах:

  • stat - Вивести атрибути файлів і директорій
  • touch - Змінити тимчасові мітки файлів або каталогів
  • chown - Змінити власника файлів або каталогів
  • chgrp - Змінити приналежність группедля файлів або каталогів
  • chattr - Змінити розширені атрибути файлів або каталогів
  • lsattr, Вивести список розширених атрибутів файлів або каталогів

У даній роботі вам належить ознайомиться з командами:

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

 

 

4. Пошук файлів

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

  • find - Шукати файл в ієрархії каталогів
  • slocate Створити індекс файлів і шукати рядок в цьому індексі
  • which - Шукати виконувані файли у ваших каталогах (команда)
  • type - Шукати виконувані файли у ваших каталогах (вбудована функція bash)
  • whereis - Шукати файли, документацію і файли з вихідним кодом

пДля пошуку довільного файлу можна використовувати утиліту find , пкоторая наполегливо перебирає файл за файлом у всіх каталогах в ппоисках потрібного файлу. Утиліта slocate набагато швидше, вона посуществляет пошук в заздалегідь створеному індексі, який ви пгенерируете у разі необхідності (Fedora генерує цей індекс пежедневно типово).

пДля пошуку виконуваних файлів утиліти which і type перевіряють усі пдиректории у шляху пошуку вашого командного процесора. Команда type вбудована в командний процесор bash (і, отже, пдоступна тільки при роботі в bash); type працює швидше which допоможе шукати серед псевдонімів командного процесора. На відміну піт них, команда whereis досліджує заздалегідь відомий набір пдиректорий, а не директорії вашого шляху пошуку.

Наприклад:

find / -type f-name myfile-print - Знайти певний файл з ім'ям myfile, починаючи з кореня.

find / -type d-print - Вивести імена всіх каталогів.

slocate-U directory-о /tmp/myindex - Створення індексу конкретної директорії і всіх її піддиректорій.

 

 

5. Робота з текстом у файлах

Одна з сильних сторін Linux - це робота з текстом: обробка птекстовых файлів (або стандартного потоку вводу) різними ппреобразованиями. Будь-яка програма, яка читає дані з пстандартного потоку вводу і пише дані у стандартний потік пвывода, має відношення до попереднього розділу, але в роботах ми прассмотрим тільки найбільш уживані і потужні з них.

Команди обробки тексту використовуються при написанні скриптів з метою автоматизації роботи з файлами пякщо адміністрування системи.

  • cut - Виділити колонки з файлу
  • paste Вставити колонки
  • - Перетворити символи в інші символи
  • sort Сортувати рядки тексту у відповідності з різними критеріями
  • uniq - Знайти ідентичні рядки у файлі
  • wc - Надрукувати кількість переказів рядків, слів і байт для кожного ФАЙЛУ
  • iconv - Перетворює вказані файли з однієї пкодировки в іншу.
  • diff - Пошук відмінностей між двома файлами
  • join - З'єднання файлів

 

 

6. Способи об'єднання команд

Існує можливість поєднувати кілька команд в командному рядку. Це можна робити кількома способами:

Послідовне виконання

Команди виконуються одна за іншою, не залежно від результату їх виконання. Як роздільник виступає символ точки пс комою«;»). як приклад можна розглянути складову команду du-sh; date , яка виводить на екран вміст домашньої директорії, па потім поточні дату і час.

Умовне виконання (І)

Перевіряється код завершення першої програми, якщо він дорівнює 0, проводиться виконання другої програми, і так далі. Таким чином, остання команда виконається тільки при успішному завершенні всіх попередніх. Як роздільник виступають пдва амперсанда («&&»). як приклад можна розглянути складову команду test-r /tmp/txt && cp /tmp/txt , яка перевіряє пвозможность читання файлу /tmp/txt і у разі успіху, копіювати цей файл у локальну теку.

Умовне виконання (АБО)

Перевіряється код завершення першої програми, якщо він не дорівнює 0, проводиться виконання другої програми, і так далі. постання команда буде працювати тільки якщо жодна з попередніх не закінчилася успішно. Як роздільник виступають дві пвертикальный риси («||»). як приклад можна розглянути складову команду test-d /tmp/dir || mkdir /tmp/dir, яка перевіряє псуществование директорії /tmp/dir і якщо її немає, створює її.

Конвеєр

Вище показано, як використовувати команду sort як фільтра. пякщо цьому передбачається, що ви звідки-то отримали дані у файл, або ввели дані з клавіатури своїми власними руками. пА що, якщо дані, які ви хочете відсортувати, є вихідними даними іншої програми, наприклад, такий як ls? пякщо ви використовуєте при сортуванні опцію -r, дані будуть розташовані в порядку, зворотному лексикографічним. пякщо ви бажаєте отримати перелік файлів вашого каталогу у зворотному порядку, один із способів зробити це буде:


/home/user/papers# ls
english-list
history-final
masters-thesis
notes

/home/user/papers# ls > file list-(перенаправлення резуоьтата з stdout у файл )file-list
/home/user/papers# sort-r file-list
notes
masters-thesis
history-final
english-list
/home/user/papers#

Тут ми зберегли результат роботи команди ls у файлі, а потім виконали sort-r над цим файлом. пНо це вимагає створення тимчасового файлу для збереження результату роботи ls.

пвихід з положення дає "конвеєр" (англ., pipeline). Конвеєр"|")- це ще одна чудова властивість , яка дозволяє псвязывать послідовність команд у конвеєр, де stdout першої команди надсилається прямо на stdin пвторой команди і так далі. У нашому прикладі ми хочемо послати stdout команди ls stdin команди sort. Символ "|" уособлює конвеєр:

 /home/user/papers# ls | sort-r
 notes
 masters-thesis
 history-final
 english-list
 /home/user/papers#

Ця команда набагато коротше і, очевидно, простіше набирається. Інший корисний приклад. Команда

 /home/user/papers# ls /usr/bin
пвыдает на дисплей довгий список імен файлів, більшість з яких дуже швидко промайне на екрані, пнатисніть ви встигли прочитати їх. Давайте підключимо до перегляду переліку імен файлів каталогу /usr/bin команду more.
 /home/user/papers# ls /usr/bin | more

Тепер ви можете посторінково гортати файл у своє задоволення.

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

 /home/user/papers# ls | sort-r | head -1
 notes
 /home/user/papers#

де head -1 просто видає перший рядок вхідного потоку (одержуваногов даному випадку це відсортований у зворотному порядку перелік імен файлів поточного каталогу, виданих командою ls).

Опис файлу /etc/passwd, /etc/shadow і /etc/groups

Переглядів: 10303

Повернутися в зміст:ОС Linux




Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн