50 запитань і відповідей на інтерв’ю зі сценаріями Shell (2025)

Ось питання та відповіді на співбесіді з Shell Scripting для нових і досвідчених кандидатів, щоб отримати роботу своєї мрії.

 

Запитання та відповіді на інтерв’ю зі сценаріями оболонки Linux

1) Що таке оболонка?

Shell — це інтерфейс між користувачем і ядром. Незважаючи на те, що може бути лише одне ядро; система може мати багато оболонок, що працюють одночасно. Отже, щоразу, коли користувач вводить команду через клавіатуру, оболонка зв’язується з ядром, щоб виконати її, а потім відобразити користувачеві результат.

👉 Безкоштовне завантаження PDF-файлу: Запитання та відповіді на інтерв’ю зі сценаріями оболонки


2) Що таке сценарій оболонки?

Сценарії Shell це комп’ютерна програма з відкритим вихідним кодом, призначена для роботи в оболонці Unix/Linux. Shell Scripting — це програма для написання серії команд для виконання оболонкою. Він може поєднувати довгі та повторювані послідовності команд в єдиний і простий сценарій, який можна зберігати та виконувати будь-коли, що зменшує зусилля програмування.

Запитання для співбесіди зі сценаріями оболонки


3) Які різні типи оболонок зазвичай використовуються в типовій системі Linux?

csh,ksh,bash,Борн. Найпоширенішою та вдосконаленою оболонкою, яка використовується сьогодні, є «Bash».


4) Що є еквівалентом ярлика файлу, який має вікно в системі Linux?

Ярлики створюються за допомогою «посилань» у Linux. Існує два типи посилань, які можна використовувати, а саме «м’яке посилання» та «жорстке посилання».


5) Яка різниця між м’якими та жорсткими посиланнями?

М'які посилання є посиланнями на ім'я файлу та можуть розміщуватися в різних файлових системах; однак жорсткі посилання є посиланнями на inode файлу та мають бути на тій же файловій системі, що й файл. Видалення оригінального файлу робить програмне посилання неактивним (порушене посилання), але не впливає на жорстке посилання (жорстке посилання все одно матиме доступ до копії файлу)


6) Як ви будете передавати та отримувати доступ до аргументів сценарію в Linux?

Аргументи можна передати як:

scriptName “Arg1” “Arg2″….”Argn” і доступ до нього можна отримати всередині сценарію як $1 , $2 .. $n


7) Яка різниця між $* і $@?

$@ розглядає кожен аргумент у лапках як окремий аргумент, але $* розглядатиме весь набір позиційних параметрів як один рядок.


8) Використовуйте команду sed, щоб замінити вміст файлу (емулювати команду tac)

Наприклад:

if cat fille
ABCD
EFGH

Тоді має бути O/p

EFGH
А Б В Г

sed '1! G; h;$!d' file1

Тут команда G додає до простору шаблону,

Команда h копіює буфер шаблону в буфер зберігання

і команда d видаляє поточний простір шаблону.


9) Для файлу замініть усі слова «ABC» на «DEF» із 5th рядок до кінця лише в тих рядках, які містять слово «MNO»

sed –n '5,$p' file1|sed '/MNO/s/ABC/DEF/'

10) Дано файл, напишіть послідовність команд, щоб знайти кількість кожного слова.

tr –s  "(backslash)040" <file1|tr –s  "(backslash)011"|tr "(backslash)040 (backslash)011" "(backslash)012" |uniq –c
where "(backslash)040" is octal equivalent of "space"

«(Зворотна коса риска)011» є вісімковим еквівалентом «символу табуляції» і

«(Зворотна коса риска)012» є вісімковим еквівалентом символу нового рядка.


11) Як ви знайдете 99th рядок файлу, використовуючи лише команди tail і head?

хвіст +99 file1|голова -1


12) Виведіть 10th рядок без використання команди tail і head.

sed –n '10p' file1

13) У моїй оболонці bash я хочу, щоб мій запит мав формат «$”Поточний робочий каталог”:”ім’я хоста”> і завантажував файл, що містить список визначених користувачем функцій, щойно я ввійду, як це автоматизувати ?

