Linux
1. Основы Linux
Практические задания:
- Создай директорию
/home/user/testи добавь туда несколько файлов. - Измени права доступа так, чтобы только владелец мог читать и писать файлы.
- Перемести один из файлов в другую директорию, используя относительный путь.
- Установи текстовый редактор
vimи создай простой скрипт, который выводит "Hello, World!".
2. Управление процессами
Практические задания:
- Запусти несколько процессов (например, бесконечные циклы в bash).
- Найди эти процессы с помощью
ps aux | grep имя_процесса. - Отправь сигнал
SIGTERMодному из них, а затемSIGKILLдругому. - Создай зомби-процесс:
# В терминале 1: $ ./zombie.sh & # В терминале 2: $ ps aux | grep zombie
Убедись, что процесс имеет статус Z, и попробуй убить его родителя.
3. Файловая система
Практические задания:
- Создай новый диск (например, в VirtualBox) и смонтируй его в
/mnt/newdisk. - Создай хардлинк и симлинк для файла
/etc/passwd:
ln /etc/passwd /tmp/hardlink_passwd ln -s /etc/passwd /tmp/symlink_passwd
Проверь количество inode для оригинального файла и хардлинка:
ls -i /etc/passwd /tmp/hardlink_passwd
4. Управление памятью
1. Проверь текущее использование памяти:
free -h
2. Запусти стресс-тест для загрузки памяти:
stress --vm 1 --vm-bytes 512M --timeout 60s
Наблюдай за изменением показателей с помощью top или htop.
3. Исследуй логи системы после активации OOM Killer:
dmesg | grep -i kill
5. Сетевые настройки
Практические задания:
1. Настрой IP-адрес для интерфейса:
sudo ip addr add 192.168.1.100/24 dev eth0 sudo ip link set eth0 up
2. Проверь соединение с внешним сервером:
ping google.com traceroute google.com
6. Systemd и управление сервисами
Практические задания:
Создай простой сервис, который запускает скрипт каждые 5 минут:
1. Создай файл /etc/systemd/system/mytimer.service
[Unit] Description=My Timer Service [Service] ExecStart=/bin/bash /home/user/myscript.sh
2. Создай таймер /etc/systemd/system/mytimer.timer:
[Unit] Description=Run My Script Every 5 Minutes [Timer] OnCalendar=*:*:0/5 Persistent=true [Install] WantedBy=timers.target
sudo systemctl enable mytimer.timer sudo systemctl start mytimer.timer
4. Просмотри логи работы сервиса.
journalctl -u mytimer.service
7. Мониторинг производительности
Практические задания:
1. Запусти стресс-тест для загрузки CPU:
stress --cpu 4 --timeout 60s
8. Безопасность
Практические задания:
1. Настрой безопасное SSH-соединение:
ssh-keygen -t rsa -b 4096
Добавь публичный ключ на удаленный сервер:
ssh-copy-id user@remote_host
Отключи авторизацию по паролю в /etc/ssh/sshd_config:
PasswordAuthentication no
sudo systemctl restart sshd
- Linux Journey (https://linuxjourney.com/ )
- TLDP (The Linux Documentation Project): https://www.tldp.org/LDP/intro-linux/html/
- Official GNU Coreutils Manual: https://www.gnu.org/software/coreutils/manual/html_node/index.html
- Official man pages: ps(1), top(1), htop(1), kill(1)
- Linux Man Pages: https://man7.org/linux/man-pages/
- GeeksforGeeks Process Management: https://www.geeksforgeeks.org/operating-system-process-management/
- TLDP Filesystems: https://www.tldp.org/HOWTO/Filesystems-HOWTO.html
- GeeksforGeeks File System: https://www.geeksforgeeks.org/computer-graphics-file-system/
- Official mount/umount man pages
- Kernel.org Memory Management: https://www.kernel.org/doc/html/latest/admin-guide/mm/concepts.html
- Linux Insides Memory chapter: https://0xax.gitbooks.io/linux-insides/content/Memory/mem1.html
- TCP/IP Guide: https://www.tcpipguide.com/free/
- Network Sorcery Command Reference: https://www.networksorcery.com/enp/cmdline/index.htm
- Official networking man pages
- Official systemd documentation: https://www.freedesktop.org/software/systemd/man/
- DigitalOcean Community systemd guides: https://www.digitalocean.com/community/tags/systemd
- Brendan Gregg's Performance Tools: https://www.brendangregg.com/sysperfbook.html
- Linux Performance wiki: https://github.com/brendangregg/perf-tools
- CIS Benchmarks (free versions): https://www.cisecurity.org/cis-benchmarks/
- Official SELinux documentation: https://selinuxproject.org/page/Main_Page
- SSH Protocol Spec: https://www.openssh.com/specs.html
Дополнительные бесплатные ресурсы:
- Arch Linux Wiki (один из лучших источников): https://wiki.archlinux.org/
- nixCraft tutorials: https://www.cyberciti.biz/tips/
- Official GNU manuals: https://www.gnu.org/manual/manual.html
- Linux Command - interactive learning: https://linuxcommand.org/