一般的なUnixスキルのために誰かにインタビューする[非公開]


20

* nixシェルの使用経験があると主張する開発者をどのようにテストしますか(明確にするために、誰かが* nixで開発できるかどうかはテストしたくありません。

ログファイルから情報を取得する問題を解決することを考えていました。これには、cat、grep、cutなどの基本的な作業と、パイピングの組み合わせが含まれます。

他にどんな基本的な知識を求めますか?繰り返しになりますが、これは* nixシステム用に開発する人へのインタビュー用ではなく、* nixシステム管理者用ではなく、* nixシステムで作業を行う必要のある通常の開発者用です。


この種のシェルトレーニングは、プログラミング言語を既に知っている人にとっては簡単です。インタビューを受けた人が履歴書で真実をもう少し喜ばせるようにすると、人々はいつ気にするのですか?それは常に起こります。私にはささいな響き。
ヤムマルコヴィッチ

@YamMarcovic-「thruththをもう少し楽しいように見える」と言うとき、「彼らが持っていないスキルのレベルを主張する」と言っていますか?もしそうなら、それはインタビュー中に調べるのにかなり関連があると思います。彼らがドアを通り抜けようとうそをつくなら、どうしたら中に入ると信用できるのでしょうか?
バティーン

@Vatine少なくとも私の経験から、誰もが履歴書のスキルレベルを誇張しすぎているからです。それらの人々を失格させた場合、あなたは独断的に正直な、または素朴な人々を雇うことに絞り込まれます。それははるかに少ないオプションです。
ヤムマルコビッチ

回答:


13

* nixシステムで作業している私の個人的な経験から、開発者は以下を知る必要があります。

  • シェル変数(設定/取得方法+ PATHなどの特殊な変数に関する知識)
  • シェルリダイレクト(プログラムの出力のキャプチャ)
  • パイプ(ログファイルからいくつかの情報を抽出するのは素晴らしい例です)
  • プロセス制御(ps、nice / renice、kill)
  • ファイルアクセス権(ls / chmod / chown / chattr)
  • ユーザー(ただし、主にファイル/プロセスのコンテキストで、つまり:このプロセスはこのファイルにアクセスできますか?なぜできる/できないのですか?)

...そしてボーナスとして:

  • システムサービスの開始/停止

このようなスキルセットにより、開発者に関連するほとんどのタスクを簡単に実行できます。


いい答えだ。システムサービスの開始/停止に使用されるコマンドは何ですか?
ティム

11

私は仕事に始めてから私の数多くの同僚と私の経験から、誰もが偽のUnixの知識を望んでいない:彼らは、「いずれかのコマンドラインの周りの道を知っている」か、彼らは単に言わない「何の道を!」。

候補者がUnixワークステーションで作業する意思があるかどうかを尋ね、bashをどこまで進めることができるかを教えてください。彼は最終的にいくつかのコマンドに名前を付けます。最も明白なものであるcdcatmoreまたはlessviまたはemacsgrepawksed。彼が言及するかどうか注意深く聞いてくださいman

それは開発のためであるならば、彼は精通している必要がありmakeとのMakefile、およびいくつかのソース制御コマンドラインインタフェース(svngitcleartoolhgcvs...)


4
私は知っmanていて、Googleが助けにならないときはいつでもそれを使用しますが、コマンドのリストにそれを表示することは決してありません...
Mehrdad

3
manは、オフラインのときにUNIXコマンドラインとCライブラリについて学習する最も効率的な方法です。ちなみに、インターネットを検索するための最も高度なツールがtelnet archie.cs.mcgill.ca
mouviciel


@mouviciel:また、オンラインのときにunixコマンドラインについて学習するのが最も効率的です。ほとんどのフォーラムは、コマンドの詳細を尋ねるとrtfmに「役立つ」ことを伝えるからです。マニュアルページが非常に複雑で、ドキュメントをナビゲートするのが難しくなければ、これは問題ないはずです。幸いなことに、スタックオーバーフローがあります!
ジョレン

私はそれについて知りません。マニュアルページを過度に使用していますが、慣れてしまえば問題はありません。探しているものを見つけるのは簡単です。セクションがあり、「関連項目」があり、ボタンをクリックするだけですべてを検索できます。すべてのコマンドとすべてのsyscallのmanページと、かなりの数のライブラリー呼び出しがあります。マニュアルページは、私をUNIXが大好きだと思う理由だと思います。
ヤムマルコヴィッチ

10

どうしてですか?

* nixシェル(および他のOSシェル、fwiw)は非常に深く、幅広い作業環境です。誰かがそこで何年も働いて、シェルの容量のごくわずかな割合しか使用しない可能性があります。

a)シェルプログラム、またはb)シェルからシステムを管理することを期待していない場合、なぜ重要なのでしょうか?実行されるものはすべて、基本的なレベルになり、便利な* nixチートシートが「スキルの不足」を補う以上のものになります。


