50 въпроса и отговора за интервю за скриптове на Shell (2025 г.)

Ето въпроси и отговори за интервю за Shell Scripting за по-свежи и опитни кандидати, за да получат мечтаната работа.

 

Въпроси и отговори за интервю за Linux Shell Scripting

1) Какво е обвивка?

Shell е интерфейс между потребителя и ядрото. Въпреки че може да има само едно ядро; една система може да има много работещи обвивки едновременно. Така че, когато потребител въведе команда през клавиатурата, обвивката комуникира с ядрото, за да я изпълни и след това да покаже изхода на потребителя.

👉 Безплатно изтегляне на PDF: Въпроси и отговори за интервю за Shell Scripting


2) Какво е Shell Scripting?

Скрипт на Shell е компютърна програма с отворен код, проектирана да се изпълнява от Unix/Linux shell. Shell Scripting е програма за писане на поредица от команди, които shell да изпълни. Той може да комбинира дълги и повтарящи се последователности от команди в единичен и прост скрипт, който може да се съхранява и изпълнява по всяко време, което намалява усилията за програмиране.

Въпроси за интервю за 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
ABCD

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 ред на файл, използващ само команда за опашка и глава?

опашка +99 файл1|глава -1


12) Отпечатайте 10th линия без използване на команда за опашка и глава.

sed –n '10p' file1

13) В моя bash shell искам подканата ми да бъде във формат '$”Презентиране на работна директория”:”име на хост”> и да зареди файл, съдържащ списък с дефинирани от потребителя функции, веднага щом вляза, как ще автоматизирате това ?

В bash shell можем да създадем файл „.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 Scripting за опитни

21) Искам да наблюдавам непрекъснато актуализиращ се регистрационен файл, коя команда може да се използва за постигане на това най-ефективно?

Можем да използваме tail –f име на файл. Това ще накара само последните 10 реда по подразбиране да бъдат показани на std o/p, което непрекъснато показва актуализиращата се част от файла.


22) Искам да се свържа с отдалечен сървър и да изпълня някои команди, как мога да постигна това?

Можем да използваме ssh, за да направим това:

ssh потребителско име@serverIP -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) Напишете синтаксиса за условните изрази „if“ в 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' файл1


39) Напишете последователност от команди, за да намерите всички файлове, променени за по-малко от 2 дни, и отпечатайте броя на записите за всеки.

намери . –mtime -2 –exec wc –l {} \;


40) Как мога да задам разрешението по подразбиране rwx за всички потребители за всеки файл, който е създаден в текущата обвивка?

Можем да използваме:

umask 777

Това ще зададе разрешение за rwx по подразбиране за всеки файл, който е създаден за всеки потребител.


41) Как можем да намерим името на процеса от неговия идентификатор на процес?

Ние можем да използваме "ps –p ProcessId"


42) Кои са четирите основни компонента на всяка файлова система на Linux?

Bootblock, super block, inode block и Datablock са основни компоненти на всяка файлова система на Linux.


43) Какво е блок за зареждане?

Този блок съдържа малка програма, наречена "Master Boot record" (MBR), която зарежда ядрото по време на зареждане на системата.


44) Какво е супер блок?

Суперблокът съдържа цялата информация за файловата система, като размера на файловата система, размера на блока, използван от броя на свободните блокове с данни и списък на свободните inode и блокове с данни.


45) Какво е inode блок?

Този блок съдържа inode за всеки файл от файловата система заедно с всички файлови атрибути, с изключение на неговото име.


46) Как мога да изпратя имейл с компресиран файл като прикачен файл?

zip file1.zip file1|mailx –s “subject” Имейл идентификатор на получателите

Съдържание на имейл

EOF


47) Как да създадем псевдоними на команди в шел?

alias Aliasname=”Команда, чийто псевдоним трябва да бъде създаден”.


48) Какво представляват полетата за разрешение „c“ и „b“ на файл?

"c" и "b" полета за разрешение обикновено са свързани с файл на устройство. Той определя дали даден файл е файл със специални знаци или блоков специален файл.


49) Каква е ползата от шибан линия?

Линията Shebang в горната част на всеки скрипт определя местоположението на двигателя, който ще се използва за изпълнение на скрипта.

Тези въпроси за интервюто също ще ви помогнат във вашата viva (устна)