Загрузка данных
Принял. Вот часть 1 с твоими данными, вводи по порядку:
mkdir Koltunov
touch Koltunov/first.txt
echo "Koltunov_Vlad" >> Koltunov/first.txt
cat Koltunov/first.txt
ls -F --color -l Koltunov
ls -a -i Koltunov
cd Koltunov
cp first.txt copy1.txt
ls -a -i
mv first.txt orig.txt
ls -a -i
ln orig.txt copy2.txt
ls -a -i
ln -s orig.txt orig.lnk
ls -a -i
cat orig.txt
cat copy2.txt
cat orig.lnk
Скрины нужны после каждого ls -a -i и после трёх cat в конце.
Если у тебя в препода-шаблоне имя пишется как «Фамилия_Имя» кириллицей, замени Koltunov_Vlad на Колтунов_Влад. Но если русская раскладка в терминале глючит, оставь латиницу.
Закончишь, кидай скрины, и я распишу ответы. Если что-то выдаст ошибку, тоже скинь, разберёмся.
Скрины я сам сделать не могу, но твои вижу и читаю. Схема такая: ты вводишь команды руками, кидаешь мне скрин вывода, а я пишу текст ответов на вопросы из задания.
В файлах две практики: ФС Linux часть 1 (файлы и ссылки) и часть 2 (диск). Ниже команды по порядку. Знак $ и всё до него вводить не нужно, это просто приглашение терминала.
Часть 1
Вместо Familiya пиши свою фамилию латиницей, а вместо Familiya_Imya фамилию и имя:
mkdir Familiya
touch Familiya/first.txt
echo "Familiya_Imya" >> Familiya/first.txt
cat Familiya/first.txt
ls -F --color -l Familiya
ls -a -i Familiya
cd Familiya
cp first.txt copy1.txt
ls -a -i
mv first.txt orig.txt
ls -a -i
ln orig.txt copy2.txt
ls -a -i
ln -s orig.txt orig.lnk
ls -a -i
cat orig.txt
cat copy2.txt
cat orig.lnk
Скрины нужны после каждого ls -a -i и после трёх cat в конце. Терминал не очищай, чтобы всё влезало на экран.
Ответы на контрольные вопросы:
Файлы создают командами touch, cat > файл или echo "текст" > файл.
Дописать в конец файла можно через >>, например echo "текст" >> файл или cat файл1 >> файл2.
Чтобы создать скрытый файл, нужно начать имя с точки, например touch .myfile.
Скрытые файлы показывает ls -a.
Жёсткая ссылка — это второе имя того же файла с тем же inode. На несуществующий файл её не сделать. Символьная ссылка — отдельный файл со своим inode, который хранит путь к другому файлу. На несуществующий файл её сделать можно.
cat выводит содержимое файла, а ls показывает содержимое каталога.
Часть 2, задание I
df -h
du -sh /* 2>/dev/null
find ~/ -type f -size +100M
find /var/log -type f -name "*.log"
ls -lh /var/log/*.log
df -h
cd /var/log
ls -lh
sudo rm -v *.gz
df -h
ls -lh /tmp
rm -rf /tmp/*
ls -lh /tmp
df -h
lsblk
sudo fsck /dev/sda1
du -sh /* работает долго, просто подожди.
На sudo попросит пароль. Когда набираешь пароль, символы не видны, это нормально.
В fsck имя диска может быть другим (например nvme0n1p1). Посмотри в lsblk, какой раздел стоит у /. Если выдаст «is mounted», это нормальный результат, на скрине его и покажешь.
Если в /var/log нет файлов .gz, команда выдаст ошибку. Покажи её на скрине, я это обыграю в ответе.
Скрипт (задание 5):
nano ~/clean_logs.sh
Внутри вводишь:
#!/bin/bash
echo "Очистка старых логов в /var/log"
rm -vf /var/log/*.gz
echo "Очистка завершена"
df -h
Сохраняешь: Ctrl+O, Enter, Ctrl+X. Потом:
chmod +x ~/clean_logs.sh
./clean_logs.sh
Если русские буквы не набираются, пиши в echo латиницей, на оценку это не влияет. Без sudo скрипт может не удалить файлы из /var/log, тогда запусти sudo ./clean_logs.sh.
Часть 2, задание II
Сначала подготовка:
mkdir ~/disk_test
cd ~/disk_test
dd if=/dev/zero of=file_10mb.txt bs=1M count=10
dd if=/dev/zero of=file_50mb.txt bs=1M count=50
echo "Тестовый файл 1" > small_file1.txt
echo "Тестовый файл 2" > small_file2.txt
mkdir nested_dir
dd if=/dev/zero of=nested_dir/file_20mb.txt bs=1M count=20
Потом сами задания:
df -h
df -h /
df -h | sort -k 5 -r
du -sh ~/disk_test
du -h ~/disk_test | sort -h
du -h ~/disk_test --max-depth=1 | sort -h
find ~/disk_test -type f -size +10M
find ~/disk_test -type f -size +40M
find ~/disk_test -type f -size +40M -exec rm -v {} \;
du -sh ~/disk_test
Для -exec rm -v {} \; нужны именно фигурные скобки и обратный слэш.
Начни с части 1, это пять минут. Как только будут скрины, кидай, и я распишу ответы текстом. Пришли также фамилию и имя, чтобы я вписал их в оформление.