50 のシェルスクリプト面接の質問と回答 (2024)

ここでは、夢の仕事に就くための、新人および経験豊富な候補者向けのシェル スクリプティングの面接の質問と回答を紹介します。

 

Linux シェル スクリプトの面接の質問と回答

1) シェルとは何ですか?

シェルは、ユーザーとカーネル間のインターフェイスです。カーネルは 1 つしか存在できませんが、システムでは複数のシェルを同時に実行できます。そのため、ユーザーがキーボードからコマンドを入力すると、シェルはカーネルと通信してコマンドを実行し、出力をユーザーに表示します。

👉 無料 PDF ダウンロード: シェル スクリプトのインタビューの質問と回答


2) シェルスクリプトとは何ですか?

シェルスクリプト Unix/Linux シェルで実行するように設計されたオープンソースのコンピューター プログラムです。 Shell Scripting は、シェルが実行する一連のコマンドを記述するプログラムです。 長くて反復的な一連のコマンドを、いつでも保存して実行できる単一の単純なスクリプトに結合できるため、プログラミングの労力が軽減されます。

シェルスクリプト面接の質問


3) 典型的な Linux システムで一般的に使用されるシェルにはどのような種類がありますか?

csh、ksh、bash、ボーン。 現在最も一般的に使用されている高度なシェルは「Bash」です。


4) Linux システム上のウィンドウにあるファイル ショートカットに相当するものは何ですか?

Linuxではショートカットは「リンク」を使って作成されます。 使用できるリンクには「ソフトリンク」と「ハードリンク」のXNUMX種類があります。


5) ソフトリンクとハードリンクの違いは何ですか?

ソフト リンクはファイル名へのリンクであり、異なるファイルシステム上に存在することもできます。 ただし、ハード リンクはファイルの i ノードへのリンクであり、ファイルと同じファイルシステム上にある必要があります。 元のファイルを削除すると、ソフト リンクは非アクティブになります (リンク切れ) が、ハード リンクには影響しません (ハード リンクは引き続きファイルのコピーにアクセスします)。


6) Linux でスクリプトに引数を渡したりアクセスしたりするにはどうすればよいですか?

引数は次のように渡すことができます。

scriptName "Arg1" "Arg2"…."Argn" で、スクリプト内で $1 、 $2 .. $n としてアクセスできます。


7) $* と $@ の違いは何ですか?

$@ は、引用符で囲まれた各引数を個別の引数として扱いますが、$* は位置パラメータのセット全体を単一の文字列とみなします。


8) sed コマンドを使用してファイルの内容を置き換えます (tac コマンドをエミュレートします)

例えば:

if cat fille
ABCD
EFGH

次に、O/p は次のようになります。

EFGH
あいうえお

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

ここで G コマンドはパターン空間に追加します。

hコマンドはパターンバッファをホールドバッファにコピーします。

そして d コマンドは現在のパターンスペースを削除します。


9) ファイルを指定して、出現するすべての単語「ABC」を 5 の「DEF」に置き換えます。th 「MNO」という単語を含む行のみの行の最後まで

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

10) ファイルを指定して、各ワードのカウントを見つけるコマンド シーケンスを記述します。

tr –s  "(backslash)040" <file1|tr –s  "(backslash)011"|tr "(backslash)040 (backslash)011" "(backslash)012" |uniq –c
where "(backslash)040" is octal equivalent of "space"

「(バックスラッシュ)011」は「タブ文字」と同等の XNUMX 進数です。

「(バックスラッシュ)012」は、改行文字に相当する XNUMX 進数です。


11) 99 はどうやって見つけますかth テールコマンドとヘッドコマンドのみを使用してファイルの行?

テール +99 ファイル 1|ヘッド -1


12) 10 を印刷します。th tail コマンドと head コマンドを使用せずに行を作成します。

sed –n '10p' file1

13) bash シェルで、プロンプトを '$”現在の作業ディレクトリ”:”ホスト名”> の形式にして、ログインするとすぐにユーザー定義関数のリストを含むファイルをロードしたいのですが、これを自動化するにはどうすればよいですか? ?

bash シェルでは、ログインするとすぐに自動的に呼び出される「.profile」ファイルを作成し、次の構文を記述することができます。

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

