ГОУ ВПО
«Дальневосточный государственный университет путей сообщений»
Амурский институт железнодорожного транспорта—филиал Дальневосточного государственного университета путей сообщений в г. Свободном — факультет СПО — Свободненское медицинское училище
«Операционная система GNU/Linux. Основы»
Часть I. Консоль
Методическое пособие
по дисциплине «Информатика»
для специальностей: 060101 «Лечебное дело»,
060102 «Акушерское дело», 060109 «Сестринское дело».
Свободный, 2014 г.
Автор: Браун Р. Г., преподаватель АмИЖТ—филиала ДВГУПС в г.Сво- бодном — факультета СПО — Свободненского медицинского училища.
Содержание
Методическое пособие 1
Содержание 3
Введение 3
1.Операционная система GNU/Linux 4
1.1.Особенности GNU/Linux 4
1.2.Командная строка 5
Контрольные вопросы 7
2.Файловая система 8
2.1.Типы файловых систем 8
2.2.Установка файловой системы 9
Синтаксис 9
Пример 10
2.3.Файлы 10
Каталог 10
Символические ссылки 11
Файлы устройств 12
Каналы и сокеты 13
Обычные файлы 13
2.4.Работа с архивами 15
Контрольные вопросы 18
3.Диски и система 20
3.1.Получение сведений о системе и аппаратуре 20
3.2.Получение сведений о дисках 21
3.3.Разметка дисков 21
3.4.Монтирование разделов жёсткого диска 22
Контрольные вопросы 26
4.Компьютерная сеть 28
4.1.Получение информации о подключениях 28
4.2.Настройка сети 29
4.3.Электронная почта 30
Программа sendmail 30
Почтовые клиенты 31
5.Мультимедиа 33
4.1.Работа со звуком 33
4.2.Запись CD/DVD 33
4.3.Конвертирование различных файлов Конвертирование текста 34
Конвертирование PDF в JPEG 35
Контрольные вопросы 37
Список литературы 38
Введение
Данное методическое пособие предназначено для самостоятельного изучения операционной системы GNU/Linux студентами обучающимися по специальностям: 060101 «Лечебное дело», 060102 «Акушерское дело», 060109 «Сестринское дело». Пособие составлено на основе раздела «Операционные системы» программы по дисциплине «Информатика».
В первой части методического пособия кратко изложены базовые понятия и особенности операционной системы GNU/Linux, а также дано описание и примеры использования основных команд.
Пособие состоит из пяти разделов. В первом разделе дан теоретический материал об особенностях и отличиях операционной системы GNU/Linux от других операционных систем. Второй раздел содержит материал о файловых системах, описание и примеры использования программ для работы с файловыми системами. Третий раздел посвящён работе с носителями информации (жёсткими дисками, USB-накопителями и т. п.) средствами командной строки GNU/Linux. В четвёртом разделе рассмотрены программы и команды управления компьютерной вычислительной сетью, а также кратко об электронной почте. В пятый раздел входит информация о средствах работы с мультимедиа.
-
Операционная система GNU/Linux
-
Особенности GNU/Linux
Очень часто люди, не имеющие опыта работы в операционных системах, отличных от Windows, теряются в GNU/Linux. Они не находят привычных вещей на привычных местах. Все дело в том, что GNU/Linux—это совершенно другая операционная система, с иной архитектурой и идеологией. Далее, несколько примеров различий между операционными системами, с которыми чаще всего сталкиваются начинающие.
GNU/Linux использует иные файловые системы, отличные от FAT и NTFS. Явным преимуществом которых является малая фрагментарность данных, а значит и отсутствие необходимости в выполнении дефрагментации. Наиболее распространенными являются Ext2, Ext3 и ReiserFS.
В Linux не работают программы из Windows (на самом деле, часть программ можно запустить, но об этом позже), то есть программы с расширением «exe» по двойному щелчку не запускаются и не устанавливаются. Да и само понятие расширения в операционных системах GNU/Linux условно, например, исполняемые файлы отличаются не расширением, а соответствующим атрибутом.
В GNU/Linux совершенно другая структура данных: здесь вы не найдете диск C:\ и «Мой компьютер». В Linux есть корневой каталог («/»), в котором лежат директории с разными названиями и назначениями. Например, каталог /home/имя_пользователя (аналог в Windows — C:\Documents and settings\имя_пользователя) служит для хранения пользовательских данных и большинства настроек для запускаемых программ. Причем данные из этого каталога могут находиться на другом физическом носителе, или другом разделе жесткого диска.
Жёсткие диски, лазерные приводы и съемные носители (и все другие устройства) представлены в GNU/Linux в виде специальных файлов, расположенных в директории /dev. В отличие от Windows имена устройствам присваиваются в строгом порядке. Например, название IDE-устройств начинается с латинских букв hd, третий символ определяется в зависимости от того, на каком IDE -канале расположено устройство, а четвертый зависит от таблицы разделов жесткого диска. Допустим на диске «Primary Master» (первый диск на первом IDE-канале) есть два раздела, тогда название первого будет hda1, а второго—hda2. Если у вас есть привод «Secondary slave» (второе устройство на втором IDE-канале), то его название будет hdd. Аналогично и для SCSI/SATA-устройств: их названия будут иметь вид sda1, sda2, sdd и так далее.
Любой скрытый файл или папка начинаются с точки, так например, пользовательские настройки, расположенные в директории пользователя, начинаются с точки и файловые менеджеры по умолчанию их не отображают. В GNU/Linux нет реестра, системные настройки хранятся в текстовых файлах, преимущественно расположенных в директории /etc. Еще одно различие — в кириллической кодировке: в Windows используется своя (Windows-1251), а в большинстве современных дистрибутивов GNU/Linux — стандарт «де факто» UTF-8 [1].
Основой командного интерфейса является командная строка, начинающаяся с приглашения для ввода. Это — среда, в которой задаются основные элементы командного интерфейса — командные директивы с их аргументами и опциями.
Командная директива (или просто команда) — основная единица, посредством которой пользователь взаимодействует с шеллом. Она образуется по определенным правилам, именуемым синтаксисом. Синтаксис командной директивы определяется, в первую очередь, языком, принятым в данной командной оболочке. Кроме того, некоторые команды (не очень многочисленные, но весьма употребимые) имеют собственный, нестандартный синтаксис.
Итак, командная директива образуется:
именем команды, однозначно определяющим ее назначение;
опциями, определяющими условия выполнения команды;
аргументами—объектами, над которым осуществляются действия.
Очевидно, что имя команды является обязательным компонентом, тогда как опции и аргументы могут и отсутствовать (или подразумеваться в неявном виде по умолчанию).
Еще один непременный компонент командной директивы — это специальный невидимый символ конца строки: именно его ввод отправляет команду на исполнение. Этот символ вводится нажатием и отпусканием клавиши «Enter». Тот же эффект, как правило, достигается комбинацией клавиш «Ctrl+M». Конца командной строки, знаменующего исполнения команды, мы на экране не видим. Однако важно, что это — такой же символ, как и любой другой (хотя и имеющий специальное значение).
В подавляющем большинстве случаев опции (или их последовательности) задаются непосредственно за именем команды, а аргумент (или группа аргументов) команду завершает, хотя это правило имеет некоторые исключения. Вне зависимости от порядка опций и аргументов, принятых для данной команды, интерпретация их осуществляется слева направо.
Команды, опции и аргументы обязательно разделяются между собой пробелами. Кроме того, опции обычно предваряются (без пробела) символом дефиса или двойного дефиса. Впрочем, немногочисленные (но весьма употребимые) команды могут использоваться с опциями без всяких предваряющих символов [2].
Контрольные вопросы
Основное преемущество файловых систем используемых в GNU/Linux перед файловыми системами FAT и NTFS?
Какая структура данных в GNU/Linux?
Как представлены жёские диски лазерные приводы и съемные носители в GNU/Linux?
Как обозначаются скрытые файлы и папки?
Составные части командной директивы?
-
Файловая система
Файловая система — это методы и структуры данных, которые используются операционной системой для хранения файлов на диске или в его разделе. Перед размещением файловой системы в разделе или на диске, она должна быть инициализирована, а требуемые служебные данные перенесены на этот раздел или диск. Этот процесс называется созданием файловой системы (иногда его еще называют форматированием, что в принципе неверно [3].
Linux поддерживает большое количество типов файловых систем. Перечислим наиболее важные из них:
Ext2 — наиболее богатая функциональными возможностями файловая система Linux. До последнего времени была самой популярной системой.
Ext3 — модернизация файловой системы Ext2. Помимо некоторых функциональных расширений является журналируемой. Получила широкое распространение.
Ext4 — модернизация файловой системы Ext3. Основной особенностью стало увеличение максимального объема одного раздела диска до 1 экзабайта (260байт). Кроме того, в ext4 представлен механизм пространственной записи файлов (новая информация добавляется в конец заранее выделенной по соседству области файла), уменьшающий фрагментацию и повышающий производительность.
VFS — виртуальная файловая система. По сути—эмулятор-прослойка между реальной файловой системой (MS-DOS, Ext2, xia и т.д.) и ядром операционной системы Linux.
Proc — псевдофайловая система, в которой посредством обычных файловых операций предоставляется доступ к некоторым параметрам и функциям ядра операционной системы.
ReiserFS — журналируемая файловая система. Наиболее популярная среди журналируемых файловых систем для Linux.
Devfs — псевдофайловая система, в которой посредством обычных файловых операций предоставляется доступ к устройствам компьютера. Позволяет очень гибко работать и конфигурировать устройства и взаимодействие с ОС.
-
Установка файловой системы
Файловая система устанавливается при помощи команды mkfs. Для каждого типа файловой системы существует своя версия этой программы. Команда mkfs запускает требуемую программу в зависимости от типа файловой системы [3].
Синтаксис
mkfs [-V][-t fstype] [-v][-c][-l filename][fs-option] device-or-mount-point [blocks]
Командой mkfs устанавливается файловая система на некотором устройстве, обычно в разделе жесткого диска. В качестве аргумента device-or-mount- point указывается либо имя устройства (/dev/hdal, /dev/sdb2 и аналогичные), либо точка монтирования (каталоги /, /user, /home). Количество блоков, выделяемых для использования файловой системой, указывается аргументом blocks.
А вообще mkfs — это просто конечный интерфейс к доступным под Linux построителям файловых систем, вторую часть сложных имен (mkfs.fstype)
которых определяет вызываемый построитель [4].
Пример
#
Создает файловую систему типа ext2 в разделе /dev/hda3 (первый жесткий диск типа IDE).
Информация в любой операционной системе хранится в виде файла. С точки зрения операционной системы файл представляет собой непрерывный поток (или последовательность) байтов определённой длины [5]. Все, что существует в Linux в статическом виде, являет собою файлы. Собственно, использование файловой системы как универсального интерфейса доступа ко всему, чему угодно — от устройств, физически подсоединенных к машине, до процессов, в системе протекающих, — и есть один из критериев Unix-подобия ОС [2].
Выделяются следующие типы файлов:
каталоги;
символические ссылки;
специальные файлы устройств;
именованные каналы и сокеты;
обычные, или регулярные, файлы.
Каталог
Каталоги (английский — directory) — в некотором смысле они противопоставляются всем другим типам. Это — специальные файлы, объединяющие другие файлы (и подкаталоги, называемые также вложенными каталогами) в обособленные друг от друга группы (по крайней мере, так они видятся пользователю в специальных программах управления файлами — файловых менеджерах).
Каталог создаётся командой:
$ mkdir [options]...name...
Если одно из имен name является именем существующего файла, а не каталога, направляет предупреждение в стандартный файл ошибок и после обработки оставшихся имен завершается с кодом 1. Выполняет то же самое, если name имя существующего каталога, а опция -р не указана [4].
Символические ссылки
Символическая ссылка — это самостоятельный файл, со своим идентификатором и прочими атрибутами, записанными в области метаданных, и со своими данными. Другое дело, что последние предоставляют очень ограниченную информацию. А именно — просто указание пути к собственно файлу или каталогу, на который эта ссылка указывает. Причем файл этот может лежать не только на иной файловой системе (дисковом разделе), но даже находиться на иной машине в локальной или даже глобальной сети. Некоторые операции, например удаление, выполняются собственно над ссылкой, а не над тем файлом, на который она ссылается.
Для создания символической ссылки необходимо ввести команду:
$ ln [option]...target [linkname] или
$ ln [option]...target directory
В первом формате создает ссылку по имени linkname (необязательный аргумент) на файл target. По умолчанию ln создает «жесткие» ссылки, а с опцией –s —символические ссылки. Если последний аргумент командной строки является именем существующего каталога, ln создает ссылку на каждый файл target в этом каталоге. Если задано два имени файла, ln создает ссылку со второго на первое имя. Если задан один аргумент targeu ln создает в текущем каталоге ссылку на этот файл. «Жесткая» ссылка — это просто другое имя существующего файла. И оригинал, и ссылка имеют тот же самый дескриптор. Пользователь не может создать жесткую ссылку на каталог. Кроме того, жесткая ссылка не может распространяться через границы файловой системы [4].
Файлы устройств
Файлы устройств соответствуют различным присутствующим в системе устройствам. Устройства эти могут быть реальными (жесткие диски, принтеры и т.д.), а могут — т.н. псевдоустройствами, с которыми не ассоциировано никакого «железа» (например, знаменитое устройство /dev/null, не содержащее ничего, или /dev/zero, содержимое которого—сплошные нули).
С другой стороны, выделяются файлы символьных устройств и устройств блочных. К первым возможен только последовательный (побитный, то есть посимвольный) доступ. Примером их являются последовательные и параллельные порты, а также терминалы, реальные и виртуальные. К блочным устройствам можно осуществлять произвольный доступ, обмен информацией с ними осуществляется блоками фиксированной (реже—переменной) длины. Блочные устройства представлены, в частности, жесткими дисками и другими накопителями [2].
Каналы и сокеты
Специальные виды файлов — именованные каналы (named pipe) и сокеты (socket), — предназначены для обмена данными между процессами. Они важны для разработчиков ПО, пользователь с ними, как правило, напрямую не общается. Однако знать о факте их существования полезно.
Обычные файлы
К типу обычных файлов отнесено все, что не является каталогами, символическими ссылками, файлами устройств, каналами и сокетами.
Легко понять, что множество обычных файлов охватывает все то, что в DOS/Windows рассматривалось бы как самостоятельные типы — исполняемые бинарные файлы, файлы сценариев оболочки, обычные тексты, файлы изображений, файлы в форматах специальных программ (например, документы ворд-процессоров или электронных таблиц). Общее между ними одно: содержимое всех их может быть непосредственно просмотрено либо стандартными командами типа cat, less, more, либо программами, в которых они были созданы. Тогда как непосредственный просмотр содержимого файлов прочих типов, как правило, невозможен — доступ к ним можно получить только косвенными путями. Обычные файлы являются теми файлами, с которыми чаще всего приходится работать пользователю.
Обычный файл можно создать командой:
$ touch [option]...file
Будет создан файл нулевого размера с именем file. Для копирования файлов и каталогов используется команда:
$ cp [option] file new_file
Для перемещения файлов и каталогов используется команда:
$ mv [option] file new_file
Основным средством архивирования в Linux является комплекс из двух программ —tar и gzip.
Tar расшифровывается как Tape ARchiver, он не сжимает данные а лишь объединяет их в единый файл с последовательным доступом для последующей записи на ленту. Для записи архива на диск, необходимо использовать команду tar c опцией -f, после которой указывается имя архивного файла [5].
У программы tar есть 8 опций, которые определяют основные функции программы. Перечень их приведён в таблице 1.
Таблица 1. Основные опции программы tar
Опция
|
Значение
|
-A, --catenate, --concatenate
|
Добавляет файлы в архив.
|
-с, --create
|
Создаёт новый архив.
|
-d, --diff, --compare
|
Обнаруживает различия между членами архива и их «исходниками» в файловой системе.
|
--delete
|
Удаляет файлы из архива.
|
-r, --append
|
Добавляет файлы в конец архива.
|
-t, --list
|
Выводит содержание архива.
|
-u, --update
|
Только добавляет файлы, ранее не включаемые в архив.
|
-x, --extract, --get
|
Извлекает файлы из архива.
|
Чтобы создать архив из нескольких файлов, используется команда:
$ tar -cf имя_архива файл1 файл2 ...
Чтобы распаковать (извлечь) файлы из архива, нужно дать команду:
$ tar -xf имя_архива файлы
Для сжатия файла архива часто используется программа gzip. В простейшем случае она запускается командой следующего формата:
$ gzip файл
Для того чтобы распокавать архив, используется команда:
$ gzip -d файл_архив или
$ gunzip файл_архив
Исходные файлы после сжатия удаляются, а при разархивации удаляется архив.
Поскольку программа gzip не умеет сохранять в одном архиве несколько файлов, то обычно её применяют для сжатия архивов, созданных программой tar. Более того, среди опций программы tar имеется специальная опция -z, позволяющая сразу после создания сжать его с помощью программы gzip. Для выполнения такого сжатия надо использовать команду tar примерно следующим образом [5]:
$ tar -czf имя_архива файл1 файл2 ...
Примеры Пример 2.1
Создать каталог example в домашнем каталоге:
$ cd
$ mkdir -v example
Перейти в каталог example:
$ cd example
Создать пустой файл temp.txt, создать на него ссылку в домашнем каталоге, перейти в родительский каталог, удалить example вместе со всем содержимым:
$ touch temp.txt $ ln -sv ~/example/temp.txt ~/
$ cd ..
$ rm -rv example Пример 2.2
Создать каталог works и перейти в него:
$ mkdir -v works $ cd works
Скопировать файлы из каталога /etc/X11/app-defaults. Собрать их в архив apchive.tar.gz. Переименовать apchive.tar.gz в app-defaults.tar.gz. Распокавать архив app-defaults.tar.gz.
$ cp -v /etc/X11/app-defaults/* .
$ tar -cvzf archive.tar.gz ./*
$ mv -v archive.tar.gz app-defaults.tar.gz $ tar -xvzf app-defaults.tar.gz
Контрольные вопросы
Файловая система— это... ?
Какие типы файловых систем поддерживает Linux?
Как установить файловую систему?
Что представляет собой файл в операционной системе Linux?
Какие типы файлов существуют в Linux?
Файл какого типа объединяет другие файлы в обособленные друг от друга группы?
Чем являются символические ссылки?
Какие программы используются для просмотра обычных файлов?
Какие программы являются основным средством архивирования?
10. Чем отличается программа tar от программы gzip?
-
Диски и система
-
Получение сведений о системе и аппаратуре
Примеры некоторых программ дающие сведения о системе:
lshw—команда выведет полную информацию о железе, следует выполнять с правами root’а (sudo lshw);
hwinfo —вывод информации о железе. Предварительно требуется установить утилиту (sudo apt-get install hwinfo);
uname -a — вывод информации о системе, версии ядра, дистрибутиве и архитектуре (32/64 бита);
lsb_release -a — выведет название и версию используемого дистрибутива;
cat /etc/release — аналогично предыдущей команде, плюс информация о базовом дистрибутиве (например, для Linux Mint 9 выведет еще и Ubuntu 10.04, как базовый дистрибутив);
ls -clt / | tail -n 1 | awk’{ print $7, $6, $8 } ’ — с помощью этой команды можно узнать дату и время установки системы;
ls -dl /var/log/installer/—аналогично предыдущей команде (но немного иного принципа), позволяет узнать дату и время установки системы [4].
-
Получение сведений о дисках
Информация о жёстком диске:
fdisk -l —информация о всех подключенных жёстких и сменных дисках;
hdparm -I /dev/sda —полная информация о IDE/ATA жёстких дисках;
blkid — выводит UUID всех доступных накопителей информации в системе;
hdparm -tT /dev/sda — показывает производительность жёсткого диска.
Разбивка жёсткого диска на разделы осуществляется с помощью утилиты fdisk, которая очень похожа на подобные утилиты в других операционнх системах, таких, как DOS. Для создания нового раздела на только что подключенном жёстком диске необходимо запустить утилиту fdisk, указав в качестве параметра имя устройства, которое надо разбить на разделы. Например, если имя нового жёсткого диска /dev/sdb, то для того чтобы разбить его на разделы, воспользуйтесь следующей командой [6]:
-
Монтирование разделов жёсткого диска
Для нормальной работы операционной системы ядро должно получить параметры файловых систем, используемых во время работы, и определенным образом настроить специальные таблицы. Для этого существует, по крайней мере, два способа:
Каким-то образом один раз получить тип и параметры файловой системы и работать с ними всё время.
Получать их каждый раз при обращении к файловой системе.
У обоих вариантов имеются свои плюсы и минусы. Плюсы первого варианта— уменьшаются затраты времени на определение файловой системы и инициализацию таблиц ядра ОС. Минусы — невозможно «на ходу» заменить одно устройство (носитель информации) на другое (к примеру, дискZip100 на Zip250), поскольку в таблицах ядра зафиксированы ёмкость носителя, ёмкость кластеров, используемые блоки и тому подобная информация. Достоинства и недостатки второго варианта прямо противоположны первому—возможность «на ходу» заменить устройство (носитель информации), но большие затраты времени на определение файловой системы и инициализацию таблиц ядра ОС. К тому же, во втором варианте намного труднее достичь надежности хранения данных.
Поэтому большинство операционных систем (не только UNIX) в явной или неявной форме реализуют первый вариант взаимодействия с файловой системой. Для этого в Linux предусмотрены операции монтирования и демонтирования файловой системы.
Поскольку в Linux используется единое связанное дерево каталогов, то, в отличие от DOS/Windows, не существует такого понятия файловой системы, как диск. Все дисковые устройства (файловые системы) интегрируются в дереве каталогов в так называемые точки монтирования, в качестве которых выступают обычные каталоги. Причём если до монтирования в этом каталоге содержались какие-то файлы, то они становятся недоступными до тех пор, пока вы не демонтируете эту файловую систему [3].
Команды монтирования разделов жёсткого диска:
mount | column -t — показывает полную информацию о примонтированных устройствах;
cat /proc/
|