Saya baru saja pindah ke workstation UNIX. Memori skrip Bash shell saya telah memudar sejak sekolah dan saya menemukan sintaksnya sangat membingungkan. Saya bertanya-tanya bahasa scripting apa yang digunakan untuk mengotomatisasi tugas. Dua yang paling populer yang pernah saya dengar adalah Perl dan Python.
- Bahasa scripting mana yang paling banyak digunakan oleh toko dunia nyata?
- Bahasa scripting mana yang paling mirip dengan sintaks C / C ++?
- Apakah ada bahasa scripting lain yang tidak saya sadari?
Terima kasih atas bantuan Anda,
Scott
Jawaban:
Pada tingkat tertentu ini adalah masalah preferensi pribadi. Perl dan Python pasti ada di sana dalam hal popularitas.
Namun, untuk menjawab dua dari tiga pertanyaan Anda:
Rekomendasi saya adalah Python. Sangat mudah untuk membaca dan menulis, sangat kuat, dan ada banyak sumber daya yang berguna di web untuk mempelajarinya, belum lagi kode yang dapat Anda salin dan gunakan kembali.
sumber
sh
membuat penggunaan python sebagai bahasa skrip shell dapat diakses; Namun jika Anda mengalami kasus tepi (seperti multiprocessing) Anda harus mempelajari modul subproses yang menurut saya sampai hari ini terlalu sulit untuk digunakan.Perl dan Python adalah jawaban yang jelas; tetapi masing-masing digunakan untuk menyelesaikan tugas yang berbeda:
Mengenai yang mana yang harus dipelajari sekarang (karena Anda mungkin tidak mengenal mereka), saya akan belajar Python. Ini yang paling sederhana dan paling berguna untuk diketahui.
Dan untuk jawaban atas pertanyaan Anda:
Bahasa scripting mana yang paling banyak digunakan oleh toko dunia nyata?
Semua dari mereka, tapi saya bayangkan Perl memiliki sedikit keuntungan di sini (adalah bahwa ini telah digunakan dalam administrasi sistem lebih lama).
Bahasa scripting mana yang paling mirip dengan sintaks C / C ++?
Perl
Apakah ada bahasa scripting lain yang tidak saya sadari?
Ruby, Tcsh / Csh, http://en.wikipedia.org/wiki/Interpreted_language
sumber
awk untuk pekerjaan kecil, python untuk lebih dari oneliners.
Python (jika Anda tidak menggunakan API tertentu dan hal-hal lain yang bergantung pada platform) memiliki "pustaka standar" yang kaya yang tersedia di semua platform tempat Anda menggunakan versi python. Ini sangat bagus karena Anda dapat menggunakan kembali skrip Anda dengan mudah dan berarti pengetahuan Anda adalah investasi yang baik bahkan jika Anda mengubah platform Anda.
Di perusahaan kami, kami menggunakan python untuk semua skrip, pemantauan, ... dan java untuk aplikasi, dan kami kaya dalam lingkungan yang heterogen.
sumber
Saya akan mengatakan bahwa perl dan python mungkin adalah dua alternatif terbaik. Anda dapat melakukan banyak hal dengan sed dan awk juga.
sumber
Sh (bourne shell), grep, awk, dan sed selalu merupakan hal yang baik untuk dicengkeram lagi. Perl sangat baik jika Anda tidak banyak regexing teks dan rawatan tidak begitu penting (tidak mengatakan bahwa itu tidak mungkin). Python; jika keterbacaan penting bagi Anda. Preferensi saya adalah Python tetapi semua alat ini bagus untuk sebagian besar hal yang Anda lakukan. Anda mungkin ingin mempertimbangkan kembali persyaratan sintaksis c / c ++ Anda, tetap menggunakannya tidak akan membantu Anda dalam jangka panjang.
sumber
Jika Anda ingin belajar sesuatu dari awal, mungkin yang terbaik adalah (kembali) belajar bash.
Di luar itu, perl dan python populer akhir-akhir ini; Saya menyukai perl, tetapi gaya penulisan skrip perl saya tidak banyak berubah sejak Perl 4 keluar.
Saya tidak mengetahui adanya bahasa skrip "c-syntax-like".
sumber
Perl, tangan ke bawah, jika hanya untuk sumber daya CPAN yang luar biasa ( http://search.cpan.org/ ). Manfaat menggunakan bahasa scripting dengan komunitas yang berkontribusi besar adalah Anda tidak akan pernah perlu menemukan sesuatu sendiri.
Perl juga memiliki manfaat menjadi serumit yang Anda butuhkan untuk situasi saat ini. Anda bisa memperlakukannya sebagai bahasa skrip sederhana untuk administrasi cepat atau skrip tujuan tunggal, tetapi Anda dapat menggunakan konsep berorientasi objek atau sistem objek meta luas ketika Anda ingin membuat aplikasi yang lebih besar, mudah dirawat (seperti daemon, server, klien).
Perbedaan antara bahasa skrip saja tidak cukup parah untuk memilih pemenang yang jelas, tetapi Anda terutama harus melihat betapa mudahnya bagi Anda untuk menemukan informasi tentang topik yang Anda pedulikan.
Sintaks Perl juga bisa sangat dekat dengan C, selama Anda bisa mengatasi kekurangan mengetik dan sigils; penggunaan perl lanjutan akan datang secara alami karena Anda akhirnya mempelajari kekuatan bahasa.
Dan untuk penentang di bagian keterbacaan: Anda dapat menulis kode yang sulit dibaca dalam bahasa apa pun. Jika Anda melihat kembali kode Anda sejak 4 bulan lalu dan tidak dapat memahaminya, Anda melakukan sesuatu yang salah.
ps Posting ini diisi dengan tautan ke berbagai modul ramah administrasi di CPAN, tetapi tampaknya pengguna baru hanya dapat memposting satu tautan, jadi gunakan tautan CPAN itu untuk mencari hal-hal seperti 'CVS' 'SVN' 'Cron' dan 'Moose' (sebuah sistem objek yang luas)
sumber
sumber
[untuk saran skrip umum, lihat jawaban lain]
Jawaban ini adalah tentang penggunaan program-program baris perintah dan juga rangkaian besar dari mereka.
Untuk menjalankan rantai program CLI, dan mungkin banyak rantai secara berurutan, bash adalah yang termudah. Perl dapat melakukan hal yang sama tetapi bahasanya jauh lebih sulit untuk dipelajari dan jauh lebih kompleks, dan seperti yang telah banyak ditunjukkan, Perl mudah untuk dituliskan.
Jika Anda mengulangi file dan parameter, bash paling mudah digunakan. Anda dapat membuat prototipe dalam shell, lalu menyalinnya ke dalam skrip dan menambahkan beberapa array dan loop dengan overhead yang minimal.
Contoh yang saya maksud:
Dalam bash, mudah untuk membungkusnya dalam beberapa loop atas beberapa parameter tersebut. Namun , kode menjadi sulit dibaca setelah skrip lebih dari beberapa puluh baris. --- bayangkan 30 set perintah (masing-masing beberapa baris) untuk tiga puluh plot data yang berbeda ---
Perl dan Python bisa lebih baik untuk skrip besar karena mereka memiliki sintaks yang lebih bersih untuk perulangan dan variabel, tetapi perintah bash harus dihasilkan sebagai string, dijalankan sebagai subproses, dan stdin, stdout ditangkap. Itu bisa dilakukan, tetapi itu tidak dapat sepenuhnya menggantikan lingkungan shell asli.
Jika cangkang memiliki bahasa yang lebih baik ini semua akan dihindari.
sumber
paling sering digunakan: Perl, sebagian besar karena alasan historis. Python tersedia secara luas di semua distro Linux dan BSD (bahkan diinstal pada Mac OSX), dan jauh lebih baik untuk dipelajari / diprogram. Tentu saja, setelah Anda mendapatkan sintaks, Bash lebih sederhana untuk hampir semua hal yang dapat Anda lakukan di baris perintah. Bagaimanapun, itu adalah baris perintah.
Sintaks C: ada csh , tetapi Anda dapat dengan mudah menginstal TCC dan menggunakan nyata C sebagai bahasa scripting, dikompilasi dari sumber dalam waktu yang lebih singkat daripada startup bahasa lain.
bahasa skrip lain: banyak! Lua , Ruby , JavaScript ...
sumber
Anda harus menggunakan kombinasi dari semua yang sesuai. Saya sangat tidak suka perl (keterbacaan), tetapi bagus untuk banyak hal. Python di sisi lain adalah sesuatu yang baru bagi saya dalam hal administrasi sistem, sampai saya harus mengelola (dan masih harus) beberapa mesin KVM. Memulai, menghentikan, menyimpan, memuat, memigrasi semua mesin itu melalui skrip menjadi kenyataan setelah 1 jam bermain-main dengan binding python libvirt.
Last but not least saya tidak akan menggunakan perl atau python jika saya harus, katakanlah, dump semua database dari server mysql setiap malam (setiap database di file dump itu sendiri), tar mereka dan rsync itu ke server lain. Mengapa Karena lebih cepat dan lebih mudah untuk menulisnya di bash :)
Pada akhirnya, Anda harus menggunakan bahasa apa pun yang paling sesuai dengan tugas Anda saat ini dan jangan hanya menggunakan bahasa skrip yang diberikan hanya karena Anda sangat menyukainya.
sumber
Saya suka ruby. Sederhana dan mudah diprogram. Ada buku bagus tentang administrasi sistem menggunakan ruby .
Ruby digunakan dalam beberapa sistem manajemen konfigurasi (capistrano, chef, boneka) dan versi terakhir dari metasploit.
Anda dapat menggunakan rush , pengganti shell Unix dengan sintaks ruby dan melakukan hal-hal seperti ini:
sumber
Contoh Ruby satu baris:
Saya akan menggunakan ruby.
Dibandingkan dengan sh, ini modern dan kuat.
Bandingkan dengan python, itu adalah konsistensi, satu edisi, satu manajer paket. Dan saya tidak suka sintaks lekukan.
Bandingkan dengan Perl, sedikit old-school dan sintaksisnya terlalu rumit untukku.
sumber