ภาษาสคริปต์สากลสำหรับ Linux คืออะไร?


24

เรากำลังเขียนสคริปต์สำหรับระบบ Linux มีการถกเถียงกันว่าภาษาสคริปต์ Linux ที่ใช้กันทั่วไปจะเป็นภาษาใด Bash, SH, Posix? อะไร?


3
shฉันเดา
เครื่องปั่น

คุณมีรายการ distros เป้าหมายหรือไม่? หรือต้องมี distros / ที่ต้องการ

4
"ดวลจุดโทษ"? "sh" คืออะไร เปลือก Thomson เชลล์เป้าหมายคืออะไร bash, ksh, pdksh, ash, zsh ตามที่พบ/bin/shในระบบXหรือY ? ข้อมูลจำเพาะ POSIX sh, ข้อกำหนด SUSv3, SUSv4 sh, ข้อมูลจำเพาะ LSB sh? "sh" ด้วยตัวของมันเองไม่ได้มีความหมายอะไรเลย
Stéphane Chazelas

1
หากนี่เป็นการสร้างซอฟต์แวร์และติดตั้งสคริปต์คุณอาจต้องการตรวจสอบ Autotools ซึ่งพยายามแก้ไขปัญหาการรวบรวมข้ามระบบ
Lie Ryan

1
@sch จุดตัดที่พบบ่อยที่สุดพกพา "ชัด" ในกรณีที่ผู้คนไม่คุ้นเคยกับกระสุน Unix ถูกเข้าใจผิดในความคิดเห็นของคุณ POSIX spec นั้นถูกนำมาใช้โดยเชลล์ร่วมสมัยเกือบทั้งหมดที่กล้าที่จะไปโดยใช้ชื่อshและการไม่สอดคล้องshที่ไม่ได้เป็นของโบราณ หนึ่งสามารถสั่นรายการส่วนขยายและรูปแบบที่เพิ่มขึ้นเรื่อย ๆ แต่ถ้าเป้าหมายคือ "สากล" หรือพกพาได้คุณควรไปในทิศทางตรงกันข้าม คำตอบของ Gilles ครอบคลุมรายละเอียดในเชิงลึกมากขึ้น
jw013

คำตอบ:


38

มีสองสภาวะแวดล้อมการโปรแกรมมิงที่พร้อมใช้งานบนระบบปฏิบัติการยูนิกซ์ที่เหมือนทัวริงสมบูรณ์และสามารถเรียกโปรแกรมอื่น ๆ ได้: awk , และsh , ตระกูลเชลล์ Bourne / POSIX AWK มุ่งเน้นไปที่การประมวลผลข้อความ (มันเติมเต็มยูทิลิตี้พิเศษเพิ่มเติม) ในขณะที่ sh มุ่งเน้นไปที่การเป็นภาษากาวเพื่อรวมโปรแกรม Sh เป็นภาษาสคริปต์สากลบน Linux และทั่วโลกยูนิกซ์

POSIXมาตรฐานกำหนดคุณสมบัติที่จำเป็นของการดวลจุดโทษตัวเองและระบบสาธารณูปโภคที่เกี่ยวข้อง ระบบที่เหมือนยูนิกซ์ส่วนใหญ่สอดคล้องกับPOSIX 1003.1-2004 (aka Single Unix v3 หรือที่รู้จักในหัวข้อ Open Group Base Specification 6); เวอร์ชันล่าสุดของมาตรฐานนั้นคือPOSIX 1003.1-2008 (aka Single Unix v4 หรือที่รู้จักในหัวข้อ Open Group Base Specification 7)

