Слайд 1Workshop 1. Basics
Linux Essentials for QA
Слайд 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:
Что такое Linux?
Зачем он нам нужен?
Дистрибутивы. Какие бывают и
где взять?
Что такое GNU и GPL?
UNIX - это Linux?
Слайд 4Что такое Linux?
Linux - это операционная система.
Сам по себе Linux
- это ядро системы, соответствующее стандартам POSIX.
Ядро Linux поддерживает многозадачность, виртуальную память, динамические библиотеки, отложенную загрузку, производительную систему управления памятью и многие сетевые протоколы. Ядро также поддерживает загружаемые модули (например, драйверы).
Слайд 5UNIX - это Linux? Или Linux – это Unix?
Основное, что нам
сейчас надо знать о UNIX, это то, что Linux != Unix.
Unix - это отдельная операционная система.
Linux - Unix-подобная операционная система.
Слайд 6GNU, 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_distributions - список дистрибутивов.
Слайд 11
Популярность дистрибутивов
http://distrowatch.com/ - общее ранжирование дистрибутивов Linux по популярности
Ранжирование среди веб
серверов:
(http://w3techs.com/technologies/details/os-linux/all/all)
Слайд 12Server vs. Desktop
Отличие обычно в числе сопутствующего программного обеспечения, доступного сразу
после установки OS.
Слайд 13Часть2:
Терминал
SSH
help, man, info
echo
Слайд 14CLI (command line interface)
Интерфейс командной строки (англ. Command Line Interface, CLI). - управление
программами с помощью команд.
Данный интерфейс встроен в ядро системы, он будет доступен, даже если графический интерфейс не запустится.
http://help.ubuntu.ru
Слайд 15SSH
SSH - cетевой протокол, позволяющий производить удаленное подключение к OS и
осуществлять управление ею через CLI.
https://help.ubuntu.com/community/SSH
http://support.suso.com/supki/SSH_Tutorial_for_Linux
Слайд 16SSH/SFTP клиенты
Неполный список ssh клиентов: https://ru.wikipedia.org/wiki/SSH
putty (https://en.wikipedia.org/wiki/PuTTY, http://www.chiark.greenend.org.uk/~sgtatham/putty/)
WinSCP (https://winscp.net/eng/index.php)
MobaXTerm (http://mobaxterm.mobatek.net/)
Слайд 18Cтрока приглашения
root@AdaptationQA01:~#
root – имя пользователя, под учетной записью которого осуществлен вход
в систему
AdaptationQA01 – короткое сетевое имя машины
~ – текущая директория (~),
# или $ - он показывает, что оболочка командной строки была запущена привилегированным пользователем root (‘#’) или обычным пользователем (‘$’)
Слайд 19uname
Команда 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-system print the operating system
Слайд 21help
Большинство команд имеют встроенную справку. Вызывается обычно ключом --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
Слайд 22man
man — команда, предназначенная для форматирования и вывода справочных страниц (https://en.wikipedia.org/wiki/Man_page)
Формат
использования:
man
Слайд 23info
info - альтернатива man.
Для получения информации по отдельной команде надо
задать в командной строке info с параметром, являющимся именем интересующей команды. Например:
root@AdaptationQA01:~# info uname
Слайд 24ECHO
Все, что делает команда echo, - выводит текст, переданный ей в
качестве аргумента на стандартное устройство вывода. В нашем случае - в консоль.
# echo A1QA
A1QA
# echo "Linux Essentials for QA"
Linux Essentials for QA
Зачем: обычно используется в скриптах для вывода необходимой информации в консоль
Слайд 25Создание пустого файла
Для создания пустого файла используется команда touch file1.
Можно командой echo 'Hello, world' >
file2
или cat > file3 + + или +.
С помощью консольных текстовых редакторов vi, nano либо команд перенаправления вывода
Слайд 26Часть3
Навигация по файловой системе: cd.
Корневой каталог, текущий каталог, родительский каталог, домашний
каталог.
Абсолютный и относительный путь.
Навигация по файловой системе: ls.
Структура каталогов файловой системы
Слайд 27Корневой каталог /
Файловая система Linux имеет единую древовидную структуру, в основе которой
лежит корневой каталог.
Корневой каталог - это уровень файловой системы, выше которого по дереву каталогов подняться невозможно. В Linux корневой каталог обозначается как / (именно “/” - слэш, а не “\” - обратный слэш).
Слайд 28cd
Навигация по файловой системе осуществляется командой cd. В качестве параметра команде
передается путь к директории, в которую пользователь желает перейти. Пример: пользователь хочет перейти в директорию /var/log
root@AdaptationQA02:~# cd /var/log
root@AdaptationQA02:/var/log#
Переход в одну из папок каталога пользователя
root@AdaptationQA02:/# cd /home/user01/workshop1/
root@AdaptationQA02:/home/user01/workshop1#
Слайд 29ls
Для просмотра содержимого текущей директории используется команда 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
Слайд 30ls + ключи
У ls довольно много ключей. Полный список смотрим в
help, man или info
Некоторые полезные ключи:
-a, --all — выдавать все файлы в каталогах, включая скрытые файлы, начинающиеся с точки.
-l, --format=long, --format=verbose — в дополнении к имени каждого файла, выводятся тип файла, права доступа к файлу, количество ссылок на файл, имя владельца, имя группы, размер файла в байтах и временной штамп (время последней модификации файла, если не задано другое). Для файлов с временем больше чем 6 месяцев назад или больше, чем 1 час в будущее, временной штамп содержит год вместо времени дня.
-h, --human-readable
Слайд 31ls + ключи
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Структура каталогов файловой системы
http://rus-linux.net/MyLDP/file-sys/fhs-struktura-katalogov-linux.html
http://citforum.ru/operating_systems/linux_sys/linuxsag_05.shtml
https://ru.wikipedia.org/wiki/FHS
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
Слайд 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
Перезагрузка, выключение
Слайд 44cp – копирование
Формат:
cp
# cp /home/user01/workshop1/file1 /home/user01/copy-file
Чтобы скопировать всю
папку, следует использовать команду cp с параметром -r (или -R).
# cp -r /home/user01/workshop1/folder1_448/ /home/user01
Слайд 45mv – перемещение
Формат:
mv
Пример:
# mv /home/user01/workshop1/file1 /home/user01/move-file
Перемещение папки:
# mv
/home/user01/workshop1/folder2_25896/ /home/user01
Переименование:
# mv file1 file-renamed
Слайд 46mkdir – создание новой директории
Формат:
mkdir
Пример:
# mkdir /home/user2/workshop1/my_folder
Важно, чтобы существовали все
родительские каталоги для “my_folder”
Слайд 47rm – удаление
Формат:
rm
Пример:
# rm file5 - удаляет файл file5
#
rm -rf folder3_11089/ - удаляет папку folder3_11089 со всем ее содержимым без запроса подтверждения.
Слайд 48cat – чтение файлов
Формат:
cat
Пример:
# cat /home/user2/workshop1/file2
Пример:
# cat /home/user2/workshop1/file2 ~/workshop1/file3
Вопрос:
что при этом происходит с file1 и file2?
Слайд 49find - поиск
Формат:
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
Слайд 51Ifconfig, ip addr, /etc/resolv.conf
Ifconfig
Ip addr show (ip address show)
cat /etc/resolv.conf
Слайд 52Мониторинг потребления RAM
cat /proc/meminfo
free
# free
total used free shared buffers cached
Mem: 494556 326932 167624 32 8 172380
-/+ buffers/cache: 154544 340012
Swap: 4194300 6644 4187656
Слайд 53Мониторинг потребления ресурсов CPU
Данные о процессоре могут быть почерпнуты из
файла /proc/cpuinfo
Файл /proc/loadavg хранит среднюю загрузку процессора за последние 1, 5, и 15 минут
top
Слайд 54Diskspace
df выводит информацию о свободном - занятом месте на дисках. Ключ
-h позволяет выводить размеры в удобном для восприятия виде.
Слайд 55Время работы системы
Команда uptime выводит время, прошедшее с момента последней перезагрузки,
число подключенных пользователей и среднюю загрузку
Слайд 56Переменные окружения, $PATH
Окружение (environment) или среда - это набор пар переменная=значение,
доступный каждому пользовательскому процессу.
Вывод – командами env или envprint
Пример: HOME=/root
Пример: cd $HOME – переход в домашнюю папку текущего пользователя.
Слайд 57Clear, reset, history
clear – очистка окна консоли
reset – “сброс” консоли
history –
вывод истории вводимых пользователем команд.
Слайд 58Перезагрузка, выключение
Стандартно для перезагрузки или выключения компьютера используется shutdown. Команда имеет
много опций, позволяющих выполнить перезагрузку в определенное время, быструю перезагрузку без проверки файловой системы, имитировать и отменять уже запущенный (ждущий своего времени) процесс перезагрузки.
Полный список опций можно получить по shutdown --help
Для немедленной перезагрузки (restart) команда будет выглядеть так:
shutdown -r now
Для выключения питания (halt):
shutdown -h now
В большинстве дистрибутивов можно использовать короткие команды:
reboot - перезагрузка
halt - выключение
Слайд 59Thank you. Good luck
y.kazak@a1qa.com
spoky89