SLAM インタビューメモ (7) — Linux インタビューの質問

目次

質問 1: Linux システムの基本コンポーネントは何ですか?

質問 2: Linux と Unix の違いは何ですか?

質問 3: Linux でプログラムをコンパイルする

質問 4: gcc の基本フォーマットと一般的な命令

質問 5: メモリとスワップの使用状況を確認するにはどのようなコマンドが使用されますか?

質問 6: 一般的な Linux コマンドの概要

質問 7: ソフト リンクとハード リンクの違いは何ですか?

質問 8: Linux におけるファイルのアクセス許可について説明してください。

質問 9: 絶対パスを表すために使用される記号は何ですか? 現在のディレクトリと上位ディレクトリを表すには何を使用しますか? ホームディレクトリは何を表しますか?ディレクトリを切り替えるにはどのようなコマンドを使用しますか?

質問 10: 画面をクリアするにはどうすればよいですか? 現在のコマンドを終了するにはどうすればよいですか? 睡眠をどのように実行するか?現在のユーザーIDを確認するにはどうすればよいですか? 指定されたヘルプを表示するにはどのコマンドを使用しますか?

質問 11: Linux ではどのようなワイルドカード文字をコマンドで使用できますか? どういう意味でしょうか?

質問 12: Linux のプロセスの状態は何ですか? psで表示される情報にはどのような記号が使われているのでしょうか?

質問 13: du と df の定義と違いは何ですか?

質問 14: Linux でディレクトリを作成および削除するにはどうすればよいですか?

質問 15: Linux でファイルを作成するにはどうすればよいですか?

質問 16: Linux でファイルとディレクトリの名前を変更するにはどうすればよいですか? :

質問 17: Linux でファイルとディレクトリをコピーするにはどうすればよいですか?

質問 18: Linux でタスクをスケジュールするにはどうすればよいですか? crontab とは何ですか? crontab のフィールドについて説明しますか?

質問 19: 基本的な Vim コマンドを知っていますか?

質問 20: $PATH 変数にバイナリ ファイルを追加するにはどうすればよいですか?

質問 21: Grep コマンドと正規表現について説明してください。

質問 22: umask と ulimit の違いは何ですか?

質問 23: Linux での top コマンドの出力を解釈しますか?

質問 24: Linux のプロセス状態は何ですか?

質問 25: Linux でファイルをバックアップまたはアーカイブする方法 (tar コマンド)?

質問 26: Linux で実行中のプロセスを停止するにはどうすればよいですか?

質問 27: Linux でファイルを検索するにはどうすればよいですか? :

質問 28: サービスが実行されているかどうかを確認するにはどうすればよいですか?

質問 29: サービスの開始、停止、再起動時のサービスの開始方法を教えてください。

質問 30: 別の Linux コンピュータにリモートでログインするにはどうすればよいですか?

質問 31: ディスク使用量を確認するにはどうすればよいですか?

質問 32: Linux のファイル/ディレクトリのアクセス許可を設定するにはどうすればよいですか?

質問 33: ファイル/ディレクトリの所有権を設定するにはどうすればよいですか? :

質問 34: Linux でユーザーとグループを作成するにはどうすればよいですか?

質問 35: Linux でカーネル/OS バージョンを確認するにはどうすればよいですか?

質問 36: インターフェイスの IP アドレスを見つけるにはどうすればよいですか?

質問 37: 名前ベースの仮想ホスティングと IP ベースの仮想ホスティングの違いは何ですか?

質問 38: ネットワーク ボンディングの利点は何ですか?

参考記事


質問 1: Linux システムの基本コンポーネントは何ですか?

Linux は 4 つの基本コンポーネントで構成されます。

カーネル:これは Linux システムの中核です。ハードウェア コンポーネントと対話し、オペレーティング システムがハードウェア デバイスと確実に通信できるようにする役割を果たします。

シェル:シェルは、Linux ユーザーとカーネルの間のインターフェイスです。シェルでは、コマンドはユーザーによって発行され、オペレーティング システムによって実行されます。

システム ライブラリ:これらは、コード アクセスにカーネル モジュールに依存せずに、オペレーティング システムのほとんどの機能を実装する役割を担う特別なプログラムまたは関数です。

