МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ
БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ОБРАЗОВАНИЯ
«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ»
ВВЕДЕНИЕ В LINUX
Учебно-методическое пособие
Воронеж
Издательский дом ВГУ
2016
Стр.1
Содержание
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
Стр.3
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
Стр.6
3. ПРЕИМУЩЕСТВА И НЕДОСТАТКИ LINUX
Преимущества
1. свободная и бесплатная;
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
Недостатки
1. cложность в освоении;
2. отсутствие необходимого ПО:
− игры;
− специальное ПО (САПР, графика,
видео и аудиоредакторы).
Стр.7
cd
– сменить директорию на указанную директорию,
cd – сменить директорию на домашнюю,
cp – копировать файл,
cp -r – рекурсивно копировать директорию,
pushd (BASH) – сменить директорию и запомнить в стеке,
popd (BASH) – вернуться по стеку в последнюю директорию,
mv – переместить /переименовать что-либо,
rm – удалить файл,
rm -r – удалить рекурсивно,
rm -f – удалить без лишних вопросов,
rm- rf – удалить рекурсивно и без лишних вопросов (так удалять директории,
но осторожно),
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 target – сменить группу-владельца,
8
Стр.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
Стр.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 = ,
/proc/sys – dynamic kernel config – динамический конфиг ядра (sysctl),
/root – домашняя директория супер-пользователя,
/sbin – системные (или суперпользовательские) исполняемые файлы, например
init, которые необходимы для старта, поддержки и восстановления
системы,
/srv – данные серверов,
/sys – sysfs, специальная ФС для отображения информации об устройствах и
драйверах, подсистем ядра, шин, классов устройств в пространстве пользователя.
По сравнению с devfs дает только информацию об устройствах, но
не дает к ним доступ. По сравнению с procfs дает меньше информации, но
более прозрачно и эффективно.
/tmp – временная директория, очищается при перезагрузке,
/usr – изначально была для хранения домашних директорий. Сейчас смысл
изменился, и содержит исполняемые файлы, библиотеки, и различные ресурсы,
которые не критичны для работы системы (например, GUI). Некото10
Стр.10