PHP / Python 개발과 관련된 쉘 스크립팅의 기능은 무엇입니까? [닫은]


28

Java 및 C # (. NET)을 배우는 PHP / Python 프로그래머입니다.
내 주요 개발 OS는 Windows 7이지만 Linux를 사용했으며 현재 Ubuntu로 이중 부팅합니다. 그러나 나의 리눅스 지식은 꽤 제한적이다. 간단한 작업에서 명령 줄을 사용할 수는 있지만 그 정도입니다. 나는 쉘 스크립팅을하지 않으며 많은 중요한 명령을 모른다.

관심 분야는 웹 개발, 모바일 앱 및 향후 몇 가지 임베디드 기능입니다. 쉘 스크립팅 기술이 이러한 관심사에 유용할까요?


9
5 년 전에 나에게 말한 사람은 "실제 사람들은 C ++에 유창하고, 실제 사람들은 커맨드 라인을 사용하고 플로피 이미지로 리눅스를 부팅합니다."-fvck you! 나는 그들에게 "진정한 남자들"에게 그들의 머리를 사용하고 그들이 직업을 찾을 수있는 최고의 도구를 고르라고 말하고 싶다. 또한 직장 밖에서 즐겁게 생활하는 법도 알고 있습니다. 숙녀 여러분, 남자 중심의 답변에 대해 죄송합니다. "남자"라는 말은 프로그래머를 의미하지만, 당시의 말은 아닙니다.
직업

3
"진정한 남자"와의 논쟁을 시작한 사람은 농담이거나 쉬로 가득합니다. 그러나 이와 같은 바보가 처음에는 어려운 것처럼 보이지만 셸 프로그래밍 대 GUI를 드래그하는 것이 종종 훨씬 더 효율적이라는 것을 이해하는 가치를 떨어 뜨리지 않아야합니다. 그리고 특정 C ++ 중심 요소가 절대적으로 필요한 경우 C ++가 나아갈 길입니다. (즉, 고성능 또는 본질적으로 C 또는 C ++ 라이브러리 / 기존 코드베이스 사용 등)-기본적으로 실용적이지 않으면이 작업 라인을 잊어 버립니다.
ocodo

6
@ 슬로 모호 (Slomojo) : 진짜 남자들은 아내와 아이들을 사랑하고 잘 대합니다. ;)
Mason Wheeler

@Mason, 당신은 왕자님입니다.
ocodo

1
PHP / Python은 Windows 상자보다 저렴하므로 Linux 상자에 자주 배포됩니다. 그러므로 간호원이 필요한 경우 일이 어떻게 작동하고 무엇을하는지 아는 것이 좋습니다.

답변:


35

Windows 앱 (또는 Mac 앱)을 코딩하는 경우 Linux를 알아야하는 이유는 무엇입니까? 포드 기계공이 John Deer 트랙터를 알아야합니까? 그것은 모두 당신이하는 일, 직업적으로 또는 자신의 "취미"시간에 달려 있습니다.

이제 그것을 아는 것은 아프지 않습니다. 사실, 나는 "당신이 알수록 많을수록 좋다"는 확고한 신자입니다.


내가 묻는 이유는 요즘 리눅스는 모든 유형의 프로그래머에게 '필수 학습'으로 간주되기 때문이다. 그러나 나는 틀릴 수 있습니다.
Maxtor

@ 맥스 : 사용 방법과 리눅스가 어떻게, 왜 그렇게하는지 아는 경우에만 현명하게 만들 것입니다. 리눅스 소스 코드에는 방대한 지식이 내장되어 있지만 Muad가 말했듯이 필수는 아닙니다.
Geek

1
그는 리눅스 환경에서 대부분 자신의 프로그램을 프로덕션 환경에 직접 배포 할 계획이라면 리눅스를 배워야한다.
dukeofgaming

@ dukeofgaming, IIS 및 PHP를 실행할 수 있습니다. 리눅스는 배우는 것이 좋지만 필요합니까? 실제로는 아닙니다.
Muad'Dib

@dukeofgaming ASP.NET 응용 프로그램을 Linux 서버에 배포 한 적이 없었으며 앞으로도 의심 할 것입니다!
Kirk Broadhurst

29

