Fragen im Linux-Interview

Fragen im Linux-Interview

In diesem Blogbeitrag habe ich eine Liste der häufigsten Linux-Interviewfragen erstellt. Diese Linux-Interviewfragen sind nicht nur für Frischlinge, sondern auch für erfahrene Personen gut. Wenn Sie die Antwort auf diese Linux-Fragen wollen, dann schreiben Sie bitte in das Kommentarfeld. Wenn Sie die Antwort auf die Frage wissen, dann schreiben Sie die Antwort bitte in das Kommentarfeld. Es könnte Ihre Antwort hilfreich für andere sein. Diese Linux-Interviewfragen habe ich erstellt, nachdem ich viele Stunden damit verbracht habe, also hoffe ich, dass diese Linux-Interviewfragen hilfreich sein werden.

Was ist Linux?

Linux ist eine Familie von Open-Source-Unix-ähnlichen Betriebssystemen, die auf dem Linux-Kernel basieren. Linux wurde zuerst von Linus Torvalds eingeführt. Der Hauptzweck von Linux bestand darin, kostenlose und kostengünstige Betriebssysteme für Benutzer bereitzustellen, die sich Betriebssysteme wie Windows, iOS oder Unix nicht leisten konnten.

Was ist der Unterschied zwischen Linux und Unix?

Unten erwähne ich einige Unterschiede zwischen Linux und Unix.

  • Linux hat sowohl eine kostenlose als auch eine kostenpflichtige Version, aber Unix hat nur eine kostenpflichtige kostenlose Version, die nicht kostenlos verfügbar ist.
  • Linux-Quellcode ist für die breite Öffentlichkeit verfügbar, während der Quellcode unter Unix proprietär ist.
  • Linux-Benutzer durch allgemeine Benutzer, Entwickler usw. Aber Unix verwendet hauptsächlich Internet-Server, Workstation-Server, .etc.
  • UNIX OS wurde Ende der 1960er Jahre in den AT&T Bell Labs entwickelt, während Linux ein Betriebssystem ist, das 1991 von Linus Torvalds an der Universität Helsinki entwickelt wurde.
  • Linux ist ein Klon von Unix.
  • Die Linux-Standard-Shell ist BASH, während die Unix-Shell Bourne Shell ist.
  • Linux-Bedrohungserkennung und -lösung sind sehr schnell, während Unix-Benutzer längere Wartezeiten benötigen, um den richtigen Patch zur Fehlerbehebung zu erhalten.
  • Wichtige Versionen von Linux sind Redhat, Ubuntu, OpenSuse, Solaris, während wichtige Versionen von Unix HP-UX, AIS, BSD usw. sind

Was sind die grundlegenden Komponenten von Linux?

Unten habe ich grundlegende Komponenten von Linux erwähnt:

  • Kernel :Ein Kernel ist die Kernkomponente des Betriebssystems, das Operationen und Hardware verwaltet.
  • Schale: Shell ist ein Linux-Interpreter, der zum Ausführen von Befehlen verwendet wird.
  • GUI: GUI steht für Graphical User Interface, eine weitere Möglichkeit für einen Benutzer, mit dem System zu interagieren. Aber im Gegensatz zur CLI besteht die GUI aus Bildern, Schaltflächen und Textfeldern für die Interaktion.
  • Systemdienstprogramme: Dies sind die Softwarefunktionen, mit denen der Benutzer den Computer verwalten kann.
  • Anwendungsprogramme: Softwareprogramme oder eine Reihe von Funktionen, die zur Erfüllung einer bestimmten Aufgabe entwickelt wurden.

Was ist Swap Space?

Swap Space ist die Menge an physischem Speicher, die von Linux verwendet wird, um gleichzeitig laufende Programme vorübergehend zu speichern. Dieser Zustand tritt normalerweise auf, wenn der Arbeitsspeicher nicht genügend Speicherplatz für die Programme hat. Jetzt sucht der Prozessor nach Daten im RAM und im Swap Space. Es stehen verschiedene Befehle und Tools zur Verfügung, um die Nutzung des Swap-Speichers zu verwalten. Sie können dem Artikel den Vorteil des virtuellen Speichers entnehmen. Es stehen verschiedene Befehle und Tools zur Verfügung, um die Nutzung des Swap-Speichers zu verwalten.

