일반적인 유닉스 기술에 대한 인터뷰

* nix 쉘 경험이 있다고 주장하는 개발자를 어떻게 테스트하겠습니까 (명확하게 말하면, 누군가가 * nix에서 개발할 수 있는지 테스트하고 싶지는 않지만 명령 줄에서 자신의 길을 아는 것만 테스트하고 싶습니다).

고양이, grep, cut 등과 같은 기본 정보를 파이프와 결합하는 로그 파일에서 정보를 가져 오는 문제를 해결하도록 생각하고있었습니다.

다른 기본 지식은 무엇입니까? 다시 한 번, 이것은 * nix 시스템을 개발할 사람을 인터뷰하기위한 것이 아니라 * nix 시스템 관리자를위한 것이 아니라 때때로 * nix 시스템에서 일부 작업을 수행해야하는 일반 개발자를위한 것입니다.



답변

* nix 시스템에서 작업하는 개인 경험 개발자는 다음을 알아야합니다.

  • 쉘 변수 (PATH와 같은 특수 변수에 대한 지식을 설정 / 얻는 방법)
  • 셸 리디렉션 (프로그램 출력 캡처)
  • 파이프 (로그 파일에서 일부 정보를 추출하는 것이 탁월한 예입니다)
  • 공정 제어 (ps, nice / renice, kill)
  • 파일 액세스 권한 (ls / chmod / chown / chattr)
  • 사용자 (그러나 대부분 파일 / 프로세스와 관련하여, 즉이 프로세스가이 파일에 액세스 할 수 있습니까? 왜 할 수 / 없는가?)

… 그리고 보너스로 :

  • 시스템 서비스 시작 / 중지

이러한 기술을 통해 대부분의 개발자 관련 작업을 쉽게 수행 할 수 있습니다.


답변

나는 일에 시작한 이후 나의 수많은 동료들과 내 경험에서, 아무도 가짜 유닉스 지식 싶어하지 않는다 : 그들은 “중 하나를 명령 줄 주위에 그들의 방법을 알고 “또는 단순히 말을하지 “방법을!”.

응시자가 유닉스 워크 스테이션에서 기꺼이 작업 할 것인지 물어보고 그가 bash를 얼마나 멀리 갈 수 있는지 말해 줄 수 있습니다. 그는 결국 몇 가지 명령의 이름을 지정할 것입니다. 가장 눈에 띄는 사람은 cd, cat, more또는 less, vi또는 emacs, grep, awk, sed. 그가 언급했는지 잘 들어라 man.

그것은 개발을위한 경우, 그는 잘 알고 있어야 make하고 메이크, 일부 소스 제어 명령 줄 인터페이스 ( svn, git, cleartool, hg, cvs…)


답변

왜 이렇게합니까?

* nix 쉘 (및 기타 OS 쉘, fwiw)은 매우 깊고 광범위한 작업 환경입니다. 누군가가 그곳에서 일하면서 몇 년을 보내고 쉘 용량의 아주 작은 % 만 사용할 수 있습니다.

사용자가 a) 셸 프로그램 또는 b) 셸에서 시스템을 관리하지 않을 것으로 예상되는 경우 왜 중요합니까? 수행되는 모든 것은 편리한 * nix 치트 시트가 “기술 부족”을 보상하는 것 이상의 기본 수준에있을 것입니다.


답변

내 머리 꼭대기에서 아마 두 가지를 물어볼 것입니다.

  1. 이전에 * nix 명령 줄을 사용했을 때 신중하게 생각한 명령으로 많은 시간을 절약 한 사례가 발생 했습니까? 그렇다면 자세히 설명하십시오.

  2. * nix 명령 줄과 표준 Windows 데스크탑의 주요 차이점을 설명하십시오. 각각의 장단점은 무엇입니까?

분명히, 첫 번째는 명령 줄에 대한 지원자의 지식이 얼마나 깊은 지 알려줍니다. 그가 * nix에서 수년간 일했다면, 그에게 grep을했다고 자랑스럽게 말하지는 않을 것입니다. 그들이 정확한 명령을 기억할 것을 기대하지 말고 (그에 대한 맨 페이지가 항상 있음), 그들이 한 일에 대한 일반적인 생각.

두 번째 질문은 명령 행이 실제로 어떤 도구인지, 어떤 도구가 적합하지 않은지 이해하는지 확인합니다. 해머 사용법을 배우는 것은 쉽지만 해머가 적합하지 않은 경우 다른 도구로 전환하기가 훨씬 어렵습니다. 따라서이 질문은 * nix 박스 외부에서 지원자의 관점을 잘 보여주고, 지식을 바탕으로 점수를 매길 수있을만큼 충분히 개방되어 있습니다. ( “어 .. 창문에는 창문이 있습니다”와 같은 것에 답하는 것보다 더 나쁜 것은 없습니다)


답변

그들이 원하는 것에 따라 다릅니다.

로그 파일에서 정보얻으 려면 cat + grep에 대한 제안이 완벽합니다. 나는 그것에 ls, cd 이하를 추가 할 것입니다.

그들이 약간의 편집 (예를 들어, 설정 파일에서) 을하기를 기대한다면 , vi 및 / 또는 emacs와 cp / mv / rm / mkdir과 ​​같은 것들에 대한 테스트를 추가하는 것이 합리적입니다.


답변

나는 그들이 emacs 또는 vi / m, tar, sed, e / f / grep, 다양한 컴파일러, 일부 쉘 스크립팅을 아는 것이 좋습니다. 아마도이 도구를 사용하여 파일을 열지 않고 한 파일에서 일부 코드를 가져 와서 다른 프로그램에 삽입해야하는 테스트를 실행할 수 있습니다. 그런 다음 사소한 오류가 발생하는 프로그램을 컴파일하십시오. 그런 다음 텍스트 편집기를 사용하여 오류를 찾아 코드를 작동시키고 바이너리를 보관해야합니다. 그런 다음 수신자에게 실행 권한을 부여하면서 어딘가에 메일을 보내십시오.


답변

나는 당신에 대해 모른다. 그러나 나의 면접관이 나에게 물었고 Linux에서 작업하는 방법을 모른다면 약간 짜증이 날 것이다.

지금 당장 알고있는 것이 아니라 기회가 주어지면 배울있는 것에 신경 쓰지 않아야합니다 . * nix 도구를 배우는 것은 그리 어렵지 않지만 약간의 결정이 필요합니다. 지식보다는 능력을 실제로 테스트해야합니다.