2. Завдання
Створити виконувані файли, один з який сприймає з командного рядка параметри. У випадку відсутності або недостатньої кількості параметрів організувати введення останніх із клавіатури у діалоговому режимі.
Варіанти завдань
Перший виконуваний файл для п’яти файлів, імена яких передаються як параметри, встановлює атрибути, що вводяться користувачем у діалоговому режимі. Після чого копіює ці файли у новий каталог (ім’я каталогу містить шостий параметр), який створюється у поточному, і передає керування другому виконуваному файлу. Другий виконуваний файл об’єднує усі скопійовані файли у один і додає в кінець цього файла шлях до нього, після чого повертає керування першому файлу. Перший файл видаляє усі початкові файли і виводить на екран вміст поточного каталогу та список користувачів у системі.
Перший виконуваний файл виводить на екран вміст усіх файлів, розширення яких передаються як перші три параметри. Після чого визначає усіх користувачів, які знаходяться у системі, та впорядковує цей список за спаданням у файлі, і передає керування другому виконуваному файлу. Другий виконуваний файл видаляє каталоги із усім вмістом, імена яких вводяться користувачем у діалоговому режимі, після чого повертає керування першому файлу. Перший файл виводить на екран вміст поточного каталогу та поточний час у системі.
Створити виконувані файли, один з який сприймає з команд-ного рядка параметри. У випадку відсутності або недостатньої кіль-кості параметрів забезпечити присвоєння останніх за замовчуванням.
Перший виконуваний файл для п’яти файлів, імена яких передаються як параметри, встановлює атрибути, що вводяться користувачем у діалоговому режимі. Після чого копіює ці файли у новий каталог (ім’я каталогу містить шостий параметр), який створюється у поточному, і передає керування другому виконуваному файлу. Другий виконуваний файл об’єднує усі скопійовані файли у один і додає в кінець цього файла шлях до нього, після чого повертає керування першому файлу. Перший файл видаляє усі початкові файли і виводить на екран вміст поточного каталогу та список користувачів у системі.
Перший виконуваний файл виводить на екран вміст усіх файлів, розширення яких передаються як перші три параметри. Після чого визначає Усіх користувачів, які знаходяться у системі, та впорядковує цей список за спаданням у файлі і передає керування другому виконуваному файлу. Другий виконуваний файл видаляє каталоги із усім вмістом, імена яких вводяться користувачем у діалоговому режимі, після чого повертає керування першому файлу. Перший файл виводить на екран вміст поточного каталогу та поточний час у системі.
Створити виконувані файли, один з який сприймає з командного рядка параметри. У випадку відсутності або недостатньої кількості параметрів вивести відповідне повідомлення на екран і припинити виконання програми.
Перший виконуваний файл для п’яти файлів, імена яких передаються як параметри, встановлює атрибути, що вводяться користувачем у діалоговому режимі. Після чого копіює ці файли у новий каталог (ім’я каталогу містить шостий параметр), який створюється у поточному, і передає керування другому виконуваному файлу. Другий виконуваний файл об’єднує усі скопійовані файли у один і додає в кінець цього файла шлях до нього, після чого повертає керування першому файлу. Перший файл видаляє усі початкові файли і виводить на екран вміст поточного каталогу та список користувачів у системі.
Перший виконуваний файл виводить на екран вміст усіх файлів, розширення яких передаються як перші три параметри. Після чого визначає усіх користувачів, які знаходяться у системі, та впорядковує цей список за спаданням у файлі, і передає керування другому виконуваному файлу. Другий виконуваний файл видаляє каталоги із усім вмістом, імена яких вводяться користувачем у діалоговому режимі, після чого повертає керування першому файлу. Перший файл виводить на екран вміст поточного каталогу та поточний час у системі.
Розробити виконуваний файл, який у діалоговому режимі забезпечить необхідні арифметичні обчислення для користувача (типу “калькулятор”).
Розробити виконуваний файл, що реалізує меню із таких пунктів: вихід, створення каталогу/файла, знищення каталогу/файла, перехід за заданим шляхом, перегляд вмісту поточного каталогу. Вся необхідна інформація вводиться в діалоговому режимі.
Написати командний файл, що реалізує меню із трьох пунктів:
– ввести користувача і вивести на екран всі процеси, запущені даним користувачем;
– показати всіх користувачів, у даний момент, що перебувають у системі;
– завершення.
Написати командний файл, що реалізує меню із трьох пунктів:
– вивести всіх користувачів, що працюють у системі у цей час;
– послати повідомлення користувачу, ім’я користувача, термінал і повідомлення вводяться із клавіатури;
– завершення.
Написати командний файл, що реалізує меню із трьох пунктів:
– показати всі процеси користувача, які запустили даний командний файл;
– надіслати сигнал завершення процесу поточного користувача (ввести PID процесу);
– завершення.
Написати командний файл, що підраховує кількість активних терміналів користувача (ім’я користувача вводиться із клавіатури).
Написати командний файл, що посилає повідомлення всім активним користувачам (повідомлення знаходиться у файлі).
Написати командний файл, що посилає сигнал завершення процесам поточного користувача. Символьна маска імені процесу вводиться із клавіатури.
Для файла (файлів) із заданим ім’ям визначити, чи є він символічним посиланням. Якщо так – простежити весь ланцюжок посилань від цього імені.
Перевірити заданий каталог на наявність у ньому нерозв’язаних м’яких посилань. Якщо такі є – відправити про них повідомлення по mail користувачу derev.
Підрахувати кількість рядків, що містять задане слово в заданому файлі. Якщо файл має тип, відмінний від “ISO-8859 text”, підрахунок не робити, а просто вивести повідомлення про це.
З файла /home/metod/task1 прочитати рядок, перше слово якого – Ваше мережне ім’я. Інша після пробілу частина цього рядка – перелік (через пробіл) імен файлів. Вивести другі рядки всіх перерахованих файлів в окремий файл у своєму домашньому каталозі. Перед кожним рядком указати ім’я файла, якому він належить.
У заданому файлі визначити повторювані рядки, вивести їхні номери.
З файла /home/metod/task1 прочитати рядок, перше слово якого – Ваше мережне ім’я. Інша після пробілу частина цього рядка – перелік (через пробіл) імен файлів. Якщо розмір файла із заданого списку перевищує 20 рядків, створити у своєму домашньому каталозі однойменну копію цього файла, у яку занести тільки його перші 20 рядків.
Визначити, хто з користувачів з першими літерами імені “ap” увійшов у систему раніше всіх. Послати йому повідомлення, тіло якого складається з двох рядків всіх заданих файлів.
У заданому каталозі визначити, які імена файлів є жорсткими посиланнями на той самий файл.
У заданому каталозі знайти порожні файли. Створити у своєму домашньому каталозі однойменні файли і занести в них вміст файла-параметра.
Вивести імена всіх файлів і підкаталогів у заданому каталозі, що належать користувачу із заданим ім’ям і загальне число всіх інших файлів і каталогів.
Вивести список всіх каталогів, перерахованих у змінній оточення PATH, і для кожного вивести права доступу до нього
Вивести списки всіх файлів у заданому каталозі, які були створені в один день.
Shell-програма підраховує кількість і виводить список всіх файлів (без каталогів) у порядку зменшення їхніх довжин у піддереві, починаючи з каталогу, ім’я якого задане параметром Shell-програми.
Форма виводу результату:
каталог <ім’я каталогу> |
|
початковий каталог |
каталог <ім’я> |
|
|
каталог <ім’я> |
|
каталоги в поточному каталозі |
… |
|
|
каталог <ім’я каталогу> |
|
підкаталог |
каталог <ім’я> |
|
|
каталог <ім’я> |
|
каталоги в поточному каталозі |
… |
|
|
і т.д. |
|
|
|
|
|
Shell-програма підраховує кількість і виводить перелік каталогів у хронологічному порядку (за датою створення) у піддереві, починаючи з каталогу, ім’я якого задане параметром Shell-програми.
Форма виводу результату:
каталог <ім’я каталогу> |
|
початковий каталог |
<ім’я каталогу> <довжина> |
|
|
<ім’я каталогу> <довжина> |
|
файли каталогу |
… |
|
|
каталог <ім’я каталогу> |
|
підкаталог |
<ім’я каталогу> <довжина> |
|
|
<ім’я каталогу> <довжина> |
|
файли каталогу |
… |
|
|
і т.д. |
|
|
|
|
|
Виконати завдання варіанта 27, але список файлів у каталозі вивести в алфавітному порядку.
Shell-програма об’єднує всі тимчасові файли із вказаним суфіксом (наприклад, .tmp) у піддереві, починаючи з каталогу, ім’я якого задано параметром Shell-програми. Результат об’єднання поміщається в зазначений Shell-програмою файл, або виводиться на екран у формі:
<ім’я каталогу> <ім’я файла>
початковий каталог
[вміст файла]
End of file
[вміст файла]
End of file
…
каталог <ім’я каталогу>
підкаталог
[вміст файла]
End of file
[вміст файла]
End of file
…
і т.д.
Shell-програма періодично з деяким інтервалом видаляє всі тимчасові файли із вказаним суфіксом (наприклад, .tmp) у піддереві, починаючи з каталогу, ім’я якого задано параметром Shell-програми і виводить при цьому список об’єднаних файлів у формі, запропонованій у варіанті 27.
Shell-програма переглядає каталог, ім’я якого вказане параметром Shell-програми й виводить імена каталогів, що зустрілися. Потім здійснює перехід у батьківський каталог, що стає поточним та повторює вказані дії доти, поки поточним каталогом не стане кореневий каталог. Форма виводу результату аналогічна формі варіанта 28.
Завдання, аналогічне варіанту 6, але виводяться не каталоги, а файли каталогів.
Shell-програма виводить імена тих підкаталогів у каталозі, які в собі не містять каталогів. Ім’я каталогу задане параметром Shell-програми.
Shell-програма виводить імена тих підкаталогів у каталозі, які в собі містять каталоги. Ім’я каталогу задане параметром Shell-програми.
Shell-програма виводить вміст каталогу, ім’я якого вказане параметром Shell-програми. При виводі спочатку перераховуються імена каталогів, а потім в алфавітному порядку імена файлів із зазначенням їхніх довжин, дати створення і числа посилань на них.
Визначити кількість підкаталогів в /home, до яких немає публічних прав доступу.
Визначити кількість груп користувачів.
Визначити кількість підкаталогів в /home, до яких є публічні права на пошук і читання в них.
Визначити кількість користувачів з вашої студентської групи.
Визначити кількість (не підкаталогів і не посилань) файлів у каталозі /home.
Визначити кількість файлів або підкаталогів у кореневому каталозі, до яких усі мають повні права доступу.
Визначити кількість файлів у каталозі /etc, які є символічними посиланнями.
Визначити кількість файлів у каталозі /etc, на які є більше одного жорсткого посилання.
Визначити кількість файлів у каталозі /etc, які створені не цього року.
Вивести впорядкований за алфавітом список підкаталогів в /home, до яких немає публічних прав.
Вивести впорядкований за алфавітом список підкаталогів в /home, до яких є публічні права на пошук і читання в них.
Визначте однією командою: ім’я хоста, тип ОС, дату складання системи.
Визначте імена користувачів, які працюють у системі в цей момент.
Визначте системне ім’я вашого термінала.
Додайте в запрошення командного рядка: поточну дату, ім’я системи, шлях до поточного каталогу, ім’я користувача.
Визначте список ідентифікаторів процесів, запущених з вашого термінала.
Визначте число процесів з позитивними і негативними значеннями ефективного пріоритету, що виконуються в цей момент у системі.
Отримайте список всіх процесів, які в цей момент перебувають у стані WAIT.
Одержите список всіх процесів, які в цей момент перебувають у стані RUN.
Визначте список всіх процесів, які використали на момент запуску скрипта більше 5 хвилин часу ЦП.
Визначте список всіх процесів, які використали на момент запуску скрипта менш 5 хвилин часу ЦП.
Отримайте список всіх звичайних файлів поточного каталогу, власником яких є користувач web, дата створення пізніше позавчорашнього числа і вони є виконуваними для групи web.
Отримайте список всіх файлів з розширенням txt, розташованих у підкаталогах поточного каталогу із глибиною вкладення 2.
Підрахуйте число рядків, що містять слово mail у всіх файлах всіх підкаталогах поточного каталогу.
Знайдіть самий “свіжий” файл поточного каталогу.
Знайдіть самий “старий” файл поточного каталогу.
Напишіть скрипт killall, який завершить всі процеси, запущені користувачем gandy.
Перейменуйте всі файли поточного каталогу з іменами date-<дата>.txt в date-<номер>.txt. Формат дати YYYYMMDD.
Визначите ім’я процесу, що використав більше всіх інших процесів час ЦП за останню хвилину.
Визначите тип термінала та ім’я командного процесора користувача tom.
Визначите тип вашого термінала.
Перенаправте потік помилок команди в стандартний потік виводу, а стандартний потік виводу на пристрій /dev/null.
Напишіть конвеєр, що підраховує число рядків у звіті команди ls –al та число слів у цьому ж звіті.
Роздрукуйте перші n рядків всіх файлів поточного каталогу з розширенням root.
Роздрукуйте останні n рядків всіх файлів поточного каталогу з розширенням root.
Визначите дату останньої зміни файла.
Визначите дату останнього звертання до файла.
Підрахуйте число локальних змінних оточення.
Підрахуйте число глобальних змінних оточення.
Отримайте саме довге значення із всіх значень змінних оточення.
Отримайте саме коротке значення із всіх значень змінних оточення.
Отримайте самий довгий командний рядок для процесів, що виконуються у цей момент у системі.
Отримайте самий короткий командний рядок для процесів, що виконуються у цей момент у системі.
Порахувати кількість користувачів у системі.
Відсортувати список файлів поточної директорії у зворотному порядку і записати його у файл.
Порахувати кількість файлів поточного каталогу, що містять підрядок “include”.
Порахувати, скільки разів користувач X увійшов у систему.
Відсортувати список текстових файлів поточної директорії в алфавітному порядку та записати його у файл.
Видалити з поточного каталогу всі файли, що містять підрядок “text”.
Об’єднати всі файли з розширенням “.txt” в один файл.
Порахувати, скільки процесів запущено з даного термінала.
Вивести на екран відсортований в алфавітному порядку список файлів, що містять підрядок “include”.