Schreiben Sie die Befehle, um zu überprüfen, wie viel Speicher von Linux verwendet wird?

Unten haben wir die wenigen Befehle erwähnt, die verwenden, um zu überprüfen, wie viel Speicher von Linux verwendet wird.

oben

Der Befehl top kann zusammenfassende Systeminformationen sowie eine Liste der Prozesse anzeigen, die derzeit vom Linux-Kernel verwaltet werden.

kostenlos

Der Befehl „free“ zeigt normalerweise die Gesamtmenge des freien und belegten physischen und Swap-Speichers im System sowie die vom Kernel verwendeten Puffer an. Um die Größe des Speichers in Megabyte (MB) anzuzeigen, verwenden Sie die Option als -m.

free -m

top

Der htop-Befehl wird verwendet, um Prozesse in einem interaktiven Modus anzuzeigen und zeigt auch Informationen über die Speichernutzung an.

vmstat

Der vmstat-Befehl wird verwendet, um Informationen über virtuelle Speicherstatistiken anzuzeigen.

Was sind die Prozesszustände in Linux?

Jeder Prozess hat einige Zustände, unten haben wir Prozesszustände in Broadway mit ihren Prozesszustandscodes erwähnt.

Prozesszustände:
  • Wird ausgeführt:Der Prozess wird entweder ausgeführt oder ist zur Ausführung bereit
  • Unterbrechbar:ein blockierter Zustand eines Prozesses und Warten auf ein Ereignis oder Signal von einem anderen Prozess
  • Unterbrechungsfrei:ein blockierter Zustand. Der Prozess wartet auf einen Hardwarezustand und kann kein Signal verarbeiten
  • Gestoppt:Der Prozess ist gestoppt oder angehalten und kann von einem anderen Prozess neu gestartet werden
  • Zombie:Prozess beendet, aber die Informationen sind noch in der Prozesstabelle vorhanden.
PROZESSZUSTANDSCODES:
  • D unterbrechungsfreier Schlaf (normalerweise IO)
  • R ausführbar (in der Ausführungswarteschlange)
  • Schläft
  • T verfolgt oder gestoppt
  • Z ein nicht mehr funktionierender ("Zombie") Prozess

Erklären Sie den Befehl „ls“ unter Linux.

ls wird verwendet, um Informationen über Dateien und Verzeichnisse innerhalb des Dateisystems aufzulisten.

Syntax zur Verwendung von ls:

ls [OPTIONS] [FILES]

Hinweis: Als wir ls verwendeten ohne Optionen und Argumente zeigt es eine Liste mit den Namen aller Dateien im aktuellen Arbeitsverzeichnis.

Es gibt verschiedene Optionen, die mit dem ls-Befehl verwendet werden können, hier haben wir einige davon erwähnt.

  • -l   listet das Langformat auf (zeigt alle Berechtigungen der Datei).
  • -ld  Wenn Sie die Details des Verzeichnisses sehen möchten.
  • -i   listet Dateien mit ihrer Inode-Nummer auf.
  • -s  listet Dateien mit ihrer Größe auf.
  • -a  listet alle Dateien auf, einschließlich versteckter Dateien.
  • -S  listet Dateien mit ihrer Größe auf und sortiert die Liste nach Dateigröße.
  • -t   sortiert die aufgelisteten Dateien nach Uhrzeit und Datum.
  • -lh zeigt Dateigröße in leicht lesbarem Format an.

Wie benenne ich eine Datei unter Linux um?

Häufig müssen Sie den Datei- und Verzeichnisnamen umbenennen. Hier erkläre ich einige Befehle, die verwendet werden, um den Namen von Dateien und Verzeichnissen zu ändern. Also lass sie uns sehen,

Umbenennen von Dateien mit mv-Befehl:

Der Befehl mv wird verwendet, um Dateien umzubenennen oder von einem Speicherort an einen anderen zu verschieben.

Syntax zur Verwendung von mv:

mv [OPTIONS] source destination

Wenn Sie einen Dateinamen aml.txt haben und diesen mit aticleworld.txt ändern möchten. Sie brauchen also

mv aml.txt aticleworld.txt

Hinweis: Mit dem Befehl mv können Sie jeweils den einzelnen Dateinamen ändern.

Umbenennen von Dateien mit dem Umbenennungsbefehl:

