Top 50 Fragen zum Shell Scripting-Interview & Antworten

Anonim

PDF Herunterladen

1: Was ist eine Muschel?

Shell ist eine Schnittstelle zwischen dem Benutzer und dem Kernel. Obwohl es nur einen Kernel geben kann; Auf einem System können mehrere Shell gleichzeitig ausgeführt werden. Wenn ein Benutzer einen Befehl über die Tastatur eingibt, kommuniziert die Shell mit dem Kernel, um ihn auszuführen und dem Benutzer die Ausgabe anzuzeigen.

2: Was sind die verschiedenen Arten von häufig verwendeten Shells auf einem typischen Linux-System?

csh, ksh, bash, Bourne. Die heute am häufigsten verwendete und fortschrittlichste Shell ist "Bash".

3: Was entspricht einer Dateiverknüpfung, bei der auf einem Linux-System ein Fenster angezeigt wird?

Verknüpfungen werden unter Linux mit "Links" erstellt. Es gibt zwei Arten von Links, die verwendet werden können, nämlich "Soft Link" und "Hard Link".

4: Was ist der Unterschied zwischen weichen und harten Verbindungen?

Softlinks sind Links zum Dateinamen und können sich auch auf verschiedenen Dateisystemen befinden. Hardlinks sind jedoch Links zum Inode der Datei und müssen sich auf demselben Dateisystem wie das der Datei befinden. Durch das Löschen der Originaldatei wird der Softlink inaktiv (defekter Link), der Hardlink wird jedoch nicht beeinflusst (Hardlink greift weiterhin auf eine Kopie der Datei zu).

5: Wie werden Sie Argumente an ein Skript unter Linux übergeben und darauf zugreifen?

Argumente können wie folgt übergeben werden:

scriptName "Arg1" "Arg2"

…. "Argn" und kann im Skript als $ 1, $ 2… $ n aufgerufen werden

6: Welche Bedeutung hat $ #?

$ # zeigt die Anzahl der an das Skript übergebenen Argumente an.

7: Was ist der Unterschied zwischen $ * und $ @?

$ @ behandelt jedes Argument in Anführungszeichen als separate Argumente, aber $ * betrachtet den gesamten Satz von Positionsparametern als eine einzelne Zeichenfolge.

8: Verwenden Sie den Befehl sed, um den Inhalt der Datei zu ersetzen (emulieren Sie den Befehl tac).

Z.B:

if cat filleABCDEFGH

Dann sollte O / p sein

EFGHABCD

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

Hier wird der Befehl G an den Musterraum angehängt.

Der Befehl h kopiert den Musterpuffer, um den Puffer zu halten

und der Befehl d löscht den aktuellen Musterraum.

9: Bei einer Datei, ersetzen Sie alle Vorkommen des Wortes „ABC“ mit „DEF“ 5 th Linie bis Ende in nur jene Zeilen , das Wort „MNO“ enthält

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

10: Schreiben Sie bei gegebener Datei eine Befehlssequenz, um die Anzahl der einzelnen Wörter zu ermitteln.

tr -s "(backslash)040" 

"(Backslash) 011" ist ein oktales Äquivalent von "Tabulatorzeichen" und

"(Backslash) 012" ist ein oktales Äquivalent des Zeilenumbruchzeichens.

11: Wie werden Sie die 99 finden th Zeile einer Datei mit nur Schwanz und Kopf Befehl?

Schwanz +99 Datei1 | Kopf -1

12: Drucken der 10 - ten Zeile ohne Schwanz und Kopf - Befehl.

sed -n '10p' file1

13: In meiner Bash-Shell soll meine Eingabeaufforderung das Format '$ "Present Working Directory": "Hostname"> haben und eine Datei mit einer Liste benutzerdefinierter Funktionen laden, sobald ich mich anmelde. Wie können Sie dies automatisieren? ?

In der Bash-Shell können wir eine ".profile" -Datei erstellen, die automatisch aufgerufen wird, sobald ich mich anmelde und die folgende Syntax in sie schreibe.

export PS1='$ `pwd`:`hostname`>' .File1

Hier ist Datei1 die Datei, die die benutzerdefinierten Funktionen und "." Enthält. Ruft diese Datei in der aktuellen Shell auf.

14: Erklären Sie das Berechtigungsbit "s" in einer Datei?

Das "s" -Bit wird als "set user id" (SUID) -Bit bezeichnet.

Das Bit "s" in einer Datei bewirkt, dass der Prozess während der Instanz des Programms über die Berechtigungen des Eigentümers der Datei verfügt.

