読者です 読者をやめる 読者になる 読者になる

仕事で Unix/Linux を使うはめになった人への助言

はじめに

「生まれた時からずっとGUI」「CLIって何?」
て人が、いきなり Unix/Linux 使う事になったらとっても困るでしょうね。

そんなあなたに、簡単なアドバイス。
「 man 使え!」
-> 「 man って何?」
-> 「 man man やれ!」
-> 「 man man って何?」
-> 「 man man man やれ! とは、ならないからな!」

ごめんなさい。冗談です。 ちゃんと助言します。(「 man 使え!」はホントだけど。)

man -k xxxx

とにかく困ったら、これを使いましょう。
「man」 は、manual を省略したもの。
「k」 は keywordのk。
xxxxは知りたいコマンド名とか設定ファイル名(の一部) を入れてください。

用例

例えば、設定ファイル: whois.conf について調べたいとき

$ man -k whois
whois (1)            - client for the whois directory service
whois.conf (5)       - alternative WHOIS servers list for whois client
$ 
$ man whois.conf
   : 
   : (ここで、ドバッとマニュアルが表示される。今は省略します。)
   : 

キーワード検索をかけて、それっぽいやつを見つけたら "man xxx" でそのマニュアルを見る。 って操作です。

え、manより、インターネットで検索したほうが早い?
うーん、それは本当かもしれませんね、実際のところ。
でも、 man は正式なマニュアルなので、見る癖をつけておくといいとは思いますよ。

余談

whois.conf (5) の 5 って何ですか?」
-> 「 man man やれ!」

冗談ではなく、今回は本当です。
"man man" を実行すると、以下の説明が出てきます。

       1
       実行プログラムまたはシェルコマンド
       2
       システムコール (カーネルが提供する関数)
       3
       ライブラリー呼び出し (プログラムライブラリーに
       含まれる関数)
       4
       Special files (usually found in /dev)
       5
       ファイルの書式と慣習 (例: /etc/passwd)
       6
       ゲーム
       7
       Miscellaneous  (including  macro  packages and
       conventions), e.g. man(7), groff(7)
       8
       システム管理コマンド (通常は root 用)
       9
       カーネルルーチン [非標準]

whois.conf (5) の 5 は、ファイルの書式と慣習に関するマニュアルの意」
つまり、数字はマニュアルの種類を示していて、設定ファイルのマニュアルの場合は 5。
ってことです。
ま、Unix/Linux を使う人にとっては当たり前のことなのですが、一応補足しておきます。

以上。

xargsの使い方

はじめに

知っている人は当たり前に使うけれど、知らない人にはとっつきにくいと話題(私の中で)の xargs
そんなxargsの使い方を簡単に解説します。

「xargsなんか知ってるよ」という人には全く役に立たない記事なのでご注意。

使い方の解説

「man見ればいいじゃない (以下のリンク先参照)」
Man page of XARGS
と、言って冷たく突き放してもいいんですが、せっかくなんでわかりやすく解説しましょう。

まずは、以下の操作を見てください。

$ echo 111 > 1.txt
$ echo 222 > 2.txt
$ echo 333 > 3.txt
$ ls *.txt
1.txt  2.txt  3.txt

3つのテキストファイルを作成して、lsで表示させてるだけです。
(これが理解できない人は、回れ右して引き返したほうが無難です。)

では、「今作った "1.txt 2.txt 3.txt" の3つを結合してください。」
と、言われたら、あなたはどうしますか?

一番、簡単なのは、以下のように cat を使う方法でしょうかね。

$ cat 1.txt 2.txt 3.txt 
111
222
333

注:
実は、cat はファイルを結合するのが、本来の用途だったりします。(manにもそう書いてある。)
そして、注目は、catは複数のファイル名を指定して、そのすべてを一度に連結できる。ということです。

さて、3つのファイルの連結は簡単です (catに3つのファイル名を指定するだけ。)
が、100個ファイルの連結だったらあなたはどうしますか?
cat に 100個のファイル名を引数で指定しますか?
面倒ですよね?

じゃあ、 xargs を使いましょう。
以下、その操作 (3つのファイルの結合例)

$ ls *.txt
1.txt  2.txt  3.txt
$ 
$ ls *.txt | xargs cat
111
222
333

ね?ちゃんと結合できてますよね。
この操作は実は、最初にやった

$ cat 1.txt 2.txt 3.txt 