Der Befehl rename ist nicht Teil einer Standard-Linux-Distribution, daher müssen Sie ihn installieren. In von Ubuntu und Debian abgeleiteten Distributionen installieren Sie rename wie folgt:

sudo apt install rename

Syntax zum Umbenennen:

rename [options] expression replacement file...

Was ist BASH?

Bash ist die Shell oder der Befehlsspracheninterpreter für das GNU-Betriebssystem. Der Name ist ein Akronym für „Bourne-Again SHell“, ein Wortspiel mit Stephen Bourne, dem Autor des direkten Vorfahren der aktuellen Unix-Shell sh, die in der siebten Ausgabe der Bell Labs Research-Version von Unix erschien.

Bash ist weitgehend kompatibel mit sh und enthält nützliche Features aus der Korn-Shell ksh und der C-Shell csh. Es soll eine konforme Implementierung des Teils IEEE POSIX Shell and Tools der IEEE POSIX-Spezifikation (IEEE Standard 1003.1) sein. Es bietet funktionale Verbesserungen gegenüber sh sowohl für interaktive als auch für Programmierzwecke.

Während das GNU-Betriebssystem andere Shells bereitstellt, einschließlich einer Version von csh, ist Bash die Standard-Shell. Wie andere GNU-Software ist Bash ziemlich portabel. Es läuft derzeit auf fast jeder Version von Unix und einigen anderen Betriebssystemen – es gibt unabhängig unterstützte Portierungen für MS-DOS-, OS/2- und Windows-Plattformen.

Was ist der grundlegende Unterschied zwischen BASH und DOS?

Bash ist eine leistungsstarke Befehlsshell und Skriptsprache, die aus der Bourne-Shell entwickelt wurde. Inzwischen sind Bash-Implementierungen jedoch auch auf anderen Betriebssystemen zu finden. Bash unterstützt Array-Variablen, Shell-Funktionen und sehr flexible Ersetzungen. Es wird aktiv weiterentwickelt und es werden regelmäßig neue Funktionen hinzugefügt.

BASH und DOS werden verwendet, um die Befehle zu interpretieren, die ein Benutzer eingibt. Unten haben wir einige Unterschiede zwischen dos und bash erwähnt.

BASH

DOS

Bei in BASH geschriebenen Befehlen wird zwischen Groß- und Kleinschreibung unterschieden DOS-Befehle unterscheiden nicht zwischen Groß- und Kleinschreibung.
In BASH ist das Zeichen „/“ ein Verzeichnistrennzeichen und „\“ ein Escape-Zeichen. In DOS ist „/“ ein Trennzeichen für Befehlsargumente und „\“ ein Verzeichnistrennzeichen.
BASH folgt keiner Konvention bei der Benennung von Dateien. DOS folgt einer Konvention beim Benennen von Dateien. Der Dateiname besteht aus 8 Zeichen, gefolgt von einem Punkt und 3 Zeichen für die Erweiterung.

Was ist der PWD-Befehl?

PWD steht für Print Working Directory. Es zeigt den Pfad des aktuellen Arbeitsverzeichnisses beginnend mit dem Stammverzeichnis an.

Syntax von PWD:

pwd [OPTION]...

Was sind die Umgebungsvariablen?

Umgebungsvariablen sind globale Einstellungen, die die Funktion der Shell sowie anderer Linux-Programme steuern. Ein weiterer gebräuchlicher Begriff für Umgebungsvariablen sind globale Shell-Variablen. Es kann sich auf die laufenden Prozesse oder die Programme auswirken, die in der Umgebung ausgeführt werden.

Sehen Sie sich ein Beispiel an, in dem ich eine Umgebungsvariable erstelle und einen Wert setze und später mit dem echo-Befehl auf ihren Wert zugreife.

$MSG="Love Aticleworld"

$echo $MSG

Es erzeugt das folgende Ergebnis.

Ich liebe Artikelwelt

Hinweis: Die Umgebungsvariablen werden ohne Verwendung des $-Zeichens gesetzt, aber beim Zugriff verwenden wir das $-Zeichen als Präfix. Diese Variablen behalten ihre Werte, bis wir die Shell verlassen.

