ГЛАВА 1. ОСНОВЫ РАБОТЫ В ОПЕРАЦИОННОЙ СИСТЕМЕ LINUX. ИНТЕРПРЕТАТОР SHELL



ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ............................................................................................................... 6

ГЛАВА 1. ОСНОВЫ РАБОТЫ В ОПЕРАЦИОННОЙ СИСТЕМЕ LINUX. ИНТЕРПРЕТАТОР SHELL..................................................................................... 9

1.1. Введение в ОС UNIX................................................................................................................ 9

1.1.1 Файловая система ОС Linux............................................................................................. 11

1.1.2. Организация процессов.................................................................................................. 14

1.2. Командный интерпретатор shell..................................................................................... 16

1.2.1. Переменные языка shell................................................................................................ 17

1.2.2. Команды языка shell....................................................................................................... 19

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

Команда cat............................................................................................. 21

Команда ls................................................................................................ 22

Команда cp.............................................................................................. 23

Команда rm............................................................................................. 24

Команда mount/umount......................................................................... 25

Команда chmod....................................................................................... 26

Команды ввода-вывода. Перенаправление потоков ввода-вывода......... 29

Команда echo........................................................................................... 30

Команда printf......................................................................................... 30

Команда tail............................................................................................. 31

Команды, используемые для обработки текстовой информации............ 32

Команда транслитерации tr.................................................................... 32

Команда сортировки sort........................................................................ 35

Команда унификации строк uniq........................................................... 36

Команды поиска по образу grep , egrep и fgrep.................................... 38

Работа с переменными................................................................................ 41

Команда инициализации переменных read............................................ 41

Команда set.............................................................................................. 42

Команда unset.......................................................................................... 43

Команды проверки условий....................................................................... 43

Команда test............................................................................................. 43

Обработка арифметических, логических и строковых выражений......... 46

Команда expr........................................................................................... 46

Команда let.............................................................................................. 49

1.2.3. Управляющие конструкции.......................................................................................... 51

Оператор цикла с перечислением for..................................................... 51

Управление циклами с помощью команд break и continue.................. 52

Условный оператор if............................................................................. 52

Коды завершения....................................................................................... 53

Команда exit............................................................................................ 53

1.2.4. Правила применения кавычек в shell.......................................................................... 54

Одинарные ' ' и двойные " " кавычки....................................................... 54

Обратные кавычки ` `................................................................................ 54

1.3. Конвейерная обработка текстовой информации........................................................ 55

ГЛАВА 2. ОБРАБОТКА РЕГУЛЯРНОЙ ИНФОРМАЦИИ.............................. 57

2.1. Общие сведения о регулярных выражениях................................................................. 58

Элементы регулярных выражений............................................................ 58

Литералы и литеральные константы в регулярных выражениях............ 58

Экранирование метасимволов................................................................... 59

Метасимволы и операторы в регулярных выражениях........................... 60

Якорные метасимволы............................................................................... 61

Метасимвол ............................................................................................. 61

Метасимвол ^........................................................................................... 62

Метасимвол $........................................................................................... 62

Выбор альтернатив.................................................................................... 62

Классы символов [ ]................................................................................... 63

Квантификаторы......................................................................................... 66

Квантификатор ?..................................................................................... 66

Квантификатор *..................................................................................... 66

Квантификатор +.................................................................................... 66

Интервальный квантификатор { }......................................................... 67

Группировка и ограничение...................................................................... 67

Приоритеты операций в регулярных выражениях................................... 68

2.2. Примеры использования регулярных выражений...................................................... 69

2.3. Команда grep и регулярные выражения........................................................................ 69

ГЛАВА 3. ОБРАБОТКА ВРЕМЕНИ И ДАТЫ................................................... 71

3.1. Обработка времени и даты на языке Cи......................................................................... 71

3.1.1. Основные функции работы со временем.................................................................... 71

Функция time ()......................................................................................... 71

Функция ctime() / ctime _ r()...................................................................... 72

Функция difftime()................................................................................... 73

Функции localtime() и gmtime().............................................................. 75

Функция asctime() / asctime _ r()............................................................... 76

Функция mktime()................................................................................... 76

Функция strftime()................................................................................... 78

3.2. Обработка времени и даты на языке Shell..................................................................... 80

ГЛАВА 4. КОДИРОВАНИЕ ИНФОРМАЦИИ................................................... 85

4.1. Виды кодировок................................................................................................................. 85

4.1.1. Кодировка ASCII.............................................................................. 85

4.1.2. Кодировка KOI-8.............................................................................................................. 87

