Команды для работы с файлами и каталогами




Основы работы с ОС семейства UNIX/Linux.

Даны общие сведения о начале работы с системой, использовании командного интерпретатора и работе с файловой системой в ОС UNIX.

Рассмотрены команды: login, logout, man, pwd, cd, mkdir, rm, rmdir, ls, touch, cp, cat, ln, chown, chmod, chgrp

Использование виртуальных терминалов

 

Операционная система (ОС) UNIX является многопользовательской системой, то есть обеспечивает возможность одновременной работы нескольких пользователей. Для этого в системе имеется несколько терминальных портов (терминалов). Традиционно терминалом называется устройство, состоящее из клавиатуры и монитора, подключенное к ЭВМ и обеспечивающее ввод-вывод информации. В данном случае под терминалом понимается любой зарегистрированный в системе двунаправленный канал для последовательной передачи алфавитно-цифровой информации, связанный с драйвером устройства ввода-вывода (консоль - монитор и клавиатура, последовательный порт). Любая работающая в системе прикладная программа связана с одним из терминалов и использует его для получения информации от пользователя и выдачи выходных данных. Несколько одновременно работающих пользователей используют разные терминалы, вновь запускаемые программы по умолчанию связываются с тем терминалом, с которым работает запустивший их пользователь. Процесс работы пользователя с терминалом называется терминальной сессией.

Современные версии UNIX позволяют пользователю персонального компьютера одновременно запустить несколько терминальных сессий, переключаясь между ними и попеременно работая от имени различных пользователей с использованием одной и той же реальной клавиатуры и монитора. Такие терминальные порты, связанные с одними и теми же физическими устройствами называются виртуальными терминалами. По умолчанию в LINUX активны 7 виртуальных терминалов, для переключения между ними используются сочетания клавиш Alt+F1 … Alt+F7. Седьмой виртуальный терминал как правило используется для запуска графического интерфейса пользователя.

 

Вход в систему

 

Перед началом работы с системой UNIX необходимо пройти регистрацию в системе, то есть ввести имя пользователя (login) и пароль (password). При загрузке системы для каждого активного терминала запускается программа getty, выдающая на терминал запрос имени пользователя. После ввода имени getty запускает программу login, передавая ей имя пользователя в качестве входного параметра. login запрашивает пароль, преобразовывает его одним из методов необратимого шифрования и сравнивает результат с шифрованным паролем данного пользователя, хранящимся в одном из файлов ОС (/etc/passwd или /etc/shadow). Если пароли совпадают, программа login выводит на экран приветствие, хранящееся в файле /etc/motd и запускает командный интерпретатор.

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

Имейте в виду, что в Unix различаются большие и малые буквы. А символы Del и Backspace считаются как символы пароля. Поэтому, если нажали не тот символ, чтобы очистить строчку с паролем, нажмите Ctrl+U и введите пароль заново. Если вы корректно ввели имя пользователя и пароль, то вы попадете в ваш домашний каталог.

Узнать ваше регистрационное имя можно командой “whoami”

Узнать о других зарегистрированных пользователях можно командой “who”

exit – выйти из текущей оболочки (bash, mc и т.п.)

logout – выйти из текущего сеанса (аналог Ctrl+D)

Alt+F1 … Alt+F6 – переключаться между виртуальными консолями

 

 

Пользователи, группы

 

Права пользователя на доступ к файлам определяются во-первых именем пользователя, а во-вторых именем группы, к которой он принадлежит. Имя пользователя вводится при регистрации в системе, имя группы, к которой он принадлежит определяется из файлов etc/passwd и /etc/group (подробнее эти файлы рассмотрены в лабораторной работе 2). Каждому имени пользователя и каждой группе в ОС сопоставлены числовые идентификаторы, обозначаемые UID (user ID) и GID (group ID) соответственно. Пользователь с UID = 0 традиционно имеет имя root, называется суперпользователем, и имеет полномочия администратора, то есть право доступа ко всем файлам в ОС.