Einige häufig verwendete ENVs in Linux
$USER: Gives the current user's name.
$PATH: Gives search path for commands.
$PWD: Gives the path of the present working directory.
$HOME: Gives path of the home directory.
$HOSTNAME: Gives the name of the host.
$LANG: Gives the default system language.
$EDITOR: Gives default file editor.
$UID: Gives user ID of the current user.
$SHELL: Gives location of current user's shell program.

Wie beenden Sie einen laufenden Prozess?

Jeder Prozess hat eine eindeutige Prozess-ID. Wir können den Prozess mit dem Kill-Befehl gefolgt von der PID beenden. Also müssen wir zuerst die PID des Prozesses finden. Der Befehl ps listet alle laufenden Prozesse zusammen mit der Prozess-ID auf. Nachdem Sie den Befehl ps ausgeführt haben, können Sie die Prozess-PID auswählen, die Sie auswählen möchten.

Hinweis: Um alle Prozesse auf einmal zu beenden, verwenden Sie kill 0.

Schreiben Sie einen Befehl, der alle .txt-Dateien anzeigt, einschließlich ihrer individuellen Berechtigungen.

ls -al *.txt

Wie können Sie den Status eines Prozesses finden?

Mit der folgenden Option mit dem Befehl ps können wir den Status eines Prozesses überprüfen.

ps axu

Wie kann man unter Linux eine Datei an eine andere anhängen?

Mit dem cat-Befehl können wir unter Linux eine Datei an eine andere Datei anhängen. Wir müssen das Symbol „>>“ (doppelt größer als) mit dem cat-Befehl verwenden, um die Datei anzuhängen. Sehen wir uns ein Beispiel an, wie wir eine Datei an eine andere Datei anhängen können.

Hier wird der Inhalt der Datei test1 an das Ende der Datei test2 angehängt.

cat test1 >> test2

Erklären Sie, wie die Bibliotheken unter Linux deinstalliert werden?

Um die Bibliotheken unter Linux zu deinstallieren, können Sie die folgenden Befehle verwenden,

Wenn Sie nur die Bibliothek deinstallieren und die Konfigurationsdatei nicht löschen möchten.

sudo apt-get remove library_name

Wenn Sie nur die Bibliothek deinstallieren und die Konfigurationsdateien löschen möchten.

sudo apt-get --purge remove library_name

Wenn Sie ungenutzte Pakete entfernen möchten, verwenden Sie den Befehl „autoremove“.

sudo apt-get autoremove

Wenn Sie ein Programm und auch seine Abhängigkeiten entfernen möchten, die nicht mehr verwendet werden.

sudo apt-get purge --auto-remove library_name

Was ist der Befehl, um die Größe eines Ordners zu berechnen?

Um die Größe eines Ordners zu berechnen, verwenden Sie den Befehl,

du –sh Folder_Name

Erklären Sie den virtuellen Desktop.

Ein virtueller Desktop bedeutet, dass die Desktop-Umgebung eines Benutzers (die Symbole, Hintergrundbilder, Fenster, Ordner, Symbolleisten, Widgets usw.) remote auf einem Server und nicht auf einem lokalen PC oder einem anderen Client-Computergerät gespeichert wird. Desktop-Virtualisierungssoftware trennt die Desktop-Betriebssysteme, -Anwendungen und -Daten vom Hardware-Client und speichert diesen „virtuellen Desktop“ auf einem Remote-Server.

Der Remote-Server, der virtuelle Desktops ausführt und unterstützt, verwendet eine als Hypervisor bezeichnete Software, um eine „virtuelle Maschine“ zu erstellen, die die Desktop-Umgebung und die Fähigkeiten des Benutzers simuliert. In einer virtuellen Desktop-Umgebung greifen Benutzer über das Internet von jedem Client-Gerät aus auf ihren persönlichen Desktop zu.

Es gibt zwei Möglichkeiten, Virtual Desktop zu implementieren:

  • Desktops wechseln.
  • Übergroße Desktops.

Wie führen Sie mehr als einen Befehl oder ein Programm von einem einzigen Befehlszeileneintrag aus?

Sie können mehrere Befehle kombinieren, indem Sie jeden Befehl oder jedes Programm durch ein Semikolon-Symbol trennen. Beispielsweise können Sie eine solche Reihe von Befehlen in einem einzigen Eintrag ausführen:

