Вы находитесь на странице: 1из 21

Практическая работа

«Работа с файлами в ОС семейства Unix»


Цель: изучить основные команды ОС для работы с файлами, получить
практические навыки администрирования системы.
Основные понятия
ОС семейства UNIX поддерживает многочисленные утилиты,
позволяющие работать с файловой системой и доступные как команды
командного интерпретатора. Рассмотрим наиболее распространённые команды
работы с файлами и каталогами (таблица 1).
Таблица 1 – Основные команды для работы с файлами
Выполняемая Наименова Cпецификация Пример использования
функция ние команды
команды
Просмотр ls ls [ключи]ключи] ls –l rabota
содержимого [ключи]имя_каталога]
каталога
Создание mkdir mkdir [ключи]ключи] mkdir rabota
каталога имя_каталога
Перемещение в cd cd имя_каталога cd rabota
каталоговой
структуре
Удаление rmdir rmdir [ключи]ключи] rmdir rabota
каталога имя_каталога
Создание touch touch имя_файла cd /home
файла touch primer1
Просмотр more more имя_файла more primer
файла less
cat Примечание: Для выхода из
режима просмотра нажмите
клавишу q.
Cчётчик строк wc wc [ключи]ключи] имя_файла wc primer
в файле
Просмотр типа file file имя_файла file primer
файла Примечание На экране
появится сообщение: primer:
ASCII text, т.е. файл
текстовый
Копирование cp cp cp primer /home/rabota
файла в каталог имя_файла_источника
имя_принимающего_
каталога
Копирование cp cp cp primer1 primer2
Выполняемая Наименова Cпецификация Пример использования
функция ние команды
команды
файла в файл имя_файла_источника
имя_принимающего_ Примечание. Имя файла-
файла получателя затирается
информацией файла-
источника
Копирование cp cp -r cp -r 1 2
каталоговой имя_исходного_катало
структуры га
имя_принимающего_
каталога
Переименовани mv mv старое_имя_файла mv primer pr
е файла новое_имя_файла
Перемещение mv mv mv primer /
файла имя_перемещаемого_
файла
имя_принимающего_
каталога
Удаление rm rm имя_файла rm pr
файла
Определение pwd pwd pwd
месторасполож
ения
Останов shutdown shutdown [ключи]ключи] shutdown –h now
системы
Перезагрузка shutdown shutdown [ключи]ключи] shutdown –r now
системы
Вызов справки man man <имя_команды> man ls
info

Пояснения к некоторым командам, представленным в таблице 1.


Команда ls
Команда ls выводит содержание каталога. Можно использовать
параметры, которые влияют на ее выполнение.
-а – выводит все файлы, включая скрытые; -С – выводит в несколько
колонок; -F – показывает тип файла; -l – выводит в длинном формате.
Если выведенный файл помечен звездочкой, то такой файл является
исполняемым. Если выведенный файл помечен слешем, то это – каталоги.
Скрытые файлы помечены точкой. Опция –l выводит файлы и каталоги в

2
длинном формате. Этот формат показывает пользователю большую часть
необходимой информации.
На рис. 1 проиллюстрированы результаты выполнения команды
ls –l
текущего каталога.
- rwxr-xr-x 1 user 28672 Jul 3 11:03 primer1

Тип файла, Кол-во Владеле Размер Дата модификации Имя файла


полномочия на связей ц файла файла, бт
доступ к файлу

Рисунок 1 – Результаты выполнения команда ls –l

