Komut satırını öğrenmek için bir Linux dağıtımına ihtiyacım var mı yoksa OS X yeterli mi?


12

Komut satırını nasıl kullanacağımı öğreneceğim. Özellikle, "Linux Komut Satırı: Tam Bir Giriş" adlı kitabı kullanacağım . Şimdi, kitapta dolaşmak için bir Linux dağıtımı kullanmak zorunda mıyım yoksa OS X yeterli mi?

Bir Linux dağıtımına ihtiyacım varsa, bir VM aracılığıyla kullanmak yeterli olur mu yoksa yerel olarak yüklemem gerekir mi?


8
VM'ye değil, fiziksel donanıma işletim sistemi kurmanızın tek nedeni performans olacaktır. Sadece temel prosedürleri öğrenmeye çalışıyorsanız, bu bir sorun olmayacaktır. VM'de Arch gibi bir şey çalıştırmak muhtemelen tercih edilir.
Bratchley


4
Komut satırı, sizinle sistem arasındaki bağlantıdır. Bash kabuğu sözdizimi aynı olabilir, ancak sisteme özgü parçalarla uğraşmanız gerektiğinde farklılıklar olacaktır. Örneğin, OS X doesnt Var /procdosya sistemi, USB sürücüler görünür eğilimindedir /Volumesdeğil /media/usernameUbuntu olarak. CentOS farklı bir dhclient.confdosyaya sahiptir. Ve benzeri ve benzeri
Sergiy Kolodyazhnyy

4
Önerilen siteler arası kopya, MacBook'larda sanallaştırma performansı hakkında çok farklı bir sorudur . Soru çapraz gönderilmemiş.
Michael Homer

2
@Utku Bence birkaç kavramın birbirinden ayrılması yardımcı olabilir: bir komut satırı ve üzerinde kullandığınız işletim sistemi. Uzaktaki bir komut satırını bilmek istiyorsanız, OS X'in yanı sıra Linux, BSD ve hatta Windows da biraz çaba harcayacaktı. UNIX veya Linux'u tanımak istiyorsanız, komut satırı bunun sadece küçük bir kısmıdır - sadece işletim sistemi ile etkileşime gireceğiniz arabirimdir. Ne için gittiğini açıklığa kavuşturmak da öğrenmeyi kolaylaştıracak :)
rickcnagy

Yanıtlar:


33

Bir VM'de Linux çalıştırmanızı şiddetle tavsiye ederim. Tüm yazılımlar özgürce indirilebilir ve bir sanal makinede çalışmak ve komut satırını öğrenmek için yerel olarak çalışmak arasında pratik bir fark yoktur.

