目次[隠す][見せる]
- 1. シェルとは正確には何ですか?
- 2. シェル スクリプトとは正確には何ですか?
- 3. シェル スクリプトの利点を説明してください。
- 4. GUI プログラミングについて説明します。
- 5. シェル プログラミングでは、スーパーブロックとは正確には何ですか?
- 6. さまざまな種類のアクセス可能なシェルを挙げてください。
- 7. Bourne シェルと C シェルの違いを書きなさい。
- 8. シェル変数とは正確には何ですか?
- 9. シェル スクリプトの多くの種類の変数は何ですか?
- 10. シェル ファイルを実行するために使用されるコマンドはどれですか?
- 11. スーパー ブロック イン シェル スクリプトについて教えてください。
- 12. メタキャラクターとは正確には何ですか?
- 13. ソフト リンクとハード リンクの違いは何ですか?
- 14. シェル スクリプトのシェバン行の意味は何ですか?
- 15. Linux プロセスはどのようなステップを経ますか?
- 16. Crontab について説明します。
- 17. 制御命令とは正確には何ですか?
- 18. $* と $@ の違いは何ですか?
- 19. シェル スクリプトで文字列を比較する方法を説明してください。
- 20. ファイルを作成、読み取り、削除するにはどうすればよいですか?
- 21. シェルスクリプトでハードリンクとソフトリンクを区別することは可能ですか?
- 22. シェル プログラムのバグをどのようにトラブルシューティングしますか?
- 23. ファイルシステムにはいくつのブロックがありますか?
- 24. なぜ bash は弱く型付けされた言語なのですか?
- 25. シェル スクリプトの変数の長さは?
- 26. echo の代替コマンドに名前を付けます。
- 27. IFS を定義する
- 28. シェルで多数のスクリプトを実行することは可能ですか?
- 29. vi エディターの多くのモードは何ですか?
- 30. $! の違いは何ですか? と$$?
- 31. $# とはどういう意味ですか?
- 32. バックアップの作成に使用したコマンドを挙げてください。
- 33. シェル スクリプトを使用することが不適切なのはどのような場合ですか?
- 34. Linux からデータベース サーバーにどのように接続しますか?
- 35. XNUMX つの crontab コマンド ファイルは何ですか?
- 36. ファイルまたはデータに対する XNUMX つの異なる UNIX セキュリティ保護は何ですか?
- 37. sed コマンドを例を使って簡単に説明してください。
- 38. シェル スクリプトで、オープン クライアント ドライバーに付属するツールの目的は何ですか?
- 49. システムの持続時間を決定するために使用するコマンドを挙げてください。
- 40. 多数の値を追加するスクリプトを作成します。
- 41. 関数の例を作成します。
- まとめ
シェル スクリプトは、Unix シェルで実行することを目的としたコンピューター プログラムまたはコマンドライン インタープリターです。 シェル スクリプトを作成する上で最も優れている点は、命令と構文がコマンド ラインで直接入力したものと同じであることです。
Linux は、高いセキュリティとコマンドライン インターフェイスで知られる人気のオープン ソース オペレーティング システムです。 意欲的な DevOps エンジニアにとって、シェル スクリプトまたは bash スクリプトを理解することは不可欠です。
シェル スクリプトに精通しており、就職の面接の準備をしている場合、このシェル スクリプトの面接の質問と回答の記事では、準備を容易にするシェル スクリプトの面接の質問を紹介します。
1. シェルとは正確には何ですか?
シェルは、ユーザーとカーネルの間のブリッジとして機能します。 カーネルは XNUMX つしか存在できませんが、システムは同時に複数のシェルを実行できます。
その結果、ユーザーがキーボードにコマンドを入力するたびに、シェルはカーネルと対話してコマンドを実行し、結果をユーザーに表示します。
2. シェル スクリプトとは正確には何ですか?
Shell Scripting は、Unix/Linux シェルで実行される無料のオープン ソース コンピュータ ソフトウェアです。 シェル スクリプト ソフトウェアを使用すると、シェルが実行する一連のコマンドを記述できます。
長くて繰り返しの多いコマンド シーケンスを、保存していつでも実行できる単一の簡単なスクリプトに統合できるため、プログラミングの手間が軽減されます。
3. シェル スクリプトの利点を説明してください。
- UNIX、Linux、BSD、Mac OS X など、現在のほぼすべてのオペレーティング システムは、インタープリター言語で作成されているため、シェル スクリプトを実行できます。
- インタラクティブなデバッグ ツールで、ラピッド スタートも可能です。
- 管理業務の自動化に役立つため、時間を節約できます。
- コマンドと構文は、コマンド ラインに直接入力したものと同じであるため、プログラマは構文を調整する必要はありません。
- シェル スクリプトは、使用も作成も簡単です。
- このツールを使用すると、それぞれのプラットフォームに応じたソフトウェア アプリケーションを作成できます。
- 単一の命令の代わりに、大量の実行に使用できます。
- これを使用して、必要な機能を備えた独自のカスタム オペレーティング システムを作成できます。
4. GUI プログラミングについて説明します。
グラフィカル ユーザーインターフェース コンピューターやアプリを操作するために必要な (GUI) プログラミングは、GUI スクリプティングと呼ばれます。 複数のオペレーティング システムで動作し、さまざまなプログラムの制御に使用されます。
5. シェル プログラミングでは、スーパーブロックとは正確には何ですか?
スーパーブロックと呼ばれるソフトウェアは、特定のファイル システムのレコードを格納します。 サイズ、塗りつぶされたブロックと空のブロックの数、データの使用、ブロック グループのサイズ、および inode テーブルの場所とサイズは、ブロックで見つけることができるプロパティの XNUMX つです。
6. さまざまな種類のアクセス可能なシェルを挙げてください。
- Bourne シェル: Bourne タイプのシェルを使用する場合、デフォルトのプロンプトは $ 記号です。
- C シェル: C タイプのシェルを使用する場合、デフォルトのプロンプトは文字 % です。
- Korn シェル: Korn は Unix ベースのシェル スクリプト アプリケーションで、元々は Bash Shell Scripting に基づいていました。 このシェルは非常に複雑で、高レベルの プログラミング言語.
- TCSH: TCSH の完全な形式はありません。 その通りです。 TCSH は、Berkeley Unix C シェルのより洗練されたバージョンです。 C 構文をサポートするようになりました。
7. Bourne シェルと C シェルの違いを書きなさい。
Bourne Shell: そのコンパクトさとスピードが他のシェルと一線を画しています。 ただし、以前のリクエストを記憶する機能などのインタラクティブな要素はありません。 さらに、算数と 論理式 Bourne シェルではサポートされていません。
C シェル: UNIX の改良版で、エイリアスやコマンド履歴などのインタラクティブな機能が含まれています。 組み込みの算術および式の文法に加えて、簡単なプログラミング機能が含まれています。
8. シェル変数とは正確には何ですか?
シェル変数は、すべてのシェル プログラムまたはスクリプトの基盤です。 変数を使用すると、Shell は Shell アプリケーション内でデータを保存および変更できます。 文字列変数は、シェル変数を保持するためによく使用されます。
9. シェル スクリプトの多くの種類の変数は何ですか?
オペレーティング システム (Linux) は、システム定義の変数を作成および定義します。 これらの変数は大文字で定義されることが多く、「set」コマンドで調べることができます。
ユーザー定義変数は、システム ユーザーによって生成または指定され、コマンド「echo」を実行してその値を調べることができます。
10. シェル ファイルを実行するために使用されるコマンドはどれですか?
11. スーパー ブロック イン シェル スクリプトについて教えてください。
スーパー ブロックは、特定のファイル システムに関する情報を格納するソフトウェアです。
スーパーブロックには、ブロック サイズ、空のブロックとフル ブロックの数とそれらに対応するカウント、inode テーブルのサイズと配置、ディスク ブロック マップ、使用統計、ブロック グループのサイズなどの情報が含まれます。
12. メタキャラクターとは正確には何ですか?
メタ文字は、シェルのプログラムまたはデータ フィールドに組み込まれる一意の文字です。 他のキャラクターの情報を提供します。 たとえば、文字「s」で始まるすべてのファイルを一覧表示するには、「ls s*」コマンドを使用します。
13. ソフト リンクとハード リンクの違いは何ですか?
ソフト リンクはファイル名にリンクされており、さまざまなファイル システムに存在できます。 一方、ハード リンクはファイルの inode にリンクされ、ファイルと同じファイル システム上にある必要があります。
元のファイルを削除すると、ソフト リンクが非アクティブになります (壊れたリンク) が、ハード接続には影響せず、ハード リンクは引き続きファイルのコピーにアクセスします。
14. シェル スクリプトのシェバン行の意味は何ですか?
通常、Shebang 行はスクリプトの先頭にあります (例: #!/bin/sh)。 この行は、エンジンの位置を指定します。 このエンジンは通常、スクリプトを実行するエンジンです。
15. Linux プロセスはどのようなステップを経ますか?
通常、Linux プロセスは次の XNUMX つの段階を経ます。
- 待機中: リソースは Linux プロセスによって待機中です。
- 実行中: 現在、Linux プロセスが実行中です。
- 停止: 実行が成功すると、Linux プロセスは終了します。
- ゾンビプロセスは停止しましたが、プロセス テーブルにはまだアクティブとして表示されています。
16. Crontab について説明します。
ジョブ スケジューラ「cron」がジョブの実行に使用されるため、Crontab は cron テーブルの略です。 これは定期的に実行されるコマンドの集まりであり、コマンドの名前もリストを制御します。
スケジュールとスケジュールを変更するためのツールは、どちらも Crontab と呼ばれます。
17. 制御命令とは正確には何ですか?
制御命令は、スクリプトのさまざまな命令がどのように実行されるかを示します。 これらは一般に、シェル アプリケーションで評価するために使用されます。 制御フロー.
これらの指示がない場合、シェル スクリプトの実行は順番に進行します。 制御命令は、シェル プログラムでの実行方法に影響を与えます。
18. $* と $@ の違いは何ですか?
$@ は引用符で囲まれた各引数を個別の引数と見なしますが、$* は位置パラメータの完全なコレクションを XNUMX つの文字列と見なします。
19. シェル スクリプトで文字列を比較する方法を説明してください。
「test」コマンドは、テキスト文字列を比較するために使用されます。 このコマンドは、各文字列の文字を比較することにより、テキスト文字列を比較します。
20. ファイルを作成、読み取り、削除するにはどうすればよいですか?
21. シェルスクリプトでハードリンクとソフトリンクを区別することは可能ですか?
シェル スクリプトは、Windows と同様に、リンクを使用してショートカットを作成する強力なソリューションです。 ソフト リンクの場所は固定されておらず、同じファイル システムのどこにでもあります。
それらは通常、ファイル名に関連付けられています。 一方、ハード リンクは同じファイル システムにとどまります。 ほとんどの場合、ハード リンケージはノードに関連付けられ、特定の固定位置を持ちます。
22. シェル プログラムのバグをどのようにトラブルシューティングしますか?
スクリプトのバグをトラブルシューティングする一般的な方法は次のとおりです。
- Set-x は、デバッグを可能にするために使用されます。
- デバッグ ステートメントをシェル スクリプトに挿入して、問題の発見に役立つ情報を表示します。
23. ファイルシステムにはいくつのブロックがありますか?
- スーパーブロック: このブロックは、ブロック サイズ、ブロック グループ サイズ、使用データ、空ブロックと満杯ブロックの数、inode テーブルのサイズと配置など、ファイル システムの状態に関する詳細を提供します。
- ブートブロック: ユーザーがホスト システムを起動するときに実行されるブートストラップ ローダー ソフトウェアは、このブロックに保存されます。
- データ ブロック: このデータ ブロックには、ファイル システムのファイルの内容が含まれます。
- inode テーブル: UNIX はすべてのコンポーネントをファイルとして扱い、inode テーブルはすべてのファイル関連データのリポジトリです。
24. なぜ bash は弱く型付けされた言語なのですか?
変数を宣言するときのデータ型宣言要件がないため、Bash は弱い型付けの言語です。 変数の型は現在の値によって決定され、Bash では文字列として扱われます。
declare コマンドを使用して、Bash 変数を定義できます。
ただし、データ型を定義する可能性は制限されており、すべてのデータ型をカバーしているわけではありません。 たとえば、declare コマンドは float データ型では使用できません。
25. シェル スクリプトの変数の長さは?
シェル スクリプト内の変数の有効期間は、実行が完了するまでです。
26. echo の代替コマンドに名前を付けます。
tput コマンドは、echo に代わるものです。 このコマンドを使用して、出力の表示方法を制御できます。 さらに、画面サイズに関係なく、シェルスクリプトは下線や中央テキストなどを実行できます。
27. IFS を定義する
IFS は、Internal Field Separator の略です。 これは、デフォルト値のスペース、タブ、その後に改行が続くシステム変数です。 IFS は、XNUMX つのフィールドまたは単語が行のどこで終わり、別の行が始まるかを示します。
28. シェルで多数のスクリプトを実行することは可能ですか?
はい、多くのスクリプトをシェルで実行できます。 複数のスクリプトを実行することで、あるスクリプトを別のスクリプトから呼び出すことができます。 そのためには、呼び出すスクリプトの名前を指定する必要があります。
29. vi エディターの多くのモードは何ですか?
- コマンド モード: これは、開始するモードです。
- 編集モード: このオプションを使用すると、その後の編集を実行できます。
- このモードでは、vi と対話し、処理を指示します。
30. $! の違いは何ですか? と$$?
$! 最近バックグラウンドになったプロセスのプロセス ID を表示します。
$$ は、現在実行中のプロセスのプロセス ID を返します。
31. $# とはどういう意味ですか?
$# は通常、引数の数を保持しますが、これは関数によって異なる場合があります。 簡単に説明すると、シェル スクリプトに提供されたコマンドライン パラメータの数を記録するために使用されました。
32. バックアップの作成に使用したコマンドを挙げてください。
tar コマンドを使用してバックアップを作成します。 tar はテープ アーカイブの略で、tar、gzip、および bzip を使用したバックアップの構築に使用されます。 このコマンドは、テープに対してファイルを保存および復元できます。
通常、ファイルとディレクトリは、アーカイブ ファイルである tarball に圧縮されます。 このため、最もよく使用される命令の XNUMX つです。 さらに、tarball はあるサーバーから別のサーバーに簡単に転送できます。
33. シェル スクリプトを使用することが不適切なのはどのような場合ですか?
給与処理システム全体を構築するなど、作業が非常に複雑な場合は、シェル スクリプトを使用しないでください。
作業に高度な生産性が必要な場合は、シェル スクリプトを使用しないでください。
プロジェクトで複数のソフトウェア ソリューションが必要な場合は、シェル スクリプトを使用しないでください。
34. Linux からデータベース サーバーにどのように接続しますか?
次のように、オープン クライアント ドライバに含まれている isql ユーティリティを利用できます。
35. XNUMX つの crontab コマンド ファイルは何ですか?
cron.allow は、crontab コマンドの使用を許可する必要があるユーザーを決定します。
cron.deny は、ユーザーが crontab コマンドを使用することを禁止するかどうかを決定します。
36. ファイルまたはデータに対する XNUMX つの異なる UNIX セキュリティ保護は何ですか?
- ファイルへの読み取り、書き込み、および実行権限を付与することにより、ファイル レベルのセキュリティを提供します。
- 認証用の一意のユーザー ID とパスワードをユーザーに提供するため、見知らぬ人や権限のない人がアクセスすることはできません。
- によるセキュリティを提供します。 ファイルの暗号化. この方法を使用すると、ファイルを判読できない形式にエンコードできます。 ファイルを開いても、復号化するまで内容を読み取ることはできません。
37. sed コマンドを例を使って簡単に説明してください。
sed は、ストリーム エディターの略です。 エディターを使用せずにファイルを編集するために使用されます。 ファイルやパイプライン入力など、特定のストリームを変更するために使用されます。
38. シェル スクリプトで、オープン クライアント ドライバーに付属するツールの目的は何ですか?
システムは、ツールを介してデータベース サーバーにのみ接続されます。 ユーザーは、プログラミングのために重要かつ必要な多くのアクティビティを完了する必要があります。
スクリプトを作成するには、より多くのデータと情報が必要であり、それらを XNUMX か所に保持することは必ずしも現実的ではありません。 このアプローチを使用するユーザーは、エラーのない出力を保証する必要があります。
49. システムの持続時間を決定するために使用するコマンドを挙げてください。
Uptime コマンドを使用すると、システムが稼働している期間を確認できます。 アクティブなセッションを持つユーザーの数と、1、5、および 15 分間の典型的なシステム負荷も利用できます。
選択内容に応じて、一度に表示される情報をフィルタリングすることもできます。
40. 多数の値を追加するスクリプトを作成します。
41. 関数の例を作成します。
まとめ
シェルは主にオペレーティング システムとユーザーの間のインターフェイスであり、ユーザーが入力した命令をオペレーティング システムまたはカーネルに変換するものであることが、これらのシェル スクリプト インタビューの質問から理解できます。
この概念は、多くの場合、面接の準備プロセスで重要です。 DevOpsエンジニア および自動化テスター。 シェル スクリプトを使用すると、さまざまな複雑さのレベルのスクリプトを作成できます。 シェル スクリプトを使用して、さまざまな繰り返し処理を自動化することもできます。
見る Hashdorkのインタビューシリーズ 面接準備のお手伝い。
コメントを残す