ทุกระบบ Linux และ unix หรือเหมือน Unix มีเปลือกสไตล์บอร์นที่เส้นทาง/bin/shและระบบที่ไม่ใช่ของโบราณใด ๆ มีเปลือกที่สอดคล้องกับ POSIX (ยกเว้นข้อผิดพลาดเป็นครั้งคราว) ทุกที่ทันสมัยยูนิกซ์เช่นระบบ (รวมถึงลินุกซ์) สนับสนุนshebangsจึงจะทำงานโดยอัตโนมัติสคริปต์ในถ้าสายแรกคือ/bin/sh #!/bin/shมีระบบ POSIX ที่shตั้งอยู่ในสถานที่อื่น (โดยทั่วไปคือเลเยอร์จำลองในระบบปฏิบัติการที่คุณไม่คิดว่าเป็นเหมือน Unix จริงๆ)

ระบบลินุกซ์ในตัวอาจมีระบบBusyBoxแบบถอดลงซึ่งไม่ได้ใช้คุณสมบัติ POSIX ทั้งหมด BusyBox มีตัวเลือกเวลารวบรวมจำนวนมากเพื่อรองรับระบบขนาดเล็กดังนั้นจึงเป็นการยากที่จะรู้ว่าสิ่งที่คาดหวังล่วงหน้าคุณต้องปรับสคริปต์ของคุณให้เข้ากับอุปกรณ์เฉพาะ BusyBox เป็นการดำเนินการขนาดเล็กที่ใช้กันทั่วไปของ sh และสาธารณูปโภคที่หลากหลาย; อีกสิ่งหนึ่งที่คุณอาจพบคือสภาพแวดล้อมของเชลล์ที่ลดลงอย่างมากใน Android (รุ่นที่ใหม่กว่าจะน้อยกว่าปกติ)

ระบบลินุกซ์ที่ไม่ได้ฝังจะมีเส้นประหรือทุบตีเป็นส่วน/bin/shใหญ่ Dash เป็นกระสุนขนาดเล็กและเร็วที่ใช้งานได้มากกว่าฟีเจอร์ POSIX Bash เป็นกระสุนขนาดใหญ่ที่มีคุณสมบัติมากกว่า

ระบบลินุกซ์ที่ไม่ได้ฝังจะติดตั้ง Bash เป็นเกือบทุก/bin/bashครั้ง ดังนั้นเพื่อความสะดวกในการพกพาบนระบบ Linux ที่ไม่ได้ฝังตัวคุณสามารถสันนิษฐานได้ว่า bash นั้นพร้อมใช้งาน ในบรรดาคุณสมบัติเพิ่มเติมที่เป็นประโยชน์ของ bash คืออาร์เรย์ความสามารถในการรับมือกับไฟล์ dot ได้อย่างสะดวกpipestatusตัวแปรเพื่อรับสถานะการส่งคืนของคำสั่งทั้งหมดในไพพ์ไลน์ตัวดำเนินการเปรียบเทียบเพิ่มเติมสำหรับเวลาไฟล์และ (ในเวอร์ชันล่าสุด) การจับคู่นิพจน์ปกติ .

หนึ่งในคุณสมบัติของการเขียนโปรแกรมเชลล์คือคุณไม่ได้ใช้เพียงแค่shโปรแกรม แต่คุณยังใช้โปรแกรมอรรถประโยชน์หลายอย่าง โปรแกรมจัดการไฟล์และการประมวลผลข้อความส่วนใหญ่บน Linux เป็นGNU coreutils (ในระบบฝังตัวโดยปกติจะมาจาก BusyBox)

หากคุณต้องการความสะดวกในการพกพานอกเหนือจาก Linux ทางออกที่ดีที่สุดคือติดกับ POSIX ตัวแปร unix อื่น ๆ อาจไม่มีการติดตั้ง bash (bash เป็นส่วนหนึ่งของการติดตั้งมาตรฐานบน OSX แต่แพ็คเกจเสริมใน * BSD และ unices เชิงพาณิชย์ส่วนใหญ่) เกือบทั้งหมดยูนิกซ์สายพันธุ์อื่น ๆ นอกเหนือจาก Linux และ OSX (เช่น * BSD และ Unices พาณิชย์) มีรุ่นบางส่วนของเปลือกกรอย่างน้อยpdksh ส่วนขยายที่สะดวกสบายของ bash จำนวนมากมาจาก ksh ดังนั้นจึงเป็นประโยชน์ในการเขียนสคริปต์ที่สามารถทำงานภายใต้ทั้งคู่ แต่การตรวจจับตำแหน่งที่ bash หรือ ksh ตั้งอยู่บนระบบที่ไม่รู้จักอาจมีความเจ็บปวดเล็กน้อย

