50 pytań i odpowiedzi do wywiadu na temat skryptów powłoki (2025)
Pytania i odpowiedzi dotyczące wywiadu dotyczącego skryptów powłoki systemu Linux
1) Co to jest skorupa?
Shell to interfejs między użytkownikiem a kernelem. Mimo że może być tylko jedno kernel, system może mieć wiele shelli uruchomionych jednocześnie. Tak więc, kiedy użytkownik wprowadza polecenie za pomocą klawiatury, shell komunikuje się z kernelem, aby je wykonać, a następnie wyświetla dane wyjściowe użytkownikowi.
2) Co to jest skrypt powłoki?
Skrypty powłoki to program komputerowy typu open source przeznaczony do uruchamiania w powłoce Unix/Linux. Shell Scripting to program służący do pisania serii poleceń do wykonania przez powłokę. Może łączyć długie i powtarzalne sekwencje poleceń w jeden prosty skrypt, który można zapisać i wykonać w dowolnym momencie, co zmniejsza wysiłek programistyczny.
3) Jakie są różne typy powszechnie używanych powłok w typowym systemie Linux?
csh, ksh, bash, Bourne . Najczęściej używaną i zaawansowaną powłoką używaną obecnie jest „Bash”.
4) Jaki jest odpowiednik skrótu do pliku, którym mamy okno w systemie Linux?
Skróty są tworzone za pomocą „linków” w systemie Linux. Można zastosować dwa rodzaje linków, a mianowicie „link miękki” i „link twardy”.
5) Jaka jest różnica między linkami miękkimi i twardymi?
Miękkie linki prowadzą do nazwy pliku i mogą znajdować się również w innym systemie plików; jednak dowiązania twarde są łączami do i-węzła pliku i muszą znajdować się w tym samym systemie plików, co plik. Usunięcie oryginalnego pliku powoduje, że miękkie łącze staje się nieaktywne (uszkodzone łącze), ale nie ma wpływu na twarde łącze (twarde łącze nadal będzie umożliwiać dostęp do kopii pliku)
6) W jaki sposób będziesz przekazywać argumenty i uzyskiwać do nich dostęp do skryptu w systemie Linux?
Argumenty można przekazywać jako:
nazwa_skryptu „Arg1” „Arg2″….”Argn” i można uzyskać do niego dostęp wewnątrz skryptu jako $1 , $2 .. $n
7) Jaka jest różnica między $* i $@?
$@ traktuje każdy cytowany argument jako osobne argumenty, ale $* traktuje cały zestaw parametrów pozycyjnych jako pojedynczy ciąg.
8) Użyj polecenia sed, aby zastąpić zawartość pliku (emuluj polecenie tac)
Na przykład:
if cat fille ABCD EFGH
Wtedy powinno być O/p
E F G H
ABCD
sed '1! G; h;$!d' file1
Tutaj polecenie G dołącza się do przestrzeni wzoru,
Polecenie h kopiuje bufor wzorca do bufora podtrzymującego
i d usuwa bieżącą przestrzeń wzorów.
9) Biorąc pod uwagę plik, zamień wszystkie wystąpienia słowa „ABC” na „DEF” z punktu 5th linia do końca tylko w tych liniach, które zawierają słowo „MNO”
sed –n '5,$p' file1|sed '/MNO/s/ABC/DEF/'
10) Mając plik, napisz sekwencję poleceń, aby znaleźć liczbę każdego słowa.
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"
„(ukośnik odwrotny)011” jest ósemkowym odpowiednikiem „znaku tabulacji” i
„(ukośnik odwrotny)012” jest ósemkowym odpowiednikiem znaku nowej linii.
11) Jak znajdziesz 99th wiersz pliku przy użyciu tylko polecenia ogona i głowy?
ogon +99 plik1|głowa -1
12) Wydrukuj 10th linię bez użycia poleceń „ogon” i „głowa”.
sed –n '10p' file1
13) W mojej powłoce bash chcę, aby mój znak zachęty miał format „$”Obecny katalog roboczy”:”nazwa hosta”> i ładował plik zawierający listę funkcji zdefiniowanych przez użytkownika, gdy tylko się zaloguję. Jak to zautomatyzować ?
W powłoce bash możemy utworzyć plik „.profile”, który zostanie automatycznie uruchomiony zaraz po zalogowaniu i wpisać do niego następującą składnię.
export PS1='$ `pwd`:`hostname`>' .File1
Tutaj File1 to plik zawierający funkcje zdefiniowane przez użytkownika i „.” wywołuje ten plik w bieżącej powłoce.
14) Wyjaśnij, na czym polega bit uprawnień „s” w pliku?
Bit „s” nazywany jest bitem „ustaw identyfikator użytkownika” (SUID).
Bit „s” w pliku powoduje, że proces ma uprawnienia właściciela pliku podczas instancji programu.
Na przykład wykonanie polecenia „passwd” w celu zmiany bieżącego hasła powoduje, że użytkownik zapisuje nowe hasło do pliku Shadow, mimo że jego właścicielem jest „root”.
15) Chcę utworzyć katalog w taki sposób, aby każdy członek grupy mógł utworzyć plik i uzyskać dostęp do znajdującego się w nim pliku dowolnej osoby, ale nikt nie powinien mieć możliwości usunięcia innego pliku niż ten, który sam utworzył.
Możemy utworzyć katalog dający dostęp do odczytu i wykonywania dla wszystkich w grupie i ustawiając jego lepki bit „t” w następujący sposób:
mkdir direc1 chmod g+wx direc1 chmod +t direc1
16) Jak można sprawdzić, jak długo system działa?
Możemy to znaleźć za pomocą polecenia „uptime”.
17) W jaki sposób użytkownik może znaleźć wszystkie informacje o konkretnym użytkowniku, takie jak jego domyślna powłoka, rzeczywista nazwa, domyślny katalog, kiedy i jak długo korzysta z systemu?
palec „nazwa_logowania” …gdzie nazwa_logowania to nazwa logowania
użytkownik, którego informacji się oczekuje.
18) Jaka jest różnica pomiędzy $$ i $!?
$$ podaje identyfikator aktualnie wykonywanego procesu, natomiast $! Pokazuje identyfikator procesu, który ostatnio przeszedł w tło.
19) Czym są procesy zombie?
Są to procesy, które umarły, ale których status zakończenia nadal nie jest wybierany przez proces nadrzędny. Te procesy, nawet jeśli nie działają, nadal mają wpis identyfikatora procesu w tabeli procesów.
20) Jak skopiujesz plik z jednego komputera na drugi?
Do kopiowania plików z jednego komputera na drugi możemy używać narzędzi takich jak „ftp”, „scp” lub „rsync”.
Np. przy użyciu FTP:
Nazwa hosta FTP
>umieść plik 1
> cześć
Powyżej kopiuje plik plik1 z systemu lokalnego do systemu docelowego, którego nazwa hosta jest określona.
Pytania i odpowiedzi na rozmowę kwalifikacyjną dotyczącą skryptów powłoki dla doświadczonych
21) Chcę monitorować stale aktualizowany plik dziennika. Jakiego polecenia można użyć, aby najskuteczniej to osiągnąć?
Możemy użyć tail –f filename. Spowoduje to, że tylko domyślne ostatnie 10 wierszy zostanie wyświetlonych na std o/p, który ciągle pokazuje aktualizowaną część pliku.
22) Chcę połączyć się ze zdalnym serwerem i wykonać kilka poleceń. Jak mogę to osiągnąć?
Możemy użyć do tego ssh:
ssh nazwa użytkownika@IP serwera -p port ssh
Przykład
ssh root@122.52.251.171 -p 22
Po wykonaniu powyższego polecenia zostaniesz poproszony o podanie hasła
23) Mam 2 pliki i chcę wydrukować rekordy, które są wspólne dla obu.
Możemy użyć polecenia „comm” w następujący sposób:
comm -12 plik1 plik2 … 12 pominie zawartość, która jest
unikalny dla 1st i 2nd odpowiednio plik.
24) Napisz skrypt wyświetlający pierwsze 10 elementów ciągu Fibonacciego.
#!/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) Jak połączysz się z serwerem bazy danych z Linuksa?
Możemy użyć narzędzia isql dołączonego do otwartego sterownika klienta w następujący sposób:
isql –S nazwa serwera –U nazwa użytkownika –P hasło
26) Jakie są 3 standardowe strumienie w systemie Linux?
0 – Wejście standardowe 1 – Wyjście standardowe 2 – Błąd standardowy
27) Chcę odczytać wszystkie dane wejściowe polecenia z pliku 1 i skierować wszystkie dane wyjściowe do pliku 2, a błąd do pliku 3. Jak mogę to osiągnąć?
Komenda plik1 1>plik2
28) Co stanie się z moim bieżącym procesem, gdy wykonam polecenie za pomocą exec?
„exec” nakłada nowo rozwidlony proces na bieżący proces; więc kiedy wykonuję polecenie za pomocą exec, polecenie zostanie wykonane w bieżącej powłoce bez tworzenia żadnych nowych procesów.
Np. wykonanie "exec ls"
w wierszu poleceń wykona polecenie ls, a po jego zakończeniu proces zostanie zamknięty
29) Jak będziesz emulować wc –l przy użyciu awk?
awk 'END {print NR} fileName'
30) Biorąc pod uwagę plik, znajdź liczbę linii zawierających słowo „ABC”.
grep –c plik „ABC”1
31) Jaka jest różnica między grepem a egrepem?
egrep to rozszerzony grep, który obsługuje dodane funkcje grep, takie jak „+” (1 lub więcej wystąpień poprzedniego znaku),”?” (0 lub 1 wystąpienie poprzedniego znaku) i „|” (alternatywne dopasowanie)
32) Jak ustawić tablicę w systemie Linux?
Składnia w ksh:
Set –A arrayname= (element1 element2 ….. element) In bash A=(element1 element2 element3 …. elementn)
33) Zapisz składnię pętli „for”.
Składnia:
for iterator in (elements) do execute commands done
34) Jak sprawdzić całkowitą ilość miejsca na dysku zajmowaną przez konkretnego użytkownika?
du -s /home/user1 ….gdzie użytkownik1 to użytkownik, dla którego należy znaleźć całe miejsce na dysku.
35) Napisz składnię warunków warunkowych „if” w systemie Linux?
Składnia
If condition is successful then execute commands else execute commands fi
36) Jakie jest znaczenie $?
Polecenie $? podaje status wyjścia ostatniego wykonanego polecenia.
37) Jak usunąć wszystkie puste linie w pliku?
sed '^ [(backslash)011(backslash)040]*$/d' file1
gdzie (ukośnik odwrotny)011 jest ósemkowym odpowiednikiem spacji i
(ukośnik odwrotny)040 jest ósemkowym odpowiednikiem tabulatora
38) Jak wstawię linię „ABCDEF” co 100th wiersz pliku?
sed '100i\ABCDEF' plik1
39) Napisz sekwencję poleceń, aby znaleźć wszystkie pliki zmodyfikowane w czasie krótszym niż 2 dni i wydrukować liczbę rekordów każdego z nich.
znajdować . –mtime -2 –exec wc –l {} \;
40) Jak mogę ustawić domyślne uprawnienia rwx dla wszystkich użytkowników dla każdego pliku utworzonego w bieżącej powłoce?
Możemy użyć:
umask 777
Spowoduje to ustawienie domyślnych uprawnień rwx dla każdego pliku utworzonego dla każdego użytkownika.
41) Jak znaleźć nazwę procesu na podstawie jego identyfikatora?
Możemy użyć "ps –p ProcessId"
42) Jakie są cztery podstawowe komponenty każdego systemu plików w systemie Linux?
Blok rozruchowy, superblok, blok i-węzłów i blok danych to podstawowe elementy każdego systemu plików w systemie Linux.
43) Co to jest blok rozruchowy?
Blok ten zawiera mały program o nazwie „Master Boot record” (MBR), który ładuje jądro podczas uruchamiania systemu.
44) Co to jest superblok?
Superblok zawiera wszystkie informacje o systemie plików, takie jak rozmiar systemu plików, rozmiar bloku używany przez liczbę wolnych bloków danych oraz listę wolnych i-węzłów i bloków danych.
45) Co to jest blok i-węzła?
Blok ten zawiera i-węzeł każdego pliku systemu plików wraz ze wszystkimi atrybutami pliku z wyjątkiem jego nazwy.
46) Jak mogę wysłać maila z plikiem skompresowanym jako załącznikiem?
plik zip1.plik zip1|mailx –s „temat” Identyfikator e-mail odbiorcy
Treść wiadomości e-mail
EOF
47) Jak tworzymy aliasy poleceń w powłoce?
alias Aliasname=”Polecenie, którego alias ma zostać utworzony”.
48) Co to są pola uprawnień „c” i „b” pliku?
„c” i „b” pola uprawnień są zazwyczaj powiązane z plikiem urządzenia. Określa, czy plik jest plikiem znaków specjalnych, czy specjalnym plikiem blokowym.
49) Jaki jest pożytek z linii shebang?
Linia Shebang na górze każdego skryptu określa lokalizację silnika, który ma zostać użyty do wykonania skryptu.
Te pytania podczas rozmowy kwalifikacyjnej pomogą również w Twoim życiu (ustach)