Міністерство освіти та науки України
Національний університет «Львівська Політехніка»
Кафедра САПР
Звіт
До лабораторної рботи № 2
З курсу:””
На тему:”ОС Linux. Робота з каталогами та файлами”
Виконав:
Ст.гр. ІТП
Прийняв:
Львів – 2008 р.
Мета роботи
Поглибити знання про файли та каталоги Linux. Навчитися працювати з файлами та організовувати їх по каталогам.
Теоретичні відомості
Команди роботи з файлами можна поділити на дві категорії:
команди, що працюють з файлами як з єдиним цілим (об”єктом)
команди, що змінюють вміст файлів
Отримання списку файлів
Головна команда для отримання списку файлів – ls. Спосіб відображення цією командою файлів залежить від того, як вона використовується. Якщо ls використовується разом з каналами, то кожен файл відолбражається в окремому рядку. Найчастіше, однак інформація відображається по стовпцях.
Поведінка команди ls керується ключами у формі – abcd. Ключі команді ls можна об”єднувати, наприклад: ls -lF
Значення найважливіших ключів команди ls наведені у таблиці нижче
Організація файлів
В Linux немає заздалегідь визначених правил організації файлів. Файли не мають розширень, таких як в MS DOS чи Windows. Користувач може розробити власну систему іменування файлів. Класична схема організації файлів базується на використанні підкаталогів. Наприклад bin – для збереження бінарних файлів, lib – бібліотек, etc – файлів налаштувань
Каталоги створюють командою mkdir назва_каталога
Треба мати права доступу на запис у той каталог, в явкому створюється підкаталог. Нехай користувач створив три програми: prog1, prog2, prog3. Усі влни знаходяться у каталозі $HOME/bin.Якщо потрібно, щоб ці програми запускалися як і будь-яка інша команда Linux, необхідно до змінної оточення PATH додати шлях $HOME/bin. Це робиться такою командою (bash shell):
PATH=$PATH:$HOME/bin; export PATH
Вираз $HOME подає шлях до робочого каталогу користувача. Наприклад, якщо робочий каталог користуча /home/minny, то $HOME/bin інтерпретується системою як /home/minny/bin.
Якщо користувач створив деякі бібліотеки спільного використання для декількох програм, то доцільно розмістити їх у каталог $HOME/lib та додати шлях до цього каталога у змінну PATH.
Копіювання файлів
Для копіювання файлів використовують команду
cp from <path/filename> to <path/filename>
Для копіювання файлів необхідно мавти права на читання з каталогу з якого копіюється файл та права запису у каталог призначення.
При копіюванні файлів:
якщо вказати назву файла, який вже існує в каталозі, старий файл заміниться новим
якщо в параметрі to команди cp вказати тільки назвус каталога, то файл скопіюється з тою ж назвою.
з використанням команди cp file1 file2 file3 …. directory у каталог призначення скопіюється декілька файлів
при копіюванні можна використовувати шаблони (*, ?)
Переміщення та перейменування файлів
В Linux переміщення та пейменування файлів виконується командою mv, яка має той же синтаксис та правила використання , що й cp. Таким чином, використовуючси команду mv ьщжна перемістити багато файлів в один каталог, але назва каталогу повинна бути останньою у списку параметрів і треба мати права запису у каталог призначення.
Крім того, команда mv дозволяє пееміщувати та переіменовувати файли та каталоги. При переіменуванні файла змінюється тільки запис про нього. Файл фізично переміщуєтьсмя тільки тоді, коли його нове розташування є на іншому диску.
Видалення файлів та каталогів
Для видалення файлів використовують команду rm. Для видалення файла необхідно мати на нього права на читання та запис.
Якщо випадково набрати команду rm *, то будуть видалені усі файли біжучого каталогу. При цьому підкаталоги видалені не будуть. Для видалення підкаталогів, використовують команду rm –r *
Зручним способом захисту від випадкового вилучення файлів є використання команди rm ві інтерактивному режимі (з ключем –i). При цьому система буде питати дозволу на знищення кожного фала у каталозі.
Після знищення файлу поноваити його можна хіба що з резервної копії.
Перегляд вмісту файлів
Майже кожна команда Linux виводить результат виконання команди на консоль. Якщо команда отримує вхідні дані з файла, то після опрацювання файла результати також відображаються на екрані. При цьому для перегляду інформації можна скористатися однією з трьох команд: cat, more, less
Linux, як і всі інші системи UNIX при запуску відкриває чотири стандартних файла: стандартний ввід, вивід, вивід помилок та допоміжний. Ці файли відповідають насткупним пристроям:
Використання команди cat
Для перегляду великих файлів найпростіше використовувати команду cat (concatenate, з»єднати).
cat file1 fiile2 file3
Параметрами команди cat є список файлів. Первинне призначення цієї команди – це об”єднання текстових файлів, але її можна використовувати і для перегляду файлів. При спробі вивести на екран великий файл, його вміст швидко промайне на екрані і користувач не зможе побачити його. Одним з способів призупинити вивід, а потім поновити його – це використати комбінації клавіш <ctrl-s> (зупинка), <ctrl-q> (продовження). Для цього також можна використати команди more та less для поекранного виводу інформації.
Використання команди more
Команди more та less використовують для поекранного виводу інформації. Але кожна з цих команд працює інакше. Команди визначають скількі рядків зміститься на екрані звертаючись до бази даних по терміналах та до змінної оточення TERM.
Команда more є старішою командою. Вперше вона з”явилася у версії Berkeley системи UNIX. Вона виявмлася настільки корисною, що стала , як і редактор vi, стандартною. Найпростіша форма використання команди це
more filename
При цьому виводиться частина файла розміром в один екран. Якщо натиснути клавішу пробілу, буде виведено наступний екран. Якщо натиснути <Enter>, то буде виведено тільки наступний рядок.
Можна переглядати і декілька файлів одночасно (more file1 file2 file3). Якщо треба відредагувати якійсь файл, то треба натиснути одну з клавіш <e> або <v>. При натисненні <e> файл відкриється у редакторі, що вказаний у змінній EDITOR (за замовченням – ed). При натисненні <v> файл відкриється у редакторі, що вказаний у змінній VISUAL (за замовченням – vi).
Суттєвим недоліком команди more є те, зміст файлів вона дозволяє переглядати тільки в одному напрямку. Цього недоліку позбавлена команда less
Використання команди less
Команда less працює практично так само, як і more. Формат команди:
less filename
Для перегляду наступного екрану треба натиснути пробіл, а для перегляду попереднього екрану – клавішу <b>
Недоліком less є неможливість редагування файлу, що переглядають
Пошук файлів
Якщо не вдалося знайти потрібний файл командою ls, то можна використати для пошуку команду find. Ця команда є дуже потужною, що робить її складною у використанні та розумінні.
Використання команди find складається з трьох етапів, кожен з яких у свою чергу може складатися з одного або декількох підетапів:
Де шукати
Що шукати
Що робити, коли файл знайдено
Якщо відома назва файла, але невідомо його знаходження, то для пошуку можна скористатися такою командою:
find / -name <filename> -print
Водночас, якщо пошук починається з кореня файлової системи, він може тривати протягом довгого часу, так як при цьому будуть аналізуватися кожнен каталог і кожен файл усіх файлових систем. Якщо відомо, що потрібний файл скорш за все знаходиться у певних каталогах, то скоротити час пошуку можна якщо вказати каталоги пошуку.
find /usr1 /usr2 –name <filename> -print
У таблиці наведені найбільш вживані ключі команди find
Команда find дозволяє комбінувати критерії пошуку. При цьому критерії пошуку об”єднуються логічними операторами AND (за замовчуванням) та OR (ключ –o)
find /home (-name file1 –o –name file2) -print
Сортування текстових файлів
Команда sort виводить записи файла впорядковані в алфавітно-цифровому порядку. Наприклад,
$sort people
Bill Williams 100
Henry Morgan 112
Mary Clark 101
Записи відсортовані по першій букві імені, але можна виконати сортування і по прізвищам:
$sort +1 people
Mary Clark 101
Henry Morgan 112
Bill Williams 100
Ключ +1 значить що одне поле кожного запису файла повинно ігноруватися підчас сортування. Сортування по третьму полю з ігноруванням початкових прробілів виконується з використанням ключа -b (blank):
$sort –b +1 people
Bill Williams 100
Mary Clark 101
Henry Morgan 112
Для збереженння результатів у файлі використовують ключ –o (output)
$sort –o sortpeople +1 people
Переспрямування вводу та виводу
Багато програм приймають інформацію з клавіатуури та виводять результати виконання на екран термінала. В Linux ввід з клавіатури відповідає читанню з файла stdin, а вивід на екран – запису у файл stdout.
В деяких випадках зручно переспрямувати стандартний ввід та вивід так, щоб дані вводилися з файлу та виводилися у файл.
Для переспрямування вводу даних у файл використовується оператор <. Наприклад, якщо потрібно відправити файл з назвою message адресату rysio, можна скористатися командою:
mail rysio < message
Для переспрямування виводу програми у файл використовують оператор > . При цьому замість виводу інформації на екран терміналу, вона записується у файл.
Наприклад, якщо треба зберегти біжучу дату і час у файлі з іменем now, можна скористатися командою
date > now
Якщо файл now вже існує, то новий файл замінить старий. При цьому існує можливість втрати даних у старому файлі.
Розглянемо складніший приклад використання операторів переспрямування. Нехай у файлі sales зберігається інформація про продажі. У першому рядку прикладу біжуча дата записується у у файл з іменем sales_report. У другому рядку команда sort сортує дані з файлу sales і додає свій вивід до файлу sales_report. В останньому рядку результат відправляють користувачам missy та rysio по електронній пошті.
date > sales_report
sort < sales >> sales_report
mail missy rysio < sales_report
Висновок
На цій лабораторній роботі я поглибив знання про файли та каталоги Linux. навчився працювати з файлами та організовувати їх по каталогам.