Команда cd
Пользователь может обращаться к файлам и каталогам с помощью
абсолютных и относительных имён маршрутов. Абсолютные имена всегда
начинаются со слеша.
Пример команды cd с абсолютным именем маршрута: cd /home/rabota.
В данном примере становится текущим подкаталог rabota каталога home.
Пример команды cd с относительным именем маршрута: cd rabota.
cd ./ rabota (точка – это относительное имя, оно относится к текущему
каталогу).
Переход в родительский каталог – cd ..
Редактор vi является мощным средством для создания и редактирования
файлов. Он предназначен для работы на видеотерминале и использует окна,
посредством которых вы можете работать с текстовым файлом. Редактор vi
позволяет использовать более 100 команд.
Создание файла
Чтобы создать файл, введите: vi filename. Когда вы введете команду vi с
именем файла, vi очистит экран и отобразит окно, в котором вы можете вводить
и редактировать текст.
Режимы редактора
Редактор vi функционирует в двух режимах: режим ввода и командный
3
режим. В режиме ввода вы можете добавлять и модифицировать текст; в
командном режиме вы можете:
 редактировать и изменять существующий текст;
 удалять, перемещать и копировать текст;
 передвигаться по всему файлу;
 выполнять другие задачи.
Создание текста в режиме ввода (Аppend)ppend)
Если вы успешно вошли в редактор vi, то сразу же попадаете в
командный режим, и vi ожидает ввода ваших команд. Чтобы создать текст
необходимо:
 введите a, чтобы перейти к режиму ввода;
 введите нужный текст.
Выход из режима Append
После того как вы закончили создавать текст, нажмите клавишу ESCAPE,
чтобы из режима ввода перейти к командному режиму. Если вы нажмете
клавишу ESCAPE и услышите звуковой сигнал, то это значит, что вы уже
перешли в командный режим. Нажатие клавиши ESCAPE в то время, когда вы
находитесь в командном режиме, никак не влияет на текст в файле, даже если
вы нажмете ее несколько раз.
Перемещение курсора (командный режим)
Клавиши перемещения курсора позволяют вам перемещать курсор по
файлу. Курсор можно переместить с помощью следующих клавиш:
 h – перемещает курсор на один символ влево;
 j – перемещает курсор вниз на одну строку;
 k – перемещает курсор вверх на одну строку;
 l – перемещает курсор на один символ вправо.
Чтобы переместить курсор на 35 строк вниз, введите: 35j.
Прокрутка текста (командный режим)
Четыре команды редактора vi позволяют вам осуществлять прокрутку
текста файла. Команды ^f (<CTRL>f) и ^d (<CTRL>d) проводят прокруткуf (<CTRL>f) и ^f (<CTRL>f) и ^d (<CTRL>d) проводят прокруткуd (<CTRL>d) проводят прокрутку

4
экрана вперед (на экран, на полэкрана), а команды ^f (<CTRL>f) и ^d (<CTRL>d) проводят прокруткуb (<CTRL>b) и ^f (<CTRL>f) и ^d (<CTRL>d) проводят прокруткуu
(<CTRL>u) – прокрутку экрана назад (на экран, на полэкрана).
Создание, редактирование текста в командном режиме
В таблице 2 приведены некоторые команды создания, редактирования
текста с использованием данного редактора.
Таблица 2 – Команды создания, редактирования текста
Команда Функция
Команды создания текста
a Создать текст после курсора
A Создать текст в конце текущей строки
i Создать текст перед курсором
I Создать текст перед первым ненулевым символом в текущей строке
Создать текст с начала новой строки, расположенной под текущей
o
строкой
Создать текст с начала новой строки, расположенной над текущей
O
строкой
<ESC> Возвратить vi в командный режим из режима ввода текста
Команды удаления текста
u Отменить последнюю команду
x Удалить текущий символ
Удалить слово над курсором и следующий за ним пробел, или знак
dw
пунктуации
dd Удалить текущую строку
ndd Удалить n строк от текущей вниз
Удалить текущее предложение от текущей позиции курсора до конца
d)
текста
Команды копирования текста в буфер
yy Скопировать текущую строку
nyy Скопировать n строк от текущей вниз
yw Скопировать слово
При удалении (копировании) данные помещаются в буфер. Чтобы
вставить данные из буфера, необходимо нажать клавишу p (paste). Чтобы
вставить данные n раз, необходимо нажать клавиши np (например, 50p).
Номера строк
Каждая строка файла имеет номер, соответствующий ее положению в
буфере. Чтобы получить номер конкретной строки, переместите курсор на эту
строку и введите команду: ^f (<CTRL>f) и ^d (<CTRL>d) проводят прокруткуg.