PHP 프로그래머라면 반드시 Linux를 알아야합니다. PHP는 Linux에서 만들어졌으며 PHP는 LAMP 스택의 중요한 부분 인 Linux + Apache + MySQL + PHP입니다. 지금 Windows 서버용으로 개발할 기회가 있더라도, 다음 작업은 아마도 Linux 서버용으로 개발해야 할 것이며, Window specific 'isms에 위배되지 않도록 Linux 환경에 익숙해야합니다. PHP의.

모바일 앱 공간에서 Linux를 아는 것은 (슬프게도) 개발 환경과 거의 관련이 없습니다. iPhone OS는 Linux와 아무런 관련이 없으며 Android는 가상 머신에 단단히 고정되어 있으므로 Linux가 있다는 것을 결코 알 수 없습니다. Meego 또는 Maemo에서 Linux를 프로그래밍 할 수는 있지만 iPhone 및 Android의 인기는 거의 없습니다.

임베디드 분야에서는 리눅스를 알고. 임베디드 윈도우는 드물지만 임베디드 리눅스는 매우 일반적입니다. (물론, 베어 메탈 임베디드 프로그래밍도 매우 일반적이므로 이동하려는 위치에 따라 다릅니다.)

수년에 걸쳐 Linux에 대해 깊이 배우면 커널에서 부팅 프로세스, 명령 행 및 GUI까지 시스템의 모든 부분을 어느 정도 이해하게됩니다.


3
임베디드 Linux는 32 비트 장치에서 상당히 일반적이라는 데 동의합니다. 그러나 대부분의 임베디드 마이크로는 여전히 8 비트 및 16 비트이며 Linux를 실행할 수 없습니다. ( "베어 메탈"주석에서이 점을 언급했지만, 조금만 설명하겠습니다.) 32 비트 디바이스는 가장 빠르게 성장하는 부문입니다.
tcrosley December

램프 스택 및 내장 공간의 경우 +1 초보자 유닉스 / 리눅스 프로그래머를위한이 주제에 관한 책 추천을 부탁드립니다.
Anthony

17

여기서 신청할 수있는 어느 정도의 80/20 정도의 생각이 있습니다. 리눅스가 어떻게 작동하는지에 대한 기본 사항과 쉘에서 알아야 할 핵심 명령을 배우는 데 실제로 오래 걸리지 않습니다. 마찬가지로 기본 Apache 구성은 필요한 경우 매우 편리합니다. 수년간의 삶을 바칠 필요는 없지만 필요한 경우 자체 서버를 실행하여 얻을 수있는 기본 사항을 충분히 배울 가치가 있습니다.

그래도 괜찮습니다. 조심하지 않으면 Linux가 제공하는 것에 익숙해지면 Windows가 실제로 당신을 자극하기 시작한다는 것을 빨리 알 수 있습니다 ...


12
+1-Windows를 계속 사용하고 싶다면 Linux를 배우지 마십시오.
Mongus Pong

6
+1-[손을 ish니다] 음. 제 이름은 Inaimathi입니다 ... 그리고 저는 전 Windows 사용자입니다.
Inaimathi

6

배울 필요는 없지만 더 나은 프로그래머가 될 것입니다. Windows 방식과 다른 방식으로 작업을 수행하는 방법을 배웁니다. * sh 쉘을 사용하면 스크립트 작성 및 정규식 사용, 설치 자동화, 대용량 파일 구문 분석 등이 발생합니다.

Linux에서 다른 작업을 수행하는 방법을 배울 때마다 그것이 얼마나 멋진 지 걱정하는 것만 큼 그것을 알지 못하는 것에 대해 조롱하는 것에 관심이 없습니다. 새로운 비트마다 점점 나아지고 있습니다.

Powershell은 nix 세계에서 온 많은 것들을 가지고 있으며, 자동화를 위해서는 좋은 콘솔이 필요하다는 것을 깨달았습니다. Perl과 Python은 모두 C, bash, sed, awk의 혼합으로 보입니다. 모두 자신의 방식으로 좋은 것으로 메쉬되었습니다.

최소한 이력서에 넣을 다른 것이 있지만 실제로는 그 중에서도 가장 좋은 것은 아닙니다.

나는 당신이 당신을 당신을 떠나게 할 것입니다 : "와, 정말 멋지다!" 필자는 처음으로 USR1 신호를 사용하여 Apache를 "kill"하여 서비스를 중지하고 연결을 계속 수신하지 않고도 새 구성 파일을 다시로드하고 로그를 다시 시작할 수있었습니다. 또한 ssh와 rsync는 MS 포트가 왜 저를 넘어 가지 않는지 슬퍼합니다.