と、全く同じなんです。

つまり、一言で言うと、
「xargs は、標準入力で受け取ったデータを、コマンドの引数に展開する。」
これだけのことなんです。(端折り過ぎだと怒られるかもしれませんが。。。)

上のcatの例で言うと、
「標準入力でファイル名の一覧(一覧と言いつつ3つしかないけど)を受け取る。」
「それを、catの引数に、一つづつ展開する。」
「一覧を、すべて引数に展開したら cat 実行。」

xargsは、こういう動きをしてるわけですが、どうです?理解出来ますか?

実は、これは、xargsの使い方としては、一番の初歩です。
xargsのオプション指定をうまく使うと、もっといろんなことができます。
ですが、基本はこういうものだとわかっていれば、応用するのはそんなに難しくないです。

まとめ

誤解を恐れずに簡単にまとめると、

  • Unix/Linuxのコマンドは、引数で複数のパラメータを指定できる場合が多い。
    (cat だとファイル名をたくさん指定できる、とかね。)
  • そういうコマンドに対しては、xargsを使ってパラメータ指定を楽することができる。
  • しかし、xargsの用途はそれだけにとどまらないので、自分で応用できるようになると楽しいよ。

てところでしょうか。
以上、簡単な 「xargsの使い方」 でした。

LPIC 303 試験対策 その2

前回からの続きです。

y-andoh.hateblo.jp

はじめに

前回は、LPI Japan公式例題集(以下参照)
LPIC3例題解説(303試験)|Linux技術者認定機関 LPI-Japan [エルピーアイジャパン] を、ソートしました。

ただ、一つ課題が残っていることに気づきました。
平たく言うと、「すべての問題をプリントアウトしたくないですか?」ということです。
勉強する目的なら、ペーパーメディアも意外とバカにならないですよね。

前回ソートした80問の例題をすべてプリントアウトしたいんですが、これが意外と面倒です。
一問一問ブラウザでページをひらいて、一つづつプリントアウトしますか?辛いですよね?

というわけで、引き続き小細工してみます。

目的は、
LPIC 303の例題をジャンルごとにソートして、ソート済み問題(全80問)をプリントアウトする。」
です。

最終的に得られた結果

以下のリンク先を参照のこと。
sites.google.com

ここの「LPIC 303 例題集」をプリントアウトすればいいです。

作り方

以下は、結果を得るまでの過程です。
いちおう自分用のメモとして書いておきます。

1. ソートして一つにまとめる
前回(LPIC 303 試験対策 - I took an arrow in the knee.)作ったソート済みリンク集のファイル(303_exmaple_sorted.html)から、 cut を使って、"http:"の部分だけを抽出してみます。
以下、その結果。

$ cat 303_exmaple_sorted.html | cut -d \" -f 2 | head -3
http://www.lpi.or.jp/ex/303/ex_1335.shtml
http://www.lpi.or.jp/ex/303/ex_2370.shtml
http://www.lpi.or.jp/ex/303/ex_286.shtml

※説明のため、あえてheadで頭3行だけ表示させています。

区切り文字ダブルクォート(要エスケープ)で囲まれた部分をcutで抜き出しただけです。
このURLをすべて wget の引数に渡せば、欲しい例題ファイルが一括で全て取得できそうです。
そのついでに、計80問(80ファイル)をすべて一つのファイルにまとめてしまいます。

以下、その結果。

$ cat 303_exmaple_sorted.html | cut -d \" -f 2 | xargs wget -O all.tmp
    :
    : (延々とwgetの結果が続きます。長いので省略します。)
    :
$ 
$ ls -l all.tmp 
-rw-rw-r-- 1 user user 3013815  5月 30 16:49 all.tmp

これで、ファイル:all.tmp に、80問の例題をすべてまとめました。

ポイントは、

- wget には、引数で複数のURLを与えることができる。(xargsが使える。)
- wget の -O オプションで出力先ファイルを指定できる。
てところです。まあ難しくはないですね。

ただ、今のファイル:all.tmp には「問題と回答」以外の余計な記述がたくさん含まれています。
なので、このファイルから「問題と回答」の部分だけを抜粋したいと思います。

というわけで、
ファイル:all.tmpの中身を調べると、「問題と回答」は、すべて以下のhtmlタグのブロック内にまとまっていることが分かります。

    <h2 class="title04h2">
              :
    <!- exercise --> ~ <!- /exercise -->
              :
    <!-- answer -->  ~ <!-- /answer -->

