Linux Shellシナリオ面接25問集合

5803 ワード

Q:1 Shellスクリプトは何ですか.必要ですか.
答え:1つのShellスクリプトは、1つ以上のコマンドを含むテキストファイルです.システム管理者として、多くのコマンドを使用してタスクを完了する必要があります.これらのすべてのコマンドをテキストファイル(Shellスクリプト)に追加して、日常的な作業タスクを完了することができます.
Q:2デフォルトのログインshellとは、指定したユーザーのログインshellを変更する方法
答:Linuxオペレーティングシステムでは、「/bin/bash」はデフォルトのログインshellであり、ユーザーの作成時に割り当てられます.chshコマンドを使用すると、デフォルトのshellを変更できます.例は次のとおりです.

# chsh  -s 
# chsh linuxtechi -s /bin/sh

Q:3 shellスクリプトで使用できる変数のタイプは?
答え:shellスクリプトでは、2つのタイプの変数を使用できます.
  • システム定義変数
  • ユーザ定義変数
  • システム変数は、システムシステム自身によって作成されます.これらの変数は通常大文字で構成され、setコマンドで表示できます.
    ユーザ変数はシステムユーザによって生成され、定義され、変数の値はコマンド「echo $」によって表示される.
    Q:4標準出力とエラー出力を同時に同じ位置にリダイレクトする方法
    答え:ここには2つの方法があります.
    方法1:
    2>&1 (# ls/usr/share/doc > out.txt 2>&1 )
    方法2:
    &> (# ls/usr/share/doc &> out.txt )
    Q:5 shellスクリプトのif構文はどのようにネストされますか?
    答え:基礎文法は以下の通りです.
    
    if [ Condition ]
    then
    command1
    command2
    …..
    else
    if [ condition ]
    then
    command1
    command2
    ….
    else
    command1
    command2
    …..
    fi
    fi

    Q:6 shellスクリプトの「$?」タグの用途は何ですか??
    答え:shellスクリプトを書くときに、前のコマンドが正常に実行されたかどうかを確認したい場合は、if条件で「$?」を使用して、前のコマンドの終了ステータスを確認します.簡単な例は次のとおりです.
    
    root@localhost:~# ls /usr/bin/shar
    /usr/bin/shar
    root@localhost:~# echo $?
    0

    終了ステータスが0の場合は、前のコマンドが正常に実行されたことを示します.
    
    root@localhost:~# ls /usr/bin/share
    ls: cannot access /usr/bin/share: No such file or directory
    root@localhost:~# echo $?
    2

    終了ステータスが0でない場合は、コマンドの実行に失敗しました.
    Q:7 shellスクリプトで2つの数字をどのように比較しますか?
    答え:if-thenでテストコマンド(-gtなど)を使用して2つの数字を比較します.例は以下の通りです.
    
    #!/bin/bash
    x=10
    y=20
    if [ $x -gt $y ]
    then
    echo “x is greater than y”
    else
    echo “y is greater than x”
    fi

    Q:8 shellスクリプトにおけるbreakコマンドの役割?
    答え:breakコマンドの簡単な用途は、実行中のループを終了することです.私たちはwhileとuntilループでbreakコマンドを使用してループをスキップすることができます.
    Q:9 shellスクリプトにおけるcontinueコマンドの役割?
    答え:continueコマンドはbreakコマンドとは異なり、現在のループの反復のみを飛び出し、ループ全体ではありません.continueコマンドは、エラーが発生した場合など、多くの場合便利ですが、大きなループを実行し続けることを望んでいます.
    Q:10 shellスクリプトのCase文の文法を教えてください.
    答え:基礎文法は以下の通りです.
    
    case word in
    value1)
    command1
    command2
    …..
    last_command
    !!
    value2)
    command1
    command2
    ……
    last_command
    ;;
    esac

    Q:11 shellスクリプトのwhileループ構文?
    答え:forループのように、whileループは条件が成立すればコマンドブロックを繰り返します.forループとは異なり、whileループは条件が真実でないまで反復します.基本構文:
    
    while [ test_condition ]
    do
    commands…
    done

    Q:12スクリプトの実行方法
    答え:chmodコマンドを使用してスクリプトを実行できます.例は次のとおりです.
    
    # chmod a+x myscript.sh

    Q:13「#!/bin/bash」の役割は?
    答:#!/bin/bashはshellスクリプトの最初の行であり、shebang行と呼ばれます.ここの記号はhashと呼ばれています.バングと言います.コマンドは/bin/bashで実行されることを意味します.
    Q:14 shellスクリプトでforループ構文?
    答え:forループの基礎文法:
    
    for variables in list_of_items
    do
    command1
    command2
    ….
    last_command
    done

    Q:15 shellスクリプトのデバッグ方法
    答え:'-x'パラメータ(sh-x myscript.sh)を使用してshellスクリプトをデバッグします.もう1つの方法は、'-nv'パラメータ(sh-nv myscript.sh)を使用することです.
    Q:16 shellスクリプトはどのように文字列を比較しますか?
    答え:testコマンドは文字列を比較するために使用できます.テストコマンドは、文字列の各文字を比較することによって比較されます.
    Q:17 Bourne shell(bash)にはどのような特殊な変数がありますか?
    答え:次の表は、Bourne shellがコマンドラインに設定した特殊な変数を示しています.
    ビルトイン変数
    説明する
    $0
    コマンドラインのスクリプト名
    $1
    最初のコマンドラインパラメータ
    $2
    2番目のコマンドラインパラメータ
    …..
    …….
    $9
    9番目のコマンドラインパラメータ
    $#
    コマンドラインパラメータの数
    $*
    すべてのコマンドラインパラメータをスペースで区切る
    Q:18 How to test files in a shell script ?
    Q:18 shellスクリプトでファイルをテストする方法
    答え:testコマンドはファイルをテストするために使用できます.基本的な使い方は次の表のとおりです.
    Test
    使用法
    -dファイル名
    ファイルが存在し、ディレクトリである場合はtrueを返します.
    -eファイル名
    ファイルが存在する場合はtrueを返します
    -fファイル名
    ファイルが存在し、通常のファイルである場合はtrueを返します.
    -rファイル名
    ファイルが存在し、読み取り可能である場合はtrueを返します.
    -sファイル名
    ファイルが存在し、空でない場合はtrueを返します.
    -wファイル名
    ファイルが存在し、書き込み可能な場合はtrueを返します.
    -xファイル名
    ファイルが存在し、実行可能な場合はtrueを返します.
    Q:19 shellスクリプトにコメントを書き込むにはどうすればいいですか?
    答え:コメントは、スクリプトが何ができるか、どのように機能しているかを説明するために使用できます.各行のコメントは#で始まります.例は次のとおりです.
    
    #!/bin/bash
    # This is a command
    echo “I am logged in as $USER”

    Q:20 shellにスクリプトについて端末からの入力を得るにはどうすればいいですか.
    答え:readコマンドは、端末(キーボードを使用)からのデータを読み取ることができます.readコマンドは、ユーザーの入力を得て、あなたが与えた変数に配置されます.例は次のとおりです.
    
    # vi /tmp/test.sh
    #!/bin/bash
    echo ‘Please enter your name'
    read name
    echo “My Name is $name”
    # ./test.sh
    Please enter your name
    LinuxTechi
    My Name is LinuxTechi

    Q:21変数の割り当てをキャンセルするにはどうすればいいですか.
    答え:「unset」コマンドは、変数の割り当てをキャンセルするか、変数の割り当てをキャンセルするために使用されます.構文は次のとおりです.
    
    # unset 

    Q:22算術演算はどのように行いますか.
    答え:算術演算を実行するには2つの方法があります.exprコマンド(#expr 5+2)を使用します.2.1ドル記号と括弧($[ ])を使用します.たとえば、test=$[16+4];test=$[16 + 4]
    Q:23 do-while文の基本フォーマットは?
    答え:do-while文はwhile文と似ていますが、条件文をチェックする前にコマンドを実行します(LCTT訳注:少なくとも1回実行することを意味します).次はdo-while文の構文です
    
    do
    {
    statements
    } while (condition)

    Q:24 shellスクリプトで関数をどのように定義しますか?
    答:関数は名前を持つコードブロックです.コードブロックを定義すると、スクリプトで関数名を呼び出すことができ、ブロックが実行されます.例は次のとおりです.
    
    $ diskusage () { df -h ; }

    Q:25 shellスクリプトでBC(bash計算機)をどのように使用しますか?
    答え:shellスクリプトでbcを使用するには、次のフォーマットを使用します.
    
    variable=`echo “options; expression” | bc`

    原文出典: linuxtechi   原文出典:LCTT