ls –l cd .. ls –a MYWORK which is equivalent to 3 commands: ls -l cd.. ls -a MYWORK

Beachten Sie, dass dies nacheinander in der angegebenen Reihenfolge ausgeführt wird.

Was passiert auf einer Einprozessormaschine mit deaktivierter Präemption intern, wenn wir spin_lock() sagen?

Was sind die Mindestanforderungen für Linux, um auf Hardware zu funktionieren?

Welche Vor- und Nachteile hat die Verwendung von CPU-Variablen als Synchronisierungsmethode?

Was ist der Unterschied zwischen Kontextwechsel und Präemption?

Kann ich ein Spinlock in einer CPU sperren und es in einer anderen CPU entsperren?

Wie testen Sie, ob es Speicherlecks in einer Linux-Anwendung gibt?

Wie finden Sie auf einem Multiprozessorsystem heraus, welcher Prozess auf welchem ​​Prozessor läuft?

Was ist die Verwendung von L1-, L2-, L3-Caches?

Was ist der Unterschied zwischen binärem Semaphor und Mutex in Linux?

Was ist der Unterschied zwischen down_interruptible und down_killable in Semaphore?

Wie ändere ich die Priorität eines Prozesses in Linux?

Wo werden Seitentabellen gespeichert?

Was ist SMP?

Unterschied zwischen IO Mapped IO und Memory Mapped IO.

Unterschied zwischen kmalloc und vmalloc.

Unterschied zwischen Prozessor und Kern.

Wie kann ich herausfinden, wie oft ein Prozess unter Linux unterbrochen wurde?

Was gibt malloc(0) zurück?

Wenn die Größe des angeforderten Speicherplatzes Null ist, ist das Verhalten implementierungsdefiniert. Der Rückgabewert von malloc könnte ein Nullzeiger sein oder es zeigt das Verhalten, dass size ein Wert ungleich Null ist. Es wird vom Standard vorgeschlagen, den Zeiger nicht zu verwenden, um auf ein Objekt zuzugreifen, das von malloc zurückgegeben wird, während die Größe Null ist.

Sehen wir uns ein Beispiel-C-Programm an, in dem ich Speicher mit Hilfe von malloc mit der Größe 0 zuweise.

#include<stdio.h>
#include<stdlib.h>
int main (void)
{
    int *piBuffer = NULL;
    //allocating memory using
    //the malloc with size 0.
    piBuffer = malloc(0);
    //make sure piBuffer is valid or not
    if (piBuffer == NULL)
    {
        // allocation failed, exit from the program
        fprintf(stderr, "Out of memory!\n");
        exit(1);
    }
    *piBuffer = 10;
    printf("%d\n",*piBuffer);
    free(piBuffer);
    return 0;
}

Ausgabe: Implementierungsabhängig.

Was ist die Ursache für den Stapelüberlauf?

In der eingebetteten Anwendung haben wir im Vergleich zur Desktop-Anwendung wenig Stapelspeicher. Wir müssen also sehr sorgfältig an eingebetteten Anwendungen arbeiten, sonst können wir uns den Stapelüberlaufproblemen stellen, die eine Ursache für den Absturz der Anwendung sein können.

Hier habe ich einige Ursachen für unerwünschte Verwendung des Stacks erwähnt.

1. Unsachgemäße Verwendung der rekursiven Funktion.
2 . Übergabe an viele Argumente in der Funktion.
3. Eine Struktur direkt an eine Funktion übergeben.
4. Verschachtelte Funktionsaufrufe.
5. Erstellen eines riesigen lokalen Arrays.

Was ist NUMA?

Wie lange darf sich die CPU nach dem Erwerb von Spinlock maximal im kritischen Abschnitt befinden?

Unterschied zwischen GFP_KERNEL und GFP_ATOMIC.

Was passiert intern während des Kontextwechsels im Linux-Kernel?

Welche Datei in Linux gibt Ihnen Informationen über Speicherzonen?

Was ist Puffer/Cache?

Was ist der asm-generic-Ordner im Linux-Quellcode?

Was es enthält?

Wird ein Modul geladen, wenn es eine while(1)-Schleife in der module_init-Funktion hat?

Was ist der maximale Speicher, der mit vmalloc zugewiesen werden kann?

Was ist der maximale Speicher, der mit kmalloc zugewiesen werden kann?

