Структура курса
Часть1:
Что такое Linux?
UNIX - это Linux? Или Linux – это Unix?
GNU, GNU/Linux, GPL
Зачем нам вообще нужен Linux?
Главное правильно выбрать критерий оценки
Дистрибутивы
Список дистрибутивов
Популярность дистрибутивов
Server vs. Desktop
Часть2:
CLI (command line interface)
SSH
SSH/SFTP клиенты
putty
Cтрока приглашения
uname
Ключи: uname –a
help
man
info
ECHO
Создание пустого файла
Часть3
Корневой каталог /
cd
ls
ls + ключи
ls + ключи
Структура каталогов файловой системы
Каталоги
Каталоги
Каталоги
Каталоги
Текущий каталог, pwd
Родительский каталог
Домашний каталог
Абсолютный и относительный путь
Абсолютный и относительный путь
Типы файлов
Часть 4:
cp – копирование
mv – перемещение
mkdir – создание новой директории
rm – удаление
cat – чтение файлов
find - поиск
Информации об операционной системе
Ifconfig, ip addr, /etc/resolv.conf
Мониторинг потребления RAM
Мониторинг потребления ресурсов CPU
Diskspace
Время работы системы
Переменные окружения, $PATH
Clear, reset, history
Перезагрузка, выключение
Thank you. Good luck
813.20K

Что такое Linux

1.

Linux Essentials for QA
Workshop 1. Basics

2. Структура курса

• Workshop 1. Basics
• Workshop 2. Text Editors, Rights and
Redirection
• Workshop 3. Networks
• Workshop 4. Packages and Processes
• Test
Wiki: Linux Essentials for QA

3. Часть1:

1.
2.
3.
4.
5.
Что такое Linux?
Зачем он нам нужен?
Дистрибутивы. Какие бывают и где взять?
Что такое GNU и GPL?
UNIX - это Linux?

4. Что такое Linux?

Linux - это операционная система.
Сам по себе Linux - это ядро системы,
соответствующее стандартам POSIX.
Ядро Linux поддерживает многозадачность,
виртуальную память, динамические библиотеки,
отложенную
загрузку,
производительную
систему управления памятью и многие сетевые
протоколы.
Ядро
также
поддерживает
загружаемые модули (например, драйверы).

5. UNIX - это Linux? Или Linux – это Unix?

Основное, что нам сейчас надо знать о UNIX,
это то, что Linux != Unix.
Unix - это отдельная операционная система.
Linux - Unix-подобная операционная система.

6. GNU, GNU/Linux, GPL

GNU — свободная Unix-подобная
операционная система, разрабатываемая
Проектом GNU.
Ядро Linux и утилиты GNU = GNU/Linux.
GPL (GNU General Public License) — лицензия
на свободное программное обеспечение.

7. Зачем нам вообще нужен Linux?

W3school statistic:
http://www.w3schools.com/browsers/browsers_os.asp

8. Главное правильно выбрать критерий оценки

Среди суперкомпьютеров доля OS Linux > 90%
Среди веб серверов доля Linux составляет примерно треть: 36.2%

9. Дистрибутивы

Дистрибутив Linux - общее определение операционных систем,
использующих ядро Linux, готовых для конечной установки на
пользовательское оборудование.
Кроме ядра и, собственно, операционной системы,
дистрибутивы обычно содержат широкий набор приложений,
таких как редакторы документов и таблиц, мультимедиапроигрыватели, системы для работы с базами данных, и т. д.

10. Список дистрибутивов

http://futurist.se/gldt/ - временное дерево
появления дистрибутивов.
https://en.wikipedia.org/wiki/List_of_Linux_distributio
ns - список дистрибутивов.

11. Популярность дистрибутивов