5
В нижней части экрана команда ^f (<CTRL>f) и ^d (<CTRL>d) проводят прокруткуg поместит информацию:
 имя файла;
 был ли буфер модифицирован после последней записи его в файл;
 номер строки, на которой находится курсор;
 общее количество строк в буфере.
Завершение работы c vi
Когда вы закончите работу с текстом, необходимо записать содержимое
буфера в файл и возвратить управление shell. В табл. 3 приведены основные
команды, которые вам необходимы для выхода из редактора vi.
Таблица 3 – Основные команды выхода из редактора
Команда Функция
:w Записать в файл
:q Завершить работу с редактором
:wq Записать буфер в файл и завершить работу с редактором vi
ZZ Записать изменения в файл и завершить работу с vi

В поставку ОС семейства UNIX входит множество утилит для работы с


файлами (табл. 4).
Таблица 4 – Основные команды для работы с текстовыми файлами
Выполняемая Наименов Cпецификация Пример использования
функция ание команды
команды
Создать файл саt саt > имя_файла cat > /home/test/1.txt
введите данные, Примечание: ввод
по окончанию ввода буферизован (накапливается
нажмите ^f (<CTRL>f) и ^d (<CTRL>d) проводят прокруткуD 512 знаков, потом
сохраняется)
Создать файл саt саt -u> имя_файла cat -u> /home/test/1.txt
Примечание: ввод
небуферизован (unbuffers)
Сравнить файлы diff diff имя_файла diff 1.txt 2.txt
cmp cmp имя_файла
Отсортировать sort sort имя_файла sort 1.txt
данные в файле Примечание: сортировка
осуществляется по первому
символу

6
Выполняемая Наименов Cпецификация Пример использования
функция ание команды
команды
Отсортировать sort sort +n имя_файла, sort +1 1.txt
данные в файле где n – количество Примечание: сортировка
c указанием столбцов, которое будет производиться по
столбца при необходимо второму столбцу (столбцы
сортировке проигнорировать при отделены табулятором)
сортировке
Отсортировать sort sort –b имя_файла, sort +1 –b 1.txt
данные в файле Примечание: сортировка
c будет производиться по
игнорированием второму столбцу c
лидирующих игнорированием
пробелов лидирующих пробелов
Отсортировать sort sort sort +2 –b 1.txt –o sort1.txt
данные в файле имя_файла_для_сорти Примечание: сортировка
c сохранением ровки будет производиться по
отсортированны -o третьему столбцу c
х данных в имя_отсортированного игнорированием
файле _файла лидирующих пробелов с
сохранением результатов
сортировки в файле sort1.txt
Разрезать файл split split имя_файла split 1.txt
на части Примечание: по умолчанию в
каждой части будет
содержаться 1000 строк
Разрезать файл split split -m имя_файла, split -10 1.txt
на части с где m - количеств
указанием строк
количества
строк
Сборка файла cat cat [ключи]name1]>[ключи]name2] cat split??>new

Поиск файла find find [ключи]path] [ключи]key] [ключи]name] find / -name 1.txt
Найти от корневого каталога
файл с именем 1.txt
Печать файла lpr lpr [ключи]ключи] имя_файла lpr –w72 –l25 –h “My
lp programm” 1.txt

7
Выполняемая Наименов Cпецификация Пример использования
функция ание команды
команды
Печать файла с указанием
длины, ширины, заголовка на
каждой странице

Ссылка (link))

Данный тип файла отображается командой ls -l в виде символа "l".l"l"..


Файловая система UNIX/LINUX обеспечивает возможность связывания одного
и того же файла с разными именами. Существуют жесткие и мягкие ссылки.

