Apakah perintah Linux dapat dipertukarkan dengan perintah Unix?

21

Saya menemukan bahwa beberapa perintah, misalnya, lsdan 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?
Ted Wong
sumber
28
Baca tentang "POSIX".
Daniel Andersson
1
Perhatikan bahwa ini bukan perintah "Linux", ini adalah perintah GNU. Alat-alat GNU dapat diinstal pada FreeBSD, misalnya.
new123456
2
Heck, alat-alat GNU bahkan dapat diinstal di Unix.
MSalters

Jawaban:

37

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.

pjc50
sumber
10
@ tchrist- jika Anda benar-benar berpikir seperti itu, ketikkan "sudo apt-get" di Mac OS X dan lihat seberapa jauh Anda.
David Robinson
7
@tchrist ketika Ted Wong menyebut Linux, dia jelas berbicara tentang sistem operasi yang juga dikenal sebagai GNU / Linux dan di sana tertulis "GNU's Not Unix!" ;)
João Portela
4
Sebenarnya, seperti yang saya pahami, Mac OS X IS Unix bersertifikat - sesuatu yang sangat sedikit (jika ada) dari varian Linux yang dicapai. Jelas ini hanya masalah sertifikasi dengan standar yang sangat dasar.
Bill K
2
@tchrist L inux saya s N ot U ni X
Dave
4
@Dave Bah. Jangan lumpuh. Memanggil sekop sekop, sebuah catsebuah cat, 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.
tchrist
18

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 lspada mesin Unix Anda menggunakan yang asli / apa yang menjadi aslinya ls. Saat Anda menggunakan lsGNU / Linux, Anda menggunakan GNU lsyang ditulis dari awal sama dengan ls. 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, bsdtardan tarpikirkanlah.

tl; dr: Mereka bukan kode yang sama persis, tetapi mereka dimaksudkan untuk sebagian besar persis sama.

Jimmy Zelinskie
sumber
2
Adapun perbedaan psadalah 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.
Elmo
5

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).

m0skit0
sumber
4

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.

posdef
sumber
3

Pada solaris Anda hanya perlu menambahkan /usr/gnu/binjalur Anda atau menukarnya dengan /usr/bindan set perintah Anda akan sangat mirip

Linda Kateley
sumber