---
# System prepended metadata

title: Linux. Практическая работа №1

---

# Linux. Практическая работа №1

## Практическая работа №1.1

### Цель работы:
Научиться работать в командной строке на уровне опытного пользователя.


**Чтобы не делать много скринов, буду помещать выполнение 3-4 заданий в один скрин.**


1. Посмотреть под каким пользователем в системе Linux.
2. Перейти в корневой каталог.
3. Посмотреть содержимое каталога.

![](https://i.imgur.com/dgppvBx.jpg)


4. Определить типы команд ls, cd.
5. Посмотреть из корневого каталога содержимое директории Home.
6. Перейти в директорию /tmp.
7. Создать директорию /pt.
8. Создать 3 текстовых документа 1.txt 2.txt 3.txt.

В 4-м задании тип команды ls - псевдоним, а cd - это внутренняя команда.
![](https://i.imgur.com/YobFSuH.jpg)



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

![](https://i.imgur.com/avYl1u0.jpg)

![](https://i.imgur.com/N8ZfqLz.jpg)

![](https://i.imgur.com/wxc7xg0.jpg)

10. Скопировать и переименовать директорию с файлами.
11. Заархивировать директорию.
12. Разархивировать директорию.

![](https://i.imgur.com/TbN6dAp.jpg)


13. Посмотреть содержимое домашней директории и каталога usr одной командой.
14. Посмотреть содержимое каталога в обратном порядке.
15. Посмотреть права на директорию.
16. Посмотреть права на текстовые файлы.

![](https://i.imgur.com/c0oLpj9.jpg)


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

![](https://i.imgur.com/irFDNWD.jpg)


19. Определить местоположение данного исполняемого файла ls, cd.
20. Вывести краткое описание команды и утилиты ls, nano, rm.

Для команды `cd` путь не вывелся, поскольку это внутренняя команда bash.

![](https://i.imgur.com/z28pknc.jpg)

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

Мягкая ссылка ведущая в никуда - ссылка, целевой файл которой отсутствует.

![](https://i.imgur.com/nfMkzW6.jpg)

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

Прямая ссылка - это по-сути обычный файл. Мы удаляем целевой файл, но содержимое ссылки не меняется.
![](https://i.imgur.com/yYqpKzz.jpg)

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

![](https://i.imgur.com/rsbVgJQ.jpg)


26. Удалить один текстовый файл
27. Создать пустую директорию и удалить её
28. Удалить директорию с 3-я текстовыми файлами

![](https://i.imgur.com/AQMx36b.jpg)

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

![](https://i.imgur.com/QVxVZNH.jpg)

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

![](https://i.imgur.com/w75Dp9L.jpg)

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

32.1 выполняются обе команды
32.2 вторая часть записана с ошибкой. Она не выполнилась.
32.3 и 32.4 выполняется только первая команда
![](https://i.imgur.com/qHDpOtD.jpg)


## Практическая работа №1.2

### Цель: Научиться базовым функциям команды GREP.


1. Вы проводите поиск в Интернете, и видите, что используются две разные версии Python, и вы не знаете, какая из них был установлен в вашей системе установщиком Ubuntu или Debian, и устанавливал ли он какие-либо дополнительные модули?

Для поиска выведем список всех установленных `deb` пакетов `dpkg -l` , а затем отфильтруем этот список в grep: `| grep -i python`

![](https://i.imgur.com/DKra3LG.jpg)

2. Допустим, у вас возникли проблемы с вашим веб-сервером Apache, и вы обратились к одному из многих форумов в сети с просьбой о помощи. Добрая душа, которая вам ответила, попросила вас отправить содержимое вашего файла `/etc/apache2/sites-available/default-ssl`. Разве вам не было бы легче, если бы вы могли просто удалить все закомментированные строки?

используем инвертированный вывод `grep -v "#" /etc/apache2/sites-available/default-ssl.conf` **с указанием типа файла .conf. Иначе не грепает**

![](https://i.imgur.com/RP3QPki.jpg)


3. Например, предположим, что у вас есть целая папка, полная музыкальных файлов разных форматов. Вы хотите найти все файлы `.mp3` у исполнителя ABC, но вы не хотите никаких ремиксов. Как поступить?

Выполнение команды `find . -name "*.mp3" | grep -i queen | grep -vi "remix"` выглядит более наглядно, если разбить эти действия по шагам

![](https://i.imgur.com/8baOeeH.jpg)


4. Как отобразить количество строк до или после строки поиска?

В нашем примере, при исполнении команды `ifconfig | grep -B 2 eth0
` перед шаблоном запроса нет строк. Поэтому вывелась только строка поиска

![](https://i.imgur.com/K6WXjkn.jpg)

5. Как вывести количество строк совпадения?

Не сразу понял суть команды. Немного изменил запрос и разбил исполнение по шагам.

![](https://i.imgur.com/2SvR6Pf.jpg)


6. Как выяснить количество совпадений?

![](https://i.imgur.com/rLxdWPr.jpg)


7. Как найти файлы по заданным номерам строк?

![](https://i.imgur.com/INFjJ15.jpg)

8. Произвести поиск рекурсивной строки во всех каталогах.

![](https://i.imgur.com/AUALwnW.jpg)

9. Произвести поиск строк в архивах файлах Gzip. (создать zip архив см.п.1.10)

Создадим архив и попробуем выполнить поиск по нему командой `zgrep`.
Как видно на скрине, при выполнении команды `grep` поиск в архиве не происходит.

![](https://i.imgur.com/MwXcwkw.jpg)


---

## Практическая работа №1.3

### Цель работы:
Научиться работать в VIM.

**3.1 Создание файла**
Создадим новый файл `newfile` и откроем его в vim

![](https://i.imgur.com/e7kLZPw.jpg)

![](https://i.imgur.com/ttV8exa.jpg)

Режимы визуального выделения:

v- посимвольный

![](https://i.imgur.com/hQRGJD1.jpg)


V- построчное выделение

![](https://i.imgur.com/Gz9TBdy.jpg)


Ctrl+v - блочное выделение

![](https://i.imgur.com/4DIshaz.jpg)

**3.2 Перемещение**

Не знаю как на скрине показать что я переместился например, на 3 слова используя клавишу w, а не просто двигая курсор стрелками. но могу написать, что на три слова сразу сместиться можно набрав на клавиатуре 3w.

**3.3 Поиск текста**

Простой поиск:
![](https://i.imgur.com/CbvLO4E.jpg)

Регистронезависимый поиск:
![](https://i.imgur.com/yCxRkHM.jpg)

Регистро зависимый поиск:
![](https://i.imgur.com/m8v5Z78.jpg)


**3.4 Редактирование**
3.4.1 Удаление текста
В каждой строке файла я использовал по одной команде:
x — удалить символ на позиции курсора (солово "новы" без последней буквы)
d — удалить в заданном командой перемещения направлении. dl (удалил букву в слове "вторая")
dd — удалить строку. Фразы "А это третья" в файле нет.
D — удалить все символы от положения курсора до окончания строки. Конец фразы "Мы будем работать с этим файлом" обрезан.

![](https://i.imgur.com/fduNChq.jpg)

r — заменить символ на позиции курсора (новые)
c — заменить в заданном командой перемещения направлении (заменил слово "вторая" на "пятая")
C — заменить до окончания строки (заменил "ья строчка" на "ий абзац")

![](https://i.imgur.com/tjdKobW.jpg)

3.4.2 Копирование и вставка

1 — установил курсор на слово файл, yb - скопировал предыдущее слово, перешел в конец строки, р - вставил слово.
2 - yy — скопировал всю строку
3 - p — вставил скопированную строку ниже текущей.
4 - yy — скопировал всю строку, P — вставил скопированную строку выше текущей.

![](https://i.imgur.com/3W9aXTR.jpg)

3.4.3 Дополнительные команды редактирования

Посмотрел, как выглядит "J — присоединить строку ниже к текущей". Это как убрать перенос строки.
Отмену действий, наверное сложно показать на одном скрине.

![](https://i.imgur.com/3zet76i.jpg)

3.5.1 Команды управления

Не буду портить файл, выйду без сохранения - :!q

![](https://i.imgur.com/Tl6tjQe.jpg)

**4. Заключение**

Скрин об успешном прохождении интерактива с [](https://www.openvim.com/) прилагаю

![](https://i.imgur.com/KCUh1S9.jpg)