4.1.3. Кодировка Windows 1251.............................................................................................. 88

4.2. Перекодировка текстовых файлов на языке Cи........................................................... 90

4.2.1. Функции работы с потоками ввода-вывода............................................................... 90

Функция открытия потока fopen ()......................................................... 90

Функция закрытия потока fclose().......................................................... 92

4.2.2. Функции чтения из файла.............................................................................................. 93

Чтение символа из файла........................................................................ 93

Форматный вывод из файла................................................................... 93

Чтение строки из файла........................................................................... 93

Чтение блока данных из файла............................................................... 94

4.2.3. Функции записи в файл................................................................................................... 94

Запись символа в файл fputc()................................................................ 94

Форматный ввод в файл fprintf().......................................................... 94

Запись строки в файл.............................................................................. 95

Запись блока данных в файл................................................................... 95

4.2.4. Функции позиционирования......................................................................................... 96

Установка указателя на начало файла................................................... 96

Установка указателя в произвольное место файла................................ 96

4.3. Перекодировка текстовых файлов на языке shell....................................................... 98

ГЛАВА 5. БАЗОВЫЕ АЛГОРИТМЫ ИНФОРМАЦИОННОЙ ОБРАБОТКИ ДАННЫХ............................................................................................................... 101

5.1. Алгоритмы сортировки данных.................................................................................... 101

5.1.1. Постановка задачи сортировки.................................................................................. 103

5.1.2 Сортировка вставками.................................................................................................. 104

Метод простых вставок (метод прямого включения)............................. 104

Метод бинарных (двоичных) включений................................................ 105

Сортировка методом Шелла.................................................................... 105

4.1.3. Обменная сортировка.................................................................................................. 107

Метод прямого обмена (пузырьковая сортировка)................................ 107

Шейкерная сортировка (сортировка перемешиванием)......................... 109

Быстрая сортировка................................................................................. 110

5.1.4. Сортировка выбором................................................................................................... 112

Сортировка методом прямого выбора.................................................... 113

5.1.5. Сортировка слиянием.................................................................................................. 114

Сортировка методом простого слияния.................................................. 115

5.1.6. Поразрядная сортировка............................................................................................ 116

MSD и LSD сортировки........................................................................... 116

5.2. Методы поиска информации.......................................................................................... 118

5.2.1. Постановка задачи поиска.......................................................................................... 119

5.2.1 Методы поиска, основанные на сравнении ключей................................................ 119

Последовательный поиск......................................................................... 119

Бинарный поиск........................................................................................ 120

Интерполяционный поиск........................................................................ 122

5.2.2. Хэширование.................................................................................................................. 124

Методы задания хэш-функций.............................................................................................. 126

Метод прямого доступа........................................................................... 126

Метод деления.......................................................................................... 126

Метод умножения (мультипликативный метод)...................................... 126

Аддитивный метод.................................................................................... 127

Методы обработки коллизий................................................................................................ 128

Метод цепочек (закрытое хэширование)................................................. 128

Метод линейного опробования (открытое хэширование)...................... 129

Метод повторного хэширования............................................................. 131

ГЛАВА 6. СИСТЕМЫ СЧИСЛЕНИЯ............................................................... 133

6.1. История возникновения систем счисления................................................................. 135

6.2. Постановка задачи перевода чисел из одной системы счисления в другую......... 136

6.3. Методы перевода чисел из одной системы счисления в другую............................ 137

Схема Горнера.......................................................................................... 137

Метод перевода целых чисел делением на новое основание.................. 140

Метод перевода правильных дробей путем умножения на новое основание 141

Перевод конечной позиционной дроби к виду обыкновенной дроби... 144

Метод перевода периодической дроби к виду обыкновенной дроби.... 146

Метод перевода с использованием промежуточного основания........... 148

СПИСОК РЕКОМЕНДОВАННОЙ ЛИТЕРАТУРЫ....................................... 151

Приложение 1......................................................................................................... 152

МЕТОДИЧЕСКИЕ УКАЗАНИЯ ДЛЯ ПРАКТИЧЕСКОГО ЗАНЯТИ ПО ИНФОРМАТИКЕ................................................................................................. 152

КОНВЕЙЕРНАЯ ОБРАБОТКА ТЕКСТОВЫХ ФАЙЛОВ.......................................................... 152

ПРОГРАММИРОВАНИЕ СИМВОЛЬНЫХ ДАННЫХ............................................................... 155

ПРОГРАММИРОВАНИЕ ВРЕМЕНИ И ДАТЫ.......................................................................... 158