Жесткая ссылка является просто еще одним именем для исходного файла
и не является типом файла. Она прописывается в индексном дескрипторе
исходного файла (в структуре, хранящей метаданные файла). После создания
жесткой ссылки невозможно различить, где исходное имя файла, а где ссылка.
Если вы удаляете один из этих файлов (точнее одно из этих имен), то файл еще
сохраняется на диске (пока у него есть хоть одно имя – жесткая ссылка). Очень
трудно различить первоначальное имя файла и позже созданные жесткие
ссылки на него. Поэтому жесткие ссылки применяются там, где отслеживать
различия и не требуется. Одно из применений жестких ссылок состоит в том,
чтобы предотвратить возможность случайного удаления файла. Особенностью
жестких ссылок является то, что они прямо указывают на номер индексного
дескриптора, а, следовательно, такие имена могут указывать только на файлы
внутри той же самой файловой системы (т.е. на том же самом носителе, на
котором находится каталог, содержащий это имя).

Символические ссылки тоже могут рассматриваться как дополнительные


имена файлов, но в то же время они представляются отдельными файлами –
файлами типа символических ссылок и являются самостоятельным типом

8
файла. Однако блоки данных файла в системе представляются в одном
экземпляре, у файла-ссылки адреса блоков данных те же, что и у исходного
файла. В отличие от жестких ссылок символические ссылки могут указывать на
файлы, расположенные в другой файловой системе, например, на монтируемом
носителе, или даже на другом компьютере. Если исходный файл удален,
символическая ссылка не удаляется, но становится бесполезной. Используйте
символические ссылки в тех случаях, когда хотите избежать путаницы,
связанной с применением жестких ссылок.

Создание любой ссылки внешне подобно копированию файла, но


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

Для создания ссылки, используется команда ln.

Пример:

[ключи]user]$ ln -s /home/user/ve/HOWTO/font-HOWTO-ru/ ~/FONTS

После выполнения такой команды в домашнем каталоге появился


подкаталог FONTS. Если теперь просмотреть список файлов в каталоге
/home/user с помощью команды ls -l, то среди прочих увидим такую строку:

lrwxrwxrwx 1 kos kos 31 Dec 13 21:13 FONTS ->


/home/kos/ve/HOWTO/font-HOWTO- ru/

Обратите внимание на самый первый символ в этой строке: он


показывает, что данная запись соответствует символической ссылке. Это видно

9
и в поле имени, где после нового имени и стрелки указано исходное имя файла
(в данном случае – каталога).

Один файл можно сделать принадлежащим нескольким каталогам. Для


этого используется команда ln (link)):

ln <имя файла 1> <имя файла 2>имя файла 1> <имя файла 2>> <имя файла 1> <имя файла 2>имя файла 2>>

Имя 1-го файла – это полное составное имя файла, с которым


устанавливается связь; имя 2-го файла – это полное имя файла в новом
каталоге, где будет использоваться эта связь. Новое имя может не отличаться от
старого. Каждый файл может иметь несколько связей, т.е. он может
использоваться в разных каталогах под разными именами. Команда ln с
аргументом -s создает символическую связь:

ln -s <имя файла 1> <имя файла 2>

Здесь имя 2-го файла является именем символической связи.


Символическая связь является особым видом файла, в котором хранится имя
файла, на который символическая связь ссылается. LINUX работает с
символической связью не так, как с обычным файлом – например, при выводе
на экран содержимого символической связи появятся данные файла, на
который эта символическая связь ссылается.

Во избежание потери данных необходимо осуществлять резервное


копирование данных. В различных реализациях системы могут быть разные
команды сброса файлов в архив и восстановление данных из архива.
Основными утилитами являются: tar, cpio.
Синтаксис команд имеет вид:
<команда> <ключи> <имя_архива> <имя_архивируемого файла>
Рассмотрим основные ключи команды tar (таблица 5).
Таблица 5 – Ключи команды tar