システム ユーティリティ:これらは、特定のタスクを実行する特定のプログラムです。たとえば、LibreOffice、Brasero、Gparted などです。

質問 2: Linux と Unix の違いは何ですか?

Linux と Unix は 2 つの異なるオペレーティング システムですが、いくつかの共通点があります。Unix は最も初期の商用オペレーティング システムの 1 つであり、Linux は Unix をベースにしたオープンソース オペレーティング システムです。どちらも同様のコマンド ライン インターフェイスとファイル システム構造を使用します。UNIXは主にハイエンドサーバーや研究室などで使用され、Linuxはより生活に近いデスクトップやノートブックなどで使用されます。

質問 3: Linux でプログラムをコンパイルする

(1) まず、Linux システム内のフォルダーに入り、コマンド touch text.c を入力して C ファイルを作成します。

(2) 次に、gedit でファイルを開き、プログラムを手動で入力します。

#include <stdio.h>
int main()
{
    printf("Hello, Linux!\n");
    return 0;
}

(3) 次に、ターミナルに次のように入力します。

gcc test.c -o test

(4) この時点で、コンパイルとリンクの後に実行可能ファイルが得られることがわかります。次に、以下を実行します。

./test

質問 4: gcc の基本フォーマットと一般的な命令

gccの基本フォーマット

パラメーターが追加されない場合、コンパイル、アセンブリ、およびリンク操作がデフォルトのパラメーターに従って順番に実行され、生成される実行可能ファイルの名前は
a.outになります。

gcc [options] file1 file2...

gcc の共通命令

  • c: ソース ファイルのみをコンパイルし、リンクせずにターゲット ファイル (.o ファイル) を生成します。
  • o <file>: 出力ファイルの名前を指定します。
  • g: プログラムをデバッグするためのデバッグ情報を生成します。
  • 壁: すべての警告プロンプトをオンにします。
  • E:前処理のみを行い、前処理結果を出力します。
  • S: アセンブリ コードのコンパイルと生成のみを行います。
  • 共有:共有ライブラリ(ダイナミックリンクライブラリ)を生成します。
  • static: 静的実行可能ファイルを生成し、静的リンクを使用します。

上記の一般的なオプションに加えて、gcc は特定のコンパイルとリンクのニーズに対応する他の多くのオプションとパラメーターを提供します。オプションとパラメータの完全なリストは、gcc --help コマンドを実行するか、gcc の公式ドキュメントを参照することで取得できます。

質問 5: メモリとスワップの使用状況を確認するにはどのようなコマンドが使用されますか?

無料のコマンドを使用する

質問 6: 一般的な Linux コマンドの概要

注文 関数
ヘルプコマンド
ls 現在のファイルとディレクトリの情報を表示する
CD カレントディレクトリを切り替えるために使用します
障害者 作業ディレクトリを表示するために使用されます。
mkdir フォルダーの作成には mkdir コマンドを使用します。
rm ファイルまたはフォルダーの削除コマンド
rmです ディレクトリから 1 つ以上のサブディレクトリ エントリを削除します
MV ファイルまたはフォルダーの移動コマンド
CP コピーコマンド
ファイルの内容の表示、ファイルの接続
もっと 「もっと見る」はファイルの内容をページごとに表示します
少ない 「less」は「more」に似ていますが、less を使用するとファイルを自由に参照できます。
grep このコマンドは、情報行を分析するためによく使用されます。必要な情報がある場合、その行が表示されます。このコマンドは
通常、一部のコマンドの出力をフィルタリングして処理するためにパイプライン コマンドと一緒に使用されます。
ps 進捗状況を確認する
プロセス、CPU 使用率、メモリ情報などのオペレーティング システム情報を表示できます。
殺す プロセスに終了シグナルを送信します。

質問 7: ソフト リンクとハード リンクの違いは何ですか?

ソフト リンクとハード リンクは、コンピュータ ファイル システムで使用される 2 つの異なるリンク方法です。

2 つの違い:

  • ソフト リンク: ファイルまたはディレクトリへの参照です。ショートカットと同様に、異なるファイル システムにまたがることができ、存在しないファイルまたはディレクトリをポイントすることができます。ファイルまたはディレクトリが削除されても、ソフト リンクは保持できます。
  • ハード リンク: ファイルまたはディレクトリの実際のコピーです。元のファイルまたはディレクトリと同じインデックス ノードを持ち、同じファイル システム内でのみ使用できます。元のファイルまたはディレクトリが削除されると、ハード リンクは期限切れになります。 。

