コース名 : シェルの機能とプログラミング ~UNIX/Linux の効率的使用を目指して ~ 1 UNIX および Linux の主な構成要素は シェル コマンド カーネルです プロセスとは コマンドやプログラムを実行する単位のことなので プロセスに関する記述は誤りです UNIX および Linux のユーザーインターフェースは シェル です コマンドを解釈するという機能から コマンドインタープリタであるともいえます コマンド は ユーザーが UNIX および Linux に対して処理を依頼するための命令です カーネル は プログラムの実行やハードウェアの制御などを行うプログラムです 参考ページ 1 章 3 ページ 2 正解 :4 [ 配点 :5 点 ] ログイン時に起動されるシェルをログインシェルといいます ログインシェルはあらかじめ決められているため ログイン時に選択することはできません シェルがユーザーに対してプロンプトを表示すると ユーザーは UNIX および Linux を使用できます ユーザーがログアウトするとログインシェルは消滅します 参考ページ 1 章 4 ページ 3 コマンドには組み込みコマンドと一般コマンドの 2 種類があり 種類によりコマンドの実行過程が異なります 組み込みコマンドは 親プロセスの中でコマンドを実行します ( 子プロセスの生成はしません ) 一般コマンドは 親プロセスが子プロセスを生成し子プロセスでコマンドを実行します プログラムの実行が終了すると 子プロセスは親プロセスに終了状態値を返し消滅します 参考ページ 2 章 13~15 ページ ~ 1 / 6 ~
4 Bourne シェルの特徴は プログラムが小さいため一括処理が速いことです Korn シェルは Bourne シェルを拡張したシェルです 対話機能 ( エイリアス ヒストリ ) などが追加されました Bash は Bourne シェル互換として開発された Linux 標準シェルです 参考ページ 1 章 5 ページ 5 コマンド名の補完機能は Bourne シェルと Korn シェルでは提供されていません Bash で は提供されています 参考ページ 1 章 5 ページ 付録 119 ページ 6 複数のコマンドの実行結果を 1 つのファイルに出力するには ( ) を使ってコマンドをグループ化します ( date ; ls ) > lsfile と指定すると ( date ; ls ) で date コマンドと ls コマンドがグループ化されます その後の > lsfile でグループ化した両方のコマンドの実行結果が lsfile に出力されます date ; ls > lsfile は グループ化をしていないため lsfile に ls コマンドの実行結果のみが出力されます ( date ; ls > lsfile ) は ( ) の位置が不適切です date > lsfile ; ls は lsfile に date コマンドの実行結果のみが出力されます 参考ページ 2 章 22 ページ 7 ファイルからある文字列を含む行を抽出するには grep コマンド (grep 文字列ファイル名 ) ファイルの並べ替えを行うには sort コマンド (sort ファイル名 ) を実行します ファイルから文字列を含む行を抽出し その結果を並べ替えるには grep コマンドと sort コマンドを を使って連携します ~ 2 / 6 ~
でコマンドを連携する場合 の前に指定したコマンドの出力結果が の後に指定したコマンドの入力として使用されます そのため の後に指定する sort コマンドの引数 ( ファイル名 ) の指定は不要です grep TOKYO sort list grep TOKYO list sort list grep sort TOKYO list はいずれもファイル名や の指定が不適切です 参考ページ 2 章 20 ページ 8 一般ユーザーが編集する Bourne シェルの環境設定ファイルは $HOME/.profile です /etc/profile は システム管理者が編集する環境設定ファイルです /etc/.profile というファイルはありません $HOME/.bash_profile は 一般ユーザーが編集する Bash 用の環境設定ファイルです 参考ページ 4 章 44 ページ 9 変数を定義するには 変数 = 値 と実行します したがって set 変数値 という指定は 誤りです 参考ページ 3 章 27~28 34~36 ページ 10 標準入力からの変数の定義方法は read 変数名 です ` は 変数名 =` コマンド ` と指 定して コマンドの出力結果を変数に定義する際に使用する記号です 参考ページ 3 章 29 ページ 11 文字列 1 と文字列 2 が等しい場合に真を返すには test 文字列 1 = 文字列 2 と指定します 参考ページ 5 章 51 ページ ~ 3 / 6 ~
12 Bourne シェルで参照できる位置パラメーターは先頭から 9 個までです 10 個目以降の引数を参照するためには shift コマンドを使用して引数と位置パラメーターの対応をずらす必要があります d=$15 d=$(9+6) d=$9+$6 はいずれも位置パラメーターの使用方法が不適切です 参考ページ 3 章 37~39 ページ 13 PATH は 一般コマンドを検索するディレクトリ名が格納される環境変数です HOME は ホームディレクトリが格納される環境変数です LANG は 使用言語が格納される環境変数です PS1 は プロンプト文字が格納される環境変数です 参考ページ 3 章 34~35 ページ 14 正解 :4 [ 配点 :5 点 ] if 文の指定形式は以下のとおりです if 条件式 then 処理コマンド 1 else 処理コマンド 2 fi 参考ページ 5 章 50 ページ 15 数値演算の結果を変数に格納するには 変数 =`expr 計算式 ` と指定します ` ( バッククォーテーション ) は `コマンド` と指定して用い `コマンド` はコマンドの出力に置き換わります expr コマンドの計算式に含まれる演算子の前後には 空白が必要です 参考ページ 3 章 30~31 ページ ~ 4 / 6 ~
16 case 文の指定形式は以下のとおりです case $ 変数 in パターン 1) 処理コマンド処理コマンド ;; パターン 2) 処理コマンド処理コマンド ;; パターン 3) 処理コマンド処理コマンド ;; *) 処理コマンド ;; esac; 参考ページ 5 章 58 ページ 17 case 文のパターンに [m-n] と指定すると m-n のいずれかの 1 文字 (m-n は,ASCII コ ードの昇順 ) という意味に解釈されます ただし [] 内に 2 桁は指定できません 参考ページ 5 章 58 61 ページ 18 for 文の制御文の指定形式は以下のとおりです for 変数 in 単語 1 単語 2 単語 3 do 処理コマンド done 参考ページ 5 章 62 ページ ~ 5 / 6 ~
19 continue は for 文などの繰り返しの先頭に処理を戻します break は for 文などの繰り返しから抜けます exit は シェルスクリプトの終了をします select は メニュー形式のインターフェースを作成します 参考ページ 5 章 68~69 ページ 20 割り込み処理 trap コマンドの指定形式は trap ' 処理コマンド ' シグナル 1 シグナル 2 です ' 内に処理コマンドを指定しないと シグナルを無視するという意味になります 参考ページ 6 章 75 ページ ~ 6 / 6 ~