ОС Лабы / Laboratornaya_rabota_4
.docЛабораторная работа № 4
Введение в операционную систему Linux
Цель работы: получение практических навыков работы в операционной системе Linux, регистрация в системе, определение пользователей системы и владельцев файлов, перенаправление потоков, изучение программных каналов, командного языка системы, справочных команд.
Теоретическая часть
Работу ОС LINUX можно представить в виде функционирования множества взаимосвязанных процессов. При загрузке системы сначала запускается ядро (процесс 0), которое в свою очередь запускает командный интерпретатор shell (процесс 1).
Взаимодействие пользователя с системой LINUX происходит в интерактивном режиме посредством командного языка. Оболочка операционной системы – shell – интерпретирует вводимые команды, запускает соответствующие программы (процессы), формирует и выводит ответные сообщения.
Важной составной частью LINUX является файловая система. Она имеет иерархическую структуру, образующую дерево каталогов и файлов. Корневой каталог обозначается символом "/", путь по дереву каталогов состоит из имен каталогов, разделенных символом "/", например: /usr/include/sys
В каждый момент времени с любым пользователем связан текущий каталог, то есть местоположение пользователя в иерархической файловой системе.
Каждый файл ОС LINUX может быть однозначно определен некоторой структурой данных, называемой описателем файла (дескриптором). Он содержит всю информацию о файле: тип файла, режим доступа, идентификатор владельца, размер, адрес файла, даты последнего доступа и последней модификации, дату создания и пр.
Обращение к файлу происходит по имени. В качестве символов следует использовать цифры, буквы латинского алфавита и символ ‘_’. Локальное имя файла хранится в соответствующем каталоге. Путь к файлу от корневого каталога называется полным именем файла. Если обращение к файлу начинается с символа "/", то считается, что указано полное имя файла и его поиск начинается с корневого каталога, в любом другом случае поиск файла начинается с текущего каталога.
У любого файла может быть несколько имен. Фактически, имя файла является ссылкой на файл, специфицированный номером описателя.
Linux чрезвычайно гибок и поддерживает использование множества различных рабочих сред.
Справочные команды
date – показать дату и время;
df – показать, сколько свободного пространства осталось на дисках;
cal – показать календарь;
tty – идентифицировать рабочую станцию;
echo – отображать текст на экране;
man – получение справочной информации;
sort – сортировать по строкам;
ls – выдать список файлов в текущем каталоге;
cd [каталог] – сменить текущий каталог. Если имя каталога не указывается, то текущим становится домашний каталог пользователя;
cp <что_копировать> <куда_копировать> – копировать файлы;
mv <что_перемещать> <куда_перемещать> – переместить или переименовать файл;
ln –s <на_что_сделать_ссылку> <имя_ссылки> – создать символическую ссылку;
rm <файлы> – удалить файлы;
mkdir <каталог> – создать новый каталог;
rmdir <каталог> – удалить пустой каталог;
cat <имя_файла> – вывод содержимого файла на стандартный вывод
(по умолчанию – на экран). Можно записать вводимый на экран текст с помощью следующей последовательности действий:
cat ><имя_файла>
{Записываемая информация}
CTRL/d
pwd –вывести имя текущего каталога;
whoami – вывести имя, под которым Вы зарегистрированы;
uptime – количество времени, прошедшего с последней перезагрузки операционной системы;
ps a – вывести список текущих процессов в Вашем сеансе работы;
uname -a– вывести информацию о версии операционной системы;
free – вывести информацию по использованию памяти;
df -h – вывести информацию о свободном и используемом месте на дисках.
Примеры:
# man [имя команды]
# who
petr tty4i Mar 11 18:46
ann tty12 Mar 11 16:29
Выводится имя пользователя, номер терминала, дата и время начала работы этого пользователя.
Перенаправление потоков
В ОС LINUX существует три стандартных потока: поток ввода, поток вывода и поток стандартного протокола (поток ошибок).
Стандартный ввод (STDIN) – это просто то место, откуда система ожидает получение данных.
Обычно – это клавиатура, хотя это может быть командный сценарий или программа. Когда вы изменяете стандартное значение, вы вызываете перенаправление ввода.
Аналогично, стандартный вывод (STDOUT) – то место, которое подразумевается операционной системой для вывода информации, обычно – экран монитора. Можно так же перенаправить вывод, STDOUT, по усмотрению любой команды или командного сценария. Цепочка событий от STDIN до STDOUT выглядит примерно так:
стандартный ввод STDIN команда Linux стандартный вывод STDOUT
STDIN часто упоминается как fd0, или дескриптор 0, STDOUT упоминается как fdl.
Есть также стандартное устройство вывода ошибок (STDERR), которому система сообщает о любых ошибках в выполнении программ или командного сценария. Стандартно – это также терминал.
Существуют всего четыре символа перенаправления стандартного ввода/вывода:
-
cимвол > используется для перенаправления стандартного вывода команды в файл. Например, cat > file запишет выводимую командой cat информацию в файл file.
-
Символ < используется для переназначения стандартного ввода команды. Например, при выполнении команды cat < file в качестве стандартного ввода cat используется не клавиатура, а файл file.
-
Символ >> используется для дописывания стандартного вывода команды в конец существующего файла. Например, cat >> file допишет выводимую командой cat информацию в конец файла file.
-
Символ | является символом потока. Он используется, когда вы хотите передать стандартный вывод одной команды на стандартный ввод другой.
Примеры:
cat > filename – перенаправление вывода в файл filename (если этот файл существует, то его прежнее содержимое будет утеряно);
cat >> filename – добавить содержимое вывода к содержимому файла filename;
cat < filename – сформировать стандартный ввод из содержимого файла filename.
cat /home/qqq/Desktop/file_1 | wc –w > /home/qqq/Desktop/num_names – содержимое файла file_1 передается в распоряжение команды wc –w (счетчик слов), которая выводит количество слов в файл num_names, находящийся на рабочем столе (/home/qqq/Desktop/).
ls | wc -l
Те же действия можно организовать так:
ls > buffer
wc -l < buffer
rm –f buffer
Команда ls выводит в файл buffer список файлов текущего каталога, а команда wc -l считает количество строк в этом файле, команда rm –f buffer удаляет файл с именем buffer.
Таким образом, первые две команды позволяют посчитать количество файлов в текущем каталоге.
Сетевые сервисы
Поскольку зарождалась и развивалась Linux из Интернета, было бы удивительно, если представитель семейства UNIX не предоставлял всей полноты интернет-сервисов. Что интересует пользователя в Интернете? На первый, поверхностный, взгляд Web-сайты, FTP, электронная почта и новости.
Но для нормального (и комфортного) функционирования Интернета необходимо множество других сервисов – это и DNS, и прокси-серверы, и серверы точного времени и многое другое.
Все это для Linux есть, и не в единственном экземпляре, нужно только выбрать, какой "тяжести" инструмент необходим. Сказанное касается и серверного программного обеспечения, и клиентского. Так, например, Web-браузеров существует более десяти: Lynx – текстовый браузер, Netscape Navigator, Mozilla, Opera, Konqueror и др.
Почтовых клиентов также существует несколько десятков, как текстовых, так и графических: Pine, Mozilla Mail или теперь Thunderbird, Kmail, Evolution, Sylpheed, Balsa.
Можно рассматривать любой интернет-сервис, и всегда в списке клиентских приложений для этого сервиса войдет не менее десятка программ. Если необходим файл-сервер – тоже есть большой выбор.
Можно пользоваться "родным" NFS, можно Mars – файл-сервером для сетей Netware, можно Samba – файл-сервером для сетей Microsoft.
Для всех упомянутых типов файловых серверов, конечно же, есть и клиентское программное обеспечение.
При желании можно создать сетевой компьютер, с отсутствующим жестким диском, без каких-либо накопителей, загружающийся через сеть и нормально функционирующий (причем, с графической оболочкой).
Решены для Linux и вопросы статистики. Множество пакетов могут собрать, обработать, представить в текстовом и графическом виде информацию о любой стороне функционирования Linux, в частности, о загрузке сети, входящем и исходящем трафике, построить диаграммы, отобразить их на Web-странице и, если необходимо, адекватно отреагировать на какое-то отклонение в функционировании сети.
Настройку множества сервисов можно произвести или с помощью специальных программ, например, linuxconf, Webmin, или отредактировав конфигурационные файлы.
У большинства сервисов есть еще одна возможность – настройка через Web-интерфейс.
