Повсякденна робота: файли і основні команди

Інформація в системі UNIX зберігається вфайлах, Які по суті своїй дуже схожі на звичайні офісні папки для документів У кожного файлу є імя, вміст, місце для зберігання і деяка адміністративна інформація про його власника та розмірі Файл

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

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

Створення файлів – редактор

Якщо треба надрукувати лист, документ або програму, яким чином витягти інформацію, що зберігається в компютері Більшість завдань такого роду виконується за допомогою текстового редактора – Програми для зберігання та обробки інформації в компютері Практично в кожній UNIX єекранний редактор – Редактор, який використовує здатність сучасних терміналів відображати редакційні зміни, як тільки вони зроблені Два наиб леї популярних екранних редактора – це vi і emacs

Ми не будемо описувати тут конкретні редактори, частково через обмежений обсяг книги, а частково тому, що жоден з них не є стандартним1 Однак є більш старий редактор ed, який напевно доступний в кожній системі Він не підтримує спеціальні можливості, властиві деяким терміналам, тому може працювати на будь-якому Він також є основою інших найважливіших програм (у тому числі кількох екранних редакторів), так що варто того, щоб його вивчили Короткий опис цього редактора при водиться в додатку 1

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

Щоб створити за допомогою ed файл з імям junk, що містить деякий текст, виконайте наступне:

$ ed Викликає текстовий редактор

a команда ed для додавання тексту тепер вводите

будь-який текст ..

1 Хоча зараз, звичайно, можна сказати, що редактор vi таки є стандартним – Прямуючи науч ред

.                  Введіть окремо «»- Завершення введення тексту

w junk Записати текст у файл з імямjunk

q Вийти зed

$

Команда a (append – додати) повідомляє ed про початок введення тексту Символ «», Що позначає кінець тексту, має бути введений на початку окремого рядка Не забудьте його – доти поки цей символ вживається не буде введений, жодна з наступних команд ed не розпізнає – все, що вводиться, буде сприйматися як продовження тексту

Команда редактора w (write – записати) зберігає введену інформацію w junk зберігає її у файлі з імям junk Будь-яке слово може виступати в якості імені файлу в даному прикладі було вибрано слово junk (сміття), щоб показати, що файл не дуже-то важливий

У відповідь ed видає кількість символів, поміщених у файл До введення команди w нічого записано не буде, так що якщо відключитися і піти, то інформація не буде збережена у файлі (Якщо відключитися під час редагування, то дані, які оброблялися, зберігаються у файл edhup, з ним можна продовжувати працювати в наступній сесії) Якщо під час редагування відбувається відмова системи (тобто изза збою апаратного або програмного забезпечення система раптово зупиняється), то файл буде містити тільки ті дані, які були записані останньою командою write Після ж виконання w інформація записана назавжди щоб отримати до неї доступ, введіть

$ ed junk

Звичайно ж, введений текст можна редагувати: виправляти орфографічні помилки, змінювати стиль формулювань, перегруповувати абзаци і т д Закінчивши, введіть команду q (quit – вихід), щоб вийти з редактора

Що там за файли

Створимо два файли, junk і temp, щоб знати, чим ми володіємо:

$ ed a

To be or  not  to  be

.

w  junk

19

q

$ ed a

That  is the  question

.

w  temp

22

q

$

Лічильники кількості символів в ed враховують і символ кінця кожного рядка, званий роздільником рядків (newline), за допомогою якого система являє Return

Команда ls виводить список імен (не вміст) файлів:

$ ls junk temp

$

Це дійсно два щойно створених файлу (У списку могли бути й інші файли, яких ви не створювали) Імена автоматично сортуються в алфавітному порядку

Як і у багатьох інших команд, у ls є параметри, призначені для зміни поведінки команди за замовчуванням Параметри вводяться в командному рядку після імені команди, зазвичай вони складені з знака мінус «-» і якоїсь однієї літери, яка і визначає конкретне значення Наприклад, команда ls-t задає виведення файлів, упорядкований за часом (time) їх останньої зміни, починаючи з самого свіжого

$ ls -t temp junk

$

Параметр-l забезпечує розширений (long) список, що надає більше інформації про кожен файл:

$ ls -l

total  2

–rw–r––r–– 1 you                  19 Sep 26 16:25  junk

–rw–r––r–– 1 you                  22 Sep 26 16:26  temp

$

total 2 повідомляє, скільки блоків дискового простору зайнято фай лами блок – це зазвичай 512 або 1024 символу Рядок-rw-r – r-інформує про те, у кого є права на читання файлу і запис в даному випадку власник you може читати файл і писати в нього, а інші користувачі можуть тільки читати Наступний за рядком прав доступу символ 1 – це кількість посилань (links) на файл поки не звертайте на нього уваги, поговоримо про нього в главі 2 Власник файлу (тобто користувач, який його створив) – це you 19 і 22 – це значення кількості символів у відповідних файлах вони збігаються

зі значеннями, виданими ed Далі йдуть дата і час останньої зміни файлу

Параметри можуть бути згруповані: ls-lt видає ті ж дані, що і ls-l, але відсортовані за часом, починаючи з самого нового Параметр-u надає інформацію про те, коли файли використовувалися: ls-lut видає розширений (-l) список, відсортований в порядку часу використання, починаючи з останнього Параметр-r змінює порядок виведення на зворотний, так що ls-rt виводить файли в порядку, зворотному часу їх останньої зміни Можна також після команди вказати імена файлів, тоді ls виведе інформацію тільки за зазначених файлів:

$ ls -l junk

–rw–r––r–– 1 you                  19 Sep 26 16:25  junk

$

Рядки, наступні за імям команди в командному рядку, як-l і junk в прикладі вище, називаються аргументами команди Зазвичай аргументи – це параметри або імена файлів, які повинні використовуватися командою

Запис параметра за допомогою знака мінус і однієї (наприклад,-t) або декількох букв (наприклад,-lt) – це загальноприйняте угоду Зазвичай якщо команда допускає використання таких необовязкових параметрів, то вони повинні передувати іменах файлів, але возмо дружин і другий порядок Хоча треба відзначити, що UNIX-програми досить примхливі в тому, що стосується обробки декількох параметрів Наприклад, стандартна UNIX System 7 ls не сприйме

$ ls –l  –t                     Не працює в UNIX System 7

як синонім ls-lt, тоді як інші програми вимагають поділу параметрів

У міру вивчення UNIX стане зрозуміло, що якась регулярність або система відносно необовязкових аргументів практично відсутня У кожної команди є тільки їй притаманні особливості, і кожна сама визначає, що буде позначати яка буква (так що одна і та ж функція в різних командах може бути позначена різними літерами) Така непередбачуваність приводить у замішання, і імен але її часто називають головним недоліком системи І хоча ситуація поступово поліпшується – у нових версіях вже більше однаковості, єдине, що можна порекомендувати – це намагатися тримати керівництво поблизу, коли будете писати власні програми

Джерело: Керниган Б, Пайк Р, UNIX Програмне оточення – Пер з англ – СПб: Символ-Плюс, 2003 – 416 с, Мул

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*