コマンドの実装:

  • ハードリンク: ln
  • ソフトリンク: ln -s

質問 8: Linux におけるファイルのアクセス許可について説明してください。

Linux ファイルのアクセス許可

Linux には、読み取り、書き込み、実行という 3 つの主なタイプのファイル権限があります。これらのアクセス許可は、ファイルまたはディレクトリに再帰的に割り当てることができます。マルチユーザー システムとして、これらの権限を root ユーザー、グループ、さらにはシステムを使用する他のユーザーに割り当てることができます。

  • 読み取り: 読み取り権限により、ユーザーはファイルを開いて読み取ることができます。
  • 書き込み: 書き込み権限により、ユーザーはファイルを開いて内容を変更または編集し、変更を保存できます。
  • 実行: これにより、ユーザーは実行可能ファイル、プログラム、またはシェル スクリプトを実行することができます。

Linuxでファイルのアクセス許可を確認する

Linux コマンド ラインで、ls -la と入力して、現在のディレクトリにあるすべてのファイルのアクセス許可を表示します。

ファイル権限を変更する

ファイルのアクセス許可は、chmod コマンドを使用して変更できます。便宜上、アクセス許可は数字で表されます。数字 4、2、および 1 は、それぞれ読み取り、書き込み、および実行可能アクセス許可を表します。たとえば、4 + 2 + 1 = 7 のように組み合わせることができます。この場合、7 は読み取り、書き込み、および実行可能権限を表し、4 + 2= 6 は読み取りおよび書き込み権限を表します。具体的なコマンドは以下のとおりです。

chmod 764 file1
chmod 777 -R dir

コマンドには 3 つの数字があり、所有者、ユーザー グループ内の他のユーザー、および他のユーザーの権限に対応します。

764 は、所有者の権限が 7 (4 + 2 + 1、読み取り、書き込み、および実行可能)、ユーザー グループ内の他のユーザーの権限が 6 (4+2、読み取りおよび書き込み)、他のユーザーの権限が4 (読み取り可能)。

フォルダーのアクセス許可を変更する場合は、-R を追加する必要があります。これは、フォルダー内のすべてのファイルのアクセス許可を再帰的に変更することを意味します。
 

質問 9: 絶対パスを表すために使用される記号は何ですか? 現在のディレクトリと上位ディレクトリを表すには何を使用しますか? ホームディレクトリは何を表しますか?ディレクトリを切り替えるにはどのようなコマンドを使用しますか?

絶対パス: /etc/init.d など

現在のディレクトリ: ./

上位ディレクトリ: …/

ホームディレクトリ: ~/

ディレクトリを変更します: cd

質問 10: 画面をクリアするにはどうすればよいですか? 現在のコマンドを終了するにはどうすればよいですか? 睡眠をどのように実行するか?現在のユーザーIDを確認するにはどうすればよいですか? 指定されたヘルプを表示するにはどのコマンドを使用しますか?

クリア画面:クリア

現在のコマンドを終了します: ctrl+c で完全に終了します

スリープを実行します: ctrl+z 現在のプロセスを一時停止し、バックグラウンドを復元します。

現在のユーザー ID を表示します: "id": 現在ログインしているアカウントの uid と gid、およびそのアカウントが属するグループとユーザー名を表示します。

指定されたヘルプを表示します:たとえば、man adduser は包括的で例があり、adduser --help はいくつかの共通パラメータを示します。

質問 11: Linux ではどのようなワイルドカード文字をコマンドで使用できますか? どういう意味でしょうか?

「?」は単一の文字を置き換えることができます。

「*」は任意の数の文字を置き換えることができます。

角括弧「[charset]」は、[az]、[abABC] などの文字セット セット内の任意の 1 文字を置き換えることができます。