それは正直チェックです。誰かが履歴書にUNIXの経験を積んでいる場合(実際には必要ありません)、主張されたスキルが何であるかを確認できるようにしたいと思います。cdとlsだけを使用できる場合は、unixエクスペリエンスimoを要求するべきではありません。
クリストフヴァンフレテレン

まあ、私は、彼らが使用したものUnixシステムを依頼し、Unixシステムと、おそらくLinuxの/ Macの間でそれらのリストの違いがあるだろう
ヨハネス・

1
@Christophe-さて、ここに契約があります...それは重要ではありません、彼らはおそらくあなたのために働かないでしょうから。潜在的な雇用者が履歴書の内容を信用していないため、このような愚かなスタントを引き始めたとき、それはインタビュー対象者にとって大きな危険です。あなたの「テスト」とそれを正当化する理由は、基本的には、たわごと会社でたわごとの仕事をするために誰かを雇おうとしているということです。私は間違っているかもしれませんが、私はそうではないと推測しています。ただし、私が間違っている場合は、「期待」を再評価することをお勧めします。
ジョーインターネット

1
@Yam-このように言います...あなたが雇っていて、誰かがあなたが不自然だと思っている履歴書を送ったら、あなたはその人にインタビューしないだけです。あなたがしないことは、a)ポジションの要件に関係がないことを認める愚かなテストを作成することです。b)誰かの主張された経験の「誠実さ」をテストするためだけに設計されていることを認めます。OPの会社で* nixシェルを使用したと言って「誠実さ」を問わずにインタビューすることさえできない人がいる場合、その会社についてはどうでしょうか。私には、それはたわごと会社でたわごとの仕事を言う。YMMV。
ジョーインターネット

1
@Christophe-あなたが有能な* nixプログラマーを雇っているなら、IMOは彼らが「コマンドラインの周りのやり方を知っている」と仮定するのは公平です。あなたが有能な他のOS開発者を雇っているなら、IMOは彼らの* nixコマンドラインのスキルは最小限であると仮定するのが公平です。グループAをテストする必要はありませんが、グループBは自動的に失敗します。ソフトウェア開発者を雇用するための基準が、コマンドラインの使用方法に基づいている場合、雇用プロセスに欠陥があると思います。シェルスクリプティングがポジションの主な責任である場合は異なります。
ジョーインターネット

3

私の頭の中で、おそらく次の2つのことを尋ねます。

  1. 以前に* nixコマンドラインを使用したとき、よく考え抜かれたコマンドで時間を大幅に節約できるケースに遭遇しましたか?もしそうなら、精巧に。

  2. * nixコマンドラインと標準のWindowsデスクトップの主な違いを説明してください。それぞれの長所と短所は何ですか?

明らかに、最初のものは、コマンドラインに関する申請者の知識がどれだけ深くなるかを示します。彼が* nixで長年働いていたなら、彼はgrepを実行したことを誇りに思っているとあなたに言うだけではありません。もちろん、正確なコマンドを覚えていると期待しないでください(そのためのマンページは常にあります)。

2番目の質問では、代わりに、コマンドラインが本当に得意なことと、それが適切なツールではないことを理解しているかどうかをチェックします。ハンマーの使い方を学ぶのは簡単ですが、ハンマーが不適切な場合に別のツールに切り替えるのははるかに困難です。したがって、この質問は、* nixボックスの外側の申請者の見解をよく示しているだけでなく、彼の知識で得点できる(そしてするべき)ために十分に開かれています。(「Windowsにはこれらのウィンドウがあります」などと答えることほど悪いことはありません)


2

何をしたいかによって異なります。

以下のためのログから情報を取得してファイル + grepのは完璧な理にかなっている猫のためのあなたの提案を。それにls、cd、less / moreを追加します。

いくつかの小さな編集(たとえば、構成ファイル内)を行うことを期待している場合は、viおよび/またはemacsおよびcp / mv / rm / mkdirなどのテストを追加するのが理にかなっています。


1
viコマンドのテスト、sheesh、彼らがそれらすべてを知っていればもっと心配になるだろう
-NimChimpsky

1
男がGoogleに連絡して、「vi Editorコマンド」などの検索フィールドに入力し始めたら、テストは90%合格したと思います :)
gnat

1

emacsまたはvi / m、tar、sed、e / f / grep、さまざまなコンパイラ、いくつかのシェルスクリプトを知っていることをお勧めします。おそらく、これらのツールを使用して、ファイルを開かずにファイルからコードを取得し、別のプログラムに挿入する必要があるテストを実行します。次に、プログラムをコンパイルします。これにより、些細なエラーが発生します。次に、テキストエディタを使用して、エラーを見つけ、コードを機能させ、バイナリをアーカイブする必要があります。次に、受信者に実行権限を付与しながら、どこかにメールで送信します。