Wenn Sie beispielsweise den Befehl "passwd" ausführen, um das aktuelle Kennwort zu ändern, schreibt der Benutzer sein neues Kennwort in die Schattendatei, obwohl er "root" als Eigentümer hat.

15: Ich möchte ein Verzeichnis erstellen, in dem jeder in der Gruppe eine Datei erstellen und auf die Datei einer beliebigen Person zugreifen kann, aber niemand sollte in der Lage sein, eine andere als die von ihm selbst erstellte Datei zu löschen.

Wir können das Verzeichnis erstellen, das allen in der Gruppe Lese- und Ausführungszugriff gewährt, und das Sticky-Bit "t" wie folgt aktivieren:

mkdir direc1chmod g+wx direc1chmod +t direc1

16: Wie können Sie herausfinden, wie lange das System läuft?

Wir können dies mit dem Befehl "uptime" finden.

17: Wie kann ein Benutzer alle Informationen über einen bestimmten Benutzer herausfinden, wie z. B. seine Standard-Shell, den tatsächlichen Namen, das Standardverzeichnis, wann und wie lange er das System verwendet?

Finger "LoginName"

… Wobei loginName der Login-Name des ist

Benutzer, dessen Informationen erwartet werden.

18: Was ist der Unterschied zwischen $$ und $!?

$$ gibt die Prozess-ID des aktuell ausgeführten Prozesses an, während $! Zeigt die Prozess-ID des Prozesses an, der kürzlich in den Hintergrund getreten ist.

19: Was sind Zombie-Prozesse?

Dies sind die Prozesse, die gestorben sind, deren Beendigungsstatus jedoch vom übergeordneten Prozess noch nicht ausgewählt wird. Diese Prozesse haben auch dann, wenn sie nicht funktionsfähig sind, ihren Prozess-ID-Eintrag in der Prozesstabelle.

20: Wie kopieren Sie eine Datei von einem Computer auf einen anderen?

Wir können Dienstprogramme wie "ftp", "scp" oder "rsync" verwenden, um eine Datei von einem Computer auf einen anderen zu kopieren.

ZB mit ftp:

FTP-Hostname

> Datei1 einfügen

> tschüss

Über den Kopien die Datei file1 vom lokalen System zum Zielsystem, dessen Hostname angegeben ist.

21: Ich möchte eine ständig aktualisierte Protokolldatei überwachen. Mit welchem ​​Befehl kann dies am effizientesten erreicht werden?

Wir können den Dateinamen tail -f verwenden. Dies führt dazu, dass nur die letzten 10 Standardzeilen auf std o / p angezeigt werden, in denen der aktualisierende Teil der Datei kontinuierlich angezeigt wird.

22: Ich möchte eine Verbindung zu einem Remote-Server herstellen und einige Befehle ausführen. Wie kann ich dies erreichen?

Wir können ssh verwenden, um dies zu tun:

ssh Benutzername @ serverIP -p sshport

Beispiel

ssh Diese E-Mail-Adresse ist vor Spambots geschützt! JavaScript muss aktiviert werden, damit sie angezeigt werden kann. -p 22

Sobald der obige Befehl ausgeführt wurde, werden Sie aufgefordert, das Kennwort einzugeben

23: Ich habe 2 Dateien und möchte die Datensätze drucken, die beiden gemeinsam sind.

Wir können den Befehl "comm" wie folgt verwenden:

comm -12 file1 file2… 12 unterdrückt den Inhalt, der vorhanden ist

einzigartig 1 st und 2 nd - Datei auf.

24: Schreiben Sie ein Skript, um die ersten 10 Elemente der Fibonacci-Reihe zu drucken.

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

25: Wie stellen Sie unter Linux eine Verbindung zu einem Datenbankserver her?

Wir können das mit dem Open Client-Treiber gelieferte Dienstprogramm isql wie folgt verwenden:

isql -S Servername -U Benutzername -P Passwort

26: Was sind die 3 Standard-Streams unter Linux?

0 - Standardeingang1 - Standardeingang2 - Standardfehler

27: Ich möchte alle Eingaben in den Befehl von Datei1 lesen und alle Ausgaben in Datei2 und Fehler in Datei 3 leiten. Wie kann ich dies erreichen?

Befehl Datei2 2> Datei3

28: Was passiert mit meinem aktuellen Prozess, wenn ich einen Befehl mit exec ausführe?

"exec" überlagert den neu gegabelten Prozess mit dem aktuellen Prozess; Wenn ich den Befehl mit exec ausführe, wird der Befehl in der aktuellen Shell ausgeführt, ohne dass neue Prozesse erstellt werden.

