parent
58205c919f
commit
ec85c78e54
@ -1,12 +1,124 @@ |
||||
# Домашние задания по Unix |
||||
## Домашнее задание 1 |
||||
|
||||
Этот репозиторий содержит домашние задания к курсу Unix. |
||||
### 1. Rand (2 балл) |
||||
|
||||
## Процесс сдачи |
||||
Написать команду, которая будет создавать файл rnd.txt в текущем каталоге. |
||||
|
||||
[Инструкция](instruction.md) -- абсолютно аналогичная инструкция будет и на |
||||
Python. |
||||
Размер файла rnd.txt -- случайное число байт. |
||||
|
||||
## Сроки сдачи |
||||
Файл должен быть полностью заполнен случайными байтами. |
||||
|
||||
**Дедлайны:** см. в README в соответствующей ветке. |
||||
Размер можно вычислять заранее, запоминая результат в переменной. |
||||
|
||||
Используйте `dd`, переменную окружения `RANDOM` (`echo $RANDOM`, и см. `bash(1)`), |
||||
а также `/dev/urandom`. |
||||
|
||||
### 2. Сумма (1 балл) |
||||
|
||||
Посчитайте сумму значений в третьем столбце файла `digits.txt`. |
||||
|
||||
Используйте `paste`, чтобы сформировать выражение и `bc`, чтобы его вычислить. |
||||
Не забывайте про process subsctitution `$()` |
||||
|
||||
### 3. Посчитаемся (1 балл) |
||||
|
||||
Посчитайте количество регулярных файлов в текущем каталоге, |
||||
измененных больше 30 минут и меньше суток назад и имеющих расширение `.txt`. |
||||
|
||||
Для решения используйте `find` и `wc`. |
||||
|
||||
### 4. ping (1 балл) |
||||
|
||||
В файле `ips.txt` записаны IP-адреса (по одному на каждой строчке). |
||||
|
||||
Написать скрипт, считывающий IP-адреса из этого файла, пингует (команда `ping`) |
||||
их и записывает результат в `res.txt`, а ошибки -- в `err.txt`. |
||||
|
||||
Подсказка: |
||||
```bash |
||||
while IFS= read -r line; do |
||||
echo "Text read from file: $line" |
||||
done < my_filename.txt |
||||
``` |
||||
|
||||
### 5. Четное-нечетное (1 балл) |
||||
Введите целое число и проверьте, является ли оно чётным или нечётным. |
||||
Скрипт должен запрашивать число, и выводить **EVEN** или **ODD** соответственно. |
||||
|
||||
### 6. Палиндром (1 балл) |
||||
Написать скрипт, который проверяет, является ли введенная строка палиндромом. |
||||
Скрипт должен запрашивать строку, и выводить **YES** или **NO** соответственно. |
||||
|
||||
### 7. factor (1 балл) |
||||
|
||||
Написать скрипт, который раскладывает на простые множители все числа из |
||||
заданного в первом параметре скрипта файла и записывает результат в другой файл, |
||||
заданный во втором параметре. Каждое число из разложения необходимо вывести |
||||
столько раз, сколько оно там встречается (см. пример для числа 1236). |
||||
|
||||
Пример входных данных: |
||||
|
||||
123 |
||||
15123 |
||||
1236 |
||||
97 |
||||
|
||||
Пример выходных данных: |
||||
|
||||
123: 3 41 |
||||
15123: 3 71 71 |
||||
1236: 2 2 3 103 |
||||
97: 97 |
||||
|
||||
### 8. find (1 балл) |
||||
|
||||
Переименовать все файлы в текущем каталоге (с учетом всех подкаталогов рекурсивно), |
||||
имеющие расширение не .sh и измененные не более двух суток назад и не менее суток |
||||
назад, добавив в начало имени файла символ '\_'. |
||||
|
||||
Подсказка: |
||||
|
||||
``` |
||||
find . -print0 | |
||||
while IFS= read -r -d '' line |
||||
do |
||||
echo $line |
||||
done |
||||
``` |
||||
|
||||
|
||||
### 9. cal (задача с маленькой звездочкой, 2 балла) |
||||
|
||||
С помощью команд `cal`, `cat` и `grep` вывести текущее число. Выводить месяц и |
||||
год необязательно, но можно. |
||||
|
||||
Выводить весь календарь и утверждать, что условие задания выполнено запрещается. |
||||
|
||||
### 10. Зоопарк (1 балл) |
||||
|
||||
Имеется файл, содержащий сведения о животных в зоопарке: |
||||
|
||||
id;name;h;strike;color |
||||
1;Chicken;12;0.38;Yellow |
||||
2;Goose;18;0.11;Green |
||||
3;Orca;8;0.81;Yellow |
||||
4;Porcupine;19;0.74;Yellow |
||||
5;Bear;23;0.14;Green |
||||
6;Turtle;4;0.08;Black |
||||
|
||||
Требуется организовать неэтичные бои без правил. Для этого нужно вывести имя |
||||
животного (`name`) и тангенс его ударной силы (`strike`) |
||||
(именно тангенс, не синус и косинус). |
||||
|
||||
При этом интересуют нас только те животные, |
||||
которые не выбыли из турнира, то есть те, перед которыми в списке было нечетное число животных того |
||||
же цвета (`color`); |
||||
|
||||
Пример вывода: |
||||
|
||||
Orca 1.0505 |
||||
Bear 0.1409 |
||||
|
||||
Примечания: |
||||
* Разрешено использовать только `awk`. |
||||
* Тангенс нужно выводить с точностью в четыре знака после запятой. |
||||
|
Loading…
Reference in new issue