Komut İstemi ve MS-DOS aynı şey midir?


12

Arkadaşımla komut isteminin sadece Windows form ortamında çalışan MS-DOS bir GUI sürümü olduğunu savundu . Bana tamamen katılmıyor.

Kim haklı?


2
Araştırmanız size şimdiye kadar ne anlattı?
slhck

4
cmd.exeMS-DOS'tan tamamen farklı bir canavar.
Sathyajith Bhat

7
MS-DOS bir işletim sistemidir. Windows komut istemi, MS-DOS'a benzeyen bir arabirimdir .
Der Hochstapler


Yanıtlar:


20

Bu bir kez doğruydu, ama artık değil.

Gönderen MS-DOS # Windows komut satırı arayüzü - Vikipedi :

Microsoft Windows'un tüm sürümlerinde MS-DOS benzeri bir komut satırı arabirimi (CLI) vardır. Bu, birçok komut dosyasını ve çeşitli Win32, OS / 2 1.x ve Posix komut satırı yardımcı programlarını aynı komut satırı oturumunda çalıştırarak komutlar arasında borulamaya izin verebilir. Kullanıcı arabirimi ve Windows 2000'e kadar olan simge, yerel MS-DOS arabirimini izledi.

Tüketici Pencereleri (3.11, Win9x, WinME'ye kadar), MS-DOS'un üstünde çalışan bir Grafik Kullanıcı Arabirimi (GUI) olarak çalıştı. Windows 95, 98 ve ME ile MS-DOS parçası tümleştirildi ve her iki işletim sistemine de tam bir paket gibi davranıldı. Komut satırı bir Windows modülü (winoldap.mod) aracılığıyla DOS komut satırına (genellikle command.com) erişir.

Yeni bir Windows satırı (Windows NT), tek amacı Windows'u yüklemek olan bir çekirdeği önyüklemek. Yükleyici sistemindeki Win32 uygulamaları OS / 2, UNIX veya Tüketici Pencerelerinin karakter modu oturumlarını başlatabileceği şekilde çalıştırılamaz.

Yani hayır, NT ailesindeki her Windows'ta (örneğin, XP, Vista, 7, 8), komut istemi ve MS-DOS görsel olarak benzer, ancak oldukça farklıdır.


Aslında, bunun asla doğru olmadığını söyleyebilirim . Buna eşdeğer , MSDOS'un oldukça küçük bir parçası cmd.exeolurdu . command.com

9

Bunlar farklı şeyler vardır - Komut İstemi Değil MS-DOS olduğunu - ancak bildiğim kadarıyla kullanıcı söz konusu olduğunda onlar olabilir aynı şeyler aynı şey olabilir.

Bu sizin bakış açınıza bağlıdır. Teknik açıdan arkadaşınız doğrudur, ancak kullanıcı açısından haklısınızdır (bir uzmanın fark edeceği farklılıklar vardır).


Bence tam tersini mi kastediyorsun? Teknik olarak doğru olan odur, çünkü kelimenin tam anlamıyla aynı şey değildir, arkadaş pratik olarak doğru olan, çünkü kullanıcı için aynı şeydir.
Brad

@Brad - soruyu okuma şeklim, OP'nin aynı olduklarını söylediği, ancak arkadaşı olmadığını söyledi.
ChrisF

8

Hayır.

(Eşitlik tanımınız geçmezse » Bu bir metin arayüzüdür ve ondan program çalıştırabilirim. « )

Başlat Menüsünde Komut İstemi'ni tıklattığınızda çalıştırılacak olan Windows Komut İşlemcisi'dir cmd.exe. Yerleşik komutları ve komut dosyası sözdizimi (birçok tuhaflıklar dahil) eski command.comCP / M ve daha sonra MS-DOS'a dayanır, ancak bunun dışında tamamen ayrı şeylerdir. Ayrıca, yerel bir Windows konsol uygulaması command.comiken 16-bit bir programdır cmd.exe.

Windows 95, 98 ve ME'de command.com , bir MS-DOS sanal makinesinde çalıştırılacak olan ve hipervizör görevi gören Windows'ta işler farklıydı (evet, zaten bu tür bir şey vardı). Orada DOS çalıştıran bir sanal makine vardı. Ancak Windows NT, 2000, XP, Vista ve 7'de - hayır. DOS yalnızca ntvdm.exe, CPU'nun doğrudan yürütemeyeceği çağrıları yakalayan ince bir öykünme katmanı olan NT Sanal DOS Makinesi'nin bulunduğu yerde yaşıyor (bu yüzden DOSBox'tan daha hızlı ama daha kötü çalışıyor).

Her durumda, command.comDOS için bir kabuk bile vardı. İşletim sistemi değildi.

İçeride, aslında siyah-gri metin içeren bir pencereye MS-DOS olarak atıfta bulunan insanları her gördüğümde küfrediyorum. Vakaların büyük çoğunluğunda aslında neye atıfta bulunduklarını bilmiyorlar.