เชลล์ไม่สามารถทำทุกอย่างได้ หากคุณต้องการภาษาที่มีความซับซ้อนยิ่งขึ้นตัวเลือกทั่วไปอีกสองตัวเลือกคือ Perl และ Python (อย่างอื่นที่อยู่ด้านหลังเป็นภาษาสคริปต์ยูนิกซ์) Perl เป็นภาษาสคริปต์แบบดั้งเดิมและระบบ Linux ที่ไม่ได้ฝังตัวไม่กี่ตัวขาดหายไป แต่ Python กำลังเพิ่มพูนขึ้น (ส่วนหนึ่งมาจากภาษาสคริปต์ที่แนะนำสำหรับ Ubuntu) ในโลกที่ไม่ใช่ Linux นั้น Perl เป็นส่วนหนึ่งของการติดตั้งพื้นฐานบน OSX และ OpenBSD มันเป็นตัวเลือก แต่ได้รับการติดตั้งบ่อยมากบน FreeBSD และเป็นทางเลือก แต่มักจะติดตั้งบน NetBSD


1
"ได้รับการสนับสนุนบางส่วนจาก ... " นั่นเป็นสิ่งที่จำเป็นสำหรับระบบ Fedora และ RHEL
Ignacio Vazquez-Abrams

ส่วนใหญ่เห็นด้วยกับทั้งหมดนี้ จุดแข็งที่แตกต่างกันบางอย่าง: * distros บางแห่งใช้ BusyBox แต่ไม่จำเป็นต้องฝัง (ฉันใช้อัลไพน์) (ที่ได้รับคำตอบที่ไม่พูดว่า "เกือบตลอดเวลา".) * BSDs มีชั้นเรียนขนาดใหญ่ของ Unix เหมือนระบบที่คุณไม่สามารถสันนิษฐานได้ว่าทุบตีโดยค่าเริ่มต้น * ขีดสามารถทำเกือบทุกอย่างทุบตีได้บางครั้งก็ต้องการการดูแลมากขึ้น * หากคุณต้องการภาษาที่มีความซับซ้อนยิ่งขึ้นใช่ Perl และ Python เป็นตัวเลือกที่พบบ่อยที่สุด แต่ awk นั้นแพร่หลายมากขึ้นและเพียงพอสำหรับวัตถุประสงค์หลายประการ การประเมินต่ำกว่าปกติ แต่น้ำหนักเบากว่า Perl และ Python
dubiousjim

2
คำเตือนที่เป็นธรรม - FreeBSD ลดลง Perl จากการติดตั้งเริ่มต้นเมื่อไม่นานมานี้ นอกเหนือจากนั้นฉันไม่รู้ distro อื่น ๆ ที่ไม่มี Perl ในการติดตั้งฐาน
TC1

@ TC1 Perl เป็นตัวเลือกใน NetBSD เสมอ มันอยู่ในระบบพื้นฐานของ OpenBSD
Gilles 'หยุดชั่วร้าย'

@dubiousjim เฉพาะ Linux (ที่ไม่ได้ฝังตัวหรือการประมาณที่ดีพอในทางปฏิบัติ) และ OSX มี bash ในการติดตั้งเริ่มต้น * BSD มี pdksh หรือ mksh และหน่วยงานการค้ามี ATT ksh
Gilles 'หยุดชั่วร้าย'

11

ในการสั่งซื้อ:

  1. sh แต่ติดกับสิ่งอำนวยความสะดวกที่ระบุ POSIX
  2. ทุบตี แต่อย่าลืมระบุอย่างชัดเจนใน Shebang มิฉะนั้นคุณอาจได้รับเส้นประแทน
  3. หลาม เกือบทุกคนใช้มัน
  4. Perl แต่คุณต้องเขียนมัน

