50 вопросов и ответов на собеседовании по Shell Scripting (2024)

Вот вопросы и ответы на собеседовании по Shell Scripting как для новичков, так и для опытных кандидатов, желающих получить работу своей мечты.

 

Интервью по Linux Shell Scripting, вопросы и ответы

1) Что такое оболочка?

Оболочка — это интерфейс между пользователем и ядром. Хотя ядро ​​может быть только одно; в системе может быть одновременно запущено множество оболочекneoобычно. Таким образом, всякий раз, когда пользователь вводит команду с клавиатуры, оболочка связывается с ядром, чтобы выполнить ее, а затем отобразить вывод пользователю.

👉 Бесплатная загрузка PDF-файла: Вопросы и ответы для интервью по сценариям Shell


2) Что такое сценарии оболочки?

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

Вопросы для собеседования по сценариям оболочки


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

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


4) Что является эквивалентом ярлыка файла в нашем окне в системе Linux?

Ярлыки создаются с использованием «ссылок» в Linux. Существует два типа ссылок, которые можно использовать, а именно «мягкая ссылка» и «жесткая ссылка».


5) В чем разница между мягкими и жесткими ссылками?

Мягкие ссылки представляют собой ссылку на имя файла и могут также находиться в другой файловой системе; однако жесткие ссылки связаны с индексным дескриптором файла и должны находиться в той же файловой системе, что и файл. Удаление исходного файла делает программную ссылку неактивной (неработающая ссылка), но не влияет на жесткую ссылку (жесткая ссылка по-прежнему будет иметь доступ к копии файла).


6) Как вы будете передавать аргументы и получать к ним доступ к сценарию в Linux?

Аргументы могут передаваться как:

имя сценария «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 копирует шаблон buffer держать buffer

и команда d удаляет текущее пространство шаблонов.


9) Учитывая файл, замените все вхождения слова «ABC» на «DEF» из 5.th строка до конца только в тех строках, которые содержат слово «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) Как ты найдешь 99?th строку файла, используя только команду tail и head?

хвост +99 файл1|голова -1


12) Распечатайте 10th строку без использования команд Tail и Head.

sed –n '10p' file1

13) В моей оболочке bash я хочу, чтобы мое приглашение имело формат «$»Текущий рабочий каталог»:»имя_хоста»> и загружало файл, содержащий список пользовательских функций, как только я вхожу в систему. Как вы это автоматизируете? ?

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

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) Как любой пользователь может узнать всю информацию о конкретном пользователе, например, его оболочку по умолчанию, реальное имя, каталог по умолчанию, когда и как долго он использует систему?

палец «loginName» … где loginName — это имя входа в систему.

пользователь, чья информация ожидается.


18) В чем разница между $$ и $!?

$$ дает идентификатор текущего выполняющегося процесса, тогда как $! Показывает идентификатор процесса, который недавно перешел в фоновый режим.


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

Это процессы, которые умерли, но статус завершения которых еще не выбран родительским процессом. Эти процессы, даже если они не работают, все равно имеют запись идентификатора процесса в таблице процессов.


20) Как скопировать файл с одного компьютера на другой?

Мы можем использовать такие утилиты, как «ftp», «scp» или «r».sync», чтобы скопировать файл с одного компьютера на другой.

Например, использование FTP:

FTP-имя хоста

>поставь файл1

>пока

Выше копируется файл file1 из локальной системы в целевую систему, имя хоста которой указано.


Вопросы и ответы на собеседовании по Shell Scripting для опытных

21) Я хочу отслеживать постоянно обновляемый файл журнала. Какую команду можно использовать для наиболее эффективного достижения этой цели?

Мы можем использовать Tail –f имя файла. Это приведет к отображению только последних 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?

Синтаксис в кш:

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» через каждые 100?th строка файла?

sed '100i\ABCDEF' файл1


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

находить . –mtime -2 –exec wc –l {} \;


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

Мы можем использовать:

umask 777

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


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

Мы можем использовать "ps –p ProcessId"


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

Загрузочный блок, суперблок, блок индексного дескриптора и блок данных являются фундаментальными компонентами каждой файловой системы в Linux.


43) Что такое загрузочный блок?

Этот блок содержит небольшую программу под названием «Основная загрузочная запись» (MBR), которая загружает ядро ​​во время загрузки системы.


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

Суперблок содержит всю информацию о файловой системе, такую ​​как размер файловой системы, размер используемого блока, количество свободных блоков данных и список свободных индексных дескрипторов и блоков данных.


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

Этот блок содержит индексный дескриптор каждого файла файловой системы, а также все атрибуты файла, кроме его имени.


46) Как я могу отправить mail со сжатым файлом в качестве вложения?

zip-файл1.zip-файл1|mailx –s «субъект» Получатели email id

Email содержание

EOF


47) Как создать псевдонимы команд в оболочке?

alias Aliasname="Команда, псевдоним которой необходимо создать".


48) Что такое поля разрешений «c» и «b» файла?

«в» и «б» поля разрешений обычно связаны с файлом устройства. Он определяет, является ли файл файлом специальных символов или специальным файлом блока.


49) Какая польза от лески?

Строка Шебанга вверху каждого скрипта определяет расположение движка, который будет использоваться для выполнения скрипта.

Эти вопросы для собеседования также помогут вам в устной речи.