Учебники

22) Интервью по написанию сценариев Shell Q & A

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

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

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

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

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

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

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

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

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

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

scriptName «Arg1» «Arg2″…. «Argn» и может быть доступен внутри скрипта как $ 1, $ 2 .. $ n

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

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

7: Какая разница между $ * и $ @?

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

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

Например:

if cat fille
ABCD
EFGH

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

EFGH
ABCD

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" <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- ю строку файла, используя только команду 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 direc1
 
chmod g+wx direc1
 
chmod +t direc1

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

Мы можем найти это с помощью команды «uptime».

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

finger «loginName»… где loginName — это имя пользователя

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

18: Какая разница между $$ и $ !?

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

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

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

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

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

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

Имя хоста FTP

> положить файл1

> До свидания

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

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

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

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

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

ssh username @ serverIP -p sshport

пример

ssh root@122.52.251.171 -p 22

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

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

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

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

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

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 2> файл3

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

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

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

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

awk ‘END {print NR} fileName’

30: По заданному файлу найдите количество строк, содержащих слово «ABC».

grep –c «ABC» file1

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 bash
A=(element1 element2 element3 …. elementn)

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

Синтаксис:

for  iterator in (elements)
do
execute commands
done

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

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

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

Синтаксис

If  condition is successful
then
execute commands
else
execute commands
fi

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

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

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

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

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

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

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

sed ‘100i \ ABCDEF’ file1

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

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

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

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

umask 777

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

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

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

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

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

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

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

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

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

46: Что такое блок инода?

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

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

zip file1.zip file1 | mailx –s «subject» Идентификатор электронной почты получателя

Содержание электронной почты

EOF

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

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

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

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

50: Какая польза от линии Шебанга?

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