Windows ve Ubuntu'nun neden benzer kabuk komutları var?


14

Ubuntu'da bir bash (Bourne Again SHell) bulunurken, Windows'da özel kabuk vardır. Araştırmamıza göre, Windows / Ubuntu'da kabuk komut dosyası oluşturmak için kullanılan dil için bir isim yok. Buna sadece kabuk komut dosyası deniyor.

Neden, Windows & Ubuntu kabukları gibi aynı komutları anlıyorum: ls, mkdir, rmdir, mountvb?

Kabuk betikleri için bir tür lingua franca var mı? Eğer öyleyse, lütfen bana daha fazla bilgi verin.


9
Bkz. En.wikipedia.org/wiki/List_of_Unix_commands - bu komutların ilk ne zaman ortaya çıktığını arayın ve Windows ve GNU'nun ne zaman ortaya çıktığını kontrol edin. Bu komutlar bash'ın bir parçası değildir - harici yardımcı programlardır, bu nedenle hangi kabuğun kullanıldığı önemsizdir.
muru

10
Ve eminim lsPowershell tarafından destekleniyor, değil cmd.exe. Çünkü Powershell yaratıcıları, Unix kullanıcılarının daha rahat olması için ortak Unix komutlarına takma ad eklemek için biraz çaba harcadılar. technet.microsoft.com/en-us/library/dd347739.aspx
muru

7
DOS ile ilgili Wikipedia makalesi buna biraz ışık tutabilir. Alıntı: "DOS yerine Intel 8086 16-bit işlemciler üzerinde çalıştı. MS-DOS 1.28 ve PC DOS 2.0 ile başlayarak, işletim sistemi Microsoft'un Unix varyantı Xenix'ten esinlenilen çeşitli özellikler içeriyordu." Yani Unix, bir noktaya kadar MS-DOS için bir ata. en.wikipedia.org/wiki/DOS
theodorn