หลังจากนั้นไม่มีใครสนใจเพราะไม่มีอะไรที่คุณไม่สามารถทำได้


10
ฉันจะใส่ PERL ก่อนหลามมันถูกติดตั้งโดยค่าเริ่มต้นในระบบ linux ส่วนใหญ่
terdon

4
Perl คือ # 3 และคุณจะได้เขียนโบนัส! :)
Warren Young

2
ฉันเห็นด้วยกับ @ignacio perl คือ # 4 และ python เป็น # 3 เหตุผลชัดเจน ฉันคิดว่า Python เป็นวิวัฒนาการของ perl
bagavadhar

5
@ashwin: nope, python ไม่ได้เป็นวิวัฒนาการของสิ่งนั้น Perl เป็นภาษาโดย sysadmins สำหรับ sysadmins python เป็นภาษาโดยโปรแกรมเมอร์สำหรับโปรแกรมเมอร์ ความแตกต่างนั้นสำคัญมาก พวกเขาทั้งสองมีการใช้งานของพวกเขาและในขณะที่อาจมีการทับซ้อนกันมากในกรณีที่ใช้สำหรับงานบางอย่าง Perl เป็นตัวเลือกที่ดีกว่าและสำหรับคนอื่น ๆ หลามที่เหนือกว่าอย่างชัดเจน
cas

1
Ruby และ PHP ได้รับแรงบันดาลใจจาก Perl Python เป็นผลมาจากการทดลองทางฟิสิกส์ที่พวกมันสร้าง anti-Perls ใน supercollider (ฉันไม่มีอะไรเทียบกับ Python. Plusses และ minuses, plusses และ minuses.)
Warren Young

4