1
Ключ Пояснение
c Создает архив
x Восстанавливает файл из архива на устройство, заданное по умолчанию
f name Создает архив с именем name, где name – имя устройства, определенное в
каталоге /dev
Z Cжимает или распаковывает архив
z Cжимает или распаковывает архив с помощью команды gzip
M Создает многотомный архив
t Создает список сохраненных в архиве файлов и выводит их на консоль
v Выводит подробную информацию о процессе
Рассмотрим основные ключи команды cpio (таблица 6).
Таблица 6 – Ключи команды cpio
Ключ Пояснение
o Создает архив в стандартное устройство вывода
l Восстанавливает файлы из архива, передаваемого на стандартное
устройство ввода
t Создает список содержимого стандартного устройства ввода

Рассмотрим следующие примеры:


ls /home | cpio > /dev/fd0 – копирование файла из каталога /home на
дискету.
find /home –mtime 1 -print | cpio –o > /dev/fd0 – поиск измененных за
последние сутки файлов и копирование списка на дискету.
cpio –l < /dev/fd0 – восстановление файлов на стандартное устройство
Следует отметить, что команда tar не сжимает данные. Она позволяет
объединить файлы в один архивный файл. После этого можно воспользоваться
командой gzip для сжатия данных. Например:
tar cf /home/my/my.tar * – cоздать архив my.tar файлов текущего каталога.
gzip /home/my/my.tar – cжать архив my.tar командой gzip. В результате
будет создан архив my.tar.gz.
В случае использования команды tar с ключом z автоматически после
создания архивного файла сработает команда gzip – команда сжатия данных.

Практическое задание на тему «Работа с файлами в ОС Linux»

1
Задание
1. Войти в систему по именем первого пользователя с предыдущей работы.
2. Просмотреть и вывести в отдельный файл в своем домашнем каталоге
содержимое корневого каталога в длинном формате.
3. Просмотреть и вывести в отдельный файл в своем домашнем каталоге
содержимое корневого каталога в виде дерева каталогов.
4. Просмотреть и вывести в отдельный файл в своем домашнем каталоге
содержимое каталога /etc в длинном формате.
5. Просмотреть и вывести в отдельный файл в своем домашнем каталоге
содержимое каталога /etc, включая и подкаталоги, в длинном формате.
6. Создайте с помощью редактора в своем домашнем каталоге файл
«инициалы пользователя».txt, в который затем скопируйте содержимое
созданных ранее 4 файлов.
7. Просмотреть и вывести в отдельный файл в своем домашнем каталоге в
отсортированном по имени содержимое каталога /etc, включая и подкаталоги, в
длинном формате.
8. Просмотреть и вывести в отдельный файл в своем домашнем каталоге в
отсортированном по дате создания содержимое каталога /etc, включая и
подкаталоги, в длинном формате.
9. Создать командой tar архивный файл домашнего каталога. Архивный
файл поместить в каталог второго пользователя.
10. Распаковать командой tar созданный архивный файл домашнего каталога
первого пользователя в домашний каталог «фио_test1» третьего пользователя.
11. Сжать командой gzip полученный ранее архив домашнего каталога 1
пользователя и поместить его в домашний каталог 3 пользователя.
12. Создайте структуру каталогов в соответствии с одним из рисунков 1-7,
причем каждую ветвь иерархии с помощью одной команды. На рисунке

каталоги представлены элементами вида: , файлы – элементами вида: .


Черными линиями представлена вложенность файлов/подкаталогов в каталоги.
Синими линиями представлены жесткие ссылки. Красными линиями –
1
символические ссылки. Стрелка на красной линии указывает на целевой файл
ссылки. Корнем дерева должен быть домашний каталог первого пользователя.
В качестве файлов взять любые, созданные ранее в практических работах.

Рисунок 1
13.Создайте жесткие ссылки, представленные на выбранном рисунке
синими линиями.
14.Создайте символические ссылки, представленные на выбранном рисунке
красными линиями.
15. Предъявить работу преподавателю.

Рисунок 2

Рисунок 3
1
Рисунок 4

Рисунок 5

Рисунок 6

Рисунок 7

Содержание отчета:

1
1. Титульный лист.
2. Название и цель работы.
3. Краткие результаты выполнения работы.