ПЕРЕКОДИРОВКА ТЕКСТА...................................................................................................... 161

 

                                           

 

ВВЕДЕНИЕ

Информатика – это комплексная общетехническая дисциплина, которая изучает вопросы компьютерной обработки информации. Это название впервые было предложено французской Академией наук в середине 60-тых годов прошлого века.

Термин «информатика» образован путем сложения двух французских слов: information (информатика) и automatique (автоматика), что в сочетании определяется как «автоматическая обработка информации».

В структуре информатики можно выделить три взаимосвязанные части: аппаратную (hardware), алгоритмическую (brainware) и программную (software).

Современная информатика объединяет в себе комплекс самостоятельных компьютерных дисциплин. К ним относятся:

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

2. Компьютерная математика (арифметика и алгебра).

3. Построение и анализ алгоритмов вычислительной обработки данных (например, алгоритмы сортировки и поиска информации).

4. Изучение абстрактных структур данных (массивов, стеков, деревьев, списков, очередей, графов и пр.).

5. Кодирование и передача информации.

6. Формальные языки и конечные автоматы.

7. Двоичное кодирование информации.

8. Программное управление.

9. Однородность памяти. ???

10.  Адресность. ???

Представленный список дисциплин, каждая из которых заслуживает самостоятельного изучения, в комплексе составляют предмет информатика.

 Основными задачами, которые решаются посредством информатики, являются:

1. Изучение всех видов информационных процессов;

2. Разработка новых видов техники, связанной с обработкой информации;

3. Создание эффективных технологий обработки информации;

4. Решение научных и инженерных задач различных сфер жизнедеятельности человека.

Ключевым понятием, являющимся основным фактором развития информатики является эффективность. Вся деятельность ученых, работающих в сфере информатики, ориентирована на улучшение этого показателя. Для этого разрабатываются новые методы и алгоритмы, технические системы и пр.

Хотя информатика является относительно новой дисциплиной, она имеет глубокую историю. Первые счеты – а́бак, были созданы 3000 лет до н.э. и многократно усовершенствовались и модифицировались. Принято считать, что предпосылки к созданию такой науки, как информатика, возникли еще в XVI веке, когда человек впервые попытался автоматизировать вычислительные операции.

Основоположником дисциплины информатика принято считать Го́тфрида Лейбница (1646 - 1716) – саксонского философа, логика, математика, физика и изобретателя. Он описал двоичную систему счисления с числами 0 и 1, заложил основы комбинаторики, математической логики и математического анализа (дифференциальные и интегральные исчисления). В 1673 году Лейбниц создал первую вычислительную машину – механический калькулятор (арифометр), который мог выполнять сложение, вычитание, умножение и деление чисел в десятичной системе счисления, а также извлечение квадратных корней и возведение в степень. Машина выполняла вычисления при помощи связанных друг с другом шестеренок и шагающих цилиндров (изобретение  Лейбница). Шагающий цилиндр представлял собой цилиндр с набором зубьев увеличивающейся длины, расположенных по кругу на его боковой поверхности. Зубья входили в зацепление с счетным колесом, являющимся сумматором, проворачивая его необходимое число раз. Колесо переноса разряда срабатывало при переполнении.

Еще до создания первых вычислительных машин человек научился систематизировать и упорядочивать большие объемы информации. Примером такой систематизации можно считать стойки с ящиками, в которых хранятся карточки. Это – каталоги, используемые в библиотеке для хранения данных об их книжном фонде. Широкое внедрение средств ЭВМ привело к автоматизации способов хранения и поиска данных, разработки эффективных методов их реализации.

 В 1934 г. первая механическая программируемая вычислительная машина была создана немецкими учеными. Ее разработчиком принято считать Конрада Цузе. Последующие усовершенствования машины привели к тому, что в 1941 году была создана машина, обладающая свойствами современных компьютеров (двоичная система счисления и т.д.).

В России, а точнее в СССР, первая цифровая электронная вычислительная машина была разработана и зарегистрирована в 1948 году (изобретатели – И. С. Брук и Б. И. Рамеев).

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

 

 

ГЛАВА 1. ОСНОВЫ РАБОТЫ В ОПЕРАЦИОННОЙ СИСТЕМЕ LINUX. ИНТЕРПРЕТАТОР SHELL

В общем случае под операционной системой (ОС) понимают совокупность программ для управления вычислительными ресурсами компьютера, а также обеспечения его взаимодействия с пользователем. Операционные системы по праву считаются основной, наиболее важной (а в некоторых случаях и единственной) частью программного обеспечения компьютера. В настоящее время наиболее распространенными видами являются UNIX-подобные операционные системы и ОС Windows.

 