http://distrowatch.com/ - общее ранжирование
дистрибутивов Linux по популярности
Ранжирование среди веб серверов:
(http://w3techs.com/technologies/details/os-linux/all/all)

12. Server vs. Desktop

Отличие обычно в числе сопутствующего программного
обеспечения, доступного сразу после установки OS.

13. Часть2:

1.
2.
3.
4.
Терминал
SSH
help, man, info
echo

14. CLI (command line interface)

Интерфейс командной строки (англ. Command
Line Interface, CLI). - управление программами с
помощью команд.
Данный интерфейс встроен в ядро системы, он
будет доступен, даже если графический
интерфейс не запустится.
http://help.ubuntu.ru

15. SSH

SSH - cетевой протокол, позволяющий
производить удаленное подключение к OS и
осуществлять управление ею через CLI.
https://help.ubuntu.com/community/SSH
http://support.suso.com/supki/SSH_Tutorial_for
_Linux

16. SSH/SFTP клиенты

Неполный список ssh клиентов:
https://ru.wikipedia.org/wiki/SSH
1. putty (https://en.wikipedia.org/wiki/PuTTY,
http://www.chiark.greenend.org.uk/~sgtatha
m/putty/)
2. WinSCP (https://winscp.net/eng/index.php)
3. MobaXTerm
(http://mobaxterm.mobatek.net/)

17. putty

18. Cтрока приглашения

root@AdaptationQA01:~#
root – имя пользователя, под учетной записью
которого осуществлен вход в систему
AdaptationQA01 – короткое сетевое имя машины
~ – текущая директория (~),
# или $ - он показывает, что оболочка командной
строки была запущена привилегированным
пользователем root (‘#’) или обычным пользователем
(‘$’)

19. uname

Команда uname выводит информацию о системе.
root@AdaptationQ01:~# uname
Linux

20. Ключи: uname –a

root@AdaptationQA01:~# uname -a
Linux AdaptationQA01 3.13.0-29-generic #53-Ubuntu SMP Wed Jun 4
21:00:20 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
uname
-a, --all
print all information
-s, --kernel-name
print the kernel name
-n, --nodename
print the network node hostname
-r, --kernel-release
print the kernel release
-v, --kernel-version print the kernel version
-m, --machine
print the machine hardware name
-p, --processor
print the processor type or "unknown"
-i, --hardware-platform
print the hardware platform or
"unknown"
-o, --operating-systemprint the operating system

21. help

Большинство команд имеют встроенную
справку. Вызывается обычно ключом --help
root@AdaptationQA02:~# uname --help
-a, --all
print all information
-s, --kernel-name
print the kernel name
-n, --nodename
print the network node hostname
-r, --kernel-release print the kernel release
-v, --kernel-version print the kernel version
-m, --machine
print the machine hardware name
-p, --processor
print the processor type or "unknown"
-i, --hardware-platform
print the hardware platform or
"unknown"
-o, --operating-system
print the operating system

22. man

man — команда, предназначенная для
форматирования и вывода справочных страниц
(https://en.wikipedia.org/wiki/Man_page)
Формат использования:
man <command_name>

23. info

info - альтернатива man.
Для получения информации по отдельной команде
надо задать в командной строке info с параметром,
являющимся именем интересующей команды.
Например:
root@AdaptationQA01:~# info uname

24. ECHO

Все, что делает команда echo, - выводит текст,
переданный ей в качестве аргумента на
стандартное устройство вывода. В нашем случае
- в консоль.
# echo A1QA
A1QA
# echo "Linux Essentials for QA"
Linux Essentials for QA
Зачем: обычно используется в скриптах для
вывода необходимой информации в консоль

25. Создание пустого файла

Для создания пустого файла используется
команда touch file1.
Можно командой echo 'Hello, world' > file2
или cat > file3 + <Ctrl>+<D> или <Ctrl>+<C>.
С помощью консольных текстовых редакторов vi, nano
либо команд перенаправления вывода

26. Часть3

1. Навигация по файловой системе: cd.
2. Корневой каталог, текущий каталог,
родительский каталог, домашний каталог.
3. Абсолютный и относительный путь.
4. Навигация по файловой системе: ls.
5. Структура каталогов файловой системы

27. Корневой каталог /

Файловая система Linux имеет единую
древовидную структуру, в основе которой
лежит корневой каталог.
Корневой каталог - это уровень файловой
системы, выше которого по дереву каталогов
подняться невозможно. В Linux корневой
каталог обозначается как / (именно “/” - слэш, а
не “\” - обратный слэш).

28. cd

Навигация по файловой системе осуществляется
командой cd. В качестве параметра команде
передается путь к директории, в которую пользователь
желает перейти. Пример: пользователь хочет перейти в
директорию /var/log
root@AdaptationQA02:~# cd /var/log
root@AdaptationQA02:/var/log#
Переход в одну из папок каталога пользователя
root@AdaptationQA02:/# cd /home/user01/workshop1/
root@AdaptationQA02:/home/user01/workshop1#

29. ls

Для просмотра содержимого текущей
директории используется команда ls.
root@AdaptationQA02:workshop1# ls
file1 file2 file3 file4 file5 folder1_448 folder2_25896
folder3_11089
Просмотр содержимого директории
folder1_448
root@AdaptationQA02:workshop1# ls folder1_448
123abc folder1-1

30. ls + ключи

У ls довольно много ключей. Полный список смотрим в help, man или info
Некоторые полезные ключи:
-a, --all — выдавать все файлы в каталогах, включая скрытые файлы,
начинающиеся с точки.
-l, --format=long, --format=verbose — в дополнении к имени каждого
файла, выводятся тип файла, права доступа к файлу, количество ссылок
на файл, имя владельца, имя группы, размер файла в байтах и временной
штамп (время последней модификации файла, если не задано другое).
Для файлов с временем больше чем 6 месяцев назад или больше, чем 1
час в будущее, временной штамп содержит год вместо времени дня.
-h, --human-readable

31. ls + ключи

root@AdaptationQA02:workshop1# ls folder1_448/ -l -a -h
total 0
drwxrwxrwx 1 root root 30 Dec 17 15:10 .
drwxrwxrwx 1 root root 124 Dec 17 15:10 ..
drwxr-xr-x 1 root root 0 Dec 17 15:10 123abc
drwxr-xr-x 1 root root 128 Dec 17 15:10 folder1-1
Параметры можно группировать (справедливо не только для команды ls)
root@AdaptationQA02:workshop1# ls folder1_448 -lah
total 0
drwxrwxrwx 1 root root 30 Dec 17 15:10 .
drwxrwxrwx 1 root root 124 Dec 17 15:10 ..
drwxr-xr-x 1 root root 0 Dec 17 15:10 123abc
drwxr-xr-x 1 root root 128 Dec 17 15:10 folder1-1

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

root@AdaptationQA02:~# cd /
root@AdaptationQA02:/# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
• http://rus-linux.net/MyLDP/file-sys/fhs-struktura-katalogovlinux.html
• http://citforum.ru/operating_systems/linux_sys/linuxsag_05.shtml
• https://ru.wikipedia.org/wiki/FHS

33. Каталоги

• /bin – основные двоичные
пользовательские модули
• /boot – файлы статической загрузки
• /cdrom – исторически выбранная точка
монтирования для CD-дисков
• /dev – файлы устройств
• /etc – конфигурационные файлы

34. Каталоги


/home – домашние каталоги
/lib – основные разделяемые библиотеки
/lost+found – восстановленные файлы
/media – подключаемые носители

35. Каталоги


/mnt – точки временного монтирования
/opt – вспомогательные пакеты
/proc – файлы ядра и процессов
/root – домашний каталог пользователя
root
• /run – файлы состояния приложений
• /sbin –двоичные файлы
администрирования системы

36. Каталоги

• /srv – данные сервисных служб
• /tmp – временные файлы
• /usr – пользовательские двоичные файлы и
данные, используемые только для чтения
• /var – файлы для хранения изменяющихся
данных

37. Текущий каталог, pwd

Текущий каталог - тот, где сейчас находится
пользователь. С ним работает ОС, если ей не
указать другого каталога.
Полный путь можно узнать командой pwd. Также
путь отображается в строке приветствия
root@AdaptationQA02:workshop1# pwd
/home/user01/workshop1
Текущий каталог обозначается точкой (.)
root@AdaptationQA02:workshop1# cd .
root@AdaptationQA02:workshop1#

38. Родительский каталог

Родительский каталог - тот, что расположен
на уровень выше. Т.е. это тот каталог, в
котором находится текущий. Можно
обозначить двумя точками (..). Пример
перехода в родительский каталог:
root@AdaptationQA02:/home/user01/workshop1# cd ..
root@AdaptationQA02:/home/user01#

39. Домашний каталог

Домашний каталог - это личный каталог
пользователя в операционной системе, где
находятся его данные, настройки и т. д. Он
находится в директории /home и имеет имя
аналогичное имени пользователя системы.
Обозначается знаком ~
root@AdaptationQA02:/home/user01# cd ~
root@AdaptationQA02:~# pwd
/root

40. Абсолютный и относительный путь

Путь может быть абсолютным или
относительным. Полный или абсолютный
путь — это путь, который указывает на одно
и то же место в файловой системе, вне
зависимости от текущей рабочей директории
или других обстоятельств. Полный путь всегда
начинается с корневого каталога.
Пример: /usr/local/share

41. Абсолютный и относительный путь

Относительный путь представляет собой путь
по отношению к текущему рабочему каталогу
пользователя. Никогда не начинаются с /.
Примеры задания относительного пути:
• использование “.” или “..”
cd ../usr/share/zoneinfo
• путь, в котором упоминаются только файлы и
папки из текущей папки
cd tmp/

42. Типы файлов

“d” – каталог
“l” – символьная ссылка
“-” – простой файл
-rw-rw-r-- 1 user01 user01 2857 Dec 16 2015 file1
-rw-rw-r-- 1 user01 user01 2854 Dec 16 2015 file2
-rw-rw-r-- 1 user01 user01 2859 Dec 16 2015 file3
-rw-rw-r-- 1 user01 user01 2856 Dec 16 2015 file4
-rw-rw-r-- 1 user01 user01 2855 Dec 16 2015 file5
drwxrwxr-x 1 user01 user01 30 Jun 21 15:38 folder1_448
drwxrwxr-x 1 user01 user01 30 Jun 21 15:38 folder2_25896
drwxrwxr-x 1 user01 user01 30 Jun 21 15:38 folder3_11089

43. Часть 4:

• Основные операции над файлами и
каталогами
• Просмотр информации о системе
• Переменные окружения
• Clear, reset, history
• Перезагрузка, выключение

44. cp – копирование

Формат:
cp <что_копируем> <куда_копируем>
# cp /home/user01/workshop1/file1
/home/user01/copy-file
Чтобы скопировать всю папку, следует
использовать команду cp с параметром -r
(или -R).
# cp -r /home/user01/workshop1/folder1_448/
/home/user01

45. mv – перемещение

Формат:
mv <что_перемещаем> <куда_перемещаем>
Пример:
# mv /home/user01/workshop1/file1
/home/user01/move-file
Перемещение папки:
# mv /home/user01/workshop1/folder2_25896/
/home/user01
Переименование:
# mv file1 file-renamed

46. mkdir – создание новой директории

Формат:
mkdir <путь_к_создаваемой_директории>
Пример:
# mkdir /home/user2/workshop1/my_folder
Важно, чтобы существовали все родительские
каталоги для “my_folder”

47. rm – удаление

Формат:
rm <что_удалять>
Пример:
# rm file5 - удаляет файл file5
# rm -rf folder3_11089/ - удаляет папку
folder3_11089 со всем ее содержимым без
запроса подтверждения.

48. cat – чтение файлов

Формат:
cat <путь_к_файлу>
Пример:
# cat /home/user2/workshop1/file2
Пример:
# cat /home/user2/workshop1/file2
~/workshop1/file3
Вопрос: что при этом происходит с file1 и file2?

49. find - поиск

Формат:
find <где_искать> <параметр> <значение>
Пример:
# find /home/user2/ -name file10
/home/user01/workshop1/folder1_448/folder1-1/file10
/home/user01/workshop1/folder2_25896/folder1-1/file10
/home/user01/workshop1/folder3_11089/folder1-1/file10
# find /home/user01/ -type d -name folder1-1
Пример:
# find /var/log -type f -name application.log

50. Информации об операционной системе

• uname
• cat /etc/*release*
• lsb_release

51. Ifconfig, ip addr, /etc/resolv.conf

• Ifconfig
• Ip addr show (ip address show)
• cat /etc/resolv.conf

52. Мониторинг потребления RAM

• cat /proc/meminfo
• free
# free
total
Mem:
494556
-/+ buffers/cache:
Swap: 4194300
used
free
326932 167624
154544 340012
6644 4187656
shared buffers cached
32
8 172380

53. Мониторинг потребления ресурсов CPU

• Данные о процессоре могут быть
почерпнуты из файла /proc/cpuinfo
• Файл /proc/loadavg хранит среднюю
загрузку процессора за последние 1, 5, и 15
минут
• top

54. Diskspace

df выводит информацию о свободном - занятом
месте на дисках. Ключ -h позволяет выводить
размеры в удобном для восприятия виде.

55. Время работы системы

Команда uptime выводит время, прошедшее с
момента последней перезагрузки, число
подключенных пользователей и среднюю
загрузку

56. Переменные окружения, $PATH

Окружение (environment) или среда - это
набор пар переменная=значение,
доступный каждому пользовательскому
процессу.
Вывод – командами env или envprint
Пример: HOME=/root
Пример: cd $HOME – переход в домашнюю
папку текущего пользователя.

57. Clear, reset, history

clear – очистка окна консоли
reset – “сброс” консоли
history – вывод истории вводимых
пользователем команд.

58. Перезагрузка, выключение

Стандартно для перезагрузки или выключения компьютера используется
shutdown. Команда имеет много опций, позволяющих выполнить
перезагрузку в определенное время, быструю перезагрузку без проверки
файловой системы, имитировать и отменять уже запущенный (ждущий
своего времени) процесс перезагрузки.
Полный список опций можно получить по shutdown --help
Для немедленной перезагрузки (restart) команда будет выглядеть так:
shutdown -r now
Для выключения питания (halt):
shutdown -h now
В большинстве дистрибутивов можно использовать короткие команды:
reboot - перезагрузка
halt - выключение

59. Thank you. Good luck

[email protected]
spoky89
English     Русский Правила