Ayrıca, Linux komut satırı çoğunlukla BSD Unix'ten çok farklı olan bash + GNU coreutils'den oluşur (ve OS X, BSD Unix'in başarılı bir üyesidir). BSD Unix ve GNU Linux'ta argüman yazma konusunda çok büyük bir tercih farkı var. Her iki sistemde de çalışıyorsanız psve standart tarsistemlerde farklı seçeneklerle kendinizi acemi olmayan biri olarak ısırırsınız .

Kitabınız Linux'a özgüyken OS X'i kullanmak, daha deneyimli olduğunuzda yüzeysel görünecek tutarsızlıkları ve farklılıkları düzenli olarak ortaya çıkaracaktır, ancak öğrenirken kafa karıştırıcı olacaktır. İşleri kendiniz için kolay tutun.

Bu, önemli dosyaları silerek veya değiştirerek makinenizi bozma endişesi olmadan denemenize de olanak tanır.

Ve son olarak, kesinlikle önemli olmamakla birlikte, OS X Terminalinizden VM'nize bir SSH bağlantısı kurmanıza izin verir, böylece SSH anahtarlarını kullanmaya alışabilirsiniz ve Linux sunucunuzun fark edip etmeyeceği fikri yerel bir makine, yerel bir VM veya AWS veya Digital Ocean'da bitiyor: hepsi aynı çalışıyor!


Bu arada, VM'de yerel bir Linux'a karşı aynı dizin yapısına sahip olacak mıyım?
Utku

3
Evet. Amaçlarınız için yerel kurulumla tamamen aynıdır.
seumasmac

Bu en güvenli cevaptır, ancak kitaba bağlı olarak, komut satırı kitabına bir girişin farklılıkların çoğunu (varsa) göstermeyeceğini varsayıyorum. El kitabına bir bakıştan sonra bana yapışan tek şey dizin yapısının açıklaması olacaktır.
pllee

1
@Utku Kitapta / dev / sda veya / dev / hda'dan bahsediliyorsa ve yüklemenizde bulamıyorsanız, / dev / vda aramayı deneyin. Düşünebileceğim tek fark bu, sizin için önemli.
Kimmax

1
Bir VM kullanmanıza bile gerek yok, HD'nizde bir sürü yer almak istemiyorsanız canlı bir CD kullanmak da mümkündür. Ayrıca bir flash sürücüden önyüklenebilir ve bir CD / önyüklenebilir flash sürücü oluşturmak çok az zaman alır.
Chris Cirefice

18

OS X, onaylanmış bir UNIX olduğu ve POSIX ile uyumlu olduğu için komut satırını öğrenmek için yeterlidir. Linux'a özgü komut satırı kitabına bakıyorsanız, OS X'teki kullanıcı alanı araçlarının BSD'den türetildiğini, Linux'taki araçların GNU olduğunu ve aralarında bazı (çok ince olmayan) farklılıklar olduğunu unutmayın.

GNU araçlarıyla öğrenmek istiyorsanız, macports veya homebrew aracılığıyla bir GNU kullanıcı alanı kurabilir veya bir VM'de tam bir Linux kurulumu yapabilirsiniz.


Yani, sanırım komut satırında "jenerik" kitap yok mu? Bir kitapta GNU veya BSD araçları kullanılır. Bu doğru mu?
Utku

1
Bir kabukta (örneğin bash) bir kitabınız varsa, kitap çalıştıran herhangi bir sisteme yakışır. İşletim sistemi özelliklerini veya kabuğun dışındaki belirli araçları kullanmaya başladığınızda değişir.
teppic

1
@teppic Peki bir kabuk tek başına ne kadar yararlı ? AFAIK, kendi başına bir kabuk işe yaramaz çünkü yürütme komutu yoktur. Gibi en temel komutlar bile lsGNU veya BSD olmalıdır (lütfen yanılmışsam düzeltin) Yani, bunun bir araç zinciri (veya çevre) seçmem ve oradaki komut satırını öğrenmeye başlamam gerektiğini düşünüyorum. Bu doğru mu?
Utku

@Utku komutları aynıdır (çoğunlukla), ancak seçenekler ve çıktılar farklı olabilir (genellikle GNU birçok uzantı uyguladığı için). BSD ve GNU araçları arasında ileri geri gitmek kolaydır.
casey

@casey Bu yüzden sadece OS X'teki kitapla başlayabilirim. O zaman kitapta açıklanmayan davranışlarla karşılaşırsam, Linux'ta deneyebilir miyim ya da sadece aynı komutun BSD varyantına bakabilir miyim?
Utku

9

Şimdiye kadar bazı iyi yanıtlar, ancak varsayılan OS X komut satırı araçlarından uzak durmanın bir nedeni de çok eski sürümleridir. Örneğin, OS X'ler grep2004'ten ve bash2007'den! Bunun nedeni , Apple'ın GPL3 kapsamında lisanslı araçlar göndermeyi reddetmesidir.

Linux'u düzgün yüklemek istemediyseniz, en son sürümleri manuel olarak yükleyebilirsiniz (belki MacPorts, Fink veya Homebrew gibi bir port sistemi aracılığıyla).


3

İlk fark:

ls * -lah

Linux üzerinde çalışır, mac'ta başarısız olur (parametreler önce gelmelidir). Bir VM kullanın veya mac os için bir kitap alın. Daha sonra kullanacağınız şeyi ve sonra farklılıkları öğrenmelisiniz.


3
ls * -lahLinux üzerinde çalıştığı gibi Linux üzerinde çalıştığını ve OS X'te OS X üzerinde çalıştığı gibi çalıştığını söylemelisiniz . OS X'te çalışma şekli POSIX'e göre doğrudur (12. Yardımcı Program Kuralları / 12.2 Yardımcı Program Sözdizimi Yönergeleri / Kılavuz İlke 9) : “Tüm seçenekler komut satırındaki işlenenlerden önce gelmelidir.” Getopt (3) 'te açıklandığı gibi : “…… POSIXLY_CORRECT ortam değişkeni ayarlanırsa, seçenek işleme bağımsız değişkeni ile karşılaşıldığında seçenek işleme durur.”
G-Man

3

Unix öğrenmenin en iyi yolu, onunla gerçek anlamda çalışmaktır. Normal çalışma ortamınızdaki (OS X) kendi dosyalarınız ve verilerinizle çalışabilmek için kitabınızdaki Linux'a özgü örnekler ile standart araçların Mac sürümleri arasındaki farklarla karşılaşmaya değer olduğunu söyleyebilirim.

Farklılıklar ile karşılaşmak, zaman zaman sinir bozucu olsa bile değerli bir öğrenme deneyimi olacaktır.

Uygulama yapmak için bir Linux VM'ye sahip olmak da (özellikle tehlikeli komutlar için) faydalıdır, ancak hiçbir şey öğrenme için gerçek dünya kullanımını yenemez.

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.