Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Введение в Linux (110

..pdf
Скачиваний:
7
Добавлен:
15.11.2022
Размер:
514.38 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

ВВЕДЕНИЕ В LINUX

Учебно-методическое пособие

Воронеж Издательский дом ВГУ

2016

Утверждено научно-методическим советом факультета прикладной математики, информатики и механики 10 ноября 2016 г., протокол № 3

Составители: М. А. Артемов, А. Н. Владимиров, Е. С. Барановский, И. Б. Крыжко

Рецензент – канд. физ.-мат. наук, доцент кафедры информационных технологий управления ФКН ВГУ И. В. Илларионов

Учебно-методическое пособие подготовлено на кафедре программного обеспечения и администрирования информационных систем факультета прикладной математики, информатики и механики Воронежского государственного университета.

Рекомендовано студентам 4-го курса факультета прикладной математики, информатики и механики Воронежского государственного университета.

Для направления 02.03.03 – Математическое обеспечение и администрирование информационных систем

 

 

Содержание

 

1.

Краткая история UNIX-подобных систем....................................................

4

2.

Основы Linux...................................................................................................

6

3.

Преимущества и недостатки Linux ...............................................................

7

4.

Команды для работы с файловой системой. Символические

 

и жесткие ссылки................................................................................................

7

5.

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

9

6.

Установка пакетов (rpm, deb, apt, yum, yast2, emerge)...............................

12

 

6.1. Red Hat Packet Manager (rpm) ...............................................................

12

 

6.2. Debian Package Manager (dpkg).............................................................

13

7.

Архиваторы и компрессоры.........................................................................

14

8. BASH ..............................................................................................................

15

 

8.1. Основы синтаксиса................................................................................

15

 

8.2. Переменные............................................................................................

16

 

8.3. Параметры скрипта................................................................................

16

 

8.4. EXPANSION – процесс разворачивания команды..............................

17

 

8.5. Навыки работы shell...............................................................................

19

 

8.6. Правила и приемы при написании скриптов ......................................

20

9.

Команды для обработки текста....................................................................

21

10. SED ...............................................................................................................

25

11. AWK ..............................................................................................................

27

12. LaTEX – система подготовки документов................................................

29

13.

Текстовые редакторы..................................................................................

30

14. VI / VIM........................................................................................................

31

15.

Ядро..............................................................................................................

35

16.

Управление процессами .............................................................................

36

17.

Загрузка системы.........................................................................................

39

18.

Runlevel ........................................................................................................

40

19.

Xserver ..........................................................................................................

41

20.

Файловые системы......................................................................................

41

Библиографический список..............................................................................

43

 

 

3

 

1. КРАТКАЯ ИСТОРИЯ UNIX-ПОДОБНЫХ СИСТЕМ

1957 год. Компания BellLabs создала ОС BESYS (Bell Operating System). Это система для внутреннего использования (не для продажи), хотя высылалась всем желающим на магнитной ленте. Руководитель – Виктор Высоцкий. Система была предназначена для выполнения на компьютерах серии IBM 704 – 709x (IBM 7090, 7094). Она стала прообразом для систем с разделяемым временем исполнения задач.

1964 год. Совместный проект MIT, GE, BellLabs – Multics. Система не имела коммерческого успеха.

Особенности:

центральная файловая система с поддержкой символьных ссылок;

виртуальная память;

dynamic linking;

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

безопасность и привилегии;

стек для каждого процесса в ядре.

1969 год. Компания BellLabs разработала UNIX. Основные участники: Кен Томпсон, Деннис Ритчи, Дуглас Макилрой. Первые версии UNIX были написаны на ассемблере и не имели встроенного компилятора с языком высокого уровня. Примерно в 1969 году Кен Томпсон при содействии Денниса Ритчи разработал и реализовал язык Би (B), представлявший собой упрощённый (для реализации на миникомпьютерах) вариант разработанного в 1966 языка BCPL. Би, как и BCPL, был интерпретируемым языком.

4

В1972 году была выпущена вторая редакция UNIX, переписанная на языке Би.

В1969–1973 годах на основе Би был разработан компилируемый язык, получивший название Си (C).

В1973 году вышла третья редакция UNIX со встроенным компилятором языка Си. 15 октября того же года появилась четвёртая редакция с переписанным на Си системным ядром (в духе системы Multics, также написанной на языке высокого уровня ПЛ/1), а в 1975 – пятая редакция, полностью переписанная на Си.

С 1974 года UNIX стал распространяться среди университетов

иакадемических учреждений.

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

К 1978 году система была установлена более чем на 600 машинах, прежде всего в университетах. Седьмая редакция была последней единой версией UNIX. Именно в ней появился близкий к современному интерпретатор командной строки Bourne shell.

BSD UNIX, Berkley University (июль 1993 – 4.4BSD – последняя вер-

сия университетская).

1982 год. AT&T выпустила UNIX System III на основе седьмой версии

UNIX.

1983 год. AT&T – UNIX System V, из которой позднее появились

AIX(IBM, 1986), IRIX(Silicon graphics, 1988), HP/UX(Hewlett-Packard UniX, 1984), Solaris(Sun, 1992).

От BSD ответвились FreeBSD (1993), NetBSD (1993), OpenBSD (1995).

5

GNU, Ричард Столлман (Gnu is Not Unix) – операционная система и набор инструментов (GNU Toolchain, glibc, Coreutils, Emacs).

1987 год. Эндрю Таненбаум, Minix.

1991 год. Линус Торвальдс, GNU/Linux.

1984 год. MacOS.

1989 год. NexTSTEP.

2000 год. Darwin – набор компонентов для MacOS X, iOS на основе своего кода, FreeBSD, NexTSTEP и др.

2. ОСНОВЫ LINUX

POSIX – интерфейс взаимодействия между ОС и программным обеспечением. Поддерживается Linux (частично), Mac OS X, Solaris.

Linux состоит из ядра и прикладных программ. Ядро содержит код работы с файловой системой, процессами, потоками, драйверами и памятью. Прикладные программы – shell, glibc, gcc, text utils.

Linux имеет огромное множество дистрибутивов (около 600).

По типам пакетов:

RPM-based;

DEB-based;

Source-based.

Основные игроки:

RedHat, FedoraCore, CentOS, Mandriva, ALTLinux;

Debian, Ubuntu, Kubuntu;

Suse;

Slackware (один из первых);

ArchLinux;

Gentoo;

Android.

6

3. ПРЕИМУЩЕСТВА И НЕДОСТАТКИ LINUX

 

 

Преимущества

 

Недостатки

 

 

 

1.

свободная и бесплатная;

1. cложность в освоении;

2.

поддержка платформ;

2. отсутствие необходимого ПО:

3.

сила командной строки;

игры;

 

обработка текста;

специальное ПО (САПР, гра-

 

файлы для всего;

 

фика, видео и аудио-

 

удаленный доступ;

 

редакторы).

 

потоковая обработка;

 

 

4.

поддержка файловых систем;

 

 

5.

настройки в текстовых файлах;

 

 

6.

практически нет вирусов;

 

 

7.

гибкая система настройки энерго-

 

 

 

потребления.

 

 

 

 

 

 

 

4. КОМАНДЫ ДЛЯ РАБОТЫ С ФАЙЛОВОЙ СИСТЕМОЙ. СИМВОЛИЧЕСКИЕ И ЖЕСТКИЕ ССЫЛКИ

pwd – текущая директория (Print Working Dir), whoami – текущий пользователь,

ls – список всех файлов в текущей директории,

ls /home/user – список всех файлов в директории /home/user,

ls -l – флаг -l выдает больше информации о файлах (права, размер, даты модиф.),

ls -a – выводит системные файлы,

ls -la – выводит системные с подробной информацией (комбинация флагов), ls -R – выводит всё рекурсивно,

ls -t – выводит с сортировкой по времени,

ls -1 – выводит по 1 файлу в строке (удобно для скриптов),

7

cd <dir> – сменить директорию на указанную директорию, cd – сменить директорию на домашнюю,

cp – копировать файл,

cp -r – рекурсивно копировать директорию,

pushd (BASH) – сменить директорию и запомнить в стеке, popd (BASH) – вернуться по стеку в последнюю директорию, mv – переместить /переименовать что-либо,

rm – удалить файл,

rm -r – удалить рекурсивно,

rm -f – удалить без лишних вопросов,

rmrf – удалить рекурсивно и без лишних вопросов (так удалять директории, но осторожно),

mkdir – создать директорию,

mkdir -p – создать директорию и всех недостающих предков, rmdir – удалить директорию (пустую),

cat – конкатенация файла (используется для вывода содержимого), tac – обратная конкатенация,

touch – если нет файла, то создать, если есть – освежить дату модификации; chmod – управление правами пользователя,

chmod 755 – дать права владельцу на всё, группе и остальным – чтение и исполнение,

chmod +x – дать владельцу права на исполнение, chmod a+w – дать всем права на запись,

chmod g-x – убрать права на исполнение у группы, chmod -r – рекурсивное применение команды, chown user:group file – сменить владельца, chown -r – сменить владельца рекурсивно,

chgrp <group> target – сменить группу-владельца,

8

find – поиск файлов,

ln – создать ссылку жесткую,

ln -s – создать ссылку символическую, test – команда для проверки условий,

[[ ]] – то же самое, что тест, только для BASH; alias – сделать алиас на команду,

export – экспорт переменной во внутренние сессии, clear – очистить экран (Control-l),

let – вычисление выражений арифметических, diff – разница файлов,

diff -u – в формате unified diff, patch – наложить патч,

colordiff(colorsvn, colorcvs) – раскраска команд.

5.СТРУКТУРА ФАЙЛОВОЙ СИСТЕМЫ

/– корневая директория. В Linux всё начинается с корневой директории. Если подключается некое внешнее устройство-накопитель – оно монтируется в некоторую поддиректорию корневой директории.

/bin – бинарные исполняемые файлы (основные системные),

/boot – директория содержащая информацию по загрузке системы (здесь лежит собранное ядро ОС, загрузчик, конфиг ядра),

/dev – список устройств (devfs) (здесь есть доступ к устройствам), /etc – директория, содержащая настройки системы (глобальные), /etc/passwd – файл со списком пользователей,

/etc/groups – файл со списком и составом групп пользователей, /etc/shadow – файл с паролями пользователей,

/etc/profile – файл с глобальными переменными окружения и пр. для шеллов,

9

/etc/bashrc – файл с переменными и прочими плюхами именно для BASH, /home – родительская директория для домашних директорий пользователей, /lib – совсем системные библиотеки (такие как libc, libssl),

/lib/modules/2.6.18-308.24.1.el5/kernel/ - непосредственно модули ядра,

/lib64 – для 64-разрядной системы,

/mnt – сюда можно монтировать некие файловые системы,

/media – обычно сюда автоматически монтируются диски и флешки, /opt – некоторые пакеты устанавливаются сюда,

/proc – виртуальная ФС procfs (содержит информацию о системе, настройки, процессы),

/proc/cpuinfo – информация о процессорах, /proc/meminfo – информация о памяти, /proc/<pid> – информация о процессе с PID = <pid>,

/proc/sys – dynamic kernel config – динамический конфиг ядра (sysctl),

/root – домашняя директория супер-пользователя,

/sbin – системные (или суперпользовательские) исполняемые файлы, например init, которые необходимы для старта, поддержки и восстановления системы,

/srv – данные серверов,

/sys – sysfs, специальная ФС для отображения информации об устройствах и драйверах, подсистем ядра, шин, классов устройств в пространстве пользователя. По сравнению с devfs дает только информацию об устройствах, но не дает к ним доступ. По сравнению с procfs дает меньше информации, но более прозрачно и эффективно.

/tmp – временная директория, очищается при перезагрузке,

/usr – изначально была для хранения домашних директорий. Сейчас смысл изменился, и содержит исполняемые файлы, библиотеки, и различные ресурсы, которые не критичны для работы системы (например, GUI). Некото-

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]