+1 MS가 쉘 방식으로 이동하고 완전히 수행하지 못하는 것을 보여주었습니다!
Orbling

4

당신을 해치지 않을 것입니다. 모든 Microsoft 회사에서도 최소한 몇 개의 Linux 서버를 사용할 가능성이 점점 높아지고 있습니다. 예를 들어, 스택 오버 플로우는로드 밸런서에 Linux를 사용합니다. 가상화가 작동 할 때 특히 그렇습니다.

프로그래머는 단일 UNIX 유사 변형이 아닌 POSIX에 익숙해지는 것을 고려하여 더 잘 수행 할 수 있습니다. 약간의 단점이 있지만 모든 UNIX와 같은 환경에서 이식 가능한 표준 인터페이스를 설정하려는 놀라운 노력을 기울인 많은 노력을 나타냅니다. 많은 유닉스 계열 시스템은 100 % "정확하게"정확하지는 않지만 좋은 출발점입니다.

나는 단순한 사용자로서 새로운 것을 배우고 새로운 것을 배우는 것이 재미 있다는 것을 제안 할 수 있습니다. 생각할 수있는 모든 단일 운영 체제에서 '전문가'가 될 수 있지만 프로그래머에게는 이것이 가장 유용한 노력이라고 생각하지 않습니다. 아직도, 당신이 만날 수있는 것들에 대한 실무 지식은 훌륭합니다. 그리고 당신의 질문으로부터, 당신은 미래에 리눅스를 만날 것 같습니다.


+1 리눅스에 대한 나의 지식 (수년간 리눅스 웹 서버를 관리해 왔음)은 "Microsoft"개발에 많은 도움이되었습니다. 사실, 각 솔루션은 문제입니다.

Linux 배포판 (실제로 사용할 수있는 실제 소프트웨어 시스템)과 POSIX (추상 사양)에 익숙해지는 것은 매우 다른 두 가지입니다. 하나의 Unix 또는 Unix와 유사한 OS (Mac OSX 제외)에 익숙해지면 지식을 다른 것으로 이전하는 데 어려움이 없습니다.
David Thornley

3

예,하지만 적극적으로 공부해야하는 것처럼 들리지 않습니다.

나를 위해 리눅스에 대한 나의 친숙 함은 그것을 나의 작업 OS로 사용함으로써 개발되었습니다. 한 조각 씩 나는 그들이 올라 왔을 때 알아야 할 것들을 배웠고 계속 그렇게했습니다. 인터넷에는 Linux를 작성하는 데 필요한 모든 작업을 수행하는 방법에 대한 리소스가 가득 차 있으므로 매뉴얼 페이지 와 설명서를 잘 읽고 두뇌 가 달성하는 방법에 대한 세부 정보흡수 하고 잊어 버릴 것을 제안합니다. 당신이가는 특정 작업 .

그것은 기본적으로 이해하지 못했기 때문에 리눅스 세계에서 당신을 피할 수있는 몇 가지 명령이 있다고합니다.


3

내가했던 5 개의 작업 중 마지막 4 개에서 개발자와 QA (적어도 시작된)는 Windows에서 작업했지만 테스트 및 프로덕션 서버는 Linux / UNIX였습니다. 그들 모두는 최소한 테스트 서버에 접속하여 로그를 보거나 '실제'환경에서 실행중인 프로그램을 디버깅 할 수 있으려면 최소한 소량의 UNIX를 알아야했습니다. 지난 20 년 동안 회사에서 실제로 Windows 용으로 개발 된 것은 거의 없습니다.

이곳에있는 다른 사람들을 에코하는 것은 직업이나 경력에 "필수적"일 수는 없지만, 자신의 작업에 대한 이해, 사용중인 언어 나 시스템의 이점과 한계를 이해하는 데 도움이됩니다.



2

운영 체제 컴퓨터 과학 과정을 수강했을 때, 우리는 UNIX 기반 운영 체제를 연구했고 오픈 소스 였고 코드를 볼 수 있었기 때문에 수행 할 수 없었던 작업을 할 수 있었기 때문에 RedHat에 대한 작업을 수행했습니다. Windows.

나는 운영 체제가 어떻게 작동하는지에 대한 기본 사항을 배우려면 학업 환경에 있더라도 Linux에 대한 경험이 있어야 할 것입니다.