4

Anladığım kadarıyla, MS-DOS Microsoft'un yayımladığı disk işletim sistemidir. Komut istemi, işletim sisteminizle etkileşime girmenizi sağlayan grafik olmayan bir arabirimdir.

Komut İstemi, çoğu Windows işletim sisteminde bulunan, resmi olarak Windows Komut İşlemcisi olarak adlandırılan ancak bazen komut kabuğu olarak adlandırılan bir komut satırı yorumlayıcı uygulamasıdır. Komut İstemi, MS-DOS'ta kullanılabilen komut satırı yeteneklerinin çoğunu taklit eden bir Windows programıdır, ancak aslında MS-DOS değildir.

Komut İstemi, MS-DOS'ta command.com'un bir GUI sürümüdür. cmd.exe genellikle bir Win32 konsolunda çalışan yerel bir Windows uygulamasıdır. Bu, platformdaki yerel programlar tarafından kullanılabilen, aksi takdirde DOS programları tarafından kullanılamayan özelliklerden yararlanmasına olanak tanır.

Örneğin, cmd.exe, OS / 2'de yerel bir metin modu uygulaması olduğundan, komut satırlarında gerçek boruları kullanabilir ve boru hattının her iki tarafının aynı anda çalışmasına izin verir. Sonuç olarak, COMMAND.COM aksine, cmd.exe standart hata yeniden yönlendirmek mümkündür. (COMMAND.COM geçici dosyalar kullanır ve iki tarafı birbiri ardına seri olarak çalıştırır.)

Gerçekte, cmd.exe DOS benzeri bir komut satırı yorumlayıcısı gibi davranan bir Windows programıdır. Genellikle uyumludur, ancak COMMAND.COM'un bazı sınırlamalarına yönelik uzantılar sağlar (yukarıdaki açıklamalar Wikipedia tarafından belirtilmiştir).


2

Arkadaşın haklı. MS-DOS bir işletim sistemidir (kısaltmanın anlamı Microsoft Disk İşletim Sistemidir.) DOS kullanıcı arabirimine ( the ) komut istemi denir .

Windows'un ilk birkaç sürümü DOS'un üstünde koştu (teknik olarak çalışma ortamları yapıyor, ancak artık kimsenin bu ayrımı yaptığından emin değilim), ancak NT Çekirdeği ile başlayan daha sonraki işletim sistemleri yoktu - DOS gitti.

Ancak, insanlar hala komut istemi tarafından sağlanan işlevselliğe ihtiyaç duyuyordu ve command.com yerine command.exe (ve bu gün cmd.exe) var, bu da çalıştırıldığında bize bir komut istemi veriyor.

Ancak, insanların kullandığı tek (ne de ilk yakınında) komut istemi bu değildir. Komut İstemleri ayrıca Kabuklar olarak adlandırılır ve Unix'in birçoğu vardır ve komutlar farklıdır ve genellikle çok güçlüdür. Power'tan bahseden Microsoft, Windows için PowerShell adlı inanılmaz derecede güçlü ve ilginç bir komut istemi oluşturdu. Daha fazla bilgi için Wikipedia'ya bakın: http://en.wikipedia.org/wiki/Command-line_interface#Operating_System_Command-Line_Interfaces


> DOS için kullanıcı arabirimine (the) komut istemi denir. Ayrıca “komut satırı”.
Synetech

ve CLI veya komut satırı arayüzü.
Mark Allen

Teknik olarak CLI, belirli bir arayüz değil, bir arayüz türüdür . Bu, bir Windows'a GUI (örneğin, Windows GUI'yi kullandım ) demek gibi bir şeydir . Sen edebilirsiniz söyleyin, teknik olarak doğru / doğrudur, ancak bu sadece tuhaf olurdu.
Synetech

Sadece komut istemi diyorum. :)
Mark Allen

Ben sadece DOS diyorum (en azından bir süredir, gönülsüzce saf DOS diyorum ).
Synetech

1

Aynı değiller!

Görünüşe göre birçok insan DOS İsteminin ve Windows Komut İsteminin aynı şey olmadığını fark etmiyor. Aslında iki farklı programdır - sırasıyla COMMAND.COM ve CMD.EXE.

Komut İstemlerini Bilin

Öncelikle nedeniyle platformun (vs Windows DOS) ve tercüman (command.com cmd.exe vs) farklılıklar nedeniyle, orada olacağım bariz farklılıkları gibi

  • DOS, pencereli mod olmadan tam ekran çalışır, bu nedenle mode con:cols=COL lines=ROWkonsolu yeniden boyutlandırmak için titlekomut yok ve komut yok
  • DOS, çoklu görev, çok kullanıcılı, kayıt defteri, izinler, uzun dosya adları, semboller / hardlinks, ağ, Unicode, dinamik diskler ve gelişmiş birimler desteğini desteklemez ...

