Mac'in komut satırı Linux ile nasıl karşılaştırılır?


30

Ubuntu Linux'u seviyorum - özellikle komut satırı. Ancak şunu itiraf etmeliyim ki, en azından şimdilik, Windows daha kullanıcı dostudur - bunun için daha fazla yazılım, daha fazla sürücü ve daha fazla şeyin işe yaradığını.

Mac'in Unix üzerine kurulu olduğunu bilmek beni aralarında tatlı olan yer olup olmadığını merak etmeme neden oluyor. Ama merak ediyorum: Mac komut satırı Linux'un bash ile ne kadar benzer ? Vim ve bash komut dosyası ve git, vb kullanarak hemen alabilir miyim? Dizin değiştirmek gibi genel komutlar farklı mı olur? Çevrimiçi bir "karşılaştır ve karşılaştır" kaynağı bilen var mı?


Yanıtlar:


11

Bash bash yani kabuk ve yapıları aynıdır. Ancak bazı araçların davranışlarının ayrıntılarda farklılık gösterebileceğini psveya headkomut dosyalarınızın başarısız olabileceğini unutmayın.


5
Unix'in bir çeşit tadı biraz farklı bir sorun yapmak yerine, bunun Mac'e karşı bir Linux sorunu olmadığını unutmayın. Linux ile örneğin HP-UX arasında aynı (aslında daha fazla fark) bulabilirsiniz.
KeithB

2
Linux ve OSX genelinde gnu binutils araç setinde standardize edebilirsiniz. Macports ve homebrew, OSX'e yüklenecek. Bu en azından ls / tar / etc gibi şeyleri standartlaştıracak. ps hala işletim sistemine bağlıdır.
skarface

ayrıca file: osx while️ file -iiken linux üzerindefile -I
Anthony Kong

30

Mac OS X bir Unix işletim sistemidir ve komut satırı herhangi bir Linux dağıtımında% 99.9'dur. bashvarsayılan kabuğunuzdur ve aynı programları ve yardımcı programları derleyebilirsiniz. Kayda değer bir fark yok. Mac için paket yönetimi sağlayan MacPorts gibi çeşitli projeler de bulabilirsiniz.


1
+1: yukarıdaki doğrudur. Mac'inizin kod derleme veya önceden oluşturulmuş paketleri kullanma konusunda bir intel veya powerpc işlemci kullanması durumunda hava şartlarına uymanız gerekebilir, yeni mac'ların sadece intel olduğunu, ancak hatalı olabileceğimi biliyorum. Yazım hatası @ w0rm: paket * yönetimi. :-)
Sirex

2
Komut dosyalarınız muhtemelen hem Mac hem de Linux için çalışacak olsa da, bunları her iki platformda da test etmek akıllıca olacaktır. Linux dağıtımları arasında ve hatta aynı linux sürümünün farklı sürümleri arasında bazı (ince) farklılıklar gördüm.
Roalt

1
Kesin olarak kesin.
digitxp

6
@ digit, onlar için ücret BSD sürümü olmalı? s / F / Fr /;)
John T

18
% 99,9 doğru değil. OS X bir BSD değişkenidir ve GNU yardımcı programlarına sahip değildir. Bunları her zaman yükleyebilirsin, fakat birçok komutun farklı seçenekleri var. Unix ama Linux değil.
Matteo,

12

Çok benzer, ancak herhangi bir BSD v. Linux farkını biliyorsanız, Mac'ten BSD davranışına sahip olmasını bekleyin.


İlginç. Bu konuda daha fazla detay verebilir misiniz? Neden?
fat_mike

OSX BSD yardımcı programları değil, GNU kullandığı için @fat_milke hangi Linix kullandığı
user151019

