# Задание 1
find /opt -type f -name "*.txt"
locate os-release
#!/bin/bash
for i in {1..10}; do echo $i; done
# Задание 2
git checkout -b new-branch
git push origin new-branch
git add deleted-file
git commit -m "Remove file"
git push origin new-branch
# Добавить имя файла в .gitignore → git status покажет что не отслеживается
Ответы на экспресс-опрос
Lecture 9
Команда для поиска файлов:find — ищет в реальной файловой системе рекурсивно.
Параметры find:-name "pattern" (по имени), -type f/d/l (по типу), -size +1M (по размеру), -mtime -5 (по дате изменения), -exec CMD {} \; (выполнить команду).
Быстрый поиск по базе:locate.
locate vs find:locate ищет по базе данных (быстро, но может быть устаревшим); find сканирует диск прямо сейчас (медленнее, всегда актуально).
Обновить базу locate:sudo updatedb.
Цикл for:for i in {1..5}; do echo $i; done
Цикл while:COUNT=1; while [ $COUNT -le 5 ]; do echo $COUNT; ((COUNT++)); done
Lecture 10
Ветви в Git: набор коммитов в хронологическом порядке; позволяют изолировать изменения и работать параллельно.
Операции с ветками: создать (git branch name), переключиться (git checkout name), создать и переключиться (git checkout -b name), удалить (git branch -d name), переименовать (git branch -m old new).
Переключиться на ветку:git checkout branch-name или git switch branch-name (современный синтаксис).
.gitignore: файл со списком шаблонов, которые Git игнорирует. Шаблоны: *.log — все .log; node_modules/ — директория; !important.log — исключение из правила.
clone vs fork:clone — локальная копия репозитория, нужны права для push; fork — копия на GitHub, можно пушить и отправлять Pull Request в оригинал.
Объединить ветки:git merge branch-name (из основной ветки) или git rebase main (линейная история).
Решение задания 1
# 1. Найти все .txt файлы в /opt
find /opt -type f -name "*.txt"
# 2. Найти путь к файлу os-release
locate os-release
# 3. Bash-скрипт с циклом for (вариант 1)
#!/bin/bash
for i in {1..10}; do
echo $i
done
# Вариант 2 (C-стиль)
#!/bin/bash
for ((i = 1; i <= 10; i++)); do
echo $i
done
Решение задания 2
# 1. Создать новую ветку и переключиться на неё
git checkout -b my-feature
# 2. Отправить новую ветку в удалённый репозиторий
git push origin my-feature
# 3. Удалить файл и зафиксировать изменения
rm unwanted-file.txt
git add unwanted-file.txt # или: git rm unwanted-file.txt
git commit -m "Remove unwanted file"
# 4. Отправить ветку с изменениями
git push origin my-feature
# В коммите на GitHub увидите: "Remove unwanted file" с пометкой удаления
# 5. Добавить файл в .gitignore
echo "secret.env" >> .gitignore
touch secret.env
git status
# => secret.env показан как "ignored" (не отслеживается)