タイトル行である <h2 class="title04h2> が書いてある行から、
回答終わりのコメント行である <!-- /answer --> が書いてある行までを抜き出せば良さそうです。

※ 全部の問題を確認したわけではないですが、そう信じてみます。信仰心は大事です。
「楽さと厳密さはトレードオフだから。」と、自分に言い訳しながら手抜きをしてます。

こういう場合、htmlパース用のライブラリを使えばいいんでしょうが、調べたりインストールしたりするのがめんどくさいから、sed使っちゃいます。

やり方は単純です。
「問題の記述が始まる行番号」
「回答の記述が終わる行番号」
を、すべてピックアップして、得られた行番号を、「sed -n」に与えて実行する。
あまり美しくないですが、これで行けると思います。

要は、最終的に以下のような形のコマンドを作りたいわけです。

sed -n -e 248,269p -e 981,1002p -e 1714,1735p all.tmp > 303.html



以下、その解説。
2. "egrep -n" で、行番号をリストアップしてみる

$ egrep -n 'title04h2|<!-- /answer -->' all.tmp | head -6
248:    <h2 class="title04h2"><strong>320.1 </strong><span>OpenSSL</span></h2>
269:    <!-- /answer -->
981:    <h2 class="title04h2"><strong>320.1 </strong><span>OpenSSL</span></h2>
1002:   <!-- /answer -->
1714:   <h2 class="title04h2"><strong>320.1</strong><span>OpenSSL</span></h2>
1735:   <!-- /answer -->

※くどいようですが、headを使っているのは、例として表示させるためだけです。

3. awk を使って、行番号以外の記述はフィルタして、更に開始行と終了行のセットごとにまとめてみる。

$ egrep -n 'title04h2|<!-- /answer -->' all.tmp | awk -F ':' '{if(tmp!=0){print tmp,$1; tmp=0}else{tmp=$1}}' | head -3
248 269
981 1002
1714 1735

※ かなり見苦しい操作になってますね。。。

4. 実際に使うsed文を成形する。

$ egrep -n 'title04h2|<!-- /answer -->' all.tmp | awk -F ':' 'BEGIN{printf("sed -n ")} {if(tmp!=0){printf("-e %s,%sp ",tmp,$1); tmp=0}else{tmp=$1}} END{print "all.tmp > 303.html"}'
sed -n -e 248,269p -e 981,1002p -e 1714,1735p -e 2447,2468p -e 3180,3201p -e 3913,3934p -e 4646,4741p -e 5453,5476p -e 6188,6209p -e 6921,6942p -e 7654,7675p -e 8387,8408p -e 9120,9141p -e 9853,9874p -e 10586,10607p -e 11319,11340p -e 12052,12073p -e 12785,12826p -e 13538,13559p -e 14271,14293p -e 15005,15029p -e 15741,15762p -e 16474,16495p -e 17207,17228p -e 17940,17961p -e 18673,18694p -e 19406,19427p -e 20139,20160p -e 20872,20894p -e 21606,21627p -e 22339,22360p -e 23072,23093p -e 23805,23826p -e 24538,24559p -e 25271,25292p -e 26004,26025p -e 26737,26758p -e 27470,27491p -e 28203,28224p -e 28936,28957p -e 29669,29690p -e 30402,30423p -e 31135,31156p -e 31868,31889p -e 32601,32622p -e 33334,33355p -e 34067,34088p -e 34800,34821p -e 35533,35554p -e 36266,36313p -e 37025,37046p -e 37758,37779p -e 38491,38518p -e 39230,39252p -e 39964,39987p -e 40699,40720p -e 41432,41453p -e 42165,42186p -e 42898,42919p -e 43631,43652p -e 44364,44385p -e 45097,45118p -e 45830,45851p -e 46563,46584p -e 47296,47317p -e 48029,48050p -e 48762,48783p -e 49495,49516p -e 50228,50249p -e 50961,50982p -e 51694,51715p -e 52427,52448p -e 53160,53201p -e 53913,53934p -e 54646,54667p -e 55379,55403p -e 56115,56136p -e 56848,56871p -e 57583,57619p -e 58331,58353p all.tmp > 303.html

実行結果が超長いことになってますが、コマンドとしてはうまく成形できてそうです。
あとはこのコマンドを実行してあげるだけです。
(上の例はコマンドを成形しただけで、実行はしていません。)

