LINUX KT2-1

BASH

Luua kasutaja <omaperekonnanimi> ja logida selle all süsteemi.
PS! Skripti pead looma ja käivitama selle kasutaja õigustes.
Loo jooksva kasutaja katalogis script nimega <omaperekonnanimi>.sh
Lisa scriptile käivitus õigused.
Esimene rida peab ütlema süsteemile et on vaja käivitada see skript shellis.
Teine rida peaks olema kommentaar sinu nime ja perekonnanimega.
Kolmas rida kommentaar rühmanimega.
Järgmised käsud paigutada script faili.

1. Väljasta kellaeg formaadis hh::mm::ss ja jäta kellaaeg meelde.
2. Väljasta scripti nimi
3. Tervita jooksvat kasutajat nime järgi, nimi võta keskkonna muutujast.
4. Näita jooksva kasutaja gruppi ID
5. Kontrolli kas loodud kasutaja on passwd failis ja näita resultaat
ekraanile
6. Väljasta jooksev kuupäev formaadis dd.kuunimi(inglise)
7. Kui jookasvas ajas sekundite arv on suurem kui 30 siis väljasta
nädalapäev sõnadega(inglise) vastasel juhul numbriga.
8. Luua kasutaja kodukatalogis katalog "test"
9. Valjasta kõik "root" kasutaja poolt käivitatud protsessid faili
<sinunimi>.txt mis peab asuma loodud kasutaja alamkatalogis test.
10. Palu sisestada kolm arvu, sisesta arvud. Leia arvude keskväärtus ja
trüki välja.
11. Arvutada scripti tööaeg sekundites ja trükida see vastavalt enne
scripti lõpetamist välja.

PS! Neid käske on vaja väljastada iga 3 sekundi tagant.

Контрольная работа

Общая часть контрольной

Создать пользователя со своей фамилией английскими буквами, например: neznaika
Войти в терминале в систему под вновь созданным пользователем. (стать в терминале рутом, а потом командой su имя_пользователя)
Главное: скрипт нужно создать и запускать под этим пользователем.
Создай в домашнем каталоге этого пользователя, например: neznaika.sh
Добавь скрипту права запуска.
Первая строка описывает программу которая должна этот скрипт запускать, смотри пример в разделе "Programmirovanije v Shell".
Вторая строка - комментарий с твоим именем и фамилией
Третья строка - комментарий с названием твоей группы группы
При выводе надо стараться выводить дополнительную информацию о выводимых данных.
Например при выводе текущего пользователя: echo "My user home folder is" $HOME
во время исполнения скрипта должно появится что-то типа: "My user home folder is /home/users/baguka"
Следующие действия надо описать и поместить в скрипт

Версия 1

1. Вывести текущую дату и время в следующем формате dd.имя_месяца(на английском) hh-mm-ss
2. Выведи имя текущего скрипта, имя текущей машины, имя и версию операционной системы
3. Поприветствуй пользователя по имени, имя взять из переменных среды окружения, вывести номер ID текущей группы пользователя под которым ты сейчас находишся
4. Выведи параметры введённые в командной строке при запуске этого скрипта
5. Создай переменные оболочки NAME и присвой ей своё имя латинскими , SURNAME и присвой ей свою фамилию латинскими.
6. Проверить существует ли группа с именем текущего пользователь в файле /etc/group и если есть вывести его данные, если нет сообщить об этом
7. Распечатай объём твоего домашнего каталога используя команду du (с параметрами)
8. Создать каталог с именем текущего пользователя(взять из переменных среды) в домашнем каталоге, в нём создай файл "myname.txt" и выведи туда значение переменных NAME и SURNAME
9. Вывести все процессы созданные пользователем root в файл с именем текущего пользователя(взять из переменных среды) и расширением txt, поместив его в созданный в п.8 каталог
10. Попроси ввести 4 числа, введи их, вычисли и выведи на экран среднее введённых чисел
11. Если текущая секунда больше 30, то вывести название дня недели, в ином случае вывести цифру дня недели.(воспользоваться специальными параметрами команды date)
12. Посчитай и выведи количество строк и символов в созданном тобой скрипте(исполняемом) используя команду wc с параметрами

Версия 2

1. Вывести время в следующем формате hh::mm::ss и запомнить текущее время (Unix time)
2. Вывести имя текущего скрипта
3. Поприветствуй пользователя по имени, имя взять из переменных среды окружения
4. Вывести номер ID текущей группы пользователя под которым ты сейчас находишся
5. Проверить существует ли текущий пользователь в файле /etc/passwd и если есть вывести его данные
6. Выведи текущую дату в формате dd.имя_месяца(на английском)
7. Если текущая секунда больше 30, то вывести название дня недели, в ином случае вывести цифру дня недели.(воспользоваться специальными параметрами команды date)
8. Создать каталог "test" в домашнем каталоге.
9. Вывести все процессы созданные пользователем root в файл с твоим именем, поместив его в каталог "test".
10. Попроси ввести 3 числа, введи их и вычисли и выведи на экран среднее этих трёх чисел.
11. Посчитай и выведи на экран количество секунд которое потрачено на работу этого скрипта. (требуется получить в Unixtime в секундах и отнять от него запомненное в начале скрипта время)
Дополнительно если успеваешь NB перед этим скопируй свой скрипт в какой-нибудь файл:
12. Дополнить скрипт так, что-бы каждое следующее действие выводилось бы через секунду.

-- Usable commands for task solving
man ls; pwd; cd /home/it; touch text.txt; date >date.txt; cat date.txt; bash;
ls -l; ls -al | grep tty0; grep it /etc/passwd
mkdir newfolder; rmdir newfolder;
chmod ug+wr haha.txt; chmod +x haha.sh; chmod 644 haha.php;
chmod +x /home/it/newfolder; chmod 740 newfolder;
chgrp mygroup loom.sh; chown isa aaa.txt; chown isa.pere newfolder;
useradd -s /bin/bash -m isa; userdel isa; groupadd pere firma; passwd isa;
id isa; usermod -g pere ema; usermod -a -G firma ema;
sudo su -; su isa; sudo passwd;
nano text.sh; mcedit text; vi text.txt;
ps ax; uname -n; date `'+%w'`; echo $0 $1 $2;