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


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



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

Команда cd

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

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

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

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

Выполнение: перейдем в каталог /home.



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


Команда pwd

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

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

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

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

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


Команда cp

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

Синтаксис:

cp [опции] … source dest


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

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

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

Опции:


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

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

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

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

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

Рис 9. Выполнение команды cp -i



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

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

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

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

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

  • -R, --recursive - копирует каталоги рекурсивно.

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

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

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

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

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

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

Выполнение: произведем копирование всех файлов из каталога /home/oleg/untitled в каталог /home/oleg/untitled2 с подробностями. Для этого пропишем cp -v /home/oleg/untitled/* /home/oleg/untitled2.

Рис 10. Выполнение команды cp -v /home/oleg/untitled/* /home/oleg/untitled2



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


Команда mv

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

Синтаксис:

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


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

Опции:


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

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

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

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

Выполним переименование файла /home/oleg/untitled2/LAB5.rtf в /home/oleg/untitled2/k.rtf. Для этого введем команду mv –f - v /home/oleg/untitled2/LAB5.rtf /home/oleg/untitled2/k.rtf.



Рис 11. Смена имени файла.


Команда rm

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

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

Опции:


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

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

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

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

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

Выполнение: удалим файлы k.rtf ,doc1.docx,agent.key из каталога /home/oleg/untitled2.

Рис 12. Результат выполнения команды rm -i /home/oleg/untitled2/*


Команда mkdir

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

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

Опции:


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

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

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

Выполнение: Создадим каталог friday, а в нем каталог photo в каталоге /home/oleg/.

Рис 13. Создание каталога.


Команда rmdir

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

Синтаксис

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

Опции


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

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

Выполнение: удалим каталог friday. Т.к. была вызвана ошибка при удалении каталога Friday, пришлось удалить внутренний каталог photo.

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


Команда ln

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

Синтаксис

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


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

Опции


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

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

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

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

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

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

Выполнение: создадим жесткую ссылку на файл /etc/passwd.

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


Команда find

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



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

  • по ссылкам

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

  • по размеру

  • по типу

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

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

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

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

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

Синтаксис: find [путь] [опции] [критерии поиска] [действия над файлами]

Опции:


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

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

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

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

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

У команды find может быть несколько критериев поиска (их также называют tests). Каждый критерий представляет собой определенное условие проверки.

-atime N

Последний раз к файлу обращались N дней назад.

-mtime N

Последнее изменение файла было N дней назад.

-name шаблон

Имя файла (шаблон имени) без указания пути. Рекомендуется всегда заключать шаблон в кавычки.

-newer другой_файл

Файл был изменен позже, чем другой_файл.

-size [±]N[cwbkMG]

Размер файла равен N блокам, если указано +N, тогда размер файла больше N, -N — меньше. Символ после N означает размер блока. b — 512 байт, с — байт, w — 2 байта, k — килобайт, M — мегабайт, G — гигабайт.

-type C

Файл типа C. Наиболее часто используемые значения для С: d — каталог, f — файл.

-user Имя_пользователя

Файл принадлежит пользователю с именем Имя_пользователя.

Воспользуемся командой find, чтобы найти в каталоге /home/oleg файлы принадлежащие пользователю root не включая в поиск другие ФС.

Рис 16. Результат выполнения команды find /home/oleg –mount –user root


Команда cat

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

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

Опции:


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

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

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

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

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

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



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

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

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

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

Команда tee

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

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

Выполнение: воспользуемся командой tee для записи в файл file.txt и посмотрим его содержимое.



Рис 18. Результат выполнения команды tee file.txt

Опции:


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

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


Команда more

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

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

Опции:


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

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

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

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

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

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

  • + linenum – начинает отображение со строки с указанным номером linenum

Выполнение: выведем содержимое файла text1.

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

Выполнение: выведем всего 5 строк текста, заменив несколько пустых строк одной.

Рис 20. Результат выполнения команды more –f -s -5 txt


Команда file

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

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

Выполнение: команда file без параметров.



Рис 21. Результат выполнения команды file дсврсм.jpg

Опции:


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

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

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


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

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

Выполнение: выведем в файл txt команды прочтения этого же файла more –f -s -5 txt и посмотрим результат.

Рис 22. Результат перенаправления вывода команды more –f -s -5 txt в файл

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

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



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


Каналы

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



Рис 24. Результат выполнения команды cat txt | wc –w >>txt | cat txt


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

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

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

Команда chmod

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

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

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



  • r (чтение);

  • w (запись);

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

Синтаксис:

chmod [опции] режим файл...

Выполнение: лишим права чтения файла txt его владельца oleg.

Рис 25. Лишения владельца права на запись в файл txt

Попробуем прочитать этот файл. Сообщение указывает на отсутствие полномочий.

Рис 26. Попытка чтения

Опции:


  • -c, --changes - подробно описывать действия для каждого файла, чьи права действительно изменяются.

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

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

Второй вариант задания команды chmod (он используется чаще) основан на цифровом представлении прав. Для этого мы кодируем символ r цифрой 4, символ w — цифрой 2, а символ x — цифрой 1. Для того, чтобы предоставить пользователям какой-то набор прав, надо сложить соответствующие цифры. Получив, таким образом, нужные цифровые значения для владельца файла, для группы файла и для всех остальных пользователей, задаем эти три цифры в качестве аргумента команды chmod (ставим эти цифры после имени команды перед вторым аргументом, который задает имя файла). Например, если надо дать все права владельцу (4+2+1=7), право на чтение и запись — группе (4+2=6), и не давать никаких прав остальным, то следует дать такую команду:

[user]$ chmod 760 file_name


Выполнение: запретим все права для файла для всех. Команда ls –l отобразит права пользователей.

Рис 27. Результат запрета.

Однако пользователь oleg все равно может изменять права для файла.

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

Выполнение: установим на каталог untitled2 права –r-- r-- --- ,а на файл /untitled2/txt –rwxrwxrwx(полные права). При этом пользователь oleg(владелец) не может получить доступ к каталогу.

Рис 28. Нет доступа к каталогу.

И даже посмотреть установленные права на файл txt и изменить их

Рис 29. Нет доступа просмотра прав файла, с полными правами.



Рис 30. Нет доступа к изменению прав файла.

Пользователь os не может прочитать файл txt из каталога.

Рис 31. Нет доступа к чтению у других пользователей.

Чтобы, в принципе, иметь доступ к файлу, вы должны иметь право на исполнение ко всем каталогам вдоль пути к файлу и право на чтение (или исполнение) к самому файлу. Как правило, пользователи системы Linux не скрывают свои файлы. Обычно права доступа к файлам устанавливаются как -rw-r-r--, что позволяет другим пользователям читать файлы, но не изменять их. Для каталогов права доступа часто предоставляются в виде -rwxr-xr-x, что позволяет другим пользователям просматривать ваши каталоги, но не создавать и не удалять файлы в них.


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

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

Есть еще о три возможных атрибута файла, устанавливаемых с помощью той же команды chmod. Это те самые атрибуты для исполняемых файлов, которые в индексном дескрипторе файла в двухбайтовой структуре, определяющей права на файл, занимают позиции 5-7, сразу после кода типа файла.

Первый из этих атрибутов — так называемый "бит смены идентификатора пользователя". Смысл этого бита состоит в следующем.

Обычно, когда пользователь запускает некоторую программу на выполнение, эта программа получает те же права доступа к файлам и каталогам, которые имеет пользователь, запустивший программу. Если же установлен "бит смены идентификатора пользователя", то программа получит права доступа к файлам и каталогам, которые имеет владелец файла программы (таким образом, рассматриваемый атрибут лучше называть "битом смены идентификатора владельца"). Это позволяет решать некоторые задачи, которые иначе было бы трудно выполнить. Самый характерный пример — команда смены пароля passwd. Все пароли пользователей хранятся в файле /etc/passwd, владельцем которого является суперпользователь root. Поэтому программы, запущенные обычными пользователями, в том числе команда passwd, не могут производить запись в этот файл. А, значит, пользователь как бы не может менять свой собственный пароль. Но для файла /usr/bin/passwd установлен "бит смены идентификатора владельца", каковым является пользователь root. Следовательно, программа смены пароля passwd запускается с правами root и получает право записи в файл /etc/passwd (уже средствами самой программы обеспечивается то, что пользователь может изменить только одну строку в этом файле). Установить "бит смены идентификатора владельца" может суперпользователь с помощью команды #chmod +s file_name.

Еще один возможный атрибут исполняемого файла — это "бит сохранения задачи" или "sticky bit" (дословно — "бит прилипчивости"). Этот бит указывает системе, что после завершения программы надо сохранить ее в оперативной памяти. Удобно включить этот бит для задач, которые часто вызываются на выполнение, так как в этом случае экономится время на загрузку программы при каждом новом запуске. Этот атрибут был необходим на старых моделях компьютеров. На современных быстродействующих системах он используется редко. Если используется цифровой вариант задания атрибутов в команде chmod, то цифровое значение этих атрибутов должно предшествовать цифрам, задающим права пользователя:# chmod 4775 file_name

При этом веса этих битов для получения нужного суммарного результата задаются следующим образом:

4 — "бит смены идентификатора пользователя",

2 — "бит смены идентификатора группы",

1 — "бит сохранения задачи (sticky bit)".

Если какие-то из этих трех битов установлены в 1, то несколько изменяется вывод команды ls -l в части отображения установленных атрибутов прав доступа. Если установлен в 1 "бит смены идентификатора пользователя", то символ "x" в группе, определяющей права владельца файла, заменяется символом "s". Причем, если владелец имеет право на выполнение файла, то символ "x" заменяется на маленькое "s", а если владелец не имеет права на выполнение файла (например, файл вообще не исполняемый), то вместо "x" ставится "S". Аналогичные замены имеют место при задании "бита смены идентификатора группы", но заменяется символ "x" в группе атрибутов, задающих права группы. Если равен 1 "бит сохранения задачи (sticky bit)", то заменяется символ "x" в группе атрибутов, определяющей права для всех остальных пользователей, причем "x" заменяется символом "t", если все пользователи могут запускать файл на выполнение, и символом "T", если они такого права не имеют.

Задание прав доступа:

Команда

Результат

chmod a+r file

Даёт всем пользователям право на чтение файла.

chmod +x file

Аналогично предыдущему примеру. Если никакие из набора символов a, u, g или o не указаны, то это эквивалентно указанию символа a.

chmod og-x file

Лишает всех пользователей, кроме собственника, права на исполнение файла.

chmod u+rwx file

Разрешает собственнику читать, изменять и исполнять файл.

chmod o-rwx file

Запрещает читать, записывать и исполнять файл всем пользователям, кроме собственника файла и пользователей из группы.

Chmod 777 file

Даёт всем пользователям право на чтение, запись и исполнение файла.


Каталог: 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


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

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


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