Частина тексту файла (без зображень, графіків і формул):
Національний університет «Львівська політехніка»
Інститут комп’ютерних технологій, автоматики та метрології
ІКТА
Кафедра ЗІ
/
Лабораторна робота №2
з дисципліни: «Операційні системи»
на тему: «Робота з командною оболонкою BASH»
Львів 2017
Мета : Оволодіти практичними навичками роботи та адміністрування в системі LINUX за допомогою командної оболонки BASH. Ознайомитись із оболонкою BASH, виконанням команд у BASH, змінними оболонки, синтаксисом BASH-сценаріїв.
Теоретичні відомості:
Короткий список команд, які вам можуть знадобитися:
pwd – вивести поточну директорію.
hostname - вивести або змінити мережеве ім'я машини.
whoami - ввести ім'я під яким я зареєстрований.
date - Вивести або змінити дату і час. Наприклад, щоб встановити дату і час рівну 2000-12-31 23:57, слід виконати команду: date 123123572000
time - Отримати інформацію про час, потрібний для виконання процесу + ще деяку інформацію. Не плутайте цю команду з датою. Наприклад: ви можете визначити як багато часу потрібно для виведення списку файлів в директорії, набравши послідовність: time ls.
who - Визначити хто з користувачів працює на машині.
rwho –a - Визначення всіх користувачів, які підключилися до вашої мережі. Для виконання цієї команди потрібно, щоб був запущений процес rwho. Якщо такого немає - запустіть setup " setup" під суперкористувачем.
finger [имя_пользователя]- Системна інформація про зареєстрованого користувача. Спробуйте: finger root
uptime - Кількість часу, що пройшов з останнього перезавантаження.
ps –a - Список поточних процесів.
top - Інтерактивний список поточних процесів відсортованих по використанню центрального процесора.
uname - Вивести системну інформацію.
free – Вив
ести інформацію про пам'ять.
df –h - (= Місце на диску) Вивести інформацію про вільний і використовуваний простір на дисках (в читабельному вигляді).
du / -bh | more - (= Хто скільки зайняв) Вивід детальної інформації про розмір файлів по директоріях починаючи з кореневої (в читабельному вигляді).
cat /proc/cpuinfo - Системна інформація про процесор. Зауважте, що файли в /proc директорії - не справжні файли. Вони використовуються для отримання інформації, відомої системі.
cat /proc/interrupts - Використовувані переривання.
cat /proc/version - Версія ядра Linux та інша інформація
cat /proc/filesystems - Вивести використовувані в даний момент типи файлових систем.
cat /etc/printcap - Вивести налаштування принтера.
lsmod - (Як root) Вивести інформацію про завантажені в даний момент модулі ядра.
set | more - Вивести поточні значення змінних оточення.echo
$PATH - Вивести значення змінної оточення "PATH" Ця команда може використовуватися для виведення значень інших змінних оточення. Скористайтеся командою set, для одержання повного списку.
grep … - Пошук входження регулярного виразу в рядки заданого файлу (потоку).
Завдання:
1. Вивести будь-яке повідомлення за допомогою команди echo перенаправивши вивід:
у неіснуючий файл за допомогою символу >;
у неіснуючий файл за допомогою символу >>;
в існуючий файл за допомогою символу >;
в існуючий файл за допомогою символу >>;
Пояснити результати.
2. Переадресувати стандартний ввід для команди cat на файл.
3. Вивести повідомлення за допомогою команди echo в канал помилок. Створити файл myscript:
#!/bin/sh
echo stdout
echo stderr>&2
exit 0
Запустити його:
без перенаправлення (sh myscript);
перенаправити стандартний вивід у файл, переглянути вміст файлу (sh myscript > file1);
перенаправити стандартний канал помилок в існуючий і неіснуючий файли за допомогою символів > і >>;
перенаправити стандартний вивід у файл 1, стандартний канал помилок - у файл 2;
перенаправити стандартний вивід і стандартний канал помилок у файл 3;
перенаправити стандартний вивід у файл 4 за допомогою символу >, а стандартний канал помилок у файл 4 за допомогою символу >>;
Пояснити результати.
4. Вивести третій рядок з останніх десяти рядків відсортованого в зворотному порядку файлу /etc/group.
5. Підрахувати за допомогою конвеєра команд кількість блокових пристроїв введення-виведення, доступних в системі.
6. Написати скрипт, що виводить на консоль всі аргументи командного рядка, передані даному скрипту. Привести різні варіанти запуску даного скрипта, в тому числі без безпосереднього виклику інтерпретатора в командному рядку.
7. Написати скрипт згідно індивідуального завдання. Номер варіанту погодити з викладачем.
Індивідуальне завдання
Варіант 17.
Написати командний файл, що реалізує символьне меню
1 Пункт: робота з інформаційними командами (реалізувати всі основні інформаційні команди)
2 Пункт: Копіювання файлів: у цьому пункті виводиться інформація про вміст поточного каталогу, далі пропонується інтерфейс копіювання файлу: введення імені файлу і введення каталогу для копіювання. Після виконання пункту виводиться вміст каталогу, куди був скопійований файл і виводиться вміст скопійованого файлу.
3 Пункт: Вихід
Хід роботи:
Завдання 1:
/
Завдання 2:
/
Завдання 3:
3.1
3.2
3.3
Завдання 4:
/
Завдання 5:
Завдання 6:
#!/bin/sh
echo $@
Індивідуальне завдання:
#!/bin/bash
function info {
clear
uname -a -m -n -r -s -v
echo
date
echo
cal -3
echo
uptime
echo
hostname
echo
whoami
}
function copying {
clear
let filename
ls
echo -n "Enter filename \"filename\" "
read filename
let folder_path
echo -n "Enter destination folder path \"folder_path\" "
read folder_path
cp $filename $folder_path
cd $folder_path
ls
cat $filename
}
function menu {
clear
echo
echo -e "\t\t\tScript menu:\n"
echo -e "\t1. Info commands"
echo -e "\t2. Copying"
echo -e "\t3. Exit"
echo -en "\t\tChoose one: "
read -n 1 option
}
while [ $? -ne 1 ]
do
menu
case $option in
3)
break ;;
1)
info ;;
2)
copying ;;
*)
clear
echo "Choose:";;
esac
echo -en "\n\n\t\t\tPress any key to proceed"
read -n 1 line
done
clear
Результат виконання індивідуального завдання
Меню:
/
Перший пункт завдання 7:
/
Другий пункт завдання 7:
/
Висновок
На цій лабораторній роботи я оволодів навичками роботи та адміністрування в системі LINUX за допомогою командої оболонки BASH. Ознайомився з оболонкою BASH, виконанням команд, змінними та синтаксисом BASH-сценаріїв.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!