ここで、File1 はユーザー定義関数と「.」を含むファイルです。 現在のシェルでこのファイルを呼び出します。


14) ファイル内の「s」許可ビットについて説明してください。

「s」ビットは「set user id」(SUID)ビットと呼ばれます。

ファイル上の「s」ビットにより、プログラムのインスタンス中にプロセスはファイルの所有者の特権を持ちます。

たとえば、「passwd」コマンドを実行して現在のパスワードを変更すると、所有者が「root」であっても、ユーザーは新しいパスワードをシャドウ ファイルに書き込むことになります。


15) グループ内の誰もがファイルを作成し、その中の任意の人のファイルにアクセスできるディレクトリを作成したいのですが、自分が作成したファイル以外は誰も削除できないようにしたいです。

次のように、グループ内の全員に読み取りおよび実行アクセス権を付与し、そのスティッキー ビット「t」をオンに設定するディレクトリを作成できます。

mkdir direc1
 
chmod g+wx direc1
 
chmod +t direc1

16) システムがどれくらいの時間稼働しているかを確認するにはどうすればよいですか?

これは、「uptime」コマンドを使用して確認できます。


17) ユーザーは、デフォルトのシェル、実際の名前、デフォルトのディレクトリ、いつ、どのくらいの期間システムを使用したかなど、特定のユーザーに関するすべての情報をどのようにして見つけることができますか?

指「loginName」 …loginName は、

情報が期待されているユーザー。


18) $$ と $ の違いは何ですか?

$$ は現在実行中のプロセスのプロセス ID を示し、$! は現在実行中のプロセスのプロセス ID を示します。 最近バックグラウンドになったプロセスのプロセス ID を表示します。


19) ゾンビプロセスとは何ですか?

これらは、終了したものの終了ステータスがまだ親プロセスによって選択されていないプロセスです。 これらのプロセスは、機能していない場合でも、プロセス テーブルにプロセス ID エントリを持ち続けます。


20) あるマシンから別のマシンにファイルをコピーするにはどうすればよいですか?

「ftp」、「scp」、「rsync」などのユーティリティを使用して、あるマシンから別のマシンにファイルをコピーできます。

たとえば、ftp を使用する場合:

FTP ホスト名

>ファイル1を置く

>さようなら

上記では、ファイル file1 がローカル システムから指定されたホスト名を持つ宛先システムにコピーされます。


経験者向けのシェルスクリプト面接の質問と回答

21) 継続的に更新されるログ ファイルを監視したいのですが、これを最も効率的に実現するにはどのコマンドを使用できますか?

tail –f ファイル名を使用できます。これにより、std o/p にデフォルトの最後の 10 行のみが表示され、ファイルの更新部分が継続的に表示されます。


22) リモートサーバーに接続していくつかのコマンドを実行したいのですが、どうすればこれを実現できますか?

ssh を使用してこれを行うことができます。

ssh ユーザー名@サーバーIP -p sshポート

ssh root@122.52.251.171 -p 22

上記のコマンドを実行すると、パスワードの入力を求められます


23) 2 つのファイルがあり、両方に共通するレコードを印刷したいと考えています。

「comm」コマンドは次のように使用できます。

comm -12 file1 file2 … 12 は、次のコンテンツを抑制します。

1に固有のst そして、2nd それぞれファイルします。


24) フィボナッチ数列の最初の 10 要素を出力するスクリプトを作成します。

  
#!/bin/sh
a=1
b=1
echo $a
echo $b
for I in 1 2 3 4 5 6 7 8
do
c=a
b=$a
b=$(($a+$c))
echo $b
done

25) Linux からデータベース サーバーに接続するにはどうすればよいですか?

次のように、オープン クライアント ドライバーに付属する isql ユーティリティを使用できます。

isql –S サーバー名 –U ユーザー名 –P パスワード


26) Linux の 3 つの標準ストリームは何ですか?

0 – 標準入力1 – 標準出力2 – 標準誤差


27) コマンドへのすべての入力を file1 から読み取り、すべての出力を file2 に、エラーをファイル 3 に送りたいのですが、どうすればこれを実現できますか?

指示ファイル1 1>ファイル2


28) exec を使用してコマンドを実行すると、現在のプロセスはどうなりますか?

