Sayangnya tidak ada jaminan apa pun akan tersedia.
Namun, sebagian besar sistem akan memiliki coreutils GNU. Itu saja menyediakan sekitar 105 perintah. Anda mungkin dapat mengandalkannya kecuali itu adalah sistem tersemat, yang mungkin menggunakan BusyBox sebagai gantinya.
Anda mungkin juga dapat mengandalkan bash, cron, GNU findutils, GNU grep, gzip, iproute2, iputils, man-db, module-init-tools, net-tools, passwd (passwd atau shadow), procps, tar, dan util- linux.
Perhatikan bahwa beberapa program mungkin memiliki beberapa perbedaan di antara distribusi. Misalnya /usr/bin/awk
mungkin gawk atau mawk. /bin/sh
mungkin tanda hubung atau bash dalam mode POSIX. Pada beberapa sistem lama, /usr/bin/host
tidak memiliki sintaks yang sama dengan versi BIND, jadi mungkin lebih baik menggunakan dig.
Jika Anda mencari beberapa standar, Basis Standar Linux mendefinisikan beberapa program yang umum ditemukan, tetapi tidak semua distribusi mengklaim sesuai dengan standar, dan beberapa hanya melakukannya jika Anda menginstal paket kompatibilitas LSB opsional. Sebagai contohnya, beberapa sistem yang saya lihat tidak dilengkapi dengan lsb_release
dalam instalasi default.
Selain itu, daftar perintah yang distandarisasi oleh POSIX dapat membantu.
Pendekatan lain untuk masalah Anda adalah mengemas skrip Anda menggunakan alat pengemasan masing-masing distribusi (misalnya RPM untuk Red Hat, DEB untuk Debian, dll.) dan mendeklarasikan ketergantungan pada program atau paket lain yang Anda perlukan. Ini sedikit pekerjaan, tetapi itu berarti pengguna akan melihat pesan kesalahan yang lebih ramah, memberi tahu mereka tidak hanya apa yang hilang, tetapi juga paket apa yang perlu mereka instal.
Info lebih lanjut:
- RPM - Menambahkan Informasi Ketergantungan ke Paket
- Debian - Mendeklarasikan Hubungan Antar Paket.
Pada sistem Linux non-embedded, umumnya Anda dapat mengandalkan sebagian besar utilitas GNU:
- coreutils
- pesta
- findutils (setidaknya
find
danxargs
, belum tentulocate
danupdatedb
) - grep
- gzip
- sed
- tar
ditambah suite util-linux dan suite procps. Perhatikan bahwa /bin/sh
tidak selalu bash, ini bisa berupa cangkang dengan lebih sedikit fitur seperti salah satu dari banyak garpu abu.
Basis Standar Linux mendefinisikan satu set utilitas umum dengan fitur yang diharapkan pada semua sistem yang sesuai. Anda juga dapat mengharapkan sebagian besar utilitas yang ditentukan oleh POSIX. Pengecualian penting adalah pax
, yang bukan merupakan bagian dari penginstalan default dari banyak distribusi.
Jika Anda ingin tetap sederhana, minta pemasangan lsb_release
kemasan. Banyak distribusi memiliki paket yang menarik semua dependensi yang diperlukan oleh LSB.
Pada sistem tersemat, semua taruhan dibatalkan. Sistem Linux tersemat biasanya menjalankan BusyBox, tetapi banyak utilitas dan fitur bersifat opsional, jadi sangat sedikit yang bisa Anda dapatkan.
Ada sekumpulan perintah yang sebagian besar jika tidak semua distribusi Linux, dan dalam hal ini, juga akan disediakan oleh distribusi Unix. Ini adalah perintah wajib yang ditentukan oleh standar POSIX.
Sebagian besar perintah yang Anda kutip (cd
, mkdir
, ls
, echo
, grep
, sed
, awk
, dll.) salah satunya. Pengecualiannya adalah ping
seperti yang dikomentari dengan benar oleh WhiteWinterWolf.