Лабораторная работа №3 по дисциплине: «Операционные системы» Работа пользователя в Linux



страница3/5
Дата24.11.2016
Размер2.04 Mb.
Просмотров1461
Скачиваний0
ТипЛабораторная работа
1   2   3   4   5

Управление файлами.

Изучить и опробовать:

-получение информации о файлах и каталогах; ls;

-команды файловых операций: cd, pwd, cp, mv, rm,mkdir, rmdir;

-создание прямой и символической ссылки ln;

-команды поиска find, вывода cat, tee, more, file;

-перенаправление потоков ввода-вывода (<,>,>>) и каналы (|);

-управление правами доступа: chmod, chown, chgrp;

-настройка различных прав доступа с проверкой возможных операций над файлами;

-утилиты группы mtools для работы файловой системой MS-DOS.
Команда ls

Комагда ls сначала выводит список всех файлов (не каталогов), перечисленных в командной строке, а затем выводит список всех файлов, находящихся в каталогах, перечисленных в командной строке. Если не указано ни одного файла, то по умолчанию аргументом назначается ‘.’ (текущий каталог).

Запуск команды ls без аргументов отображен на рисунке 32.

Рис. 32 Запуск команды ls без аргументов



Синтаксис:

ls [опции] [файл...]



Опции:

  • -a, --all - выдавать все файлы в каталогах, включая все файлы, начинающиеся с `.'.

Выполним команду ls с аргументом –a для того чтобы она отобразила все файлы в каталоге, включая все файлы, начиная с ‘.’ (рис. 33).

Рис. 33 Результат выполнения ls -a



  • -b, --escape, --quoting-style=escape - заменять неграфические символы в именах файлов, используя алфавитно-цифровые последовательности, а также последовательности вида \ 000' с восьмеричными цифрами, как в языке C.

  • -c, --time=ctime, --time=status - сортировать содержимое каталога в соответствии с временем изменения состояния файла.

  • -d, --directory - выдавать имена каталогов, как будто они обычные файлы, вместо того, чтобы показывать их содержимое.

  • -f - не сортировать содержимое каталога; выдавать файлы в том порядке, в котором они записаны на диск.

  • -h, --human-readable - добавлять к каждому размеру файла букву размера.

  • -i, --inode - выдавать номер inode (серийный номер файла, этот номер однозначно идентифицирует каждый файл в каждой файловой системе) каждого файла, слева от его имени.

Результат выполнения команды ls –i отображен на рисунке 34.

Рис. 34 Выполнение команды ls –i



  • -k, --kilobytes - если выдаются размеры файлов, то выдавать их в килобайтах.

  • -n, --numeric-uid-gid - выдавать числовые UID и GID вместо имен владельца и группы.

  • -q, --hide-control-chars - выдавать знаки вопроса вместо неграфических символов в имени файла. Эта опция включена по умолчанию.

  • -r, --reverse - сортировать содержимое каталога в обратном порядке.

  • -s, --size - выдавать размер каждого файла в блоках по 1024 байта слева от имени файла. Если установлена переменная окружения POSIXLY_CORRECT, то применяется размер блока 512, если не задана опция -k .

  • -t, --sort=time - сортировать по времени последней модификации

  • -u, --time=atime, --time=access, --time=use - сортировать по времени последнего доступа к файлу (рис. 35)


Рис. 35 Выполнение команды ls –u




  • -v - производить сортировку в соответствии с номером версии файлов.

  • -A, --almost-all - выдавать все файлы, кроме `.' и `..'.

  • -B, --ignore-backups - не показывать файлы, которые заканчиваются на `~', если они не заданы в командной строке.

  • -F, --classify, --indicator-style=classify - добавлять к каждому имени файла символ, показывающий его тип. Для обычных исполняемых файлов это `*'. Для каталога добавляется `/', для FIFO - `|', для символических ссылок `@', для гнезд `=', для обычных файлов ничего не добавляется (рис. 36).