4
@muru: Aslında, hem Unix ve DOS komutları aslında sadece diğer adları olan gerçek bir standardize göre adlandırılır PowerShell komutları, Action-Objectayrıca standardize eylem ve nesne kümeleri oluşur yapısı. Örneğin, hem lsve hem dirde takma adlarıdır Get-ChildItem(ek olarak takma adı vardır gci) mkdirve mdaslında New-Item(PowerShell'in nesne tabanlı yaklaşımı sayesinde aslında sadece dizinlerden çok daha fazlasını yaratabilir) vb.
Jörg W Mittag

2
Ayrıca CPM, VMS, JCL'ye bakın.
Zan Lynx

Yanıtlar:


44

, Windows cmd.exedesteklemiyor ls, mountbunları kendi başınıza yüklü ve onları katma sürece, vb %PATH%(Cygwin, MinGW aracılığıyla Unix tabanlı Applications (SUA) İçin Alt veya başka bir şey). Powershell yapar. Bunun nedeni Powershell'in bunları standart Powershell komutlarına takma ad olarak içermesidir, böylece Unix kullanıcıları daha rahat olabilir. Powershell'deki Uyumluluk Takma Adları listesine bakın . , Windows var mı rmdir, mkdirvs, ama bunlar, tabii ki, sen Ubuntu üzerinde bulacağını aynı seçenek sözdizimi desteklemez.

Ubuntu'da bunların Bash ile ilgisi yok. Hepsi harici komutlardır. Bu tür araçlar için standartlar vardır. POSIX en dikkat çekici olanıdır ( POSIX tarafından yönetilen yardımcı programlar listesine bakın ) ve Linux Standard Base (LSB) , Linux sistemleri için önemli olan (çoğunlukla POSIX tabanlı, ancak bazı ekleri olan ) başka bir şeydir . Ubuntu'dakiler çoğunlukla GNU tarafından sağlanır ve GNU yardımcı programları genellikle POSIX için gerekli olan tabandan daha fazla özelliğe sahiptir.

POSIX ayrıca bahsettiğiniz kabuk dilini de tanımlar (bu dilde olandan oldukça farklıdır cmd.exe). Bourne kabuğunun söz diziminden türetilmiştir . Bash (artık Bourne'un ne anlama geldiğini biliyorsunuz ), GNU'dan da, üstte özellikler ekliyor, ancak gerektiğinde POSIX uyumlu bir şekilde davranabilir. POSIX dili, almayı umduğunuz dildir sh. bash, ksh, ash, dash, zshTüm kullanım o geliştirmelerle dili. cshkendi (kabus) dünyasındadır ve tcshgelişir csh.

Biraz daha anlamak için Unix ve Unix benzeri sistemlerin geçmişine bakın . Unix, Windows'un 10 yılı aşkın bir süre öncesidir ve bu yardımcı programlar ilk olarak Unix'te görünür.

Windows hükümeti POSIX uyumluydu, çünkü ABD hükümeti devlet kurumları tarafından kullanılan işletim sistemleri için gerekliydi (o zaman ilk paragrafta belirtilen SUA'nın geldiği Unix Hizmetleri'ni (SFU) eklediler ). Ancak bu gereksinim hurdaya çıkarıldı ve daha sonra SUA düştü.

İlişkili:

(Bu yayınların ortak kısmına dikkat edin - hepsi Unix ve Linux'ta ve etiketli geçmişte - bu etikete göz atmayı çok bilgilendirici bulabilirsiniz.)


3
AFAIK, rmdir( mkdirve ile birlikte cd / chdir) command.comMS-DOS 2.0'dan beri yerel yerleşiklerdir (daha önce DOS dosya sisteminde hiyerarşi yoktu)
jlliagre

1
rdBir kestirme olduğunu mdda.
jlliagre

1
Cevabınızı okumaktan ve başkalarından sağlanan bağlantılar aracılığıyla gözden geçirmekten aldım: Bu komut / yardımcı programlar ilk önce çeşitli farklı sistemlerde ortaya çıktı. Zamanla çoğu Ubuntu'ya, bazıları da Windows'a entegre edildi. Ancak Windows işleri kendi yollarıyla yapmaya ve bu yardımcı programların kendi sürümlerini oluşturmaya karar verdi. Zaman içinde Windows, kendi kabuk komutlarına takma adlar eklemeye karar verdi, böylece linux kullanıcıları, yüzeyde sistemlerinde olduğu gibi görünen ancak altında Windows komutlarına çevrilmiş komutları kullanabilirler
Shady Programmer

1
POSIX dili, almayı umduğunuz dildir sh. bash, ksh, ash, dash, zshTüm kullanım o geliştirmelerle dili. cshkendi (kabus) dünyasındadır ve tcshgelişir csh. ABD hükümeti devlet kurumları tarafından kullanılan işletim sistemleri için gerekli olduğu için Windows bir kerede POSIX'e itaat etti (SUA buradan geliyor). Ancak bu gereksinim hurdaya çıkarıldı ve daha sonra SUA düştü.
muru

1
@ShadyProgrammer ilginç bulacağınız başka bir U&L yayını: unix.stackexchange.com/q/145522/70524
muru

0

Basit:

Linux, Dennis Ritchie ve Ken Thompson tarafından icat edildiği gibi UNIX modeline dayanan bir sistemdir.

Windows / DOS, bir TV'ye taktığınız eski bilgisayarlarda 1970'lerde popüler olan CP / M adlı bir sistemin ucuz bir nakavtidir, bu sistem de 60'ların sonlarından / 70'lerin başlarından itibaren erken UNIX sistemlerinin ucuz bir nakavtıydı. .


Cevabınız konusunda bazı gerçekler olsa da, yararlı olamayacak kadar basit. (Ve televizyonlar değil CP / M'li monitörler veya terminaller kullandık;)) Bazı belirsiz bash veya sed komutlarını anlamaya çalıştığımda, bazen işletim sisteminin sizin için neredeyse hiçbir şey yapmadığı günleri düşünüyorum. yapmak kolaydı ve 64k'lık bir makinede hiç bellek kalmadı.
Joe
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.