t-funakiさんの助け合いフォーラム投稿一覧
実際にインスタンスを立てたこともないですし、実務経験が乏しいため教えてください。
本問題で、自分の知識・感覚では以下選択肢を切り切ることができませんでした。
クラウド側に既に用意されている環境のうち、用途に合ったものを利用する
おそらくPaaSとの差別化ができているかの確認のための選択肢だとは思うので、
ここでいう「環境」とはミドルウェアとかまで含めたものだとは思っています。
参考に以下記載があります。
●IaaS(Infrastructure as a Service)/HaaS(Hardware as a Service)
サーバー、ストレージ、ネットワーク等、仮想化されたインフラ環境をサービスとして提供するサービスモデルです。
●IaaS(HaaS)
ユーザーは「インスタンス」と呼ばれる仮想マシンを作成(プロビジョニング)します。インスタンスを作成する際は、
スペック(メモリやCPUなど)やOSの種類などをブラウザなどの管理画面から設定するか、テンプレートを利用することができます。
インフラ「環境」を提供しているサービスにおいて、スペックやOSの種類などをブラウザなどの管理画面から設定することは
Linux環境を新たに構築したいときのユーザーの操作として、既に用意されている環境のうち、用途に合ったものを利用するに含まれないのでしょうか?
試験対策用の問題なのでそこまで考える必要はないとは思っているのですが、
「環境」など、私などが日常的になんとなく使っている単語にもしかしたら熟練のIT技術者的にはここからここまでという明確な線引きが
あるのかもしれないと思い気になってしまいました。
$ echo ping-t | tee | cat
ping-t
私の環境で試してみてもこうなるので、正解なのはわかっています。
ただ、私の理解度的にteeはディスプレイ(①)とファイル(②)が標準出力先になるという認識のため、
感覚的にはecho ping-t | teeこの時点で①の分の出力がディスプレイに表示され、通常ファイルに出力されるはずの②を受け取ったcatが
さらにping-tを表示し
$ echo ping-t | tee | cat
ping-t
ping-t
となりそうな気がしてしまいます。
と、ここまで書いて①もパイプでcatに流されている可能性を考えていなかったことに気づいたのですが、
そうだとしてもcatに2つ分のecho ping-tが行く気がして結局内部的にどうなっているのかよくわかりません。
それとも①が標準出力で、②は標準出力ではなく、私の知らない「○○出力」みたいなもので、
②はパイプで出力先を変更できず、ファイルの指定がなかった時点でどこかに消えていき、
①だけパイプでcatに送られて結果1つ分のping-tしか表示されないみたいな感じなのでしょうか?
どなたか浅学な私にご教示ください。
上記の通りWindowsとLinuxでは改行コードが異なるため、テキストファイルの扱いが問題になる場合があります。CRLF(\r\n)からCR(\r)を取り除くことでLinuxの認識できる改行コード:LF(\n)のみにでき、正しく扱うことができるようになります。(類似問題ID:34286をご参照ください。)
また、CR(キャリッジリターン)は「^M」という制御コードでも表されるため、Windowsで作成したファイルをLinuxのエディタで開くと末尾に「^M」が表示されることがあります。よって、制御コード「^M」を取り除くことでもLinuxの改行コードLF(\n)に変換できます。
浅学で恐縮ですが、本問題の解説を見て2点ご教示いただきたいです。
解説文に上記のような記載があります。
①改行コードやCRLF、LFという単語の指す範囲についてもわからなくなりました。
「改行コード」というのは「CRLF」や「LF」といったものを指し、「\r\n」や「\n」などが実際の制御コードだという認識でおりました。
しかし、今回このような表現になっているということは、
「改行コード」という言葉は、改行方式の仕様と制御コードどちらのことも指せる表現なのでしょうか?
②改行していないのにLFに変換されるということ。
trやsedを使い「^M」を取り除くことで確かにLinux上で正確に認識ができるようになるとは思うのですが、
本問題の場合は改行をそもそもしていないテキストの文章に変換されるという解釈をしています。(\r\nから\rを取り除くとかならCRLF→LFに変換されたという意味は分かります。)
私としては、「OSによって改行コードが異なり、その改行コードごとに異なる制御コードを使うため、その制御コードが埋め込まれているファイルを別のOSでは認識できない」くらいの認識だったのですが、改行するための制御コードを含まないファイルにも改行コードの概念が存在しているということでしょうか?
したがって正解は
・killall -SIGTERM mycommand
・killall -s 15 mycommand
です。なお、以下のコマンドは全て同じ動作をします。
・pkill mycommand(「mycommand」を含む検索パターン)
・killall mycommand
・killall -15 mycommand
・killall -TERM mycommand
・killall -SIGTERM mycommand
・killall -s 15 mycommand
・killall -s TERM mycommand
・killall -s SIGTERM mycommandその他の選択肢については次のとおりです。
・pkill mycommand
pkillコマンドではプロセス名(コマンド名)に検索パターンを指定するので、「mycommand」という文字列を含む全てのコマンドを実行しているプ>ロセスが対象となります。よって不適切です。
上記ですが、検索パターンを指定するので、「mycommand」という文字列を含む全てが対象となるため不適切になるということは、ギリギリ納得しました。
しかし、いくら括弧書きで(「mycommand」を含む検索パターン)と書かれていても
「なお、以下のコマンドは全て同じ動作をします。」と言い切った解説をしているにもかかわらず、
pkill mycommandが不正解になるのは納得感がありません。
本問題の解説部分にて
この環境でファイルを作成した場合のパーミッションは、以下のように算出され「640」になります。
所有ユーザの権限は 6 (rw) - 0 = 6 (rwx)
所有グループの権限は 6 (rw) - 3 (wx) = 4 (r) ※ 3にはなりません。読み取り権限が残ります。
その他のユーザの権限は 6 (rw) - 7 (rwx) = 0 ※ -1にはなりません。
とあるのですが、6 (rw) - 0 = 6 (rwx)ではなく、6 (rw) - 0 = 6 (rw)だと思うのですが、どうでしょうか?