В оболонці bash ми можемо створити файл «.profile», який автоматично запускається, щойно я входжу в систему та записую в нього наступний синтаксис.

export PS1='$ `pwd`:`hostname`>' .File1

Тут File1 — це файл, що містить визначені користувачем функції та «.» викликає цей файл у поточній оболонці.


14) Поясніть про біт дозволу «s» у файлі?

Біт «s» називається бітом «встановити ідентифікатор користувача» (SUID).

Біт “s” у файлі призводить до того, що процес має привілеї власника файлу під час екземпляра програми.

Наприклад, виконання команди «passwd» для зміни поточного пароля призводить до того, що користувач записує свій новий пароль у тіньовий файл, навіть якщо його власником є ​​«root».


15) Я хочу створити каталог, щоб будь-хто в групі міг створити файл і отримати доступ до файлу будь-якої особи в ньому, але ніхто не повинен мати можливість видалити файл, крім того, який створив сам.

Ми можемо створити каталог, який надасть доступ для читання та виконання всім у групі та встановить його закріплений біт «t» наступним чином:

mkdir direc1
 
chmod g+wx direc1
 
chmod +t direc1

16) Як дізнатися, як довго працює система?

Це можна знайти за допомогою команди uptime.


17) Як будь-який користувач може дізнатися всю інформацію про конкретного користувача, як-от його оболонку за замовчуванням, справжнє ім’я, каталог за замовчуванням, коли та як довго він використовує систему?

finger “loginName” … де loginName – це ім’я для входу

користувач, чия інформація очікується.


18) Яка різниця між $$ і $!?

$$ дає ідентифікатор процесу, що зараз виконується, тоді як $! Показує ідентифікатор процесу, який нещодавно перейшов у фоновий режим.


19) Що таке зомбі-процеси?

Це процеси, які припинили роботу, але статус виходу яких ще не вибрано батьківським процесом. Ці процеси, навіть якщо вони не функціонують, все одно мають свій ідентифікатор процесу в таблиці процесів.


20) Як копіювати файл з однієї машини на іншу?

Ми можемо використовувати такі утиліти, як «ftp», «scp» або «rsync», щоб скопіювати файл з однієї машини на іншу.

Наприклад, за допомогою ftp:

Ім'я хосту FTP

>помістіть файл1

>до побачення

Над копіями передайте файл file1 із локальної системи до системи призначення, ім’я хоста якої вказано.


Запитання та відповіді на інтерв’ю зі сценаріями Shell для досвідчених

21) Я хочу відстежувати файл журналу, що постійно оновлюється. Яку команду можна використати для найбільш ефективного досягнення цього?

Ми можемо використовувати tail –f filename. Це призведе до відображення лише останніх 10 рядків за замовчуванням у std o/p, де постійно відображається частина файлу, що оновлюється.


22) Я хочу підключитися до віддаленого сервера та виконати деякі команди, як я можу цього досягти?

Для цього ми можемо використовувати ssh:

ssh ім'я користувача@IP-сервер -p sshport

Приклад

ssh root@122.52.251.171 -p 22

Після виконання вищезазначеної команди вам буде запропоновано ввести пароль


23) У мене є 2 файли, і я хочу надрукувати записи, які є спільними для обох.

Ми можемо використовувати команду «comm» наступним чином:

comm -12 file1 file2 … 12 придушить вміст, який є

унікальний для 1st і 2nd файл відповідно.


24) Напишіть сценарій для друку перших 10 елементів ряду Фібоначчі.

  
#!/bin/sh
a=1
b=1
echo $a
echo $b
for I in 1 2 3 4 5 6 7 8
do
c=a
b=$a
b=$(($a+$c))
echo $b
done

25) Як ви будете підключатися до сервера бази даних з Linux?

Ми можемо використовувати утиліту isql, яка постачається з відкритим клієнтським драйвером, наступним чином:

isql –S ім’я сервера –U ім’я користувача –P пароль


26) Які є 3 стандартні потоки в Linux?

0 – Стандартний вхід 1 – Стандартний вихід 2 – Стандартна помилка


27) Я хочу прочитати весь вхід до команди з файлу 1, спрямувати весь вихід у файл 2, а помилку — у файл 3, як я можу цього досягти?

