50 лучших вопросов на собеседовании по сценариям оболочки & Ответы

Anonim

Скачать PDF

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

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

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

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

3: Что эквивалентно ярлыку файла, который у нас есть в окне в системе Linux?

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

4: В чем разница между программными и жесткими ссылками?

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

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

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

scriptName "Arg1" "Arg2"

…. "Argn", и к нему можно получить доступ внутри скрипта как $ 1, $ 2… $ n

6: Какое значение имеет $ #?

$ # показывает количество аргументов, переданных скрипту.

7: В чем разница между $ * и $ @?

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

8: Используйте команду sed для замены содержимого файла (команда emulate tac)

Например:

if cat filleABCDEFGH

Тогда O / p должно быть

EFGHABCD

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

Здесь команда G добавляется в пространство шаблонов,

Команда h копирует буфер шаблона в буфер хранения

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

9: Для данного файла замените все вхождения слова «ABC» на «DEF» с 5- й строки до конца только в тех строках, которые содержат слово «MNO».

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

10: Для данного файла напишите последовательность команд, чтобы найти счетчик каждого слова.

tr -s "(backslash)040" 

"(обратная косая черта) 011" является восьмеричным эквивалентом "символа табуляции" и

"(обратная косая черта) 012" - восьмеричный эквивалент символа новой строки.

11: Как найти 99- ю строку файла, используя только команды tail и head?

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

12: Распечатать 10- ю строку без использования команды 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 direc1chmod g+wx direc1chmod +t direc1

16: Как узнать, как долго работает система?

Мы можем найти это с помощью команды «время безотказной работы».

17: Как любой пользователь может узнать всю информацию о конкретном пользователе, такую ​​как его оболочка по умолчанию, реальное имя, каталог по умолчанию, когда и как долго он использует систему?

палец "loginName"

… Где loginName - имя пользователя

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

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

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

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

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

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

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

Например, используя ftp:

Имя хоста FTP

> положить file1

> пока

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

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

Мы можем использовать tail -f filename. Это приведет к тому, что на std o / p будут отображаться только последние 10 строк по умолчанию, которые постоянно показывают обновляемую часть файла.

22: Я хочу подключиться к удаленному серверу и выполнить некоторые команды, как я могу этого добиться?

Для этого мы можем использовать ssh:

ssh имя пользователя @ serverIP -p sshport

Пример

ssh Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. -p 22

После выполнения указанной выше команды вам будет предложено ввести пароль.

23: У меня есть 2 файла, и я хочу распечатать общие для них записи.

Мы можем использовать команду "comm" следующим образом:

comm -12 file1 file2… 12 подавит содержимое, которое

уникальна для 1- го и 2- го файлов соответственно.

24: Напишите сценарий для печати первых 10 элементов ряда Фибоначчи.

#!/bin/sha=1b=1echo $aecho $bfor I in 1 2 3 4 5 6 7 8doc=ab=$ab=$(($a+$c))echo $bdone

25: Как вы подключитесь к серверу базы данных из Linux?

Мы можем использовать утилиту isql, которая поставляется с открытым клиентским драйвером, следующим образом:

isql -S имя_сервера -U имя пользователя -P пароль

26: Каковы 3 стандартных потока в Linux?

0 - Стандартный ввод1 - Стандартный вывод2 - Стандартная ошибка

27: Я хочу прочитать весь ввод команды из файла1, направить весь вывод в файл2, а ошибку - в файл 3, как я могу этого добиться?

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

28: Что произойдет с моим текущим процессом, когда я выполню команду с помощью exec?

"exec" накладывает новый разветвленный процесс на текущий процесс; поэтому, когда я выполняю команду с помощью exec, команда выполняется в текущей оболочке без создания каких-либо новых процессов.

Например, выполнение "exec ls" в командной строке приведет к выполнению ls, и после выхода ls процесс завершится.

29: Как вы будете эмулировать wc -l с помощью awk?

awk 'END {print NR} имя_файла'

30: Для данного файла найдите количество строк, содержащих слово «ABC».

grep -c "ABC" файл1

31: В чем разница между grep и egrep?

egrep - это расширенный grep, который поддерживает добавленные функции grep, такие как «+» (1 или более вхождений предыдущего символа), «?» (0 или 1 вхождение предыдущего символа) и «|» (альтернативное соответствие)

32: Как вы распечатаете логины всех пользователей в системе?

В файле / etc / shadow перечислены все пользователи.

awk -F ':' '{print $1}' /etc/shadow|uniq -u

33: Как установить массив в Linux?

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

Set -A arrayname= (element1 element2… element)In bashA=(element1 element2 element3… . elementn)

34: Запишите синтаксис цикла for

Синтаксис:

for iterator in (elements)doexecute commandsdone

35: Как определить общее дисковое пространство, используемое конкретным пользователем?

du -s / home / user1…. где user1 - это пользователь, для которого необходимо найти общее дисковое пространство.

36: Написать синтаксис для условных выражений «если» в Linux?

Синтаксис

If condition is successfulthenexecute commandselseexecute commandsfi

37: Какое значение имеет $?

Команда $? дает статус выхода последней выполненной команды.

38: Как удалить все пустые строки в файле?

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

где (обратная косая черта) 011 - восьмеричный эквивалент пробела и

(обратная косая черта) 040 - восьмеричный эквивалент табуляции

39: Как мне вставить строку «ABCDEF» в каждую сотую строку файла?

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

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

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

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

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

umask 777

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

42: Как мы можем найти имя процесса по его идентификатору?

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

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

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

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

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

45: Что такое суперблок?

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

46: Что такое блок inode?

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

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

zip file1.zip file1 | mailx -s "тема" Идентификатор электронной почты получателя

Электронная почта

EOF

48: Как мы создаем псевдонимы команд в оболочке?

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

49: Что такое поля разрешений "c" и "b" файла?

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

50: Какая польза от линии shebang?

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