ตามปกติฉันจะบอกว่าsh.... แต่เมื่อคุณระบุลีนุกซ์ฉันจะบอกว่าbash- รับประกันว่าจะมีอยู่ในทุกระบบ Linux (ดียกเว้นการปิดบังอวดรู้ที่เล็ก ๆ

หากคุณไม่ต้องกังวลเกี่ยวกับการพกพาที่ไม่ใช้ลินุกซ์ (และถ้าคุณไม่จำเป็นต้องทำงานบน distros เล็ก ๆ หรือในอุปกรณ์ Linux ที่ฝังตัวเช่นเราเตอร์กล่องพลาสติก) คุณอาจใช้ประโยชน์จากการปรับปรุงที่สำคัญ shมันมีมากกว่าธรรมดา shมิฉะนั้นใช้

หลังจากbash(และsh) มากที่สุดต่อไป "สากล" ภาษาสคริปต์สำหรับลินุกซ์จะเป็นภาษาถิ่นของบางawk- ปกติอย่างใดอย่างหนึ่งหรือmawk gawkถ้าคุณติดกับ awk ธรรมดาและหลีกเลี่ยง gawkisms สคริปต์ของคุณควรจะทำงานได้ดีบนระบบ Linux เกือบทุกระบบ (มันอาจจะหายไปจาก distros เล็ก ๆ หรืออุปกรณ์ฝังตัว) ระบบ Linux ส่วนใหญ่จะมีทั้งแบบmawkและgawkพร้อมใช้งาน แต่ในบาง distros (เช่น debian) mawkจะถูกติดตั้งตามค่าเริ่มต้นและคุณจะต้องติดตั้งgawkด้วยตัวเองหากคุณต้องการ

perlถัดไปจะเป็น AFAIK, ภาษาฐาน perl ถูกติดตั้งโดยค่าเริ่มต้นบน distros Linux ทั่วไปทั้งหมด, ดังนั้นมันจึงเป็นตัวเลือกที่ดี โชคดียิ่งกว่านั้นมีความเข้ากันไม่ได้ของรุ่นน้อยมากที่มีการเผยแพร่ perl5 (แม้ว่า perl 5.12 หรืออาจเป็น 5.14 ในที่สุดก็มีการลบคุณลักษณะที่ไม่ชัดเจนซึ่งถูกคัดค้านมาเป็นเวลาประมาณ 15 ปี ... เว้นแต่ว่ารูปแบบการเข้ารหัสของคุณจะแปลกจริง ๆ และคุณชอบที่จะเพิกเฉยต่อคำเตือน "อย่าทำอย่างนั้น" เป็นเวลาสิบปีสคริปต์ Perl ของคุณจะทำงานได้เกือบทุกที่ ภาษาที่มีประสิทธิภาพและมีประสิทธิภาพและสามารถทำทุกอย่างที่awkและsedสามารถทำและอื่น ๆ ด้วยความพยายามเพียงเล็กน้อยก็สามารถทำสิ่งต่าง ๆ ที่shแบบดั้งเดิมก็ดีเช่นกัน (เช่นการรันคำสั่งภายนอกและการใช้ / ไพพ์เอาท์พุท) ห้องสมุด Perl มาตรฐานนั้นค่อนข้างครอบคลุมด้วย - ครอบคลุมมากกว่าพื้นฐาน

สิ่งเดียวที่จับได้ด้วย perl ก็คือยังมีห้องสมุดขนาดใหญ่ของโมดูล CPAN ที่จะทำทุกอย่างที่คุณคิด (และอีกมากมายที่อาจไม่เคยเกิดขึ้นกับคุณ) - และไม่ทั้งหมดนั้นจะมีอยู่ในทุกระบบที่มี perl . โดยปกติแล้วพวกมันจะมีคุณภาพสูงมากดังนั้นมันจึงเป็นเรื่องง่ายที่จะใช้มันให้เป็นนิสัย - แต่ถ้าคุณใช้มันคุณจะต้องทำให้แน่ใจว่ามันถูกติดตั้งแล้ว โมดูล CPAN จำนวนมากถูกบรรจุล่วงหน้าสำหรับ Linux และส่วนที่เหลือสามารถติดตั้งได้อย่างง่ายดายด้วยเครื่องมือ cpan (หรือdh-make-perlบนเดเบียน / ubuntu / ฯลฯ เพื่อเปลี่ยนโมดูล CPAN เป็นแพ็คเกจ. deb)

ฉันอยากจะพูดpythonต่อไป แต่ฉันทำไม่ได้จริงๆ มีหลายสิ่งที่ชอบเกี่ยวกับงูหลาม แต่ไม่ได้รวมอยู่ในระบบ Linux เป็นค่าเริ่มต้นและจริงๆแล้วมันเป็นความเข้ากันได้ของเวอร์ชัน (ทั้งสำหรับงูใหญ่เองและ libs มาตรฐาน "") เป็นปัญหาที่สมบูรณ์ distros บางตัวใช้ความพยายามอย่างยอดเยี่ยมในการแยกแยะเรื่องยุ่งเหยิงออกไป ทั้งสองไม่ได้รับความช่วยเหลือจากความจริงที่ว่าภาษาไพ ธ อนนั้นเป็นภาษาที่เขียนขึ้นสำหรับโปรแกรมเมอร์โดยโปรแกรมเมอร์ (ต่างจาก sysadmins) และพวกเขาดูเหมือนจะไม่คิดว่าระบบของรหัสของพวกเขาจะถูกติดตั้งบนนั้นสำคัญเลย ... มันสุดพิเศษจริงๆดังนั้นพวกเขาไม่จำเป็นต้องกังวลกับสิ่งที่น่าเบื่อเช่นการรวมเข้ากับระบบที่มีอยู่

(อย่าเข้าใจผิดจากการถากถางของฉันที่นี่ - ฉันชอบงูใหญ่เป็นภาษาฉันแค่เกลียดความจริงที่ว่าการจัดการรุ่นและการพึ่งพาเป็น PITA มันเหมือนย้อนกลับไป 20 ปีขึ้นไปในยุคของการล่าสัตว์ด้วยตนเองเพื่อปิดบัง บิตของโค้ดและแพตช์เพื่อรับสิ่งที่คอมไพล์แล้วและรันบนกรรมสิทธิ์ * ของคุณ)


ฉันรู้ว่านี้คือการโพสต์เก่า แต่วิธีที่ดีที่สุดที่จะหลีกเลี่ยงนี้คือการระบุรุ่นใน shebang (เช่น/usr/bin/python2, /usr/bin/python3)
Isiah Meadows

1

ฉันขอแนะนำให้ติดตาม ksh93 หรือ POSIX รสชาติและคุณสามารถใช้ bash / zsh เพื่อเรียกใช้

และดิเบสที่ใช้เดเบียนก็ไม่ใช้การจ้องมองเป็นค่าเริ่มต้น awk ดังนั้นใช่หลีกเลี่ยงการเพ่งพิศเนื่องจากเพิ่มเติมเร็วขึ้น


0

ไม่ทุบตี เขียนลงไปในระยะใกล้ถึง POSIX ดั่งเช่นเส้นประหรือเถ้า นั่นจะเป็นสากลมากที่สุด ฉันไม่คิดว่าจะมีอะไรอีกที่เป็นคู่แข่งที่ใกล้ชิด (และนี่เป็นคำถามที่เป็นข้อเท็จจริงสำหรับฉันไม่ใช่ "ความคิดเห็น" เนื่องจากผู้วิจารณ์คนหนึ่งบ่น)

หากคุณต้องการบางสิ่งบางอย่างที่มีประสิทธิภาพมากกว่า sh (ตัวอย่างเช่นถ้าคุณต้องการอาเรย์แบบเชื่อมโยงจริง) ให้ใช้ awk (หลีกเลี่ยงส่วนขยายเพ่งพิศมีหลายรุ่น awk แต่มีแกนที่ใช้ร่วมกันส่วนใหญ่) ที่ควรจะใช้ได้เกือบเป็นวงกว้างตามที่เป็น sh


1
awk-on-Linux เป็นที่นิยมอย่างแพร่หลาย ฉันไม่สามารถคิดถึง distro ใด ๆ ที่มีตัวแปรอื่นตามค่าเริ่มต้น
Ignacio Vazquez-Abrams

5
ซึ่งสายพันธุ์ของ Linux ไม่สนับสนุนbash?
Jonathan Leffler

1
แน่นอนว่าbashสามารถติดตั้งและรันบน (เกือบ) กล่องลินุกซ์ใด ๆ แต่ผู้ใช้เดเบียนจำนวนมากจะติดตั้งเฉพาะและไม่ต้องการที่จะติดตั้งdash bash
วิลเลียม Pursell

6
@WilliamPursell แพคเกจทุบตีถูกติดแท็ก Essential บน Debian (เช่นคุณต้องผ่านการวนซ้ำเพื่อถอนการติดตั้งโดยมีคำเตือนที่เพียงพอว่าสิ่งนี้จะทำให้ระบบของคุณเสียหาย) Bash เป็นสากลเกี่ยวกับระบบ Linux ที่ไม่ได้ฝังตัว
Gilles 'หยุดความชั่วร้าย'

1
@JonathanLeffler: คนที่ฝังในทางกลับกันอาจมี Busybox เท่านั้น
หอยทากเชิงกล

0

ฉันจะบอกว่าความพร้อมใช้งานจะจัดอันดับบางแห่งตามลำดับนี้:

  1. ดวลจุดโทษ
  2. awk
  3. Perl (ฉันยังไม่เห็น * ระวังถ้าไม่มีมันรวมถึง BSD)

ถึงแม้ว่า Python จะดูเป็นภาษาที่ดี แต่ฉันก็ไม่ได้ใช้ระบบปฏิบัติการใด ๆ ที่มาพร้อมกับมันในการติดตั้งพื้นฐานแม้ว่า Ubuntu จะทำอย่างนั้นหรือ


0

ฉันเชื่อว่าผู้เชี่ยวชาญที่นี่ให้คำแนะนำที่ดีที่จะช่วยคุณตัดสินใจ การใช้งานและความพร้อมใช้งานของกระสุนที่แตกต่างกันได้รับการอธิบายอย่างดีในโพสต์อื่น ๆ

ในบันทึกอื่น ๆ ถ้าฉันเป็นคุณฉันก็จะพิจารณาเป้าหมายที่ฉันต้องการให้บรรลุด้วยสคริปต์ เครื่องมือทุกอันมีข้อดีและข้อเสียของมันเอง ดังนั้นแม้ว่าฉันจะใช้ Python เป็นส่วนใหญ่ แต่ฉันจะไม่ใช้มันในทุกกรณี

ฉันสามารถคิดถึงบางสถานการณ์และพูดถึงเครื่องมือบางอย่างที่มีประโยชน์สำหรับพวกเขา

ไฟล์ FTP ไปๆมาๆ ประมวลผลพวกเขา; ส่งการแจ้งเตือนทางอีเมล และอื่น ๆ

ในกรณีนี้มันจะดีกว่าถ้าติดกับเชลล์ (เช่น Bash) และใช้ยูทิลิตี้ต่าง ๆ (เช่นftp, cronและmail) นี่เป็นกรณีการใช้งานทั่วไปใน บริษัท ขนาดใหญ่หลายแห่ง

การประมวลผลข้อความด่วน

อีกครั้งที่เปลือก สาธารณูปโภคชอบgrep, awk, sed,pasteและอื่น ๆ ที่มีประโยชน์มากในกรณีนี้

สร้าง

ใน C / C ++ makeโดเมนเครื่องมือสากลสำหรับเรื่องนี้คือ โลกของ Java ต้องการ Apache ANT

การปรับใช้และการควบคุมระยะไกล

ทั้งเชลล์หรือ Python ตัวอย่างเช่นscpและrsyncตามลำดับจะค่อนข้างมีประโยชน์ในการคัดลอกไฟล์หรือการซิงโครไนซ์ไฟล์

งูหลามบนมืออื่น ๆ fabricที่มีโมดูลที่มีประโยชน์มากชื่อ สิ่งนี้จะเป็นประโยชน์สำหรับการดำเนินการที่ซับซ้อนมากขึ้นเช่นคัดลอกไฟล์หยุดบางกระบวนการสร้างเซิร์ฟเวอร์และทำเช่นเดียวกัน นอกจากนี้ Python ยังมีโมดูลpipซึ่งสามารถแก้ปัญหาการพึ่งพาที่ระบุได้โดยการดาวน์โหลดและติดตั้งแพ็คเกจที่เกี่ยวข้อง

(โปรดทราบว่าคำแนะนำข้างต้นไม่ได้มุ่งเน้นไปที่คุณสมบัติของเชลล์มากนัก แต่จะใช้ยูทิลิตี้ที่แตกต่างกัน)


-1

Perl ไม่ได้อยู่ในฐาน FreeBSD, NetBSD หรือ DragonflyBSD ขออภัย OpenBSD มี Perl ในการติดตั้งฐาน OS X ปัจจุบันเป็น UNIX ที่ได้รับการรับรองและอาจคิดว่าเป็นตัวแปร BSD บางประเภทในระดับหนึ่งและมี Perl, Python และ Ruby อยู่ในระดับพื้นฐาน

UNIXen ที่เป็นกรรมสิทธิ์ส่วนใหญ่ไม่มี Perl ในฐานเช่น Solaris, AFAIK ทั้ง HP-UX หรือ IBM AIX ด้วย ...


คำสั่งของคุณเกี่ยวกับ Solaris หายไป Perl ไม่ถูกต้อง Perl เป็นองค์ประกอบหลักบังคับของ Solaris อย่างน้อยตั้งแต่ปี 2005 (Solaris 10)
jlliagre
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.