Рис. 36 Выполнение команды ls –F


  • -H, --si - делает то же, что и опция -h, но использует официальные единицы измерения SI (где для расчетов используется 1000 вместо 1024).

  • -L, --dereference - выдавать информацию о файлах, на которые указывают символические ссылки, вместо информации о самих символических ссылках.

  • -R, --recursive - рекурсивно выдавать список содержимого всех каталогов (рис. 37).

Рис. 37 Выполнение команды ls –R



Команда cd

Данная команда выполняет переход в другой каталог.



Синтаксис: cd новая_папка

Аргумент новая_папка указывает новый каталог, в который следует перейти.

В Linux текущий каталог представляется точкой, родительский каталог – двумя точками, рабочий каталог пользователя обозначается символом ~.

В качестве примера перейдём в каталог /home и выведем его содержимое (рис. 38).



Рис. 38 Выполнение команды cd /home



Команда pwd

Данная команда печатает полное имя каталога.

Синтаксис: pwd [option]

Опции: --help и –version.

Выведем полное имя каталога, на который мы перешли ранее (рис. 39)

Рис. 39 Выполнение команды pwd



Команда cp

Данная команда копирует файлы.

Синтаксис:

cp [опции] … source dest


cp [опции] ... source…directory

Данная команда может копировать один файл source (источник) в другой dest(приесник), а может также копировать несколько файлов в целевой каталог directory.

В последнем случае применяется вторая форма команды ср, а последним аргументом является существующий каталог.
Опции:


  • -a, --archive - по возможности сохраняет структуру и атрибуты исходных файлов при копировании (но не сохраняет структуру каталогов).

  • -b – выполняет резервирование каждого файла

  • -d - копирует символьные ссылки как символьные ссылки, а не файлы, на которые они указывают, и сохраняет жесткие ссылки между исходными файлами в копиях.

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

  • -i, --interactive - спрашивает, нужно ли перезаписывать существующие файлы. Скопируем файл text из каталога /home/andrew/ в каталог /home/drew/ подразумевая, что он там уже существует воспользуемся командой cp -i /home/andrew/text /home/drew/text для запроса о перезаписи (рис. 40)

Рис. 40 Выполнение команды cp -i /home/andrew/text /home/drew/text



  • - H - следовать по символической ссылке в SOURCE

  • -l, --link - делает жесткие ссылки вместо копирования обычных файлов (не каталогов).

  • --no-preserve=АТРИБУТЫ - не сохраняет заданные атрибуты.

  • -p, --preserve - защищает оригинальные параметры файла, такие как владелец, группа, права доступа и временные штампы.

  • --parents - формирует имя каждого копируемого файла путем добавления к имени каталога, в который осуществляется копирование, символа косой черты (/) и указанного полного имени исходного файла. Последний заданный аргумент cp должен быть именем существующего каталога.

  • -R, --recursive - копирует каталоги рекурсивно. Произведем рекурсивное копирование каталога /var/backups в каталог /home/Andrew/FlashD (рис. 41)