質問 12: Linux のプロセスの状態は何ですか? psで表示される情報にはどのような記号が使われているのでしょうか?

  • 中断不可能な状態: プロセスはスリープ状態ですが、現時点ではプロセスは中断不可能です。無中断とは、プロセスが非同期信号に応答しないことを意味します。D: 無中断 (通常は IO)
  • 一時停止状態/トレース状態: プロセスに SIGSTOP 信号を送信すると、プロセスは信号に応答して TASK_STOPPED 状態に入ります。プロセスが追跡されているときは、プロセスは TASK_TRACED という特殊な状態になります。「追跡中」とは、プロセスが一時停止され、追跡しているプロセスによる操作を待っていることを意味します。T: 停止または追跡中
  • 準備完了状態: run_queue キュー内の状態。W: メモリ スワップを開始します (カーネル 2.6 以降は使用できません)
  • 実行ステータス: run_queue キュー内のステータス。R: 実行中またはキューに入れられたプロセス
  • 割り込み可能なスリープ状態: この状態のプロセスは、特定のイベントの発生を待機しているため (ソケット接続の待機、セマフォの待機など)、一時停止されています。S:スリープ状態
  • ゾンビ状態 (zombie): 親プロセスが一連の wait を通過しない場合、子プロセスの死体 (task_struct) も解放されます。Z: ゾンビプロセス
  • 終了ステータス。X: デッドプロセス

質問 13: du と df の定義と違いは何ですか?

du はディレクトリまたはファイルのサイズを表示します

df は、各 <file> が配置されているファイル システムに関する情報を表示します。デフォルトでは、すべてのファイル システムが表示されます。(ファイル システムは、inode、ディスク マップ、間接ブロック、スーパー ブロックなどの独自のデータの一部を記録するために、ディスク ブロックの一部を割り当てます。これらのデータは、ほとんどのユーザー レベルのプログラム (通常はメタ データと呼ばれます) には見えません。) du コマンドはメタ データを考慮しないユーザー レベルのプログラムですが、df コマンドはファイル システムのディスク割り当てマップを調べ、メタ データを考慮します。

df コマンドは実際のファイル システム データを取得しますが、du コマンドはファイル システムの一部のみを表示します。
 

質問 14: Linux でディレクトリを作成および削除するにはどうすればよいですか?

ディレクトリを作成する

//使用 mkdir 命令
mkdir directory_name

ディレクトリの削除: Linux ではディレクトリを削除する方法がたくさんあります。

  • ディレクトリとそのすべてのサブディレクトリおよびファイルを削除するには、コマンド「rm -r」を使用します。
  • 空のディレクトリを削除するには、「rmdir」コマンドを使用します。重要なファイルを誤って削除しないように、ディレクトリを削除するときは注意する必要があります。

質問 15: Linux でファイルを作成するにはどうすればよいですか?

ファイルを作成するには、touch コマンドを使用します。たとえば、ファイル filename を作成するには、次のコマンドを実行します。

touch filename

質問 16: Linux でファイルとディレクトリの名前を変更するにはどうすればよいですか? :

mv コマンドを使用してファイルの名前を変更します。これが機能するには、名前を変更するファイルへのパスが同じである必要があることに注意してください。たとえば、/data/files ディレクトリ内のファイル file1.doc の名前を file2.doc に変更するには、次のコマンドを実行します。

mv /data/files/file1.doc /data/files/file2.doc

質問 17: Linux でファイルとディレクトリをコピーするにはどうすればよいですか?

Linuxでcpコマンドを使用してファイルをコピーする

cp  /source/of/the/file  /destination/of/the/file

質問 18: Linux でタスクをスケジュールするにはどうすればよいですか? crontab とは何ですか? crontab のフィールドについて説明しますか?

Crontab は Linux でタスクをスケジュールするためのツールで、時間とコマンドを指定してタスクを実行します。crontab には、分、時間、日付、月、曜日を表す 5 つのフィールドがあります。

<月の日> <年の月> <週の日> <実行するコマンド/プログラム>

これらのフィールドの値には、特定の数字またはワイルドカード文字を使用できます。crontab のフィールドを理解することで、Linux でタスクを効率的にスケジュールできます。

質問 19: 基本的な Vim コマンドを知っていますか?

保存:ファイルを保存するには、ESC ボタンを押して、:wq! または :ZZ を押します。

終了:変更を加えずにファイルを終了するには、次のコマンドを実行します。 q

