Опубликован: 27.07.2006 | Доступ: свободный | Студентов: 4402 / 1098 | Оценка: 4.28 / 4.13 | Длительность: 26:56:00
Специальности: Программист
Лекция 2:

Операционные системы и сети

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

Как уже отмечалось, команды в ОС Linux принято передавать либо через командную строку, либо через командное окно (окно терминала). Команды в Linux имеют определенную структуру. Наиболее общий ее вид следующий:

command keys params

Здесь command означает имя команды, которую вы хотите выполнить, keys - опции, также называемые флагами, а params - параметры. Заметим, что флаги и параметры могут отсутствовать. Обычно команды, опции и параметры разделяются пробелами. Опции команд часто начинаются со знака "-", за которым следуют одна или несколько букв.

Пользователь набирает команду и затем инициирует ее выполнение нажатием клавиши Enter. Когда вы введете команду ОС Linux, shell сначала прочитает ее имя, а затем проверит, существует ли команда с таким именем. Если такой команды нет, shell выдаст сообщение об ошибке. До нажатия клавиши Enter команду можно редактировать, используя клавиши Backspace и Del (можно исправить ошибки ввода). Комбинация клавиш Ctrl+u позволяет стереть целую строку и ввести ее заново. Если вы по ошибке инициировали выполнение неверной команды, то нажатие комбинации клавиш Ctrl+c немедленно прервет выполнение команды.

В одной строке можно вводить несколько команд, в этом случае они разделяются символом ; (точка с запятой), например, последовательность команд, приведенная ниже, сначала выдаст дату, а затем календарь на текущий месяц.

date; cal

Пример

Рассмотрим команду ls (от англ. list). Когда она используется без параметров, то выводит список файлов и подкаталогов текущего каталога. Команда ls -l выведет список, содержащий дополнительную информацию о файлах. В качестве параметра данной команды обычно выступают имена файлов или директорий, так команда ls -l /Stud/g5312/ выведет информацию о директории, отведенной для студентов группы 5312 (как правило, для каждого студента группы при регистрации создается поддиректория с именем, совпадающим с пользовательским именем студента, поэтому эта команда позволит получить список входных имен студентов данной группы). Здесь ls - команда, - l - опция, а /home/Stud/g5312 - параметр.

Наверное вы заметили, что не очень удобно было писать команду или имя файла целиком, при этом даже опытный пользователь может допустить ошибку. Чтобы избежать этого, используйте клавишу Tab (табуляция), которая автоматически продолжает команду. Давайте рассмотрим, как с ней работать, на примере команды ls -l /Stud/g5312/. Наберите начало команды ls -l /St и нажмите Tab, после чего на экране появится продолжение ls -l /Stud/. Дальнейшее продолжение невозможно, т. к. существует несколько вариантов (чтобы посмотреть все варианты, нажмите табуляцию два раза). При использовании клавиши Tab вы можете быть уверены, что не допустили ошибки при написании имени каталога или файла.

Переадресация ввода и вывода

В ОС Linux все файлы имеют одинаковую структуру - последовательность байтов. Любой файл можно свободно копировать или добавлять к другому файлу, так как все файлы организованы одинаково. Эта организация данных распространяется и на операции ввода и вывода. Данные в операциях ввода и вывода организованы аналогично файлам и все внешние устройства тоже считаются файлами.

Данные, вводимые с клавиатуры, так же, как и данные, выводимые командой или программой, представляют из себя поток байтов. Входной поток данных для программы в ОС Linux называется ее стандартным входом, а выходной поток данных - стандартным выводом.

В ОС Linux широко используется переадресация, которая позволяет, например, перенаправить стандартный вывод так, чтобы информация не отображалась на экране, а записывалась в файл. Для переадресации вывода используется знак > (больше), после которого указывается имя файла, в который направляется вывод, например,

ls >list_dir

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

Можно переадресовать и стандартный вход, чтобы входная информация читалась из файла, а не с клавиатуры. Оператор переадресации стандартного входа имеет вид знака < (меньше). Операции переадресации стандартного входа и стандартного выхода можно объединять.

Перемещение по файловой системе

Файловую систему можно представить в виде дерева, только корень (root) этого дерева находится вверху, а ветви растут вниз. Листья этого дерева и есть файлы, а разветвления - каталоги (директории). На следующем рисунке для изображения файлов используются прямоугольники, а для директорий - овалы.


В каждом каталоге (разветвлении) может быть много различных файлов и каталогов. В этом смысле каталог выполняет две важные функции: в каталоге хранятся файлы и каталог соединяется с другими каталогами, как ветвь дерева соединяется с другими ветвями. Каждый каталог может содержать множество каталогов, но сам должен быть потомком только одного каталога.

При входе в систему пользователь оказывается в своей домашней директории, в которой он может создавать файлы, удалять их и копировать. Имя, которое дается каталогу или файлу при его создании, не является полным. Полным именем является его путевое имя. В ОС Linux путевое имя состоит из имен всех каталогов, образующих путь к файлу от вершины дерева (/). Эти имена отделяются друг от друга символами "косая черта" (/, "слеш"). Путевые имена даются и файлам. Фактически имя, которым система обозначает файл, представляет собой комбинацию имени файла с именами каталогов, образующих путь от корневого каталога до каталога данного файла.

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

Команда cd (change directory) позволяет перемещаться по файловому дереву, изменяя текущий (рабочий) каталог. В качестве параметра ей можно указать как абсолютный, так и относительный путь каталога. С помощью команды cd DOS вы переместитесь в поддиректорию DOS (если она существует).

Каждый каталог (за исключением корневого) имеет родительский каталог. Две точки, используемые как аргумент команды, обозначают родительский каталог. Например, команда cd .. переместит вас в родительский каталог. Одна точка используется для обозначения текущего каталога.

Если в процессе путешествия по файловому дереву вы "заблудились", то команда cd (без указания параметра) переместит вас в вашу домашнюю директорию. Для перемещения в домашний каталог какого-либо пользователя, можно вместо задания его абсолютного пути использовать символ ~, после которого должно следовать входное имя этого пользователя, например,

cd ~sidorov

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

Дмитрий Фаттахов
Дмитрий Фаттахов
Виктория Бельгесова
Виктория Бельгесова

Добрый день. Как получить удостоверение о прохождении данного курса?