Рис. 41 Выполнение команды cp -R /var/backups/ /home/andrew/FlashD



  • --reply=HOW - здесь аргумент HOW может принимать одно из значений "yes", "no", "query", определяя какой ответ будет автоматически даваться на все вопросы: "да", "нет" или "запрос" пользователю соответственно.

  • --remove-destination - удаляет каждый существующий (в том месте куда происходит копирование) файл, перед копированием.

  • -s, --symbolic-link – вместо копирования создает символические ссылки

  • -t, --target-directory=КАТАЛОГ - указывает выходной каталог.

  • -u, --update – копирует только, если исходный файл новее.

  • -v, --verbose - выводить имя каждого файла перед его копированием. Произведем копирование всех файлов из каталога /home/andrew в каталог /home/drew с подробностями. Для этого пропишем cp -v /home/andrew/* /home/drew/. Результат выполнения (рис. 42)

Рис. 42 Выполнение команды cp -v /home/andrew/* /home/drew/



  • -x, --one-file-system - пропускать подкаталоги, которые расположены на файловых системах, отличных от той, где начиналось копирование.


Команда mv

Данная команда перемещает или переименовывает файлы или каталоги.



Синтаксис:

mv [опции...] исходный_файл файл_назначения


mv [опции...] исходный_файл... каталог

Опции:

  • -f, --force - удаляет файлы_назначения, если они существуют, не спрашивая об этом пользователя.

  • -i, --interactive - просит подтверждения на замену существующего файла, в виде вопроса, которые выводится на стандартный вывод ошибок и читает ответ из стандартного ввода. Если ответ не утвердительный, то файл пропускается.

  • -u, --update - не переносит исходный файл, которые уже существуют в месте, куда осуществляется перенос и имеют то же самое или более позднее время модификации.

  • -v, --verbose - выдавать имя каждого файла перед его переносом.

Выполним переименование файла /home/andrew/textR в /home/andrew/TEXT28. Для этого я введу команду mv –f - v /home/andrew/text /home/andrew/textR. Результат отображен на рисунке 43.


Рис. 43 Результат выполнения команды mv –f - v /home/andrew/text /home/andrew/textR



Команда rm

rm удаляет каждый заданный файл. По умолчанию каталоги не удаляются, но если заданы опции -r или -R, то будет удаляться все дерево каталогов ниже заданного каталога, включая и его самого (без ограничения на глубину этого дерева).

Синтаксис: rm [опции] файл...

Опции:


  • -d, --directory - удалять каталоги с помощью системного вызова unlink вместо rmdir, и не требовать, чтобы каталог был пуст перед его разлинковкой. Работает только если у вас есть соответствующие привилегии.

  • -f, --force - игнорировать несуществующие файлы и никогда не запрашивать подтверждение на удаления.

  • -i, --interactive - выдавать запрос на удаление каждого файла. Если ответ не утвердителен, то файл пропускается.

  • -r, -R, --recursive - рекурсивно удалять содержимое каталогов.

  • -v, --verbose - выдавать имя каждого файла перед его удалением.

Удалим файл TEXT28 из каталога /home/Andrew (рис. 44).

Рис. 44 Результат выполнения команды rm /home/andrew/TEXT28


Команда mkdir

mkdir создает каталоги с заданными именами.

Синтаксис: mkdir [опции] каталог...

Опции:


  • -m права, --mode=права - устанавливает права доступа к создаваемым каталогам. Эти права могут быть заданы либо в символьном виде, как описано в chmod, либо в виде восьмеричного числа.

  • -p, --parents - создает недостающие родительские каталоги для каждого указанного каталога.

  • --verbose - выдавать сообщение для каждого создаваемого каталога.

Создадим каталог Mult, а в нем каталог Film в каталоге /home/andrew (рис. 45)

Рис. 45 Результат выполнения команды mkdir --parents --verbose /home/andrew/Mult/Film
Команда rmdir

rmdir удаляет пустые каталоги. Если какой-либо из аргументов каталог не указывает на существующий пустой каталог, то будет выдано сообщение об ошибке.



Синтаксис

rmdir [опции] каталог...



Опции

  • --ignore-fail-on-non-empty - данная опция заставляет rmdir игнорировать ошибки при удалении каталога, если эти ошибки вызваны тем, что каталог не пуст.

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

Создадим каталог dir2 и произведем его удаление (рис. 46).

Рис. 46 Результат выполнения команды rmdir ./dir2


Команда ln

ln делает ссылки между файлами. По умолчанию делаются жесткие ссылки; при указании опции -s , делаются символьные (или мягкие) ссылки.



Синтаксис

ln [опции] исходный [куда]


ln [опции] исходный... каталог
Опции

-d, -F, --directory - позволяет суперпользователю делать жесткие ссылки на каталоги.

-f, --force - удалять существующие файлы куда.

-i, --interactive - запрашивать подтверждение удаления файлов куда.

-n, --no-dereference - считать файл куда обычным файлом, если явно заданный параметр куда является символьной ссылкой на каталог.

-s, --symbolic - делать символьные ссылки вместо жестких ссылок. Данная опция будет вызывать сообщение об ошибке для тех систем, которые не поддерживают символьные ссылки.

-v, --verbose - выдавать имя каждого файла перед тем как создавать для него ссылку.
Создадим жесткую ссылку на файл /etc/passwd (рис. 47).

Рис. 47 Результат выполнения команды ln –i /etc/passwd ./pw


Команда find

find производит поиск файлов по маршруту path по многочисленным критериям:



  • по имени файла или шаблону имени

  • по ссылкам

  • тех, которые использовались в определенный промежуток времени

  • по размеру

  • по типу

  • по владельцу или группе

  • с определенными полномочиями доступа

  • содержащих текст, совпадающий с указанным шаблоном

  • по местонахождению в дереве каталогов (по глубине вхождения в структуру каталога)

  • по комбинации перечисленных условий


Синтаксис: find [path…][expression]

Опции:

-daystart – в качестве точки отсчета времени принимает начало дня

-depth – обрабатывает содержимое каждого подкаталога перед обработкой собственно каталога

-follow – не следует поиске учитывать символические ссылки

-maxdepth levels – производит поиск в дереве каталогов не глубже указанного уровня levels

-mount – не выполняет поиск в каталогах других файловых систем


Воспользуемся командой find, чтобы найти в каталоге /usr/share файлы принадлежащие пользователю andrew (рис. 48).

Рис. 48 Результат выполнения команды find /usr/share –user andrew


Команда cat

cat - объединяет файлы и направляет их на стандартный вывод.

Синтаксис: cat [ПАРАМЕТР] [ФАЙЛ]...  

Опции:


  • -A, --show-all - эквивалентно использованию -vET

  • -b, --number-nonblank - нумерует все непустые строки выходного файла, начиная c 1

  • -e - эквивалентно -vE

  • -E, --show-ends - выводит в конце каждой строки символ $ (рис. 49).


Рис. 49 Результат выполнения команды cat –E /etc/mtab





  • -n, --number - нумерует все строки выходного файла, начиная с 1 (рис. 50).

Рис. 50 Результат выполнения команды cat –n /etc/mtab




  • -s, --squeeze-blank - заменяет набор пустых строк одной пустой строкой

  • -t - эквивалентно -vT

  • -T, --show-tabs - выводит символы табуляции в формате ^I

  • -v, --show-nonprinting - выводит управляющие символы кроме символов перевода строки (LFD) и табуляции (TAB), для которых использует символ ^ и M-нотацию


Команда tee

tee считывает данные из стандартного устройства ввода и записывает их на стандартное устройство вывода или в файл.

Синтаксис: tee [ПАРАМЕТР]... [ФАЙЛ]...  

Воспользуемся командой tee для записи в файл и посмотрим его содержимое (рис. 51).



Рис. 51 Результат выполнения команды tee ./text


Опции:

  • -a, --append - добавлять данные к указанным файлам, не перезаписывать

  • -i, --ignore-interrupts - игнорировать сигналы прерываний


Команда more

Данная команда представляет фильтр для вывода текста.

Синтаксис: more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ]

Опции:


-num – устанавливает размер экрана в строках

-d – выводит для пользователя приглашение и сообщение, если нажимается несоответствующая кнопка.

-f – вместо строк экрана подсчитывает логические строки, не усекая длинные строки

-р – не выполняет прокрутку: полностью очищает экран, а затем отображает текст

-s – заменяет несколько подряд идущих пустых строк одной пустой

+/ pattern – до отображения каждого файла выполняет поиск строк по заданному образцу pattern

+ linenum – начинает отображение со строки с указанным номером linenum
Выведем содержимое файла text1 (рис. 52)

Рис. 52 Результат выполнения команды more ./text1

Воспользуемся опцией –s (рис. 53)

Рис. 53 Результат выполнения команды more -s ./text1


Команда file

Команда file проводит серию тестов, пытаясь классифицировать файлы, указанные в командной строке. Если файл текстовый, команда пытается по первым 512 байтам угадать язык программирования. Для выполняемых файлов выдается также номер версии, если он больше 0


Синтаксис: file [-c] [-f файл_имен] [-m магический_файл] файл ...

Пример команды file без параметров (рис. 54)



Рис. 54 Результат выполнения команды file ./text

Опции:

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



-f файл_имен - Определяются типы файлов, имена которых заданы в файле_имен.

-m магический_файл - Задается магический_файл, отличный от стандартного, /etc/magic. Магический файл содержит список магических чисел, по которым и производится классификация. Комментарии в начале файла /etc/magic об ясняют его формат.


Перенаправление потока вывода

Во многих случаях удобнее работать не со стандартным выводом на монитор, а с файлами. Файлы можно сохранять, редактировать, посылать по почте, и т.д. Можно перенаправить вывод команды в файл, применив оператор перенаправления > и указав имя файла. При этом не важно, существует ли такой файл на самом деле. Если такого файла нет, то он будет создан, а если есть, то перезаписан.

Выведем в файл слово Hello и посмотрим результат (рис. 55).

Рис. 55 Результат перенаправления вывода команды echo Hello в файл


Можно дописать в файл вывод других команд, не уничтожая имеющегося содержимого. Для этого служит оператор >>
Перенаправление потока ввода

Перенаправление потока ввода < можно продемонстрировать на команде wc –w которая служит для подсчета числа слов. Конечно, данная команда может работать, если указать в качестве аргумента файл, но можно также воспользоваться оператором < для перенаправления потока ввода из файла (рис. 56).



Рис. 56 Результат перенаправления потока ввода




Каналы

Особым вариантом перенаправления вывода является организация программного канала. Для этого две или несколько команд, таких, что вывод предыдущей служит вводом для следующей, разделяются символом "|". При этом стандартный выходной поток команды, расположенной слева от символа |, направляется на стандартный ввод программы, расположенной справа от символа |. Пример отображен на рисунке 57.



Рис. 57 Результат выполнения команды cat ./text1 | wc -w


Полученный результат означает, что вывод команды cat, т.е. текст из файла text1.txt, будет направлен на вход команды wc -w, которая посчитает количество слов.

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

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

Управление правами доступа

Команда chmod

Для изменения прав доступа к файлу используется команда chmod. Ее можно использовать в двух вариантах. В первом варианте вы должны явно указать, кому какое право даете или кого этого права лишаете:

[user]$ chmod wXp имя-файла

где вместо символа w подставляется либо символ u (т. е. пользователь, который является владельцем); либо g (группа); либо o (все пользователи, не входящие в группу, которой принадлежит данный файл); либо a (все пользователи системы, т. е. и владелец, и группа, и все остальные). Вместо X ставится: либо + (предоставляем право); либо – (лишаем соответствующего права); либо = (установить указанные права вместо имеющихся), Вместо p — символ, обозначающий соответствующее право:



  • r (чтение);

  • w (запись);

  • x (выполнение).

Каталог: files -> stud
stud -> Отчет по лабораторной работе №1
stud -> Лабораторная работа №1 «Сетевое взаимодействие Windows и Linux» студент группы 10-в-2
stud -> Лабораторная работа №3 по дисциплине: «Операционные системы» Работа пользователя в Linux
stud -> Лабораторная работа №2 по дисциплине: «Программное обеспечение вычислительных сетей» «Установка и конфигурирование ос windows 2003 Server»
stud -> 1. Сетевые модели организации пользователей: модель рабочих групп и доменная модель. Доверительные отношения
stud -> Логика развития и ключевые свойства версий ос windows 3x, 9x, nt, 2000, xp
stud -> Практическая работа №1 «Сетевые свойства и конфигурирование Windows 7» студент группы 10-в-1 Маясов Д. А проверил
stud -> «Сетевые свойства и конфигурирование Windows 7»
stud -> Server-based (Сеть на базе выделенного сервера)


Поделитесь с Вашими друзьями:
1   2   3   4   5


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал