문제

Linux 플랫폼에서 프로세스 자동화를 위한 스크립트를 작성하려면 어떤 스크립트 언어가 더 좋습니까?쉘 스크립트, Perl 또는 Python 또는 다른 것이 있습니까?나는 그들 모두를 처음 접했습니다.그럼 어느 쪽으로 갈지 고민 중이신가요?

도움이 되었습니까?

해결책

정답은:직업에 가장 잘 맞는 것은 무엇이든!

내 경험 법칙;

세게 때리다 - 반복적으로 작업을 수행하기 위해 for 루프가 필요할 수 있는 짧은 스크립트의 경우.

- 일종의 텍스트 처리 또는 파일 처리와 관련된 모든 것, 특히 일회성인 경우.더럽고 불쾌한 Perl 스크립트를 작성하고 끝내십시오.

파이썬 - 다시 하고 싶은 일이나 아주 비슷한 일이라면요.그러면 적어도 스크립트를 재사용할 수 있는 기회가 있습니다.

다른 팁

세 가지 모두를 선택하고 bash/awk/sed와 fileutils(grep, find 등)로 시작한 다음 Perl 및 Python을 사용하여 추상화 계층 구조를 위로 이동합니다.

그렇게 하면 귀하의 필요에 가장 적합한 것이 무엇인지 스스로 결정할 수 있습니다.bash와 친구들은 어디에나 있기 때문에 시작하라고 말합니다. 일부 기계에는 Perl이나 Python이 설치되어 있지 않으며 특히 전통적인 유닉스 영역(예: Linux가 아닌)에서는 무력감을 느낄 것입니다.

Linux/Unix 환경을 자동화하는 데 도움이 되는 스크립팅 언어를 선택할 때 제 생각에 가장 중요한 것은...당신의 교체 :-)

이는 스크립트를 유지 관리해야 할 다음/다른 시스템 관리자를 의미합니다.나는 현재 Unix 수석 담당자가 실제 스크립트 책임자인 환경에서 일하고 있지만 그는 행운을 위해 일부 Perl 및 Windows vbscript를 사용하여 주로 bash를 사용하도록 제한했습니다.적어도 그것은 내 펄을 닦도록 강요했습니다.

여기의 다른 의견에 동의하면서 내 제안은 bash를 마스터하는 것입니다. 가능한 경우 대부분의 사람들이 알고 있듯이 bash에서 가능한 한 많은 작업을 수행하고 유지 관리/디버깅할 수 있습니다.그리고 가장 휴대성이 뛰어날 것입니다.sed 및 awk와 함께 사용하면 특히 강력합니다.

마스터 한 경우 여기로 돌아와서 "Bash 후에 어떤 스크립팅 언어를 배워야합니까?" :-)

JB

자동화하려는 작업이 얼마나 복잡한지에 따라 다르다고 생각합니다.개인적으로 저는 항상 awk, sed, grep, find, ls, cat 등을 호출할 수 있는 쉘 스크립트를 사용했습니다.Perl이나 Python을 사용하여 얻을 수 있는 거의 모든 작업을 함께 결합할 수 있습니다.반면, 자동화하려는 프로세스가 복잡한 경우(예: 단계의 선형 순서가 아닌) Perl이나 Python(또는 심지어 Ruby!)으로 스크립트를 작성하는 것이 훨씬 더 빠르고 효율적이라는 것을 알게 될 것입니다. 유지 관리가 더 쉽습니다.

저는 매우 단순한 스크립트 이상의 용도로 Perl을 사용합니다.

나도 'use warnings', 'use strict', 백틱을 피하고 다음과 같이 시스템을 호출합니다. 'system($command, @and_args)'.그리고 나는 유지관리가 가능한 것을 좋아하기 때문에:IPC::Run(파이프용), File::Fu(파일 이름, 임시 파일 등용), YAML(구성 또는 기타 데이터용) 및 Getopt::Helpful(옵션이 무엇인지 기억할 수 있음)

현재 작업의 복잡성과 문제 영역에 따라 다릅니다.

Bash 스크립트는 간단한 시스템 자동화 작업에 빠르고 지저분합니다.파일을 이동하고 명령을 실행하는 것보다 더 복잡한 작업에 대해서는 개인적으로 Perl이 다음 단계에 있다고 말하고 싶습니다. 사실상의 sys-admin goto 자동화 도구.코드 재사용 및 가독성/유지관리성에 더 초점을 맞추기 위해 Python이나 Ruby로 향상시키고 싶습니다.

PHP는 작업을 자동화하는 데에도 사용할 수 있지만 내 경험으로는 이러한 목적으로 널리 받아들여지지 않습니다.

학습에 가장 관심이 있는 언어가 무엇인지에 따라 결정되며, 대부분은 다른 많은 것 외에도 자동화에 사용될 수 있습니다.

나는 매우 작은 작업에만 쉘 스크립트를 선호합니다.강력한 쉘 스크립트를 작성하려면 가능한 함정에 대한 많은 지식이 필요하며, 이를 통해서만 배울 수 있습니다.하지만 기본적인 것까지 배우면 생산성이 크게 향상됩니다!

복잡한 논리가 필요한 경우에는 주로 Python을 사용합니다.복잡하다는 것은 두 개 이상의 if 문이 있는 모든 것을 의미합니다 =)

Perl은 원래 목적으로는 괜찮지만, 여러분이 배우는 많은 Perlism은 다른 곳에서는 적용할 수 없다는 점에 주의하세요.

Python과 Ruby는 거의 동일합니다.그 중 하나를 잘 배우고 다른 하나에 대한 튜토리얼을 확인하는 것이 좋습니다.저는 Python을 선호하지만 실제로는 개인 취향에 따라 결정됩니다.

요약: 쉘 스크립트의 기본 사항을 알아보세요.최소한 Python이나 Ruby를 잘 배우십시오.

저는 항상 Python을 추천받았습니다.무엇이든 할 수 있게 해준다고 합니다.작은 작업에는 쉘 스크립트를 사용합니다.

나는 일반적으로 당신이 원하는 결과를 얻을 수 있는 가장 잘 아는 사람을 말하고 싶습니다.모든 종교 전쟁과 마찬가지로, 많은 언어를 배운 후에는 대부분의 언어로 대부분의 일을 할 수 있다는 것을 깨닫게 됩니다.저는 펄을 사용합니다.Python이나 Ruby만큼 최신은 아니지만 CPAN의 대규모 라이브러리 지원이 있습니다.그리고 나는 아직 그 안에서 할 수 없는 것을 찾지 못했습니다.그렇게 할 때 나는 어떤 언어가 그 격차를 메울 수 있는지 찾기 위해 다른 언어를 살펴볼 것입니다.

오늘 시작했다면 Python이나 Ruby를 선택할 수도 있지만 판단을 내릴 만큼 지식이 부족합니다.친구/동료 중 스크립트 언어를 아는 사람이 있습니까?새로운 언어를 배울 때 지원이 매우 중요하기 때문에 이는 큰 도움이 될 수 있습니다.

행운을 빌어요

음, 이렇습니다:

Perl은 가장 사용자 친화적인 스크립팅 언어는 아니지만 생각할 수 있는 거의 모든 것을 구현하는 수천 개의 라이브러리가 포함된 CPAN(Comprehensive Perl Archive Network)을 갖추고 있으며 Perl은 텍스트 처리에 있어서 정말 강력합니다.단점은 Perl 코드가 유지 관리하기가 다소 어렵다는 것입니다(잘 모르는 경우).

Python은 스크립터들 사이에서 점점 더 인기를 얻고 있는 스크립팅 언어입니다.CPAN과 같은 커뮤니티는 아직 없지만 읽기 쉽고 유지 관리가 더 쉽습니다.펄만큼 빠릅니다.

Ruby는 스크립팅 언어의 최신 트렌드입니다.Ruby는 완전한 OOP입니다. 즉, 모든 것이 객체라는 뜻입니다.장점은 코드가 매우 읽기 쉽고 초보자라도 배우기가 매우 쉽다는 것입니다.가장 큰 단점은 실행 속도입니다. 이 속도는 다소 형편없습니다.

Perl은 온라인 Perl 모듈 인벤토리인 CPAN을 통한 매우 강력한 확장 모듈이기 때문에 Perl이 제안되는 것처럼 자동 기능을 테스트하는 경우 수행하는 자동화 유형에 따라 다릅니다.간단한 소스 파일을 완성하는 데 편리한 도구만 필요한 경우 awk가 매우 편리합니다.대규모 프로젝트를 자동화하기 위해 스크립트를 사용할 계획이라면 더 많은 기능을 갖춘 Perl이 더 나은 선택입니다.다시 말하지만 Python은 처음부터 객체 지향 언어로 설계되었습니다.Perl 5에는 몇 가지 o-o 기능이 추가되어 있지만 내가 보기엔 어색한 개조처럼 보입니다.Python은 다중 상속, 다형성 및 캡슐화를 위한 잘 구현된 o-o 기능을 가지고 있습니다. 요약하자면 Python은 상당히 짧은 쉘 스크립트 종류의 응용 프로그램을 제외하고 대부분의 응용 프로그램에서 Perl을 지배하는 것으로 보이며 대략 비슷합니다.

미니멀하고 작고 빠른 솔루션 (파이썬/루비보다 빠른)을 원한다면 -> LUA 스크립팅 언어로 가십시오 :-) 그러나 LUA Speed ​​& Code Compactness는 소형 LUA 언어 코어에 의해 달성되므로 "배터리 포함"을 원한다면 "배터리 포함"을 원한다면. (일명.매우 큰 "표준" 라이브러리) 그렇다면 Lua는 적합하지 않습니다.그렇지 않으면 C/C++ 세계에서 온 사람들은 Lua 속도를 매우 즐깁니다 :-)

추신.

Lua 대 Ruby 1.9 벤치마크(Lua 대 Python 3도 볼 수 있음):

http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=lua&lang2=yarv

수행하려는 작업에 따라 정기적으로 다음을 모두 사용합니다.

  • 루프나 if 문을 사용하여 명령을 간단하게 일괄 처리하기 위한 셸입니다.
  • 파일을 우적우적 먹고 텍스트 교체 등의 작업을 수행할 때 Perl을 사용합니다.
  • 더 많은 논리가 필요할 때 Python.

*nix에서는 올바른 작업을 위해 올바른 도구를 사용해야 합니다. 이는 배워야 할 것이 너무 많기 때문에 초보자에게는 어려울 수 있습니다(*nix 사용자로서 약 15년이 지난 후에도 나는 여전히 새로운 것을 찾습니다).내 추천은 모든 언어를 빠르게 살펴보고 그들이 무엇을 할 수 있는지 확인한 다음 스크립트가 투박해지면 모든 것에 쉘을 사용하여 다른 것으로 옮기는 것입니다.

명령을 하나씩 작성하고 파일에 넣은 다음 다음과 같이 이 파일을 실행하세요.

promp> bash file

첫 번째 자동화가 이루어졌습니다.그런 다음 bash 변수, 루프 및 제어 구조에 대해 알아보세요.

저는 두 번째 Python입니다. 강력하고 단순하며 성능이 뛰어나고...실제로 Perl이나 Bash에 비해 꽤 재미있습니다.또한 당신이 그것을 알고 있다면 다른 용도를 찾을 수 있을 것입니다. 그것은 많은 프로젝트에서 사용됩니다.그리고 "고전적인" 스크립팅 언어뿐만 아니라 뒤틀린 프로젝트를 예로 들어 보겠습니다.Perl의 경우에도 마찬가지지만, 나 자신도 Python을 더 좋아합니다.

그러나 결론은 이전에 말한 것과 같으며 작업에 적합한 도구가 있는지 확인하십시오.

하나를 고르라면 AWK를 꼽을 것 같아요.가볍고 학습 곡선이 작으며 index 및 substr과 같은 유용한 기능이 많이 있습니다.

다른 프로그램(물론 명령줄)을 "제어"하는 간단한 스크립트 프로그램을 목표로 한다면 Tcl/Tk를 검토해야 합니다. 특히 Tcl/Tk의 방언을 검토해야 합니다. Tcl/Tk는 단순하고 해당 목표를 지향합니다. FTP를 제어하고 심지어 su도 수행하는 스크립트를 만드세요!

Awk는 텍스트 파일을 처리하는 데 매우 좋습니다. Perl만큼 강력하지는 않지만 훨씬 더 간단하고 간단합니다(그리고 끔찍한 구문이 없습니다).

물론 마일리지는 다를 수 있으므로 가장 좋은 답변은 다음과 같습니다.당신은 무엇을 위해 스크립트를 작성하고 싶나요?그런 다음:당신은 익숙합니까? 어느 언어 스크립트?이러한 질문에 대한 답변은 각 언어의 장단점과 주요 대상에 따라 사용해야 하는 스크립팅 언어를 알려줍니다.

리눅스에서?기본적으로 독을 선택하십시오.나는 Python을 좋아하고, 다른 것들은 Ruby, 또 다른 것들은 Perl을 좋아합니다.하나를 골라서 가십시오.:-)

나는 Python이라고 말하고 싶습니다. 가독성이 매우 높고 간단하며(중괄호가 없고, 가능한 한 영어에 가까운 키워드 등) 간단한 것부터 매우 복잡한 것까지 거의 모든 것을 Python에서 할 수 있습니다.코딩하는 것도 인기 있고 재미있습니다.

조금 이상하게 들릴 수도 있는데, 저는 10년 넘게 bash를 사용해 왔습니다.PHP5를 사용하기 시작했는데 처음에는 어려웠지만 이제는 훨씬 더 재사용 가능한 코드 기반을 갖게 되었습니다.

하지만 시작점으로 추천하지는 않습니다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top