ファイル内の特定の行に移動します。

  • ESC を押してから j を押して、1 行下に移動します。
  • k キーボードを押すと 1 行上に移動します
  • カーソルを行頭に移動し、^ を押します。
  • カーソルを行末に移動し、$ を押します。
  • カーソルをファイルの先頭に移動します 1G
  • カーソルをファイルの末尾に移動 G
  • ファイル nG の行番号「n」の先頭にカーソルを移動します。

テキストのコピー:カーソルを文字列またはテキストの先頭に移動します。次に、キーボードの v を押し、カーソルを前方に押してテキストを強調表示します。コピーするテキストの末尾に到達したら、yyank の略語を押してテキストをコピーします。

  • 現在の位置から行末までテキストをコピーするには -y$
  • 行全体をコピー -yy
  • 以下の4行をコピーするには -4yy

テキストの貼り付け:テキストを貼り付けるには、キーボードの p を押すだけです。

テキストを削除:

  • 行を削除するには、行の先頭に移動します。ESCボタンを押してddを押します
  • 単一の単語を削除するには、単語の前にカーソルを置き、dw キーを押します。
  • 現在の単語から行末までのテキスト d$ を削除します
  • 3 行を削除するには、以下の 3dd を実行します。

質問 20: $PATH 変数にバイナリ ファイルを追加するにはどうすればよいですか?

$export PATH=$PATH:/バイナリファイルへのパス

質問 21: Grep コマンドと正規表現について説明してください。

Grep コマンドは、結果または出力をフィルタリングするために使用される式です。たとえば、ディレクトリを一覧表示し、「cron」という単語を含むファイルのみを検索するには、次のコマンドを実行します。

ls | grep cron

質問 22: umask と ulimit の違いは何ですか?

Umask は「User File Creation Mask」の略で、ファイルとディレクトリの作成時にどのファイル権限を設定するかを制御するマスクの設定を決定します。ulimit は Linux の組み込みコマンドですが、シェルやシェルによって開始されるプロセスが利用できるリソースを制御します。

/etc/security/limits.conf を編集することでユーザーを特定のスコープに制限でき、/etc/sysctl.conf でシステム全体の設定を更新できます。

質問 23: Linux での top コマンドの出力を解釈しますか?

一番上のコマンドは、稼働時間、負荷平均、CPU 使用率、メモリ使用率 % などのシステム メトリクスに関する洞察をユーザーに提供する監視ユーティリティです。

質問 24: Linux のプロセス状態は何ですか?

プロセス ステータスは、名前が示すように、Linux プロセスの現在の状態を指します。プロセスの状態には、実行中、待機中、停止中、ゾンビの 4 つがあります。

質問 25: Linux でファイルをバックアップまたはアーカイブする方法 (tar コマンド)?

ディレクトリをバックアップするには、次の tar コマンドを実行するだけです。

tar -cvf tarball_name.tar /path/to/directory

たとえば、/data/reports/ パスにファイル sales.txt の tar.gz アーカイブを作成するには、次のコマンドを実行します。

tar -cvf sales.tar.gz  /data/reports/sales.txt

次のようにディレクトリ全体をアーカイブすることもできます。

tar -cvf repors.tar.gz  /data/reports/

質問 26: Linux で実行中のプロセスを停止するにはどうすればよいですか?

進行状況を表示する

他のユーザーのプログラムを含む、現在の端末のすべてのプログラムを表示します。

プロセスを強制終了する

実行中のプロセスを停止するには、kill コマンドの後にプロセスの PID を指定して使用します。たとえば、PID 3836 のプロセスを停止するには、次のコマンドを実行します。

kill 1932

質問 27: Linux でファイルを検索するにはどうすればよいですか? :

Linux でファイルを検索するには、locate または find コマンドを使用してください。find ファイルと Locate ファイルの違いは次のとおりです。

質問 28: サービスが実行されているかどうかを確認するにはどうすればよいですか?

サービスが実行中かどうかを確認するには、次の構文を使用します。

systemctl status service_name

たとえば、Postfix が実行されているかどうかを確認するには、次のコマンドを実行します。

systemctl status postfix

質問 29: サービスの開始、停止、再起動時のサービスの開始方法を教えてください。

systemd システムでサービスを開始するには、次のコマンドを実行します。

systemctl start <service_name>

サービスを停止するには、次を実行します。

systemctl stop <service_name>