5. 成形したsed文を実行する。
実行するのは簡単で、パイプでbashに渡すだけ。
以下、実行結果。

$ egrep -n 'title04h2|<!-- /answer -->' all.tmp | awk -F ':' 'BEGIN{printf("sed -n ")} {if(tmp!=0){printf("-e %s,%sp ",tmp,$1); tmp=0}else{tmp=$1}} END{print "all.tmp > 303.html"}' | bash
$ 
$ ls -l 303.html 
-rw-rw-r-- 1 user user 278425  5月 30 17:59 303.html

303.html に、うまく吐き出せたようですね。
あとはこれをプリントアウトするだけです。
ちなみに、最後に出力した303.htmlファイルは、私のgoogleサイト(lpic303exq) に、貼り付けてあります。
(記事の冒頭にも書いたやつです。)

作り方のまとめ

やっていることは、
「例題を分野別にソートして、ソートした順序で一つのファイルに結合して、結合したファイルから必要部分だけをパースする。」
と、至ってシンプルですが、意外と面倒でしたね。

結構時間かかりましたが楽しかったですね。
いやー、こういうスクレイピングって楽しいなぁ。

だけどですね、試験対策の勉強はそっちのけなんですよね(笑)
一生懸命に例題集は作成したけど、全然勉強してないという状況。
しかも、ついでにブログ記事まで書いている始末。

これって「受験生が参考書買っただけで満足して、そのまま何もやらない。」
という、伝統の受験生あるあると全く同じですよね。

余談

sedを使ってhtmlファイルをパースするのは褒められたやり方では無いような気がします。
良い子は真似しないほうが良さそうです。

LPIC 303 試験対策

まず、「LPICってなあに?」的な説明は、以下の記事参照です。

y-andoh.hateblo.jp


はじめに

LPIC 303は試験対策問題が少ないです。(301,304も同様に少ないです。)
なので、LPI公式webサイトに掲載してある例題集(以下参照)
LPIC3例題解説(303試験)|Linux技術者認定機関 LPI-Japan [エルピーアイジャパン]
これが、問題数が多くて役に立ちます。

ただですね、
↑のリンク先ページを見ればわかるのですが、この例題集は出題分野別にソートされてないんです。
とても、使いづらいんです。

具体的に言うと、
「俺は今、SELinuxの問題について試験対策したいのに、例題があちこちに散らばってるから、探すのが大変なんじゃ〜。」
ということです。
探すのが大変なだけならまだいいですが、問題を見落とすのだけは避けたいです。

じゃあ、なんとかしましょう。
というのが、本記事の趣旨。

なんとかしました。

以下のリンク先を参照のこと。
sites.google.com


難癖対策

さて、上記のリンク先にあるリンク集(変な言葉ですね)ですが、あえて難癖をつけるとすれば、
「これ、ほんとに並べ替えただけなの?全問題を網羅できているの?信用していいの?」
「新しい例題が追加されたらどうするの?」
「リンクが切れたらどうするの?」
という話があります。

もっともな話なので、対策として、このリンク集の作り方を書いておこうかと思います。
(不安な人は自分で一から作ればいいじゃない、と言うわけです。)

とはいえ、やることは単純です。
まず、元のページ: LPIC3例題解説(303試験)|Linux技術者認定機関 LPI-Japan [エルピーアイジャパン]

「このページをwgetして、必要な部分だけをgrepして、sortして、sort結果をローカルのhtmlファイルに保存する。」
これだけです。

以下、その操作内容。

$ wget http://www.lpi.or.jp/ex/303/ -O - 2>/dev/null | egrep --text "[0-9][0-9][0-9]\.[0-9]" | sort -t\> -k3 > 303_exmaple_sorted.html
  • 解説用のワンポイントメモ
    「"wget -O -" で結果を標準出力へ渡す。 」
    「日本語混じりのデータをgrepするときは、"--text"指定をしておく。」
    「"328.2" というような文字列をgrepしてやる。」
    「sortの区切り文字は">"を指定する(要エスケープ)。」

    て、とこですか。
    「こんなgrepのしかたでいいのか?」と言われると、私も回答に困りますが...

補足

「例題を一つにまとめたい」「まとめてプリントアウトしたい」って人は、
以下の記事を参考にすれば、自作できます。(自作したい人は)
LPIC 303 試験対策 その2 - I took an arrow in the knee.