1

私はあなたのことは知りませんが、インタビュアーが私に尋ねて、Linuxでの作業方法がわからなかったら、いらいらします。

あなたは彼らが知っていることを本当に気にするべきではありませんが、チャンスが与えられれば彼らが何を学ぶことができるかを気にするべきではありません。* nixツールの学習はそれほど難しくありませんが、少し決心する必要があります。知識ではなく能力を実際にテストする必要があります。


2
しかし、学習しないように仕事をするために候補者にインタビューします。
-NoChance

1
-1 @Emmad。それで、あなたは今までどんな仕事でも学んだことがありません...?

3
-1 @EmmadKareemすべての作業は何らかの方法で学習しています。
ニコラススミス

はい、ある程度の学習が期待されますが、役割が些細でない限り、候補者が約2週間の雇用で生産的になると期待しています。カナダでは平均で3000ドルかかります。スキルがまれでない限り、これは私が期待するものです。
NoChance

EmmadはOPとともに私が働きたくない人のようです。
kirk.burleson

1

それはあなたがどのレベルの経験をしたいかに依存します。これが* nixシステム用、および* nixシステム管理者用ではなく、* nixシステムで作業を行う必要のある通常の開発者向けではない場合、実際にどれだけの経験が必要ですか?

このような開発者が* nixシェル(ls、chmod、catなど)で必要とする可能性のあるものはすべて、おそらく1ページのチートシートに記述できます。その場合、* nixシェルの知識が不要な場所で必要になると、いくつかの良い候補が除外される場合があります。


0

私は通常、簡単なタスクを選択し、ホワイトボードにシェルスクリプトを書くように依頼します。

「ディレクトリ「foo」とバックアップディレクトリ「foo_backup」があります。「foo_backup」が変更されてから「foo」で何が変更されたかを確認するシェルスクリプトを記述します。


0

「Linuxでのログインプロセスを、あなたが快適に感じる限り詳細に説明する」のは良い質問です。ログインプロセスには、ユーザーの切り替え、権限と所有権、および多くの一般的なUnix哲学が含まれます。どのようにしてありますなぜ彼らは明確に説明することができた場合/etc/passwd/etc/shadow、どのように非privedユーザーは『Unixのを取得する彼らは手段は、』自分のパスワードではなく、他の人を変更することができます。

もう1つの良い方法は、ログの解析、または迅速なセキュリティ監査を備えたものです。Apacheログから特定の仮想ホストに提供される合計帯域幅を合計できる場合、またはシステム内にuidが0の他のユーザーがいる場合は、コマンドラインで便利です。

そして、彼らにしないことの一つは、彼らに紙/ホワイトボードでそれをさせないことです。ライブシステムを提供します(ただし、ほとんど不正行為のためインターネットは使用しません)。彼らがマニュアルページの周りの方法を知っていて、その場でマルチパイプ式を構築できるなら、それは良い兆候です。彼らがすべてのためにグーグルを必要とするならば、彼らのスキルセットは疑わしいです。


0

なぜ彼らは機能的なプログラムを書くのですか?「grepとsedの違いを教えてください、またはXコマンドは何をするのですか?」などと言って、何が悪いのでしょうか。

あなたが彼らに与えた特定の課題について彼らが手探りするなら、あなたは彼らが賢いとは思わないかもしれません。しかし、一般的な質問をする場合は、彼らが知っていることを示す機会を彼らに与えます。


-1

Unixの達人には、sed、grepなどのコアコマンドラインコマンドが1本の指であり、あらゆる種類の引用符、高度な正規表現などを使用して、簡単にそれらを使用して目的を達成することができます。中国語で書かれたbeeingを理解しやすい;)

シェルプログラミングとは別に、Perlなどの追加のスクリプト言語を少なくとも1つ知っていることが期待できます。

彼らはUnixシステムの設定内部を知っているので、キーボードのレイアウトを変更するように頼んだら(fgは正しいalt +にバインディングを追加します)混乱しないでしょう。

インストールされたパッケージの管理も問題ありません。Oracleをインストールし、4つのアプリケーションサーバーを実行し、それぞれが他のJVMと一緒に-問題もありません。仮想ネットワーク構成、高度なルーティングとポートフィルタリング、仮想マシンなど、セキュリティの管理もここにあります。


2
問題は、開発者が一般的なUnixスキルを持っているかどうかをテストすることであり、OracleとJavaに特に重点を置いている第一人者のシステム管理者を特定することではありません。
ピーターテイラー

JVN?ユダヤ人ボランティアネットワークはこれと何の関係があるのですか?
オコド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.