команда файл1 1>файл2


28) Що станеться з моїм поточним процесом, коли я виконую команду за допомогою exec?

«exec» накладає щойно роздвоєний процес на поточний процес; тому, коли я виконую команду за допомогою exec, команда виконується в поточній оболонці без створення нових процесів.

Наприклад, Виконання "exec ls" у командному рядку виконає ls, і після завершення ls процес завершиться


29) Як ви будете емулювати wc –l за допомогою awk?

awk 'END {print NR} fileName'


30) У файлі знайдіть кількість рядків, що містять слово «ABC».

grep –c «ABC» файл1


31) Яка різниця між grep і egrep?

egrep — це розширений grep, який підтримує додаткові функції grep, такі як «+» (1 або більше входжень попереднього символу),»?» (0 або 1 входження попереднього символу) та «|» (альтернативний відповідник)


32) Як встановити масив у Linux?

Синтаксис у ksh:

Set –A arrayname= (element1 element2 ….. element)
In bash
A=(element1 element2 element3 …. elementn)

33) Запишіть синтаксис циклу «for».

Синтаксис:

for  iterator in (elements)
do
execute commands
done

34) Як ви знайдете загальний дисковий простір, який використовує певний користувач?

du -s /home/user1 ….де user1 це користувач, для якого потрібно знайти загальний простір на диску.


35) Напишіть синтаксис умовних слів «якщо» в Linux?

синтаксис

If  condition is successful
then
execute commands
else
execute commands
fi

36) Яке значення $?

Команда $? надає статус завершення останньої виконаної команди.


37) Як видалити всі порожні рядки у файлі?

sed  '^ [(backslash)011(backslash)040]*$/d' file1

де (зворотний слеш)011 є вісімковим еквівалентом пробілу та

(зворотний слеш)040 є вісімковим еквівалентом табуляції


38) Як я буду вставляти рядок «ABCDEF» через кожні 100th рядок файлу?

sed '100i\ABCDEF' file1


39) Напишіть послідовність команд, щоб знайти всі файли, змінені менш ніж за 2 дні, і надрукувати кількість записів для кожного.

знайти . –mtime -2 –exec wc –l {} \;


40) Як я можу встановити дозвіл rwx за умовчанням для всіх користувачів для кожного файлу, який створюється в поточній оболонці?

Ми можемо використовувати:

umask 777

Це встановить дозвіл rwx за умовчанням для кожного файлу, створеного для кожного користувача.


41) Як ми можемо знайти назву процесу за його ідентифікатором?

Ми можемо використовувати "ps –p ProcessId"


42) Які чотири основні компоненти кожної файлової системи в Linux?

Завантажувальний блок, суперблок, блок inode і блок даних є фундаментальними компонентами кожної файлової системи в Linux.


43) Що таке завантажувальний блок?

Цей блок містить невелику програму під назвою «Master Boot record» (MBR), яка завантажує ядро ​​під час завантаження системи.


44) Що таке суперблок?

Суперблок містить усю інформацію про файлову систему, як-от розмір файлової системи, розмір використовуваного блоку за кількістю вільних блоків даних і список вільних inodes і блоків даних.


45) Що таке блок inode?

Цей блок містить inode для кожного файлу файлової системи разом з усіма атрибутами файлу, крім його імені.


46) Як я можу надіслати лист зі стисненим файлом у вигляді вкладення?

zip file1.zip file1|mailx –s “тема” Ідентифікатор електронної пошти одержувачів

Зміст електронної пошти

EOF


47) Як ми створюємо псевдоніми команд в оболонці?

alias Aliasname=”Команда, псевдонім якої потрібно створити”.


48) Що таке поля дозволу «c» і «b» у файлі?

«в» і «б» поля дозволів зазвичай пов’язані з файлом пристрою. Він визначає, чи є файл файлом зі спеціальними символами чи блоковим спеціальним файлом.


49) Яка користь від лінії шибенг?

Рядок Shebang у верхній частині кожного сценарію визначає розташування механізму, який буде використано для виконання сценарію.

Ці запитання для співбесіди також допоможуть вам у життєдіяльності (усному)