「exec」は、新しくフォークされたプロセスを現在のプロセスにオーバーレイします。 したがって、exec を使用してコマンドを実行すると、コマンドは新しいプロセスを作成せずに現在のシェルで実行されます。

例: 実行中 "exec ls" コマンドプロンプトで ls が実行され、ls が終了するとプロセスがシャットダウンします。


29) awk を使用して wc –l をどのようにエミュレートしますか?

awk 'END {print NR} fileName'


30) 与えられたファイルから、単語「ABC」を含む行数を見つけます。

grep –c "ABC" ファイル1


31) grep と egrep の違いは何ですか?

egrep は、「+」(前の文字が 1 回以上出現)、「?」(前の文字が 0 回または 1 回出現)、「|」などの追加された grep 機能をサポートする拡張 grep です。 (代替マッチング)


32) Linux で配列を設定するにはどうすればよいですか?

ksh の構文:

Set –A arrayname= (element1 element2 ….. element)
In bash
A=(element1 element2 element3 …. elementn)

33) for ループの構文を書き留める

構文:

for  iterator in (elements)
do
execute commands
done

34) 特定のユーザーが使用している合計ディスク容量はどのようにして調べられますか?

du -s /home/user1 ….user1 は、合計ディスク容量を見つける必要があるユーザーです。


35) Linux で「if」条件文の構文を書きますか?

構文

If  condition is successful
then
execute commands
else
execute commands
fi

36) $ にはどのような意味がありますか?

コマンド$? 最後に実行されたコマンドの終了ステータスを示します。


37) ファイル内の空行をすべて削除するにはどうすればよいですか?

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

ここで、(バックスラッシュ)011 は XNUMX 進数のスペースに相当し、

(バックスラッシュ)040 はタブと同等の XNUMX 進数です。


38) 100 ごとに「ABCDEF」という行を挿入するにはどうすればよいですかth ファイルの行?

sed '100i\ABCDEF' ファイル1


39) 2 日以内に変更されたすべてのファイルを検索し、それぞれのレコード数を出力するコマンド シーケンスを作成します。

探す 。 –mtime -2 –exec wc –l {} \;


40) 現在のシェルで作成されたすべてのファイルに対して、デフォルトの rwx 権限をすべてのユーザーに設定するにはどうすればよいですか?

以下を使用できます。

umask 777

これにより、すべてのユーザーに対して作成されるすべてのファイルにデフォルトの rwx 権限が設定されます。


41) プロセス ID からプロセス名を見つけるにはどうすればよいですか?

我々は使用することができます "ps –p ProcessId"


42) Linux 上のすべてのファイル システムの XNUMX つの基本コンポーネントは何ですか?

ブートブロック、スーパー ブロック、inode ブロック、データブロックは、Linux 上のすべてのファイル システムの基本コンポーネントです。


43) ブートブロックとは何ですか?

このブロックには、システムの起動時にカーネルをロードする「マスター ブート レコード」(MBR) と呼ばれる小さなプログラムが含まれています。


44) スーパーブロックとは何ですか?

スーパー ブロックには、ファイル システムのサイズ、空きデータ ブロックの数によって使用されるブロック サイズ、空き i ノードとデータ ブロックのリストなど、ファイル システムに関するすべての情報が含まれます。


45) inode ブロックとは何ですか?

このブロックには、ファイル システムのすべてのファイルの i ノードと、その名前を除くすべてのファイル属性が含まれます。


46) 圧縮ファイルを添付したメールを送信するにはどうすればいいですか?

zip file1.zip file1|mailx –s “subject” 受信者のメールID

メールのコンテンツ

EOF


47) シェルでコマンド エイリアスを作成するにはどうすればよいですか?

alias Aliasname=”エイリアスを作成するコマンド”。


48) ファイルの「c」および「b」許可フィールドとは何ですか?

「c」と「b」 権限フィールド 通常、デバイス ファイルに関連付けられています。 ファイルがスペシャル キャラクタ ファイルであるか、ブロック スペシャル ファイルであるかを指定します。


49) シバンラインの用途は何ですか?

各スクリプトの先頭にある Shebang 行は、スクリプトの実行に使用されるエンジンの場所を決定します。

これらの面接の質問は、あなたの活力(口頭)にも役立ちます