b / c Linux'tan daha önce Unix'ten ayrılan bir * nix çekirdeğinden (BSD'ye dayalı NeXTSTEP) türetilmiş Mac OSX. Böylece, bazı uygulamaların biraz farklı uygulamalarıyla sona erdiler. Bakınız en.wikipedia.org/wiki/MacOS
Nietzsche


9

Birkaç şey - bu gerçekten komut satırı ile ne demek istediğinizi bağlıdır.

  1. Muhtemelen herhangi bir UNIX'teki bash ile aynı olacak olan bash'ı çalıştıracaksınız. Bash programlama dili de aynı olacak - aynı sürüm olduğu sürece. Bash sürümlerinin dilde küçük farklılıkları vardır, ancak bunun MacOSX ile Linux'un kendi başlarına bir ilgisi yoktur.

Aslında, bir Mac'teki / bin / bash ile lisanslama nedenleriyle 3.x'e sabitlenir. 4 ya da 5 yaşına alışmışsanız küçük uyumluluk sorunları bulabilirsiniz.

  1. bash kendi başına 'komut satırı'nın küçük bir alt kümesidir. Yararlı olması için, tipik olarak awk, ls veya cut gibi bazı diğer UNIX yardımcı programlarını kullanırsınız. Geçmişi nedeniyle (BSD'den kaynaklanır, Linux ya da SystemV'den değil), yardımcı programların Mac sürümleri Linux'ta alıştığınızdan farklı olacaktır (aka GNU sürümleri). Bunlar en azından bazı bayrak farklarına ve bazı çıkış ve işlevsellik farklılıklarına Linux'tan farklı olacaktır. Bunları kullanan komut dosyalarının telafi etmek için değiştirilmesi gerekir. BSD awk vs GNU gawk oldukça farklıdır. VEYA, bu GNU sürümlerini macport'lardan veya ev tipi demiryolundan alabilir ve PATH'inizi varsayılanlar olacak şekilde (yerleşik sürümlerin üzerinde) ayarlayabilirsiniz.

  2. MacOS X'in bazı yeni harika araçları da var. opengüzel, nesneyi çift tıklar gibi açacak. defaultsGUI tercihleri ​​panellerinde bile olmayan bazı tercihleri ​​ayarlamanızı sağlar. textutilfaydalı sayolabilir ve eğlenceli olabilir.


3

Mac ve Linux'taki komut satırı işlevi, OS X'in gördüğünüz GUI'nin altında bir UNIX (Darwin olarak adlandırılan) tadına sahip olması gibi.

OS X'teki varsayılan kabuk bash'tir, bu nedenle aşinaysanız, iyi bir şekilde ayarlayabilirsiniz.

Mac'te, varsayılan komut satırı uygulaması Terminal'dir. Dışarıda bir sürü emülatör de var ama genel olarak Terminal, Linux'ta alışkın olduğunuz kabuğa çok benzer bir görünüm ve his sağlıyor.

Temel farklılıkların kaynağı olsa da:

  • Zaman zaman farklı komut satırı argümanları (örneğin bakınız du). cdVeya lsbenzeri birincil komutlar benzerdir.
  • OS X’de, Linux’ta yapabileceğiniz gibi elle düzenlenmemesi gereken daha fazla parça var. Bu kendi başına bir konudur, ancak yalnızca Mac çalıştırmanın yapılandırma ve bakım açısından bir Linux kutusunu çalıştırmak gibi olmadığını unutmayın.

openSöylendiği gibi , OS X'deki komut satırından (ör. Commnand) elde edilebilecek pek çok harika saldırı olduğu söylenebilir. Daha fazla bilgi içeren çok sayıda önceki konu ve blog yazısı var.

MacPorts, Fink veya OS X için bir kaç başka paket yönetim sistemi aracılığıyla bir sürü açık kaynak paketine (yani git, hgvb.) Ellerinizi de alabilirsiniz. UNIX / Linux benzeri sistemler için tasarlanmış başka kaynak paketleri de yapabilirsiniz. .


0

İşte bir fark. Bu komutu hem Mac hem de Linux bash kabuğunda deneyin.

find /etc -name "*.conf"

/ Etc içinde .conf dosyası çok olsa da, Mac hiçbir şey göstermiyor.


1
Belki insanlara bunun neden olduğunu söyleyebilirsin.
Mads

1
Emin değilim, belki POSIX’deki yol adı uzantılarıyla ilgili olmalı. Bu komut çalışıyor find /etc/* -name "*.conf". Bununla birlikte, MAC komut satırını LINUX komut satırına zıt bir örnek olarak sağladı. Bir oylama sebebi olamaz.
Antony Thomas

4
Çünkü OSX’de / etc sembolik bir link. Eğer denerseniz find /etc/ -name "*.conf", / etc bir dosya yerine bir dizin olduğunu gösterir. Does findLinux varsayılan olarak dizinleri gibi dizinlere sembolik bağlantıları tedavi?
MechEthan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.