Was ist der Unterschied zwischen VIRT-, RES- und SHR-Feldern in Top Command?

Was ist der von malloc und free verwendete Systemaufruf?

Was ist der maximale Speicher, den ich mit malloc zuweisen kann?

Das Makefile-Makro, das man setzt, um zu identifizieren, welche Datei für das Kernel-Makefile in ein Modul umgewandelt werden soll, ist _____. a. obj-m b. obj-y c. Ziel d. Liste.

Wie überprüfen Sie, wie viele Lanes von der PCIe-Karte unter Linux verwendet werden?

Die maximale Anzahl von PCI-Geräten, die mit einem Host verbunden werden können.

Was sind Lanes in PCI?

Wie erfolgt die automatische Erkennung von PCI-Geräten in PCI?

Was ist eine PCI-Bridge?

Wo suchen ausführbare Dateien zur Laufzeit nach gemeinsam genutzten Objekten?

Haben Mikroprozessoren einen internen Speicher?

Was ist der Zweck des fPIC-Flags beim Generieren der gemeinsam genutzten Bibliothek.

Wie hoch ist die durchschnittliche Auslastung unter Linux?

Linux lässt die ersten paar Kilobyte (oder sogar Megabyte) des virtuellen Adressraums jedes Prozesses absichtlich unzugeordnet, sodass Versuche, Nullzeiger zu dereferenzieren, einen unbehandelten Seitenfehler erzeugen, der zu einem sofortigen SIGSEGV führt und den Prozess beendet.

Ist Systembus =Adressbus + Datenbus + Steuerbus.

Was ist die Verwendung des O_SYNC-Flags beim Öffnen der Datei?

Was ist in diesem Prozess residenter Speicher?

Virtueller Speicher ist unterteilt in ____ a) Seiten b) Bytes c) Bits.

Was sind die Vorteile der Verwendung von virtuellem Speicher?

Was sind die Vorteile der statischen Bibliothek gegenüber einer gemeinsam genutzten Bibliothek?

Wozu dient die Prozedurverknüpfungstabelle (PLT) während des Starts einer Anwendung.

Was sind die Vorteile der gemeinsam genutzten Bibliothek gegenüber der statischen Bibliothek?

Wie viele Jobs sollte es beim Kompilieren des Linux-Kernels geben? make -j.

Was ist der Unterschied zwischen einer Datei und einem Inode?

Wie wird der Scheduler im Linux-Kernel aufgerufen?

Wozu dient das initrd-Image beim Booten?

Was ist in einer statischen Bibliothek vorhanden?

Welchen Nutzen haben wahrscheinliche und unwahrscheinliche Makros im Linux-Kernel?

Wie finden Sie heraus, welcher Init-Manager auf Ihrem Linux-Rechner läuft:sysvinit/systemd?

Was sind Verschiebungen in einer Objektdatei?

Kann ich kmalloc(GFP_KERNEL) aufrufen, während ich einen Spinlock halte?

Welchen Vorteil hat es, ein Symbol als schwach zu deklarieren?

Was ist die erste Funktion, die aufgerufen wird, wenn der Linux-Kernel geladen wird?

Welche sperrenfreien Algorithmen gibt es im Linux-Kernel?

Warum zeigt das Ausführen des Befehls ps ohne Optionen auf der Shell nur zwei Einträge?

Was passiert, wenn Sie spin_lock() auf einem Einprozessorsystem mit aktivierter Präemption aufrufen?

Welche Operationen werden vom Linker während des Kompilierungsprozesses ausgeführt?

Welche Datenstruktur ist im Linux-Kernel implementiert?

Was sind die Vorteile von Sigaction gegenüber Signal?

Wozu dient der Swapper-Prozess unter Linux?

Wie beendet man den Prozess, der sich im Zustand TASK_UNINTERRUPTIBLE befindet?

Empfohlener Beitrag

  • Kann Interviewfragen protokollieren.
  • 100 C Interviewfragen.
  • I2C-Interviewfragen
  • Interviewfragen zu bitweisen Operatoren in C
  • C++-Interviewfragen.
  • 10 Fragen zur dynamischen Speicherzuweisung.
  • Dateiverwaltung in C.
  • Zeiger in C.
  • C-Formatbezeichner.

Referenz:https://www.gnu.org/software