このブログ投稿では、最も一般的な Linux 面接の質問のリストを作成しました。これらの Linux 面接の質問は、初心者だけでなく、経験者にも適しています。これらの Linux に関する質問への回答が必要な場合は、コメント ボックスに記入してください。質問の答えが分かっている場合は、コメント欄に答えを書いてください。他の人に役立つあなたの答えかもしれません。これらの Linux 面接の質問は、私が何時間もかけて作成したものなので、これらの Linux 面接の質問がお役に立てば幸いです。
Linux とは
Linux は、Linux カーネルに基づく、オープンソースの Unix に似たオペレーティング システムのファミリです。 Linux は Linus Torvalds によって最初に紹介されました。 Linux の主な目的は、Windows、iOS、Unix などのオペレーティング システムを購入する余裕のないユーザーに、無料で低コストのオペレーティング システムを提供することでした。
Linux と Unix の違いは何ですか?
以下に、Linux と Unix のいくつかの相違点について言及します。
- Linux には無料版と有料版の両方がありますが、Unix には有料版しかなく、無料版はありません
- Linux のソース コードは一般に公開されていますが、Unix のソース コードは独自仕様です。
- 一般ユーザー、開発者などによる Linux ユーザー。ただし、Unix は主にインターネット サーバー、ワークステーション サーバーなどで使用されます。
- UNIX OS は 1960 年代後半に AT&T ベル研究所で作成されましたが、Linux は 1991 年にヘルシンキ大学の Linus Torvalds によって構築されたオペレーティング システムです。
- Linux は Unix のクローンです。
- Linux のデフォルト シェルは BASH ですが、Unix シェルは Bourne Shell です。
- Linux の脅威の検出と解決は非常に高速ですが、Unix ユーザーが適切なバグ修正パッチを入手するには、より長い待ち時間が必要です。
- Linux の重要なバージョンは Redhat、Ubuntu、OpenSuse、Solaris ですが、Unix の重要なバージョンは HP-UX、AIS、BSD などです。
Linux の基本コンポーネントは何ですか?
以下に、Linux の基本コンポーネントについて説明しました。
- カーネル :カーネルは、オペレーションとハードウェアを管理するオペレーティング システムのコア コンポーネントです。
- シェル: シェルは、コマンドの実行に使用される Linux インタープリターです。
- GUI: GUI は、ユーザーがシステムと対話するための別の方法であるグラフィカル ユーザー インターフェイスの略です。ただし、CLI とは異なり、GUI は対話用の画像、ボタン、テキスト ボックスで構成されます。
- システム ユーティリティ: これらは、ユーザーがコンピュータを管理できるようにするソフトウェア機能です。
- アプリケーション プログラム: 特定のタスクを達成するために設計されたソフトウェア プログラムまたは一連の機能
スワップスペースとは?
スワップ スペースは、Linux が同時に実行中のプログラムを一時的に保持するために使用する物理メモリの量です。この状態は通常、プログラムを保持するのに十分なスペースが RAM にない場合に発生します。これでプロセッサは RAM とスワップ空間でデータを探します。スワップ領域の使用を管理するために使用できるさまざまなコマンドとツールがあります。仮想メモリのメリットの記事をご覧いただけます。スワップ領域の使用を管理するために使用できるさまざまなコマンドとツールがあります。
Linux で使用されているメモリの量を確認するコマンドを作成しますか?
以下に、Linux で使用されているメモリの量を確認するために使用するいくつかのコマンドについて説明しました。
トップ
top コマンドは、システムの概要情報と、Linux カーネルによって現在管理されているプロセスのリストを表示できます。
無料
「free」コマンドは通常、システム内の空きおよび使用済みの物理メモリとスワップ メモリの合計量、およびカーネルによって使用されているバッファを表示します。メモリーのサイズを (MB) メガバイト単位で表示するには、オプションを -m として使用します。
free -m
トップ
htop コマンドは、インタラクティブ モードでプロセスを表示するために使用され、メモリ使用量に関する情報も表示します。
vmstat
vmstat コマンドは、仮想メモリ統計に関する情報を表示するために使用されます。
Linux のプロセス状態とは?
すべてのプロセスにはいくつかの状態があります。以下では、プロセス状態コードとともにプロセス状態について大まかに説明しています。
プロセスの状態:
- 実行中:プロセスは実行中か、実行する準備ができています
- 中断可能:プロセスのブロック状態で、別のプロセスからのイベントまたはシグナルを待機中
- 中断不可:ブロックされた状態。プロセスはハードウェアの状態を待機しており、シグナルを処理できません
- 停止:プロセスは停止または一時停止されており、他のプロセスによって再開できます
- ゾンビ:プロセスは終了しましたが、情報はまだプロセス テーブルにあります。
プロセス状態コード:
- 中断のないスリープ (通常は IO)
- R 実行可能 (実行キュー上)
- 寝てる
- 追跡または停止
- 廃止された (「ゾンビ」) プロセス
Linux の「ls」コマンドについて説明してください。
ls は、ファイル システム内のファイルとディレクトリに関する情報を一覧表示するために使用されます。
ls を使用する構文:
ls [OPTIONS] [FILES]
注: ls を使用したとき オプションと引数を指定しないと、現在の作業ディレクトリにあるすべてのファイルの名前のリストが表示されます。
ls コマンドで使用できるさまざまなオプションがあります。ここでは、そのうちのいくつかについて説明しました。
- -l 長い形式で一覧表示します (ファイルのすべての権限を表示します)。
- -ld ディレクトリの詳細が必要な場合
- -i は、ファイルをその inode 番号とともに一覧表示します。
- -s は、ファイルをそのサイズとともに一覧表示します
- -a は隠しファイルを含むすべてのファイルを一覧表示します
- -S は、ファイルをそのサイズで一覧表示し、リストをファイル サイズで並べ替えます。
- -t リストされたファイルを日時で並べ替えます。
- -lh 読みやすい形式でファイル サイズを表示します。
Linux でファイルの名前を変更する方法
ファイル名とディレクトリ名を何度も変更する必要があります。ここでは、ファイルとディレクトリの名前を変更するために使用されるいくつかのコマンドについて説明します。それでは、それらを見てみましょう。
mv コマンドでファイル名を変更する:
mv コマンドは、ファイルの名前を変更したり、ファイルをある場所から別の場所に移動したりするために使用されます。
mv を使用する構文:
mv [OPTIONS] source destination
ファイル名が aml.txt で、その名前を aticleworld.txt に変更したい場合。
mv aml.txt aticleworld.txt
注: mv コマンドを使用すると、一度に 1 つのファイル名を変更できます。
rename コマンドを使用してファイルの名前を変更する:
rename コマンドは標準の Linux ディストリビューションには含まれていないため、インストールする必要があります。 Ubuntu および Debian 派生ディストリビューションでは、次のように rename をインストールします:
sudo apt install rename
rename を使用する構文:
rename [options] expression replacement file...
BASH とは?
Bash は、GNU オペレーティング システム用のシェル、またはコマンド言語インタープリターです。この名前は「Bourne-Again SHell」の頭字語であり、現在の Unix シェル sh の直接の祖先の作者である Stephen Bourne の語呂合わせであり、Unix の第 7 版 Bell Labs Research バージョンに登場しました。
bash は主に sh と互換性があり、Korn シェル ksh および C シェル csh の便利な機能が組み込まれています。これは、IEEE POSIX 仕様 (IEEE 標準 1003.1) の IEEE POSIX シェルおよびツール部分の適合実装を意図しています。インタラクティブな使用とプログラミングの使用の両方で、sh よりも機能が向上しています。
GNU オペレーティング システムは csh のバージョンを含む他のシェルを提供しますが、Bash がデフォルトのシェルです。他の GNU ソフトウェアと同様に、Bash は非常に移植性があります。現在、ほぼすべてのバージョンの Unix と他のいくつかのオペレーティング システムで動作します。MS-DOS、OS/2、および Windows プラットフォーム用に独立してサポートされているポートが存在します。
BASH と DOS の基本的な違いは何ですか?
Bash は、Bourne シェルから開発された強力なコマンド シェルおよびスクリプト言語です。ただし、現在、Bash の実装は他のオペレーティング システムでも見られます。 Bash は、配列変数、シェル関数、および非常に柔軟な置換をサポートしています。積極的に開発されており、新機能が定期的に追加されています。
BASH と DOS は、ユーザーが入力するコマンドを解釈するために使用されます。以下では、dos と bash の違いについて説明しました。
バッシュ | DOS |
BASH で記述されたコマンドは大文字と小文字が区別されます | DOS コマンドは大文字と小文字を区別しません。 |
BASH では、「/」文字はディレクトリ区切り文字であり、「\」文字はエスケープ文字です。 | DOS では、「/」はコマンド引数の区切り記号で、「\」はディレクトリの区切り記号です。 |
BASH では、ファイルの命名規則はありません | DOS はファイルの命名規則に従っています。 8 文字のファイル名の後にドットと 3 文字の拡張子が続きます。 |
PWD コマンドとは?
PWD は Print Working Directory の略です。ルートから始まる、現在の作業ディレクトリのパスが表示されます。
PWD の構文:
pwd [OPTION]...
環境変数は何ですか?
環境変数は、シェルの機能と他の Linux プログラムの機能を制御するグローバル設定です。環境変数のもう 1 つの一般的な用語は、グローバル シェル変数です。進行中のプロセスや環境で実行されるプログラムに影響を与える可能性があります。
環境変数を作成して値を設定し、後で echo コマンドを使用してその値にアクセスする例を見てみましょう。
$MSG="Love Aticleworld"
$echo $MSG
次の結果が生成されます。
愛のアティクルワールド
注: 環境変数は $ 記号を使用せずに設定されますが、それらにアクセスするときは $ 記号をプレフィックスとして使用します。これらの変数は、シェルから出るまで値を保持します。
Linux で一般的に使用されるいくつかの ENV
$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.
進行中のプロセスをどのように終了しますか?
すべてのプロセスには、一意のプロセス ID があります。 kill コマンドの後に PID を使用して、プロセスを終了できます。そのため、まずプロセスの PID を見つける必要があります。 ps コマンドは、実行中のすべてのプロセスをプロセス ID とともに一覧表示します。 ps コマンドを実行した後、選択したいプロセス PID を選択できます。
注: すべてのプロセスを一度に終了するには、kill 0 を使用します。
個々の権限を含め、すべての .txt ファイルを表示するコマンドを作成します。
ls -al *.txt
プロセスのステータスを確認するにはどうすればよいですか?
以下のオプションを ps コマンドで使用すると、プロセスのステータスを確認できます。
ps axu
Linux でファイルを別のファイルに追加するにはどうすればよいですか?
cat コマンドを使用すると、Linux であるファイルを別のファイルに追加できます。ファイルを追加するには、cat コマンドで「>>」(2 倍より大きい)記号を使用する必要があります。あるファイルを別のファイルに追加する方法の例を見てみましょう。
ここでは、test1 ファイルの内容が test2 ファイルの末尾に追加されます。
cat test1 >> test2
Linux でライブラリをアンインストールする方法を説明してください。
Linux でライブラリをアンインストールするには、以下のコマンドを使用できます。
ライブラリをアンインストールするだけで、構成ファイルは削除したくない場合。
sudo apt-get remove library_name
ライブラリのみをアンインストールし、構成ファイルも削除したい場合。
sudo apt-get --purge remove library_name
未使用のパッケージを削除したい場合は、「autoremove」コマンドを使用してください。
sudo apt-get autoremove
使用されなくなったプログラムとその依存関係を削除したい場合。
sudo apt-get purge --auto-remove library_name
フォルダのサイズを計算するコマンドは?
フォルダのサイズを計算するには、
コマンドを使用します。du –sh Folder_Name
仮想デスクトップについて説明します。
仮想デスクトップとは、ユーザーのデスクトップ環境 (アイコン、壁紙、ウィンドウ、フォルダー、ツールバー、ウィジェットなど) が、ローカル PC やその他のクライアント コンピューティング デバイスではなく、サーバーにリモートで保存されることを意味します。デスクトップ仮想化ソフトウェアは、デスクトップ オペレーティング システム、アプリケーション、およびデータをハードウェア クライアントから分離し、この「仮想デスクトップ」をリモート サーバーに保存します。
仮想デスクトップを実行およびサポートするリモート サーバーは、ハイパーバイザーと呼ばれるソフトウェアを使用して、ユーザーのデスクトップ環境と機能をシミュレートする「仮想マシン」を作成します。仮想デスクトップ環境では、ユーザーは任意のクライアント デバイスから、インターネット経由で個人のデスクトップにリモート アクセスします。
仮想デスクトップを実装するには 2 つの方法があります:
- デスクトップの切り替え。
- 特大のデスクトップ。
1 つのコマンド ライン エントリから複数のコマンドまたはプログラムを実行するにはどうすればよいですか?
セミコロン記号を使用して各コマンドまたはプログラムを区切ることにより、複数のコマンドを組み合わせることができます。たとえば、このような一連のコマンドを 1 つのエントリで発行できます。
ls –l cd .. ls –a MYWORK which is equivalent to 3 commands: ls -l cd.. ls -a MYWORK
これは、指定された順序で次々に実行されることに注意してください。
プリエンプションが無効になっているユニプロセッサ マシンでは、spin_lock() を呼び出すと内部で何が起こるでしょうか?
Linux がハードウェアで動作するための最小要件は何ですか?
同期方法として CPU ごとの変数を使用することの長所と短所は何ですか?
コンテキスト スイッチとプリエンプションの違いは何ですか?
ある CPU でスピンロックをロックし、別の CPU でロックを解除できますか?
Linux アプリケーションにメモリ リークがあるかどうかをどのようにテストしますか?
マルチプロセッサ システムでは、どのプロセスがどのプロセッサで実行されているかをどのように確認しますか?
L1、L2、L3 キャッシュの用途は何ですか?
Linux のバイナリ セマフォとミューテックスの違いは何ですか?
セマフォでの down_interruptible と down_killable の違いは何ですか?
Linux でプロセスの優先度を変更する方法
ページ テーブルはどこに保存されますか?
SMP とは?
IO マップ IO とメモリ マップ IO の違い
kmalloc と vmalloc の違い
プロセッサーとコアの違い
Linux でプロセスがプリエンプトされた回数を確認するにはどうすればよいですか?
malloc(0) は何を返しますか?
要求されたスペースのサイズがゼロの場合、動作は実装定義になります。 malloc の戻り値は null ポインターである可能性があります。または、サイズがゼロ以外の値であるような動作を示しています。サイズが 0 の場合、malloc によって返されるオブジェクトにアクセスするためにポインターを使用しないことが、標準によって提案されています。
サイズ 0 の malloc を使用してメモリを割り当てている C プログラムの例を見てみましょう。
#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; }
出力: 実装依存。
スタック オーバーフローの原因は何ですか?
組み込みアプリケーションでは、デスクトップ アプリケーションと比較して少量のスタック メモリがあります。そのため、アプリケーションのクラッシュの原因となる可能性のあるスタック オーバーフローの問題に直面する可能性があるかどうかにかかわらず、組み込みアプリケーションに非常に慎重に取り組む必要があります。
ここでは、スタックの不要な使用のいくつかの原因について説明しました。
1. 再帰関数の不適切な使用。
2 .関数内で多数の引数を渡す。
3. 構造体を関数に直接渡す。
4. ネストされた関数呼び出し。
5. 巨大なサイズのローカル配列を作成しています。
NUMA とは?
スピンロックを取得した後、CPU がクリティカル セクションにいることができる最大時間はどれくらいですか?
GFP_KERNEL と GFP_ATOMIC の違い
Linux カーネルでのコンテキスト切り替え中に内部で何が起こっていますか?
メモリ ゾーンに関する情報を提供する Linux のファイルはどれですか?
バッファ/キャッシュとは?
Linux ソース コードの asm-generic フォルダは何ですか?
何が含まれていますか?
module_init 関数に while(1) ループがある場合、モジュールはロードされますか?
vmalloc を使用して割り当てることができる最大メモリはどれくらいですか?
kmalloc を使用して割り当てることができる最大メモリはどれくらいですか?
トップ コマンドの VIRT、RES、および SHR フィールドの違いは何ですか?
malloc と free で使用されるシステム コールは何ですか?
malloc を使用して割り当てることができる最大メモリはどれくらいですか?
カーネル Makefile がモジュールに作成するファイルを識別するために設定する Makefile マクロは _____ です。 a. obj-m b. obj-y c.ターゲット d.リスト。
Linux で PCIe カードが使用しているレーン数を確認するにはどうすればよいですか?
ホストに接続できる PCI デバイスの最大数。
PCI のレーンとは?
PCI での PCI デバイスの自動検出はどのように行われますか?
PCI ブリッジとは?
実行可能ファイルは、実行時に共有オブジェクトをどこで探しますか?
マイクロプロセッサには内部メモリがありますか?
共有ライブラリを生成する際の fPIC フラグの目的は何ですか。
Linux の負荷平均とは?
Linux は意図的に各プロセスの仮想アドレス空間の最初の数キロバイト (またはメガバイト) をマップされていないままにしておくため、null ポインターを逆参照しようとすると未処理のページ フォールトが生成され、即座に SIGSEGV が発生し、プロセスが強制終了されます。
システムバス=アドレスバス+データバス+コントロールバスです。
ファイルを開くときの O_SYNC フラグの使用は何ですか?
プロセスにおける常駐メモリとは?
仮想メモリは ____ a) ページ b) バイト c) ビットに分割されます。
仮想メモリを使用する利点は何ですか?
共有ライブラリに対する静的ライブラリの利点は何ですか?
アプリケーションの起動中のプロシージャ リンク テーブル (PLT) の使用法は何ですか。
静的ライブラリに対する共有ライブラリの利点は何ですか?
Linux カーネル make -j をコンパイルするときのジョブの数はいくつですか。
ファイルと inode の違いは何ですか?
スケジューラは Linux カーネルでどのように呼び出されますか?
ブート中の initrd イメージの使用は何ですか?
静的ライブラリ内には何がありますか?
Linux カーネルで使用される可能性のあるマクロとそうでないマクロは何ですか?
Linux マシンで実行されている init マネージャーを確認するにはどうすればよいですか? sysvinit/systemd?
オブジェクトファイルの再配置とは?
スピンロックを保持しているときに kmalloc(GFP_KERNEL) を呼び出すことはできますか?
シンボルを弱いと宣言する利点は何ですか?
Linux カーネルがロードされたときに最初に呼び出される関数は?
Linux カーネルに存在するロックフリー アルゴリズムは何ですか?
シェルでオプションなしで ps コマンドを実行すると、エントリが 2 つしか表示されないのはなぜですか?
プリエンプションが有効なユニプロセッサ システムで spin_lock() を呼び出すとどうなりますか?
コンパイル プロセス中にリンカーによって実行される操作は何ですか?
Linux カーネルに実装されているデータ構造は何ですか?
シグナルに対するシグアクションの利点は何ですか?
Linux でのスワッパー プロセスの用途は何ですか?
TASK_UNINTERRUPTIBLE 状態のプロセスを強制終了するには?
おすすめの投稿
- 面接の質問をプロトコルにできる
- 100 C 面接の質問
- I2C 面接の質問
- C のビット演算子に関するインタビューの質問
- C++ 面接の質問
- 動的メモリ割り当てに関する 10 の質問
- C でのファイル処理
- C のポインター
- C フォーマット指定子。