以上。

LPIC受験者向けのアドバイス

最初に

先日、「LPIC-3 Specialty Security」に合格しました。
f:id:Y-Andoh:20161113131524p:plain

そして、合格者の立場から、これから受験しようとしている人に向けて、簡単なアドバイスをします。

なお、「こういう問題が出やすい」といったような、試験対策の記事では無いです。
もっと基本的な事(どうやって受験するの?とか)を、参考までにアドバイスするのが目的の記事です。
(勉強以前の話なんですが、これが意外とわかりづらいんです。)

それから、以下に、私の受験結果を、貼り付けておきます。
f:id:Y-Andoh:20161113130828p:plain

別に自慢したいわけではなくて、この先の記事の内容に説得力を持たせたいだけです。
未受験者が偉そうに能書きをたれてるわけじゃないんだぜ。と言いたいわけです。

LPICって何?

素直に、以下の公式サイトを見てください。 lpi.or.jp

その資格って役に立つの?

正直に言ってわかりません。

ただ、自分の知識と実力を養う、という意味では役に立つかと思います。
Unix/Linuxを日常的に使う人ならば、受験しても損はしないかな。」というのが、私の感想です。

Unix/Linuxユーザならば、勉強中に、
「ああ、俺、こんなことも知らなかったのか。やべーな。」
「これ、詳しく知りたかったんだよな。」
などと、思うことが多々あると思いますよ。

どんな形式の試験なの?

  • 一年通じていつでも受験可能、受験日は自分である程度選択できる。
  • 受験場所は、最寄りのテストセンター(全国に点在する)を選べる。自分が出向いて受験する形。
  • 受験時は、顔写真付きの身分証明書(免許証とか) と 自筆署名付きの身分証明書(クレジットカードとか) が必要。
  • 試験はパソコン上で行います。マウスとキーボードで答えを入力していくスタイルです。
  • 試験時間中に、すでに自分が回答した問題を見なおして、答えを訂正することは可能(当たり前といえば当たり前ですが。)

  • 受験料は、1試験あたり15,000円
    ただし、各level の認定を受けるには、2つの試験で合格する必要がある。
    例えば、LPIC level1の認定を受けるには、101と102の2つの試験に合格する必要がある。

    したがって、各levelで認定を受けるために、実質は、受験料が30,000円必要になると思っておけばよい。
    (料金体系が変更にされたらごめんね)

  • 全60問、800点満点の問題

  • 合格点は500
  • 試験時間は90分、回答終了時、自分の任意のタイミングで試験終了して離席OK。
  • 全60問がすべて、同じ得点なのか、それとも、問題ごとに得点の重み付けがされているか、は不明。
    設問ごとの得点分布は、おそらく未公開。
  • 回答終了と同時に、即座に自分の得点と合否がわかる。

  • 問題の種類は、

    • 択一の選択問題(4~6択くらいだったかな)
    • 択複の選択問題(極端な話、5つの選択肢のうち、5つすべてをチェックして初めて正解。のような問題もある。)
    • 記入問題(linuxのコマンド名を問う問題が多い。)

    問題の分布は、択一問題:50%、択複問題:30%、記入問題:20% 位だった印象。
    (分布は、完全に私の所感なので、あまり当てにしないで。)

  • 試験は、いわゆる暗記物。
    実務バリバリの人でも、試験対策として暗記勉強しないと合格できないかも。
    暗記物なので、勉強方針は結局、「ある程度の量の時間投資をして、ひたすら問題を反復する」につきるかな。

  • 試験の難易度としては、日常的にUnix/Linuxを使ってる人ならば、そんなに苦労はしない印象。
    ズブの素人が受験する場合は、、、よくわかりません。
    プロトコルって何?」ってところからスタートするのは結構キツイような気もします。

おすすめの試験対策は?