Введение в ОС UNIX

Принято считать, что ОС UNIX была создана в конце 60-х годов в исследовательском центре Bell Telephon Laboratories. Автором первой версии ОС UNIX является Кен Томпсон. Впоследствии реализацией и усовершенствованием UNIX принимал участие большой коллектив разработчиков, в состав которого входили Б. Керниган, Д. Ритчи, Р. Пайк и многие другие.

Важным фактом, который во многом предопределил широкое распространение UNIX в дальнейшем, является то, что операционная система изначально задумывалась как программная среда для коллективного использования.

Изначально разработчики не предполагали широкое коммерческое использование своего программного продукта – ОС UNIX разрабатывалась для решения внутренних задач лаборатории.

Про UNIX часто говорят, что это «система, которая сделана программистами для программистов». Это объясняет некоторые ее особенности. Во-первых система отличается концептуальной стройностью, свойственной высокому уровню написания программ. При этом UNIX требует высокой компьютерной грамотности пользователей и программистов, выбравших данную среду в качестве рабочей.

Значимый вклад в разработку UNIX внес Деннис Ритчи. В 1972-1973 годах он совместно с Кеном Томпсоном создали новую версию ОС UNIX, для чего Д. Ритчи разработал новый язык программирования – Си. Язык Си стал неотъемлемой часть ОС UNIX, по некоторым оценкам более 90% программного кода UNIX написано именно на этом языке программирования (остальные 10% на ассемблере).

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

Множество достоинств ОС UNIX непрерывно повышали интерес к данному программному продукту. Многие IT-компании разрабатывали коммерческие версии ОС на основе UNIX  и успешно продвигали их на рынке программного обеспечения.

OC UNIX сегодня – это полноценная многопользовательская, многозадачная и многотерминальная операционная система (а точнее семейство совместимых на уровне исходных текстов программ операционных систем).

В основу разработки ОС UNIX были положены следующие базовые концепции:

1. Организация концепции выполнения программ.                                     

2. Файловая структура.

3. Система ввода-вывода.

4. Многопользовательский режим работы.

5. Командный процессор.

6. Командные улиты.

7. Инструментальная среда.

8. Графическая и одновременно сетевая операционная среда. 

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

 В завершении обзора ОС UNIX хотелось бы отметить Linux – группу свободных и открытых UNIX-подобных ОС. К основным достоинствам Linux можно отнести:

· бесплатное распространение;

· надежность (при корректной работе аппаратной части Linux может работать годами без перезагрузки);

· безопасность (практически нет вирусов, таким образом не надо ставить тормозящие работу антивирусные программы);

· открытый исходный код дает возможность модифицировать его, ориентируясь на свои потребности, расширять функциональность путем написания дополнении и программ.

Популярность Linux непрерывно растет. Сегодня ОС семейства Linux имеют красивый и привычный пользователю оконный интерфейс, малоотличимый от интерфейса ОС Windows или MacOS. Пользователи имеют возможность работать в привычных офисных программах, осуществлять поиск в сети Интернет, играть в игры, смотреть фильмы, общаться в Skype и т. д. Наиболее известными Linux-операционными системами сегодня являются Ubuntu, Mint, Slackware, Fedora и прочие.

 

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

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

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

Файловая система Linux в корне отличается от файловой системы Windows. В Windows файловая система не делится на тома или диски, а представляет собой древовидную структуру, вершиной которого является корневой каталог. Корневой каталог обозначается символом ' / '  и имена всех других каталогов начинаются с него (например, /home/user ). Перечисленные таким образом каталоги образуют так называемый путь. Если путь начинается с символа ' / ', то путь считается полным, в противном случае – относительным.

Структура файловых систем Windows и Linux приведена на рисунке 1.1.

 

а) Windows б) Linux  

Рис. 1.1. Структура файловых систем

А) Windows б ) Linux

 

К любому файлу в системе можно обратиться, используя его путь – последовательность каталогов, завершающаяся именем самого файла. Алфавитом файловой системы являются все символы кодировки ASCII. Максимальная длина имени файла – 255 символов; использование косой черты в имени запрещено; указание расширения файла не обязательно.

Важной особенностью файловой системы Linux является то, что корневой каталог в ней всегда один. Все остальные каталоги вложены в него. Следовательно с точки зрения пользователя, файловая система представляет собой единой целое.

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

Основные каталоги файловой системы ОС Linux и их назначение представлены в таблице 1.1.

Таблица 1.1


Дата добавления: 2020-01-07; просмотров: 209; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!