Для каждой запущенной программы (процесса) в ядре ОС имеется структура данных, в которой хранится различная информация о процессе, в том числе UID и GID пользователя-владельца, которые определяют права этого процесса на доступ к файлам. При запуске командного интерпретатора программа login присваивает ему UID и GID зарегистрировавшегося пользователя (сама программа login должна иметь доступ к файлу с шифрованными паролями, поэтому имеет UID =0).

 

Командный интерпретатор

 

Командный интерпретатор (оболочка, shell) – это программа, обеспечивающая прием команд от пользователя или из командных файлов (скриптов) и их выполнение. После запуска командный интерпретатор выполняет скрипт инициализации и выводит в терминал «приглашение» на ввод команд. Приглашение включает некоторую служебную информацию (например имя пользователя) и специальный символ, за которым следует курсор для ввода. Настройка формата приглашения изучается в лабораторной работе 2. Пример приглашения:

 

root#

 

Введенная после приглашения строка интерпретируется оболочкой как команда.

В UNIX существует несколько разновидностей оболочек. Стандартной оболочкой для всех разновидностей UNIX является Bourne shell, интерпретатор bash в LINUX полностью совмести с shell. В дальнейшем все команды интерпретатора рассматриваются на примере bash.

Команды реализованные в самой программе-интрпретаторе называются внутренними. Если интерпретатору не удается найти требуемую внутреннюю команду, то запускается внешняя команда - программа, находящаяся в файле с указанным именем. Поиск файлов внешних команд осуществляется только в каталогах, имена которых содержатся в переменной среды PATH (переменные среды изучаются в следующих работах). Как правило в число этих каталогав входят каталоги /usr/local/sbin; /usr/local/bin; /sbin; /bin; /usr/sbin; /usr/bin.

При записи правил использования команд в справочной системе UNIX (и в этих методических указаниях) приняты следующие обозначения:

 

[-p] в квадратных скобках указываются параметры, которые могут быть опущены
имя пользователя | UID через символ | указывается список возможных альтернатив, то есть при записи команды может быть выбран только один из этих вариантов

 

Курсивом указываются шаблоны, которые при вводе команд нужно заменить на настоящие значения параметра

После имени команды через пробел могут быть указаны один или несколько ключей (опций), например команда

 

Ls directory

 

выводит список содержимого каталога directory в краткой форме, а та же команда с ключем -l

 

Ls –l directory

 

выводит его в развернутой форме.

В LINUX ключи состоящие из одной буквы указываются со знаком -, из нескольких букв – с двумя знаками минус, например -l и --list. Часто для одной и той же функции имеется длинное и короткое написание ключа.

По окончании ввода команды следует нажать Enter.

 

Справочная система

 

Для вывода справки о команде как правило следует ввести эту команду с ключом –h или --help. Если справочная информация не убирается на экране, после ключа следует перенаправить вывод в программу more (подробнее перенаправление результатов работы команды изучается в работе 3), например

 

ls --help | more

 

Более подробную справку по команде можно получить в справочной системе, для этого следует подать команду man, а в качестве параметра указать имя интересующей команды, например:

 

Man ls

 

Перемещение по тексту справочной системы осуществляется клавишами «вверх», «вниз», PgUp, PgDn, выход клавишей q.

 

Файловая система

 

Файловая система представляет собой иерархическую структуру («дерево») каталогов, в каждом каталоге могут находиться вложенные каталоги и файлы.

В ОС, ведущих свою историю от MS DOS каждое устройство хранения информации (логический диск) обозначается буквой латинского алфавита (именно поэтому DOS получила название «дисковая операционная система»). В отличии от этого в ОС UNIX все устройства представляются как ветви единого дерева каталогов. Каждое устройство подключается к дереву в качестве каталога. Процесс подключения устройства к дереву каталогов называется монтированием файловой системы, а каталог к которому происходит подключение – точкой монтирования. Подробнее монтирование файловой системы изучается в последующих работах.

