Saya menemukan bahwa beberapa perintah, misalnya, ls
dan pwd
, dapat digunakan pada sistem Linux dan Unix.
- Apakah semua perintah Linux dapat digunakan dalam sistem Unix, dan semua perintah Unix dapat digunakan di Linux?
- Atau hanya saja semua perintah Linux dapat berjalan di Unix tetapi tidak semua perintah Unix dapat berjalan di Linux.
- Atau semua perintah Unix dapat berjalan di Linux, tetapi tidak semua perintah Linux dapat berjalan di Unix?
- Atau adakah referensi untuk menunjukkan kepada saya perintah mana yang dapat berjalan di Linux dan Unix, dan di mana keduanya memiliki perintah unik mereka sendiri?
Jawaban:
Komentar Daniel Andersson tentang POSIX adalah jawaban sebenarnya di sini: ada standar yang disebut POSIX yang mendefinisikan inti dari sistem mirip-UNIX, baik dalam hal perintah shell dan panggilan sistem. Secara teori, jika Anda menulis perangkat lunak ke spec POSIX, Anda harus dapat mengkompilasi dan menjalankannya pada sistem UNIX, Linux, BSD dll.
http://pubs.opengroup.org/onlinepubs/009695399/mindex.html akan memberi Anda jawaban pasti tentang apa yang dimaksud dengan POSIX, tetapi itu bukan jawaban yang berguna untuk tujuan praktis. Orang lain mungkin memiliki referensi perintah yang baik untuk perbedaan umum antara sistem Linux dan sistem mirip UNIX lainnya.
Satu contoh spesifik: "killall" di Linux membunuh semua proses dengan nama tertentu. Pada Solaris, itu mematikan sistem. Penting untuk tidak menggunakan yang salah.
sumber
cat
sebuahcat
, dan ingat bahwa mawar dengan nama lain masih akan bau manis. Hie engkau kotak Windows dan mempelajari apa Unix adalah tidak . Tapi Linux tentu saja Unix.Sebagian besar distribusi Linux saat ini datang dengan banyak perangkat lunak GNU penting dan GNU Toolchain. GNU adalah proyek untuk menulis ulang salinan Unix bebas-dalam-kebebasan yang kemudian dipasangkan bersama dengan kernel Linux. Ketika Anda menggunakan
ls
pada mesin Unix Anda menggunakan yang asli / apa yang menjadi aslinyals
. Saat Anda menggunakanls
GNU / Linux, Anda menggunakan GNUls
yang ditulis dari awal sama denganls
. Namun, tidak semua perangkat lunak GNU persis sama dengan perangkat Unix. Sekarang Unix pada dasarnya telah berubah menjadi BSD, distro GNU / Linux juga dapat berisi versi BSD dari alat itu. Misalnya,bsdtar
dantar
pikirkanlah.tl; dr: Mereka bukan kode yang sama persis, tetapi mereka dimaksudkan untuk sebagian besar persis sama.
sumber
ps
adalah contoh yang paling menjengkelkan yang bisa saya pikirkan. Sakelar berbeda pada sistem berbeda (Linux, AIX dan Solaris). Juga format output yang berbeda. Padahal tujuan dari perintah itu sama pada semua sistem.Anda tidak menentukan UNIX mana yang Anda bicarakan (BSD, System V ...). Tidak ada jawaban universal (UNIX). Setiap varian UNIX memiliki perintah khusus sendiri (misalnya Mac OS X), jadi bahkan di antara UNIX pun ada perintah yang berbeda. Biasanya perintah lama (seperti ls, pwd, cd, cp, mv, rm ...) cenderung sama pada semua rasa UNIX (termasuk Linux).
sumber
Yang perlu Anda pertimbangkan pertama adalah bahwa perintah-perintah itu sebenarnya adalah program-program kecil, dalam arti itu belum tentu merupakan bagian dari sistem operasi jika Anda memisahkan rambut. Yang lama dan klasik sudah ada sejak lama, dan termasuk dalam kebanyakan sistem * nix. Seberapa "lengkap" OS tergantung pada apa yang disertakan dengan paket.
Sebagai contoh, sebagian besar CD pemulihan / darurat yang Anda gunakan untuk boot berisi distro Linux yang ramping, Anda akan menemukan bahwa beberapa perintah tipikal mungkin tidak ditampilkan dalam sistem ini, semata-mata karena mereka tidak diperlukan dalam kebanyakan kasus.
sumber
Pada solaris Anda hanya perlu menambahkan
/usr/gnu/bin
jalur Anda atau menukarnya dengan/usr/bin
dan set perintah Anda akan sangat miripsumber