再起動実行時にサービスを開始するには、次の構文を使用します。

systemctl enable <service_name>

質問 30: 別の Linux コンピュータにリモートでログインするにはどうすればよいですか?

SSH プロトコルまたは VNC サービスを使用して、リモート Linux コンピューターにログインできます。

質問 31: ディスク使用量を確認するにはどうすればよいですか?

df コマンドを使用して、ハード ドライブの使用容量と残り/空き容量を確認します。


さらに、du コマンドを使用して、特定のファイルとディレクトリの使用状況を確認します。

質問 32: Linux のファイル/ディレクトリのアクセス許可を設定するにはどうすればよいですか?

ファイルのアクセス許可を設定するには、chmod コマンドを使用し、その後に 8 進数値または記号値を入力し、次にファイル名またはディレクトリ名を入力します。

たとえば、ファイル権限値 664 を割り当てて実行します。

chmod 664 filename

ディレクトリのアクセス許可を割り当てるには、-R オプションを使用してアクセス許可を再帰的に割り当てます。

chmod -R 664 directory_name

質問 33: ファイル/ディレクトリの所有権を設定するにはどうすればよいですか? :

ファイルの所有者を設定するには、chown コマンドを使用します。

chown user:user filename

ディレクトリの場合は、-R オプションを使用して権限を再帰的に割り当てます。例えば

chown -R user:user directory_name

質問 34: Linux でユーザーとグループを作成するにはどうすればよいですか?

ユーザーを作成するには、コマンド adduser user_name を実行します。

質問 35: Linux でカーネル/OS バージョンを確認するにはどうすればよいですか?

コマンド uname -a を実行します。

質問 36: インターフェイスの IP アドレスを見つけるにはどうすればよいですか?

ifconfig コマンド:ターミナルに ifconfig コマンドを入力すると、現在のシステムのすべてのネットワーク インターフェイスの構成情報 (IP アドレス、サブネット マスク、ゲートウェイなどを含む) が表示されます。

ip コマンド:ターミナルに ip addr コマンドを入力すると、現在のシステム内のすべてのネットワーク インターフェイスの詳細情報 (IP アドレス、サブネット マスク、ゲートウェイなどを含む) が一覧表示されます。

nmcli コマンド:ターミナルに nmcli device show コマンドを入力すると、IP アドレス、サブネット マスク、ゲートウェイなどを含む、ネットワーク マネージャー内のすべてのネットワーク デバイスの情報が表示されます。

質問 37: 名前ベースの仮想ホスティングと IP ベースの仮想ホスティングの違いは何ですか?

仮想ホストは、単一の Apache インスタンスで複数のドメインをホストするために使用されます。サーバーの IP ごとに仮想ホストを設定したり、同じ IP で異なるポート、または同じ IP、同じポートで異なるホスト名を設定したりできます。後者は「名前ベースの仮想ホスティング」と呼ばれます。

IP ベースの Web ホスティングでは、同じサーバー マシン上で複数の Web サイトを実行できますが、各 Web サイトは独自の IP アドレスを持ちますが、名前ベースの Web ホスティングでは、同じ IP アドレスで複数の Web サイトをホストします。ただし、成功するには、IP アドレスの複数の DNS レコードを DNS データベースに配置する必要があります。

質問 38: ネットワーク ボンディングの利点は何ですか?

ネットワーク ボンディングは、複数のネットワーク インターフェイスを 1 つの仮想リンクに集約できるようにする Linux カーネル機能です。これは、運用システムに冗長リンク、フォールト トレランス、または負荷分散ネットワークを実装するための優れた方法です。物理 NIC の 1 つが電源オフになっているか、プラグが抜かれている場合、トラフィックは自動的に他の NIC カードに転送されます。同様に、ボンディングによりインターフェイスのスループットが向上し、アクティブ/アクティブ モードで設定されたトラフィックを処理できるようになります。

参考記事

(1)面接の必需品、Linux 面接の質問と回答! _Linux インタビューの質問と回答 - CSDN ブログ 

(2)  gcc コマンド文完全集 - CSDN ブログ

(3)  Linux インタビューの 48 の質問と回答_Linux インタビューの質問_Tao Taiji のブログ - CSDN ブログ

おすすめ

転載: blog.csdn.net/qq_41921826/article/details/133518698