В виде файлов в ОС UNIX представляются различные объекты:

- собственно файлы, то есть упорядоченная совокупность данных, хранящихся на диске;

- ссылки на другие файлы;

- устройства ввода-вывода;

- каналы для взаимодействия с ядром ОС.

В именах файлов и каталогов допустимы буквы латинского алфавита, цифры и символы, за исключением символов “ ‘ *? $. Заглавные и строчные буквы различаются. Для удобства после символа «.» обычно указывают расширение (набор символов, указывающий на содержимое файла), но в отличии от DOS расширение не влияет на способ работы ОС с этим файлом. Если имя файла начинается с символа «.», то он является скрытым (по умолчанию не отображается при просмотре каталога соответствующей командой).

В общем случае при указании имени файла или каталога необходимо указать полный путь к нему, начиная от корневого каталога. Каталоги находящиеся на пути к объекту перечисляются через символ “/” например путь к файлу passwd находящемуся в каталоге etc, находящемуся корневом каталоге записывается так: /etc/passwd.

Если путь к объекту не указан, то берется объект из текущего каталога.

 

Ссылки на файлы

 

Существуют два типа ссылок: жесткие и мягкие. Жесткая ссылка на файл это его имя, которое представляет файл в файловой системе. Один и тот же файл может иметь несколько имен, находящихся в разных каталогах, то есть имена /var/log/myfile.log и /home/user/file1 могут указывать на один и тот же файл. Если у файла имеется только одно имя (одна жесткая ссылка), то удаление этого файла приводит к удалению данных. Если ссылок несколько, то удаление файла по одной из его ссылок приводит только к удалению ссылки.

Мягкие ссылки представляют собой файл, содержащий путь к другому файлу и интерпретируемый оболочкой как указатель на этот файл. Мягкие ссылки подобны ярлыкам в ОС Windows.

 

 

Назначение каталогов

 

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

 

Каталог Содержимое
/bin Внешние команды системы
/dev Специальные файлы устройств, являющиеся интерфейсом взаимодействия команд и драйверов
/etc Файлы конфигурации
/etc/rc.d Сценарии инициализации системы, автоматически выполняемые при запуске
/boot Файлы с исполняемым кодом ядра операционной системы
/lib Коды библиотек языков программирования
/lost+found «Потерянные» файлы, то есть совокупности данных, на которые в следствии ошибки файловой системы не ссылается ни одно имя
/mnt К подкаталогам этого каталога обычно подключают файловые системы дополнительных устройств хранения данных (CD-ROM, гибкий диск и т. п.)
/home Домашние каталоги пользователей
/usr Служебные данные различных подсистем
/usr/src Исходные коды программ, в том числе ядра Linux
/var Для хранения различных дбанных – электронных почтовых ящиков пользователей; каталогов, к которым осуществляется доступ по FTP и через веб-сервер, и т. п.
/var/log Файлы с протоколом работы системы
/var/www Каталог веб-сервера, в котором хранятся публикуемые веб-страницы
/root Домашний каталог суперпользователя
/tmp Каталог для временных файлов, доступен всем пользователям системы

 

 

Команды для работы с файлами и каталогами

 

Для запуска файла программы нужно ввести в качестве команды полный путь к этому файлу. Если запускается файл из текущего каталога, то перед именем файла нужно поставить символы «./» в (символ «.» в качестве названия каталога означает «текущий каталог»). Например для запуска файла myprog из текущего каталога набрать

 

Myprog

 

Если путь (или символ «.») не указан, оболочка ищет требуемый файл в каталогах,, имена которых содержатся в переменной среды PATH.

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

В командах копирования, перемещения и удаления фалов в именах файлов можно использовать символы шаблоны * (любое число символов) и? (один произвольный символ).

Ниже приведен краткий справочник по командам. Реально большинство приведенных здесь команд имеет более десяти параметров, подробно о них можно узнать в [1] или в справочной системе.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: