- •4. Конспекты лекций лекция №1. Операционные системы
- •1.1. Назначение и основные функции операционных систем
- •1.2. Понятие файловой системы
- •1.3. Операционные системы для компьютеров типа ibm pc
- •Лекция №2. Оболочки операционных систем
- •Лекция № 3. Основные понятия и определения компьютерных сетей
- •Компоненты лвс.
- •Исторический обзор
- •Сетевые коммуникации Сигналы и протоколы
- •Функции сетевых протоколов
- •Взаимодействие протоколов
- •Лекция № 4. Классификации сетей Локальные и глобальные вычислительные сети
- •Широкополосная и узкополосная передача
- •Полудуплексная и полнодуплексная передача
- •Сегменты и магистрали
- •Клиент-серверные и одноранговые сети
- •Однородные (гомогенные) и неоднородные (гетерогенные).
- •Характеристики лвс
- •Лекция № 5.Сервисы интернет (основные службы) Виды сервисов Интернет
- •Сервисы отложенного чтения
- •Сервисы прямые
- •Сервисы интерактивные
- •Электронная почта
- •Сетевые новости Usenet
- •Списки рассылки
- •Система поиска файлов Archie
- •Гипертекстовая система Gopher
- •Система гипермедиа www
- •Гипертекстовая система Hyper-g
- •Поисковая система wais
- •Сервисы irc, mud, moo
- •Инфраструктурные сервисы
- •Другие инфраструктурные сервисы
- •Лекция № 6. Основные этапы, методы, средства и стандарты разработки программного обеспечения
- •Водопадная модель процесса разработки
- •Спиральная модель процесса разработки
- •Общие характеристики этапов разработки программного обеспечения(по)
- •Лекция 7. Понятие о системе программирования
- •7.1. Основные функции и компоненты
- •7.2. Трансляция программ и сопутствующие процессы
- •Контрольные вопросы
- •Лекция 8. Прикладное программное обеспечение общего назначения
- •8.1. Классификация
- •8.2. Инструментальные программные средства общего назначения
- •8.3. Инструментальные программные средства специального назначения
- •8.4. Программные средства профессионального уровня
- •8.5. Организация «меню» в программных системах
- •Методические указания к практическим, лабораторным и контрольным работам. Практические занятия
- •Практическое занятие №3 (2 часа) Работа с графическим интерфейсом gnome в системе linux.
- •Практическое занятие №4 (4 часа) Работа в командной строке Linux (терминал) Основные понятия и команды
Практическое занятие №4 (4 часа) Работа в командной строке Linux (терминал) Основные понятия и команды
В зависимости от опыта работы с компьютерами Linux покажется вам либо удивительно сложной и непостижимой (в том случае, если вы работали ранее с Microsoft Windows или компьютерами Macintosh), либо (если вы работали с MS-DOS или UNIX) еще одной простейшей операционной системой, управляемой из командной строки. Истина — посередине. Да, Linux может временами быть сложной и непостижимой, и, кроме того, она действительно построена на основе интерфейса командной строки (даже если вы используете Х Window). Однако Linux не сложнее, чем MS-DOS или UNIX, и имеет утилиты, соперничающие с аналогичными программами для Windows или Macintosh.
Тот, кто хочет разобраться с Linux, должен в первую очередь стремиться разобраться с командами Linux.
Командная строка
Мы уже отмечали, что работа с Linux основана на использовании командной строки. Команды вводятся в командной строке. Когда Linux готова к приему команд, она сообщает вам об этом, выводя на ваш экран символ доллара: $
Знак доллара называется приглашением командной строки и сообщает вам о том, что Linux готова к приему команд. Вы можете ввести либо отдельную команду, либо набор команд и параметров, которые вместе называются командной строкой.
Командой обычно называется то же самое. Все, что вы вводите с клавиатуры после приглашения командной строки, Linux воспринимает как команду — приказ сделать что-нибудь. Вы можете использовать команды как для выполнения каких-либо действий (например, перемещения или копирования файлов), так и для запуска программ (таких, как elvis ILTIIemacs). Linux имеет вполне определенный набор команд, поэтому если то, что вы введете, не будет распознано как одна из команд, вы получите предупреждение о невозможности найти указанную команду. Вы можете найти полный список команд в определенных каталогах, но не будем забегать вперед. Операционная система Linux имеет сотни команд.
Команды могут иметь параметры, которые определяют, как именно будет выполняться команда и что она будет делать. Параметры также могут указывать, что команда должна выполняться только при соблюдении определенных условии. В качестве примера мы разберем одну из команд и некоторые ее параметры.
Как вы можете видеть, текущий каталог в нашем примере содержит единственный файл — 00601. tif. (Имена файлов и каталогов, упоминаемые в этой главе, не важны; все, что вам требуется запомнить, — это способы обозначения файлов и каталогов, которые могут быть использованы в сочетании с почти любой командой.) Однако команда Is без параметров выводит список только тех файлов, которые доступны всем пользователям и не являются скрытыми.
Скрытые файлы имеют имена, начинающиеся с точки (.):
Если вы хотите, чтобы они тоже вошли в список, вы должны указать это команде Is. Вы должны указать соответствующий параметр. Для этой цели используется параметр -а. Если вы укажете его после команды, то будет выведен список всех файлов и подкаталогов текущего каталога, включая скрытые.
Продолжая наш пример, приведем результат выполнения команды Is с параметром -1, который указывает на необходимость вывода подробной информации о файлах и каталогах.
В главе 5, содержащей описание команд, значительное внимание уделено описанию их параметров. Очень немногие команды Linux не имеют параметров или аргументов какого-либо рода.
Файлы
Команда Ls используется для вывода списка файлов в текущем либо любом другом заданном каталоге. С точки зрения Linux достаточно странно, что аргументом этой команды может служить не файл. Изучая эту книгу, вы обнаружите, что подавляющее большинство команд имеют дело с файлами.
Практически все, с чем вы имеете дело в Linux, является файлами. Вы уже знаете, что команда ls выводит список файлов в каталоге, и именно потому, что все является файлом, эта команда так удобна. Команды — это не что иное, как файлы, содержащие программы. Устройства, присоединенные к вашему компьютеру, представлены в Linux файлами, которые, как правило, находятся в каталоге /dev. Когда вы печатаете текст, вы на самом деле просто отправляете его в файл, представляющий принтер.
Грубо говоря, файл представляет собой просто упорядоченную область на устройстве хранения информации, состоящую из битов. Бит — это наименьшая единица информации, он может содержать одно из двух значений: 0 или 1. Операционная система Linux организует биты в форму, понятную как вам, так и компьютеру. Без этой организации жесткий диск представлял бы собой бессмысленную смесь нулей и единиц. Система организации жесткого диска называется файловой системой.
Вот почему основная функция операционной системы Linux — управление файлами. Важность команды ls трудно переоценить — ведь она позволяет вам узнать, какие файлы находятся в данном месте файловой системы в данное время. И именно поэтому другие часто используемые команды Linux также связаны с управлением файлами — такие команды, как elvis для редактирования, rm для удаления и mv для перемещения файлов.
Всего имеются четыре типа файлов:
• файлы устройств,
• каталоги,
• ссылки,
• обычные файлы.
Ниже приведены описания этих типов файлов в порядке их важности для операционной системы Linux:
• Обычные файлы — рядовые файловой системы. Обычно они содержат данные, используемые программами и операционной системой. Обычный файл может содержать текст, данные для какой-либо программы (например, это может быть файл форматирования для программы разбивки на страницы пли база данных), код программы пли текст программы для интерпретируемого языка программирования, такого как Perl пли Тс1.
• Каталоги являются файлами, содержащими информацию о других файлах. Файловая система в Linux имеет иерархическую структуру, организованную при помощи каталогов. Каталоги обсуждаются ниже в этой главе.
• Файлы устройств представляют устройства, подключенные к компьютеру. Эти файлы обычно находятся в каталоге /dev. Например, файл, представляющий устройство накопления на магнитной ленте, может иметь имя /dev/stO.
• Ссылки позволяют хранить один файл в файловой системе под различными именами. Ссылки не играют большой роли в Linux, если только вы не работаете в сети. Ссылки — наследие былых времен, когда места для хранения данных было так мало, что пользователи должны были использовать один и тот же файл, но, в связи со строением сети, ему должны были быть присвоены различные имена.
Каталоги
Как мы упоминали ранее, каталоги — это файлы, предназначенные для хранения других файлов. Каталоги необходимы в операционной системе наподобие Linux. В Linux каждая команда является файлом, каждое устройство является файлом и каждая программа состоит по крайней мере из одного файла (а обычно из значительно большего их количества). Запишите все эти файлы в одно место — и вы совершенно потеряетесь среди тысяч отдельных файлов. Может быть и хуже — при работе в сети пользователь может иметь доступ не только к файлам на своем компьютере, но и к тысячам файлов на других машинах и, возможно, на файловом сервере. Конечно, нет никакого способа не запутаться в этих файлах, за исключением создания некоторой иерархической структуры для их хранения. Тут-то на передний план и выходят каталоги.
Иерархия каталогов в Linux (вы можете представлять се себе как пирамиду) достаточно проста. На вершине пирамиды находится корневой каталог, обозначаемый символом косой черты (/). Каждый каталог является подкаталогом корневого каталога. Кроме того, подкаталоги могут также содержать подкаталоги и т. д.
Любой пользователь в каждый момент времени «находится» в каком-либо каталоге, называемом текущим каталогом. Приглашение командной строки обычно содержит имя текущего каталога (начинающееся с косой черты, обозначающей, что каталог содержится в иерархической структуре, вершиной которой является корневой каталог).
Обычная Linux-система, такая как Slackware Linux, имеет вполне определенный набор каталогов.
Некоторые из этих каталогов имеются практически в любой UNIX-системе — это каталоги etc, sbin, usr и var. Некоторые из каталогов типичны для Linux-систем — это boot, cdrom, mnt, proc. shiib. Каталоги root и home предназначены для хранения информации пользователей. Если вы сами устанавливаете Linux, то, скорее всего, в вашей системе будет по крайней мере один домашний каталог root, используемый, когда вы входите в систему как пользователь root, и, вероятно, еще один — в каталоге home.
Linux содержит набор команд, позволяющих вам создавать ваши собственные каталоги. Эти команды обсуждаются далее в этой книге.
Стандартный ввод/вывод и их перенаправление
Третья часть головоломки Linux — связь между командами и файлами, организуемая при помощи стандартного ввода и вывода. Не пугайтесь технического термина — это понятие на самом деле касается того, как структурирована командная строка и куда отправляются результаты выполнения команды.
Linux, как и любая операционная система, при выполнении команды нуждается в информации, откуда команда будет получать данные и куда их выводить. Другие операционные системы, такие как Windows и Macintosh, самостоятельно делают предположения об источнике входных данных и назначении выходных. Зачастую так поступает и Linux. Однако, в большинстве случаев, вам самим следует подумать, откуда команда будет получать данные и куда выводить. Ниже мы объясним основы концепции стандартного ввода/вывода на примере.
Команда cat— удивительно многосторонняя команда. Она может использоваться для вывода содержимого файла на экран, добавления данных в конец файла и других операций. Она даже может быть использована в качестве простейшего текстового редактора:
$ cat
После ввода этой команды курсор переместится в следующую строку, и вы сможете вводить текст с клавиатуры. Поскольку в команде не указано, куда должен быть отправлен вводимый текст, то Linux и команда cat предполагают, что текст должен быть выведен на экран. После того как текст выведен на экран, он потерян навсегда. Большинство команд Linux по умолчанию используют в качестве стандартного ввода клавиатуру, а в качестве стандартного вывода — экран. Поэтому команду cat саму по себе вы можете использовать для тренировки навыков ввода информации с клавиатуры, но в таком виде для какой-либо другой цели она бесполезна.
Однако область применения команды cat существенно расширяется, если вы указываете в командной строке имена файла. Команда cat с именем файла в качестве аргумента выводит содержимое этого файла на экран.
В этом примере команда cat использует в качестве стандартного ввода не клавиатуру, а указанный файл. Содержимое файла не изменяется, оно просто выводится на экран.
Вы можете использовать команду cat для записи строк в файл. Для этого вам следует использовать символы перенаправления. Эти символы позволяют любой команде использовать в качестве стандартного ввода или вывода вместо клавиатуры или экрана файл или стандартный ввод/ вывод другой команды. В следующем примере стандартный вывод команды cat вместо экрана направляется в файл kevin.report:
$ cat > kevin.report
Вводимый с клавиатуры текст построчно записывается в файл kevin.report. Нажатие клавиш Ctrl+D останавливает перенаправление и заканчивает выполнение команды cat.
Перенаправление может использоваться как для стандартного вывода, так и для стандартного ввода. Команда cat может использоваться для копирования файлов следующим образом:
$ cat kevin.report > pat.report
В этом примере стандартным вводом служит файл kevin.report, а стандартным выводом — файл pat.report. Содержимое файла kevin.report не изменяется.
Для того чтобы дописать данные в конец существующего файла, используется специальный символ перенаправления. В следующем примере содержимое файла kevin.report дописывается в конец файла pat.report:
$ cat kevin.report >> pat,report
Если бы в этом примере было опущено имя файла kevin.report, то команда cat дописала бы вводимый с клавиатуры текст в конец файла pat.report. Соответствующая команда выглядит так:
$ cat >> pat.report
Существуют всего четыре символа перенаправления стандартного ввода/вывода:
• Символ > используется для перенаправления стандартного вывода команды в фаил. Например, cat > file запишет выводимую командой cat информацию в файл file.
• Символ < используется для переназначения стандартного ввода команды. Например, при выполнении команды cat < file в качестве стандартного ввода cat используется не клавиатура, а файл file.
• Символ >> используется для дописывания стандартного вывода команды в конец существующего файла. Например, cat >> file допишет выводимую командой cat информацию в конец файла file.
• Символ ¦ является символом потока. Он используется, когда вы хотите передать стандартный вывод одной команды на стандартный ввод другой. Например, cat ¦ grep отправит стандартный вывод команды cat на стандартный ввод команды grep. (Потоки более подробно обсуждаются ниже в этой главе.)
На первый взгляд может показаться, что эти символы — не что иное, как несколько способов сделать одно и то же. На самом деле символы < и > можно менять местами в командной строке, но они оба нужны. Команды, которые выглядят похоже, на самом деле могут совершенно по-разному обрабатываться операционной системой. Например, команда
$ cat pat.file выполняет те же действия, что и команда
$ cat < pat.file
Однако на самом деле это различные команды. В первом случае pat.file — это аргумент команды cat. С точки зрения Linux аргументы — это переменные, используемые в командной строке. В данном случае получилось так, что аргумент — это файл. Во втором же примере файл pat.file играет роль стандартного ввода для команды cat.
Нет никаких ограничений на использование символов перенаправления в командной строке. Достаточно часто используются сразу два символа перенаправления, особенно в сценариях интерпретаторов командной строки:
$ cat < filel > file2
Эта команда использует файл filel в качестве стандартного ввода команды cat, а файл file2 — в качестве стандартного вывода.
Подробный список команд Linux приводится в документе “Справочник команд Linux.chm”.