우분투 10.04에서 Windows 7로 다시 전환했습니다. grep과 다른 명령 줄 도구를 사용하지 않으면 약간의 손실을 느낍니다. 시스템이 고급 사용자와 개발자에게 더 도움이된다고 생각하기 때문에 Linux 환경에서 개발하는 것을 선호합니다.

Linux에 대해 전혀 모르는 대학에서 온 좋은 .NET 프로그래머를 알고 있으므로 요구 사항은 아니지만 5 년 이상의 프로그래밍 경험이있는 사람은 Linux에 한 형태로 또는 다른 형태로 노출되었을 것으로 기대합니다. 그들의 경력에있는 시간.

당신은 당신이 집중 한 것에 대한 판단자가되어야합니다. 하나. 현재 모바일 앱을 개발할 경로가 있고 Linux가 실제로 필요한 것은 아니라는 사실을 알고 있다면 Linux 대신 모바일 SDK에 대해 더 많이 배우는 데 집중할 수 있습니다. 모든 것에 대한 절충안이 있으며, 필요한 경우 Linux에 대해 더 많이 배울 수있는 리눅스에 기본적으로 노출되어있는 것처럼 들립니다.


2
나는 항상 내 Windows 박스에 grep et al을 가지고 있었고, 그것들은 필수입니다.
Orbling

1

다음 중 귀찮은 일이 있습니까?

  1. 이력서에 Linux를 넣을 수는 없습니다.
  2. 순전히 Linux 상점에서 일할 자격이 없습니다.
  3. 자율 학습을 통한 Linux 추구에 대한 현재 직업 요구와 관심 수준은 존재하지 않으므로 Linux 관련 상황은 변하지 않습니다.
  4. Windows가 아닌 개발자가 당신을 조롱 할 것입니다 (아마도 당신의 얼굴이 아닐 수도 있습니다).

당신이 여전히 추구 할 수있는 수많은 직업 기회와 경력 경로가 있습니다. 나는 이들 중 어느 것도 당신을 귀찮게하지 말아야합니다. 자신에게 정직하고 일반적으로 업계와 특히 Linux를 주시하여 경로가 교차하는지 확인하십시오. 때가되면 알아낼 수있을 것입니다. 누가 내일 리눅스 프로젝트가 나올지 누가 알겠는가.


1

나는 항상 Windows 환경에서 코딩했습니다. 저에게 Linux는 방금 Windows에 문제가 발생했을 때 백업으로 사용했던 또 다른 OS였습니다. 나는 기본 명령 만 알고 있었고 내가하려고했던 모든 것이 어려워 보였다. 그러나 현재 웹 개발자로 일하고있는 우리 모두는 Linux를 사용하므로 Linux를 배우고 모든 용도로 사용해야합니다. 더 많이 사용할수록 더 좋아하고 더 생산적이고 유연하다고 생각합니다. 나는 리눅스를 더 엉망으로 만들지 않은 것을 후회한다. 지금 나는 단지 따라 잡고있다.

네, 가능할 때마다 배워야합니다.


1

Linux는 Windows가 도구 일 뿐인 것과 같은 방식으로 도구 상자의 도구입니다. 둘 다 유창하면 어떤 일을 더 잘 할 수 있지만 다른 일에는 관련이 없습니다.

개인적으로 라이센스 비용을 고려하지 않고도 데이터베이스 서버, 메일 서버, 테스트 웹 서버 등과 같은 가상 머신을 훨씬 쉽게 작성하고 유지할 수 있기 때문에 Ubuntu 형태의 Linux가 매우 유용하다는 것을 알았습니다. 서버 버전은 Windows보다 적은 리소스를 필요로합니다). 이런 일을하지 않으면 리눅스가 당신에게 중요하지 않다고 생각합니다.


0

당신이 경우 충분히 알고 하려는 특정 OS에 배포, 당신은 당신의 응용 프로그램이 작동하도록 할 수 있지만, 그렇지 않으면 ... 당신이하지 않는 어떤 / 모든 것을 알고.


개발 한 것과 다른 OS에 배포하는 경우 새 OS에 대한 많은 지식 필요할 있습니다. 하나의 큰 요소는 응용 프로그램에 낮은 수준의 기능이 얼마나 존재하는지입니다 (예 : 직렬 포트 유형 액세스)
Patrick

0

.NET을 수행하지 않는 한 Linux를 선호합니다. 램프 스택은 WAMP보다 더 자연 스럽습니다.

Microsoft 이외의 것을 배우는 데 관심이 있다면 배우는 것이 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.