# Linux Basics Модуль Занятие 1
## Основы OS Linux
### Практическая работа 1.1 Работа в командной строке
Задания:
1. Посмотреть под каким пользователем в системе Linux.

2. Перейти в корневой каталог.

3. Посмотреть содержимое каталога.

4. Определить типы команд ls, cd.

5. Посмотреть из корневого каталога содержимое директории Home.

6. Перейти в директорию /tmp.

7. Создать директорию /pt.

8. Создать 3 текстовых документа 1.txt 2.txt 3.txt.

9. Изменить или добавить содержимое текстового документа с помощью редакторов nano и vim.
9.1 Nano


9.2 Vim


10. Скопировать и переименовать директорию с файлами.


11. Заархивировать директорию.

12. Разархивировать директорию.

13. Посмотреть содержимое домашней директории и каталога usr одной командой.

14. Посмотреть содержимое каталога в обратном порядке.

15. Посмотреть права на директорию.

16. Посмотреть права на текстовые файлы.

17. Переместить и переименовать один текстовый файл в директорию /tmp.


18. Создать новую директорию, в ней создать новый текстовый документ, переместить из директории /tmp файл в новую директорию с заменой файла и запросом на его изменение.

19. Определить местоположение данного исполняемого файла ls, cd.


20. Вывести краткое описание команды и утилиты ls, nano, rm.

21. Создать символические ссылки.

22. Создать символическую ссылку в никуда, продемонстрировать её.

23. Создать прямые ссылки.

24. Создать собственную команду, которая будет использовать следующее: cd /usr; ls; cd - , с помощью alias.



25. С помощью команды cat написать любой текст и записать его в текстовый файл.

26. Удалить один текстовый файл

27. Создать пустую директорию и удалить её

28. Удалить директорию с 3-я текстовыми файлами

29. Создать пользователя

30. Поменять пароль нового пользователя

31. Найти текстовый документ с помощью команд Find и Grep

31. Воспользоваться логическими 'и' и 'или' как пример использовать команду ping


### Практическая работа 1.2 GREP
1. Посмотрим список всех пакетов, загруженных менеджерами пакетов для Python.
Используется команда `dpkg -l | grep -i python`, где:
+ dpkg -l - выводит список всех скачанных модулей
+ grep -i python - получает список модулей и отбирает только те, что содержат 'python' в любом регистре
Вывод:

2. Отчистим файл от комментариев, ставящися через знак '#'.
Используемая команда `grep –v "#" /etc/apache2/sites-available/default-ssl`
Аргумент `-v` указывает утилите игнорировать строки, которые начинаются со строки "#".
Вывод:

Строчек с комментариями не содержит
3. Найдем только нужные файлы по их названиям.
Используемая команда: `find . –name "*.mp3" | grep –i ABC | grep –vi "remix"`
+ find - команда поиска файлов (здесь используется поиск по имени, а именно по части, содержащей расширение файла - mp3)
+ ответ find передается команде grep -i ABC, которая выбирает композиции на основе названия группы
+ из ответа исключаются записи, содержащие 'remix'
Вывод:

4. Вывод контекста строки c одной из сторон.
Использование флагов -A и -B позволяет вывести строки после и перед найденной строкой.
Используемые команды: `ifconfig | grep –A 4 eth0`, `ifconfig | grep -B 2 UP`
+ после параметров нужно указывать число, которое означает максимальное количество строк, которые можно вывести
Вывод:

5. Вывод контекста строки.
Флаг -C работает также, как и флаг -A или -B, но выводит строки с обеих сторон от строки поиска
Команда: `ifconfig | grep –C 2 lo`
Вывод:

6. Счет количества совпадений (флаг -c)

7. Поиск строки с выводом ее номера в файле (флаг -n)

8. Рекурсивный поиск
Использование параметра -r позволяет проводить рекурсивный поиск по папкам и файлам в поисках нужной последовательности символов.
Использованная команда: grep -r -n function *
Вывод:

9. Поиск по всему шаблону (парамер -w)
В шаблон поиска можно включить проверку на то, найденная подстрока является отдельным словом. В файле представлены числа, при этом часть чисел - составная и состоит из названия цифр. Возможно найти все вхождения отдельных цифр, исключая составные числа.
Команда: grep -w "seven" a.txt
Вывод:

10. Испольльзуем zgrep
Используем zgrep, который производит поиск в файлах, запакованных в zip-архивы. Команда принимает в качестве файла только архивы, в остальном поведение схоже с командой grep.
Сначала создадим zip-архив с текстовым файлом, содержащим поисковое слово.

Далее произведем поиск через zgrep

### Практическая работа 1.3 Философия VIM
Скриншоты выполнения заданий с https://www.openvim.com/
1. 
2. 
3. 
4. 
5. 
6. 
7. 
8. 
9. 
10. 
11. 
12. 
13. 
14. 
15. 
16. 
17. 
18. 
19. 
20. 