1
Контрольные вопросы
1. Как осуществить вход в систему?
2. Как корректно выйти из системы?
3. Как создать каталог? Как создать подкаталог?
4. Как осуществить перемещение в каталоговой структуре?
5. Какая команда используется для удаления каталогов?
6. Как создать файл, как просмотреть его содержимое? Как просмотреть
тип файла, его размер, количество строк, столбцов.
7. Назовите команду, с помощью которой можно копировать файл в
файл, файл в каталог, структуру файлов и каталогов в каталог.
8. Как осуществить перемещение файла из каталога в каталог?
9. Какая команда используется для переименования файла? Как удалить
файл, каталог?
10. Как определить свое месторасположение в системе?
11. Какие способы запуска справочной системы Вы знаете?
12. В какой каталог переместится пользователь user по командам

cd tmp ответ:
cd ~user ответ:
cd .. ответ:
cd ответ:

если его домашний каталог


/home/user и в файловой системе есть каталоги
/tmp
/home/user/tmp
/home/user1/tmp
/tmp/tmp
а команда pwd выдает /home/user1
13. В какой каталог переместится пользователь user1 по командам
1
cd tmp ответ:
cd ~user ответ:
cd .. ответ:
cd ответ:
если его домашний каталог
/home/user1 и в файловой системе есть каталоги
/tmp
/home/user/tmp
/home/user1/tmp
/tmp/tmp
а команда pwd выдает /home/user
14. В какой каталог переместится пользователь user по командам

cd tmp ответ:
cd ~user ответ:
cd .. ответ:
cd ответ:

если его домашний каталог


/home/user и в файловой системе есть каталоги
/tmp
/home/user/tmp
/home/user1/tmp
/tmp/tmp
а команда pwd выдает /tmp
15. В какой каталог переместится пользователь user по командам

cd tmp ответ:
cd ~user ответ:

1
cd .. ответ:
cd ответ:

если его домашний каталог


/home/user и в файловой системе есть каталоги
/tmp
/home/user/tmp
/home/user1/tmp
/tmp/tmp
а команда pwd выдает /home/user
16. В какой каталог переместится пользователь user1 по командам

cd tmp ответ:
cd ~user ответ:
cd .. ответ:
cd ответ:

если его домашний каталог


/home/user и в файловой системе есть каталоги
/tmp
/home/user/tmp
/home/user1/tmp
/tmp/tmp
а команда pwd выдает /home/user1
17. В какой каталог переместится пользователь user по командам

cd tmp ответ:
cd ~user ответ:
cd .. ответ:
cd ответ:

1
если его домашний каталог
/home/user и в файловой системе есть каталоги
/tmp
/home/user/tmp
/home/user1/tmp
/tmp/tmp
а команда pwd выдает /home
18. В какой каталог переместится пользователь user1 по командам

cd tmp ответ:
cd ~user ответ:
cd .. ответ:
cd ответ:

если его домашний каталог


/home/user и в файловой системе есть каталоги
/tmp
/home/user/tmp
/home/user1/tmp
/tmp/tmp
а команда pwd выдает /home
19. В какой каталог переместится пользователь user1 по командам

cd tmp ответ:
cd ~user ответ:
cd .. ответ:
cd ответ:

если его домашний каталог

1
/home/user и в файловой системе есть каталоги
/tmp
/home/user/tmp
/home/user1/tmp
/tmp/tmp
а команда pwd выдает /tmp
20. В какой каталог переместится пользователь user по командам

cd tmp ответ:
cd ~user ответ:
cd .. ответ:
cd ответ:

если его домашний каталог


/home/user и в файловой системе есть каталоги
/tmp
/home/user/tmp
/home/user1/tmp
/tmp/tmp
а команда pwd выдает /
21. В какой каталог переместится пользователь user1 по командам

cd tmp ответ:
cd ~user ответ:
cd .. ответ:
cd ответ:

если его домашний каталог


/home/user1 и в файловой системе есть каталоги
/tmp

2
/home/user/tmp
/home/user1/tmp
/tmp/tmp
а команда pwd выдает /home/user1

Вам также может понравиться