Ancak, command.com ve cmd.exe arasındaki dahili komutların yetenekleri ve sözdizimi ile iki ortamdaki bazı harici araçlarda da büyük farklılıklar vardır. MS-DOS'ta

  • İşlev, kod bloğu ()ve yerel kapsam yok

    • for, if... ardından aynı satırda tek bir komut gelmelidir
    • hayır exit /bveyagoto :eof
    • hayır setlocalveendlocal
    • gotosadece bir etikete atlayabilir call, sadece başka bir toplu iş dosyasını başlatabilir
    • komutları aşağıdaki gibi gruplandırılamaz

      (
      command1
      command2
      ) >output.txt
      
  • Kaçış karakteri yok ^. Özel karakterler yazdırmak acı verici olur ve çok satırlı komutları çalıştırma olasılığı yoktur

  • Özel biçimleri yok if
    • hayır if cmdextversionveif defined
    • sayısal ve büyük / küçük harfe duyarlı olmayan dize karşılaştırması yok if [/i] string1 compare-op string2
  • Komut geçmişi ve komut bağımsız değişkeni tamamlanma yok
  • Hiçbir dolaylı genişleme (örn call set %%var%suffix%=stringdeğişkenlerin) ve hiçbir gecikmeli genişleme (örn echo !var%suffix%!)
  • Gelişmiş dize manipülasyonu yok
    • değişken destek yok~xxxV
    • alt dize %variable:~num1,num2%veya dize değiştirme desteği yok%variable:str=newstr%
  • İle eşleşen kısmi değişken adı yok setve
    • hayır set /abu yüzden aritmetik yapamazsın
    • hayır set /pki bu, kullanıcı girdisini okumak bir acıdır
    • set "var=value"sözdizimi yok
  • %*Tüm komut satırı için hayır
  • Hayır for /d, for /rya for /l. Hayır for /f, dosyalardan girdi okumak da zor. forDOS içindeki tek biçimFOR %variable IN (set) DO command [command-parameters]
  • Hayır findstrve findUnicode'u desteklemiyor
  • Gibi özel ortam değişkenleri yok%CD% %DATE% %TIME% %RANDOM% %ERRORLEVEL% %CMDEXTVERSION% %CMDCMDLINE% %HIGHESTNUMANODENUMBER%
  • Sınırlı dizin değiştirme yeteneği
    • Hayır pushd/popd
    • Hayır cd /d. Ayrıca hayır cd path with spacesve cd "path with spaces"uzun dosya adı desteği eksikliği nedeniyle
  • Hayır color
  • Hayır forfiles
  • Hayır assoc(çünkü GUI olmadığından ve dosyalar komut satırından elle açılmalıdır, bu nedenle dosya ilişkilendirmesi gerekmez)

DOS'ta nerede, sıralama, daha fazla (bazı DOS sürümlerinde), seçim ... gibi birçok yararlı harici komut da eksik


Ve MS'in Zengin Turner'ı böyle dedi

Ayrıca, Cmd! = MS-DOS!

Ayrıca yukarıdaki gibi makaleler tarafından devam eden yaygın bir yanlış anlama işaret etmek istiyorum: Cmd <> MS-DOS!

Aslında:

  • Microsoft, 16 Eylül 2000 - 16 yıl önce (bu yazı itibariyle), MS-DOS'un (Windows ME'de v8.0) "yeni" bir sürümünü gönderdi!
  • MS-DOS, Windows 3.x & 9.x gelip MS-DOS üzerinde / etrafında çalışana kadar birincil kullanıcı arabirimi bir komut satırı kabuğu olan bir işletim sistemiydi (günümüz standartlarına göre nispeten basit bir işletim sistemi olsa da).
  • MS-DOS 'komut satırı kabuğunun komut dosyası dili nispeten kısa ve orta derecede güçlüydü, ancak günümüzdeki PowerShell, Bash, vb.
  • MS-DOS'un daha sonraki sürümleri karmaşıklık içinde büyüdü ve bazı eski derlemeleri 'C' ile yazılmış yeni kodla ekledi / değiştirirken, MS-DOS'un çoğu x86 derlemesinde verimlilik için yazılmış ve o zamanlar için tek yol olduğu için birçok donanım aygıtına ve çevre birimine erişebilir. Bu, MS-DOS'u x86 olmayan CPU'lara taşınabilir yapmaz hale getirdi. Çok eğimliyseniz, MS-DOS'un önceki sürümlerinin ne kadarının x86 derlemesinde yazıldığını görmek için aslında MS-DOS v1.1 ve v2.0 için kaynak kodunu indirebilirsiniz (ipucu: hemen hemen tüm o)!

https://devblogs.microsoft.com/commandline/rumors-of-cmds-death-have-been-greatly-exaggerated/


daha fazla okuma

Sonuç olarak, işlevsellik açısından biraz benzer olabilirler, ancak başka türlü çok farklı olabilirler.


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.