Wenn Sie beispielsweise "exec ls" an der Eingabeaufforderung ausführen, wird ls ausgeführt, und sobald ls beendet wird, wird der Prozess beendet

29: Wie werden Sie wc -l mit awk emulieren?

awk 'END {print NR} Dateiname'

30: Finden Sie bei einer gegebenen Datei die Anzahl der Zeilen, die das Wort "ABC" enthalten.

grep -c "ABC" -Datei1

31: Was ist der Unterschied zwischen grep und egrep?

egrep ist Extended grep, das hinzugefügte grep-Funktionen wie "+" (1 oder mehr Vorkommen eines vorherigen Zeichens), "?" (0 oder 1 Vorkommen eines vorherigen Zeichens) und "|" unterstützt. (alternatives Matching)

32: Wie werden die Anmeldenamen aller Benutzer auf einem System gedruckt?

In der Datei / etc / shadow sind alle Benutzer aufgelistet.

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

33: Wie setze ich ein Array unter Linux?

Syntax in ksh:

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

34: Schreiben Sie die Syntax der "for" -Schleife auf

Syntax:

for iterator in (elements)doexecute commandsdone

35: Wie finden Sie den gesamten von einem bestimmten Benutzer verwendeten Speicherplatz?

du -s / home / user1… .wobei user1 der Benutzer ist, für den der gesamte Speicherplatz gefunden werden muss.

36: Schreiben Sie die Syntax für "if" -Bedingungen unter Linux?

Syntax

If condition is successfulthenexecute commandselseexecute commandsfi

37: Welche Bedeutung hat $?

Der Befehl $? gibt den Exit-Status des zuletzt ausgeführten Befehls an.

38: Wie löschen wir alle Leerzeilen in einer Datei?

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

Dabei ist (Backslash) 011 ein oktales Äquivalent von Leerzeichen und

(Backslash) 040 ist ein oktales Äquivalent der Registerkarte

39: Wie werde ich eine Linie einfügen „ABCDEF“ an jeder 100 - ten Zeile einer Datei?

sed '100i \ ABCDEF' file1

40: Schreiben Sie eine Befehlssequenz, um alle in weniger als 2 Tagen geänderten Dateien zu finden, und drucken Sie jeweils die Anzahl der Datensätze aus.

finden . -mtime -2 -exec wc -l {} \;

41: Wie kann ich die Standard-RWX-Berechtigung für alle Benutzer für jede Datei festlegen, die in der aktuellen Shell erstellt wird?

Wir können benutzen:

umask 777

Dadurch wird die Standard-RWX-Berechtigung für jede Datei festgelegt, die für jeden Benutzer erstellt wird.

42: Wie können wir den Prozessnamen anhand seiner Prozess-ID finden?

Wir können "ps -p ProcessId" verwenden

43: Was sind die vier grundlegenden Komponenten jedes Dateisystems unter Linux?

Bootblock, Superblock, Inode-Block und Datablock sind grundlegende Komponenten jedes Dateisystems unter Linux.

44: Was ist ein Bootblock?

Dieser Block enthält ein kleines Programm namens "Master Boot Record" (MBR), das den Kernel während des Systemstarts lädt.

45: Was ist ein Superblock?

Der Superblock enthält alle Informationen über das Dateisystem wie die Größe des Dateisystems, die Blockgröße, die von der Anzahl der freien Datenblöcke verwendet wird, und die Liste der freien Inodes und Datenblöcke.

46: Was ist ein Inode-Block?

Dieser Block enthält den Inode für jede Datei des Dateisystems sowie alle Dateiattribute mit Ausnahme des Namens.

47: Wie kann ich eine E-Mail mit einer komprimierten Datei als Anhang senden?

zip file1.zip file1 | mailx -s "subject" E-Mail-ID des Empfängers

E-Mail-Inhalt

EOF

48: Wie erstellen wir Befehls-Aliase in einer Shell?

alias Aliasname = "Befehl, dessen Alias ​​erstellt werden soll".

49: Was sind die Berechtigungsfelder "c" und "b" einer Datei?

Die Berechtigungsfelder "c" und "b" sind im Allgemeinen einer Gerätedatei zugeordnet. Es gibt an, ob eine Datei eine Sonderzeichendatei oder eine Blockspezialdatei ist.

50: Was nützt eine Shebang-Linie?

Die Shebang-Zeile am oberen Rand jedes Skripts bestimmt den Speicherort der Engine, die zum Ausführen des Skripts verwendet werden soll.