その他のアドバイ

  • 事前に、Linuxの利用環境は用意しよう。
    LPICを受験するわけですから。それくらいはやりましょうよ(笑)
    VMware使うなり、VPS使うなり、自分のHDDに直接インストールするなり、お好きにどうぞって感じです。
    手軽さでいったら、断然VMwareがいいでしょうね。

  • LPI Japanのアカウント と ピアソンVUEのアカウント を事前に作っておくこと
    アカウント登録は、以下のリンク先を参照のこと。
    LPIC / OSS-DB Exam My page
    LPI :: ピアソンVUE

    これ大事です。
    受験者は、とにかく最初に2つのアカウントを作ってください。
    特に、ピアソンVUEのアカウントは作っておかないと、試験会場と受験可能日のチェックができないんです。
    勉強以前の問題として、「いつ、どこで、受験できるか?」は、前もっておさえておきたいですよね。

  • ピアソンVUEの受験予約する画面で、どの試験を選べばいいのかわからない人はどうすればいいの?
    これは、ちょっと悩みます。
    同じ試験でも、幾つかバージョンが選択出来る場合があって、しかもそれは受験時期によって変わったりします。
    なので、一概にアドバイスすることができないんで困ります。

    とはいえ、間違えて違う試験を受験予約したとしても、すぐにキャンセルできます。(後述)
    なので、安心して落ち着いて選んでください。

  • 「試験予約をキャンセルして、別日に再受験予約する。」は可能です。
    キャンセル費用はなし。
    さらに、キャンセル回数も制限されてないと思われます。
    少なくとも、私は「キャンセル&再受験予約」を5回くらい繰り返したけど、平気でした。
    ただし、キャンセル可能期間はあるので、その点は注意です。(以下のコピペ参照)

    試験予約のキャンセルをご希望の場合には、 予約した受験日時の24時間前までにオンライン予約ページにてキャンセル手続きを行うか、 受験日の1営業日前までに、ピアソンVUEにご連絡ください。 欠席や、遅刻して受験が認められなかった場合、受験料は返金されません。

  • 不合格になっても、再受験は可能。
    ただし、クールダウン期間が必要。
    二回目の受験は一週間経過後。三回目の受験は一ヶ月経過後。
    だったはず。
    詳しくはLPI Japanの公式サイトでチェックしてください。

  • とにかく、短期間で合格したい人はどうすればいいの?
    一週間位、最低限の勉強をしてから、捨てゲー覚悟で一回受験してみるのが、効率がいいかもしれません。
    うまくいけば儲けもの、ダメなら腰を据えてきっちり勉強。
    ダメだったときは、「再受験の費用と一週間のクールダウン期間」が、ペナルティとして課せられますが、そんなに痛くはないですよね。

    ただし、
    「不勉強な人が、合格ラインギリギリで合格したところで、それは受験する意味があるのか?」
    と問われると、、、回答に困りますね。。。 結局、受験目的をどう位置づけているかによりますかね。

  • 地方在住の人は不利
    なぜかというと、
    「地方は受験できる場所がかなり限られている、そして受験できる日の選択もほぼできない。」
    からです。

    「受験できる場所は、各県の県庁所在地+県内の中都市で1,2箇所」
    「受験できる日は、大体、一ヶ月に1,2回位」
    地方都市に住んでいる人は、これくらいの感覚でいてください。

    逆に東京近郊在住の人は超有利です。
    「池袋、新宿に出向けば、ほぼ毎日いつでも受験可能」
    と言っても、言い過ぎではないでしょう。 池袋、新宿に限らず、受験場所はたくさんありますし。

  • 受験しようとしている試験のバージョンのチェックは大事。
    どの試験も、しょっちゅうバージョンアップして内容が改版されてます。
    なので、
    「自分がどのバージョンの試験を受けるか?」
    「自分の持っている参考書はそのバージョンの試験に対応しているか?」
    は、要チェックです。
    特に、中古本買おうとしている人は要注意。

  • 設問で何を問うているのか、さっぱりわからない問題があるんだけど?どうすればいいの?
    試験を受けてみて、そういう問題は確かにありました。
    体感で、全問題の10%くらいの割合であったような。
    実はこれが一番の敵だったりします。

    「きっちり勉強して理解したし、試験対策もちゃんとやった。でも試験で出てきた問題の題意がつかめない。」
    という悲しい状況ですね。
    大丈夫です。それはあなただけではなく、みんな同じくイミフと思っています。

    いちおう対策としては、
     「問題文を英語に変更すればいいよ(試験中は問題文を、日本語と英語のどちらにも自由に変換できる)」 というアドバイスができるのですが、
    結局のところ、元の英文が意味不明だったりするので、あまり対策になってない気がします。
    私の感触では、「むしろ日本語の翻訳文のほうが、題意を伝えるべく頑張ってんじゃねーの?」という気持ちです。

    Don't think ! Feel.
    最善を尽くしたあなたに幸あれ。