Komut satırı arayüzü - Command-line interface

Bir örneğin ekran görüntüsü Bash oturum GNOME Terminali 3, Fedora 15
Ekran görüntüsü Windows PowerShell 1.0, devam ediyor Windows Vista

Bir komut satırı arayüzü (CLI) süreçler komutlar metin satırları şeklinde bir bilgisayar programına. Arayüzü işleyen programa komut satırı yorumlayıcısı veya komut satırı işlemcisi. İşletim sistemleri bir komut satırı arayüzünü bir kabuk işletim sistemi işlevlerine veya hizmetlerine etkileşimli erişim için. Bu tür erişim, öncelikle kullanıcılara bilgisayar terminalleri 1960'ların ortalarından başlayarak 1970'ler ve 1980'ler boyunca kullanılmaya devam etti. VAX / VMS, Unix sistemler ve kişisel bilgisayar sistemleri DOS, CP / M ve Apple DOS.

Bugün birçok kullanıcı güveniyor grafik kullanıcı arayüzleri ve menü odaklı etkileşimler. Bununla birlikte, bazı programlama ve bakım görevleri grafik kullanıcı arayüzüne sahip olmayabilir ve yine de bir komut satırı kullanabilir.

Komut satırı arayüzüne alternatifler şunları içerir: metin tabanlı kullanıcı arayüzü menüler (Örneğin, IBM AIX SMIT ), Klavye kısayolları ve çeşitli masaüstü metaforları merkezli Işaretçi (genellikle bir fare ). Bunun örnekleri arasında Microsoft Windows, DOS Kabuğu ve Fare Sistemleri PowerPanel. Komut satırı arayüzleri genellikle, bir görüntüleme ekranına sembolleri yerleştirmek için imleç adresleme kullanan ekran yönelimli metin tabanlı kullanıcı arayüzlerini de kullanabilen terminal cihazlarında uygulanır.

Komut satırı arayüzlerine sahip programları otomatikleştirmek genellikle daha kolaydır. komut dosyası oluşturma.

Birçok yazılım sistemi, kontrol ve çalıştırma için komut satırı arayüzleri uygular. Bu, programlama ortamlarını ve yardımcı programları içerir.

Grafik kullanıcı arayüzleriyle karşılaştırma

Simgeler ve pencereler içeren bir grafik kullanıcı arayüzü (GEM 1.1 Masaüstü )

Grafik kullanıcı arabirimiyle karşılaştırıldığında, bir komut satırı arabirimi uygulamak için daha az sistem kaynağı gerektirir. Komutlara seçenekler her komut satırında birkaç karakterle verildiğinden, deneyimli bir kullanıcı bu seçeneklere erişimi daha kolay bulabilir. Tekrarlayan görevlerin otomasyonu, sık kullanılan dizileri depolamak için satır düzenleme ve geçmiş mekanizmalarıyla basitleştirilmiştir; bu uzanabilir komut dosyası dili parametreler ve değişken seçenekleri alabilir. Komutların gözden geçirilmesine veya tekrarlanmasına izin veren bir komut satırı geçmişi tutulabilir.

Bir komut satırı sistemi, kullanıcının referansı için basılı veya çevrimiçi kılavuzlar gerektirebilir, ancak genellikle bir "yardım" seçeneği, bir komutun seçeneklerinin kısa bir incelemesini sağlar. Komut satırı ortamı, farklı sürümler gibi grafiksel geliştirmeler sağlamayabilir. yazı tipleri veya uzatılmış pencereleri düzenle bir GUI'de bulundu. Yeni bir kullanıcının mevcut tüm komutlara ve seçeneklere aşina olması ile karşılaştırıldığında zor olabilir. simgeler ve açılır menüler kılavuzlara tekrar tekrar başvurmadan grafiksel bir kullanıcı arayüzü.

Türler

İşletim sistemi komut satırı arayüzleri

Apple Bilgisayar CommandShell in A / UX 3.0.1

İşletim sistemi (OS) komut satırı arabirimleri genellikle işletim sistemiyle birlikte sağlanan farklı programlardır. Böyle bir metin arabirimini uygulayan bir programa genellikle komut satırı yorumlayıcısı, komut işlemcisi veya kabuk.

Komut satırı yorumlayıcı örnekleri şunları içerir: Aralık DİJİTAL Komut Dili (DCL) içinde OpenVMS ve RSX-11, çeşitli Unix kabukları (sh, ksh, csh, tcsh, zsh, bash, vb.), CP / M 's ÇKP, DOS ' COMMAND.COM yanı sıra OS / 2 ve Windows CMD.EXE programları, ikinci gruplar ağırlıklı olarak DEC'in RSX-11'ine dayanmaktadır ve RSTS CLI'ler. Çoğu işletim sisteminde, varsayılan kabuk programını alternatiflerle değiştirmek mümkündür; örnekler şunları içerir 4DOS DOS için 4OS2 OS / 2 için ve 4NT / Komutu Al pencereler için.

'Kabuk' terimi genellikle bir komut satırı yorumlayıcısını tanımlamak için kullanılsa da, tam anlamıyla bir 'kabuk', tamamen grafik yönelimli olanlar da dahil olmak üzere, kullanıcı arayüzünü oluşturan herhangi bir program olabilir. Örneğin, varsayılan Windows GUI, adlı bir kabuk programıdır. EXPLORER.EXE, WIN.INI yapılandırma dosyasındaki SHELL = EXPLORER.EXE satırında tanımlandığı gibi. Bu programlar kabuklardır ancak CLI'ler değildir.

Uygulama komut satırı arayüzleri

GNU Oktav komut satırı arayüzlü GUI'si

Uygulama programları (işletim sistemlerinden farklı olarak) ayrıca komut satırı arayüzlerine sahip olabilir.

Bir uygulama programı, bu üç ana komut satırı arabirimi mekanizmasının hiçbirini, herhangi birini veya tümünü destekleyebilir:

  • Parametreler: Çoğu işletim sistemi, başlatıldığında bir programa ek bilgi aktarmanın bir yolunu destekler. Bir program bir işletim sistemi komut satırı kabuğundan başlatıldığında, program adıyla birlikte sağlanan ek metin başlatılan programa aktarılır.
  • Etkileşimli komut satırı oturumları: Başlatıldıktan sonra, bir program operatöre metin biçiminde komutlar girmesi için bağımsız bir yol sağlayabilir.
  • Arası iletişim: Çoğu işletim sistemi şu araçları destekler: arası iletişim (Örneğin, standart akışlar veya adlandırılmış borular ). İstemci işlemlerinden gelen komut satırları, bu yöntemlerden biri ile bir CLI programına yeniden yönlendirilebilir.

Bazı uygulamalar, kullanıcıya bir CLI istemi sunan ve girilirken komut satırlarına göre hareket eden yalnızca bir CLI'yi destekler. Diğer programlar hem CLI hem de GUI'yi destekler. Bazı durumlarda, bir GUI basitçe bir sarıcı ayrı bir CLI etrafında çalıştırılabilir dosya. Diğer durumlarda, bir program GUI'sine isteğe bağlı bir alternatif olarak bir CLI sağlayabilir. CLI'ler ve GUI'ler genellikle farklı işlevleri destekler. Örneğin, tüm özellikleri MATLAB, bir Sayısal analiz bilgisayar programı, CLI aracılığıyla kullanılabilirken, MATLAB GUI yalnızca bir özellik alt kümesini açığa çıkarır.

İlk üç gibi erken Sierra oyunları King's Quest oyunlar (1984–1986), karakteri grafik penceresinde hareket ettirmek için dahili bir komut satırından komutlar kullandı.

Tarih

Komut satırı arayüzü, bir zamanlar insanlar tarafından gerçekleştirilen bir diyalog biçiminden gelişti. teleprinter (TTY) insan operatörlerinin uzaktan bilgi alışverişinde bulundukları, genellikle bir seferde bir metin satırı olan makineler. İlk bilgisayar sistemleri, bir insan operatörle etkileşim aracı olarak genellikle teleprinter makinelerini kullanıyordu. Bilgisayar, insandan insana teleprinter modelinin bir ucu oldu. Yani bir insan başka bir insanla bir teleprinter üzerinden iletişim kurmak yerine, bir insan bilgisayarla iletişim kurdu.

Mekanik teleprinter, bir "cam tty", teleprinter'ı taklit eden bir klavye ve ekran. "Akıllı" terminaller tüm ekran üzerinde imleç hareketi veya bilgisayara iletilmek üzere terminalde verilerin yerel olarak düzenlenmesi gibi izin verilen ek işlevler. Olarak mikrobilgisayar devrimi geleneksel - minibilgisayar + terminallerinin yerini aldı - zaman paylaşımı mimari, donanım terminalleri ile değiştirildi terminal emülatörleri - PC'ler aracılığıyla gönderilen terminal sinyallerini yorumlayan PC yazılımı seri bağlantı girişleri. Bunlar tipik olarak bir kuruluşun yeni PC'lerini mevcut mini veya ana bilgisayar bilgisayarlarıyla arayüzlemek veya PC'yi PC'ye bağlamak için kullanıldı. Bu bilgisayarlardan bazıları çalışıyordu Bülten tahtası sistemi yazılım.

Erken işletim sistemi CLI'leri, yerleşik monitör programları ve kolayca değiştirilemez. Kabuğun değiştirilebilir bir bileşen olarak ilk uygulaması, Multics zaman paylaşımı işletim sistemi.[1] 1964'te, MIT Hesaplama Merkezi Personel Louis Pouzin geliştirdi RUNCOM bağımsız değişken değişimine izin verirken komut betiklerini yürütmek için araç.[2] Pouzin "terimini icat etti"kabuk "bir programlama dili gibi komutları kullanma tekniğini açıklamak ve fikrin nasıl uygulanacağına dair bir makale Multics işletim sistemi.[3] Pouzin, 1965'te memleketi Fransa'ya döndü ve ilk Multics kabuğu, Glenda Schroeder.[2]

İlk Unix kabuğu, V6 kabuğu tarafından geliştirilmiştir Ken Thompson 1971'de Bell Laboratuvarları ve Schroeder'in Multics kabuğuna göre modellenmiştir.[4][5] Bourne kabuğu 1977'de V6 kabuğunun yerini almak üzere tanıtıldı. Etkileşimli bir komut yorumlayıcısı olarak kullanılmasına rağmen, aynı zamanda bir komut dosyası dili olarak da düşünülmüştür ve genel olarak yapılandırılmış programlar üretmek için kabul edilen özelliklerin çoğunu içerir. Bourne kabuğu, KornShell (ksh), Almquist kabuğu (kül) ve popüler Bourne-tekrar kabuğu (veya Bash).[5]

İlk mikro bilgisayarların kendileri aşağıdaki gibi bir komut satırı arayüzüne dayanıyordu: CP / M, DOS veya AppleSoft TEMEL. 1980'lerde ve 1990'larda, Apple Macintosh ve Microsoft Windows PC'lerde komut satırı arayüzünü birincil kullanıcı arayüzü olarak gördü. Grafiksel kullanıcı arayüzü. Komut satırı, alternatif bir kullanıcı arayüzü olarak mevcut olmaya devam etti ve genellikle sistem yöneticileri ve sistem yönetimi için diğer ileri düzey kullanıcılar, bilgisayar Programlama ve toplu işlem.

Kasım 2006'da, Microsoft 1.0 sürümünün yayınlandı Windows PowerShell (eski kod adı Monad), geleneksel Unix kabuklarının özelliklerini tescilli nesne yönelimli özellikleri ile birleştiren .NET Framework. MinGW ve Cygwin vardır açık kaynak Unix benzeri bir CLI sunan Windows paketleri. Microsoft sağlar MKS Inc. 's ksh uygulama MKS Korn kabuğu Windows için kendi UNIX için Hizmetler Ayriyeten.

2001'den beri Macintosh işletim sistemi Mac os işletim sistemi bir Unix benzeri işletim sistemi çağrıldı Darwin. Bu bilgisayarlarda, kullanıcılar Unix benzeri bir komut satırı arayüzüne şu komutu çalıştırarak erişebilirler: bağlantı emülatörü program çağrıldı terminal, Applications klasörünün Utilities alt klasöründe bulunan veya kullanarak uzaktan makinede oturum açarak bulunan ssh. Z kabuğu macOS için varsayılan kabuktur; bash, tcsh, ve KornShell ayrıca sağlanır. Önce macOS Catalina, bash varsayılandı.

Kullanım

Bir CLI, geniş (veya rastgele) seçeneklerle birlikte geniş bir komut veya sorgu sözlüğü, saf bir GUI'den daha metin olarak daha hızlı girilebildiğinde kullanılır. Bu tipik olarak aşağıdaki durumdur: işletim sistemi komut kabukları. CLI'ler ayrıca, grafiksel bir kullanıcı arayüzünü desteklemek için yetersiz kaynaklara sahip sistemler tarafından da kullanılır. Bazı bilgisayar dil sistemleri (örneğin Python, İleri, LISP, Rexx ve birçok lehçesi TEMEL ) kodun hızlı değerlendirilmesine izin vermek için etkileşimli bir komut satırı modu sağlayın.

CLI'ler genellikle programcılar ve sistem yöneticileri tarafından mühendislik ve bilimsel ortamlarda ve teknik olarak gelişmiş kişisel bilgisayar kullanıcıları tarafından kullanılır. CLI'ler, komutlar ve yanıtlar kullanılarak görüntülenebildiği için görme engelli kişiler arasında da popülerdir. yenilenebilir Braille ekranları.

Kabuk CLI'nın Anatomisi

Bir işletim sistemi komut satırı arayüzünün genel kalıbı[6][7] dır-dir:

Komut istemi komut param1 param2 param3… paramN
  • Komut istemi - müşteriye bağlam sağlamak için program tarafından oluşturulur.
  • Komut - müşteri tarafından sağlanır. Komutlar genellikle üç sınıftan biridir:
    1. İç komutlar, komut satırı yorumlayıcısının kendisi tarafından tanınır ve işlenir ve herhangi bir harici yürütülebilir dosyaya bağlı değildir.
    2. Dahil komutlar, genellikle işletim ortamının bir parçası olarak kabul edilen ve her zaman işletim sistemine dahil edilen ayrı çalıştırılabilir dosyaları çalıştırır.
    3. Harici komutlar, temel işletim sisteminin parçası olmayan, ancak belirli amaçlar ve uygulamalar için diğer taraflarca eklenen yürütülebilir dosyaları çalıştırır.
  • param1… paramN - İstemci tarafından sağlanan isteğe bağlı parametreler. Parametrelerin biçimi ve anlamı, verilen komuta bağlıdır. Dahil edilen veya Harici komutlar durumunda, parametrelerin değerleri, işletim sistemi tarafından başlatılırken programa (Komut tarafından belirtilir) gönderilir. Parametreler ya Argümanlar veya Seçenekler.

Bu örnekte, komut satırı öğeleri arasındaki sınırlayıcılar boşluk karakterleri ve satır sonu sınırlayıcı, Yeni hat sınırlayıcı. Bu, komut satırı arabirimleri için yaygın olarak kullanılan (ancak evrensel olmayan) bir kuraldır.

Bir CLI genel olarak şunlardan oluşuyor olarak kabul edilebilir: sözdizimi ve anlambilim. sözdizimi tüm komutların uyması gereken gramerdir. Bu durumuda işletim sistemleri, DOS ve Unix her biri, tüm komutların uyması gereken kendi kural kümesini tanımlar. Bu durumuda gömülü sistemler gibi her satıcı Nortel, Ardıç Ağları veya Cisco Sistemleri, kendi CLI'lerindeki tüm komutların uyduğu kendi özel kural kümesini tanımlar. Bu kurallar ayrıca bir kullanıcının komutlar sisteminde nasıl gezineceğini de belirler. anlambilim Ne tür işlemlerin mümkün olduğunu, bu işlemlerin ne tür veriler üzerinde gerçekleştirilebileceğini ve dilbilgisinin bu işlemleri ve verileri nasıl temsil ettiğini - sözdizimindeki sembolik anlamı - tanımlayın.

İki farklı CLI, sözdizimi veya anlambilim konusunda hemfikir olabilirler, ancak her ikisi üzerinde de hemfikir olduklarında, kullanıcıların her iki CLI'yi de hiçbir şey öğrenmeye gerek kalmadan kullanmalarına ve komut dosyalarının yeniden kullanılmasına olanak tanıyacak kadar benzer oldukları kabul edilebilir. .

Basit bir CLI, bir bilgi istemi görüntüler, kullanıcı tarafından yazılan "komut satırını" kabul eder. Giriş anahtarı, daha sonra belirtilen komutu yürütün ve sonuçların veya hata mesajlarının metinsel görüntüsünü sağlayın. Gelişmiş CLI'ler, belirtilen komutu çalıştırmadan önce komut satırını doğrular, yorumlar ve parametre olarak genişletir ve isteğe bağlı olarak çıktısını yakalar veya yeniden yönlendirir.

Bir GUI'deki bir düğme veya menü öğesinin aksine, bir komut satırı genellikle kendi kendini belgelendirir ve kullanıcının ne yapmak istediğini tam olarak belirtir. Ek olarak, komut satırları genellikle birçok varsayılanlar sonuçları özelleştirmek için değiştirilebilir. Yararlı komut satırları, bir karakter dizesi veya takma ad tam komutu temsil etmek için veya birkaç komut, daha karmaşık bir sıra gerçekleştirmek için gruplanabilir - örneğin, programı derleyin, kurun ve çalıştırın - komut prosedürü veya komut dosyası olarak adlandırılan tek bir varlık oluşturma bir komut. Bu avantajlar, bir kullanıcının karmaşık bir komutu veya bir dizi komutu yalnızca bir kez çözmesi gerektiği anlamına gelir, çünkü bunlar tekrar kullanılmak üzere kaydedilebilir.

Bir CLI kabuğuna verilen komutlar genellikle aşağıdaki biçimlerden birindedir:

  • doSomething nasıl yapılır
  • doSomething nasıl sourceFile destinationFile
  • doSomething nasıl outputFile
  • doSomething nasıl | doSomething nasıl | doSomething nasıl> outputFile

nerede bir şey yap aslında bir fiil, Nasıl bir zarf (örneğin, komut "ayrıntılı olarak" veya "sessizce" yürütülmeli mi) ve toFiles komutun üzerinde işlem yapması gereken bir nesne veya nesneler (tipik olarak bir veya daha fazla dosya). > üçüncü örnekte bir yeniden yönlendirme operatörü, komut satırı yorumlayıcısına komutun çıktısını kendi standart çıktısına (ekrana) değil, adlandırılmış dosyaya göndermesini söyler. Bu dosyanın üzerine yazacaktır. Kullanma >> çıktıyı yeniden yönlendirecek ve dosyaya ekleyecektir. Başka bir yeniden yönlendirme operatörü, dikey çubuk (|), bir boru hattı burada bir komutun çıktısı sonraki komutun girdisi olur.

CLI ve kaynak koruması

Kullanılabilir komutlar seti, hangi yolların göründüğünü değiştirerek değiştirilebilir. PATH Çevre değişkeni. Unix altında, komutların da şu şekilde işaretlenmesi gerekir: çalıştırılabilir Dosyalar. Yol değişkenindeki dizinler verildikleri sırayla aranır. Yolu yeniden sıralayarak, örn. Varsayılan tam tersi olduğunda OS2 E.EXE yerine OS2 MDOS E.EXE. Yürütülebilir dosyaların yeniden adlandırılması da işe yarar: örneğin insanlar sık ​​sık favori düzenleyicilerini EDIT olarak yeniden adlandırırlar.

Komut satırı, gelişmiş dahili komutlara erişim gibi mevcut komutların kısıtlanmasına izin verir. Pencereler CMD.EXE bunu yapar. Genellikle, paylaşılan yazılım programları, komut isteminden 'yöneticiniz toplu iş dosyalarını çalıştırmayı devre dışı bıraktı' komutunun yazdırılması dahil olmak üzere komut aralığını sınırlar.

Aşağıdakiler gibi bazı CLI'ler ağ yönlendiricileri hiyerarşisi var modlar, her modda desteklenen farklı komutlarla. Komut seti, güvenlik, sistem, arayüz vb. İle ilişkilendirilerek gruplandırılır. Bu sistemlerde kullanıcı bir dizi alt modda gezinebilir. Örneğin, CLI'nin adı verilen iki modu varsa arayüz ve sistemi, kullanıcı şu komutu kullanabilir: arayüz Arayüz moduna girmek için. Bu noktada, kullanıcı arayüz modundan çıkıp sistem moduna girene kadar sistem modundan komutlara erişilemeyebilir.

Komut istemi

Bir istemi BBC Micro açıldıktan veya donanımdan sıfırlandıktan sonra

Bir komut istemi (veya sadece Komut istemi), komutları kabul etmeye hazır olduğunu göstermek için bir komut satırı arayüzünde kullanılan bir (bir veya daha fazla) karakter dizisidir. Kelimenin tam anlamıyla istemler kullanıcının harekete geçmesi. Bir bilgi istemi genellikle karakterlerden biriyle biter $, %, #,[8][9] :, > veya -[10] ve genellikle mevcut yolun yolu gibi diğer bilgileri içerir çalışma dizini ve ana bilgisayar adı.

Bir çoğunda Unix ve türev sistemler istem genellikle şu şekilde biter: $ veya % kullanıcı normal bir kullanıcıysa, ancak # eğer kullanıcı bir süper kullanıcı (Unix terminolojisinde "kök").

Son kullanıcılar genellikle istemleri değiştirebilir. Ortama bağlı olarak, komut istemini daha bilgilendirici veya görsel olarak hoş hale getirmek için renkler, özel karakterler ve diğer öğeleri (geçerli zaman için değişkenler ve işlevler, kullanıcı, kabuk numarası veya çalışma dizini gibi) içerebilirler. çeşitli makinelerdeki oturumları ayırt etmek veya komutların mevcut iç içe geçme düzeyini belirtmek için. Bazı sistemlerde, dış programların komut satırı yorumlayıcısı tarafından komut istemi görüntülenirken çağrılmasına neden olmak için bilgi istemi tanımındaki özel simgeler kullanılabilir.

DOS 'COMMAND.COM ve Windows NT'lerde cmd.exe kullanıcılar istemi bir KOMUT İSTEMİ komut veya doğrudan ilgili değerin değerini değiştirerek %KOMUT İSTEMİ% Çevre değişkeni. Çoğu modern sistemin varsayılanı olan C: > stil, örneğin, PROMPT $ P $ G. Eski DOS sistemlerinin varsayılanı, C> sadece tarafından elde edilir KOMUT İSTEMİbazı sistemlerde bu daha yeni C: > style, disket sürücüler A: veya B: üzerinde kullanılmadıkça; bu sistemlerde PROMPT $ N $ G otomatik varsayılanı geçersiz kılmak ve açıkça eski stile geçmek için kullanılabilir.

Çoğu Unix sistemi, $ PS1 değişken (İstem Dizesi 1),[11] diğer değişkenler de bilgi istemini etkileyebilir (buna bağlı olarak kabuk Kullanılmış). İçinde bash kabuk, formun bir istemi:

[zaman] kullanıcı @ host: work_dir $

komutu vererek ayarlanabilir

ihracat PS1='[ t]  u @  H:  W $'

İçinde zsh $ RPROMPT değişken, ekranın sağ tarafındaki isteğe bağlı bir "komut istemini" kontrol eder. Metin girişinin konumunun değişmemesi nedeniyle gerçek bir uyarı değildir. Bilgi istemi ile aynı satırda, ancak sağa yaslanmış olarak bilgi görüntülemek için kullanılır.

İçinde RISC OS komut istemi bir * sembol ve dolayısıyla (OS) CLI komutlarına genellikle "yıldız komutları" adı verilir.[12] Aynı komutlara diğer komut satırlarından da erişilebilir (örneğin BBC TEMEL komut satırı), komutun önüne bir *.

Argümanlar

Komut ve bağımsız değişkenlere ayrıştırmayı gösteren bir MS-DOS komut satırı

Bir komut satırı argümanı veya parametre program başlatıldığında bir programa sağlanan bilgi öğesidir. Bir program, bilgi kaynaklarını veya hedeflerini tanımlayan veya programın işleyişini değiştiren birçok komut satırı argümanına sahip olabilir.

Bir komut işlemcisi etkin olduğunda, bir program genellikle adını ve ardından komut satırı argümanları (varsa) yazarak çağrılır. Örneğin, Unix ve Unix benzeri ortamlar, komut satırı argümanına bir örnek:

rm dosyası.s

"file.s", programa şunu söyleyen bir komut satırı argümanıdır rm "file.s" dosyasını kaldırmak için.

Gibi bazı programlama dilleri C, C ++ ve Java, bir programın komut satırı bağımsız değişkenlerini, bunları dize parametreleri olarak işleyerek yorumlamasına izin verin. ana işlev. Gibi diğer diller Python, işletim sistemine özgü API (işlevsellik) aracılığıyla sys modül, ve özellikle sys.argv "komut satırı argümanları" için.

İçinde Unix benzeri işletim sistemleri, bir dosya adı yerine kullanılan tek bir tire, bir programın şuradan gelen verileri işlemesi gerektiğini belirten özel bir değerdir. standart girdi veya veriyi standart çıktı.

Komut satırı seçeneği

Bir komut satırı seçeneği ya da sadece seçenek (olarak da bilinir bayrak veya değiştirmek) bir komutun işleyişini değiştirir; etki, komutun programı tarafından belirlenir. Seçenekler, boşluklarla ayrılmış olarak komut satırındaki komut adını takip eder. İlk seçenekten önce boşluk olması her zaman gerekli değildir, örneğin Dir /? ve DIR /? aynı etkiye sahip olan DOS'ta[10] DIR komutunun mevcut seçeneklerini listelemek için dir --help (Unix'in birçok sürümünde) yapar seçeneğin önünde en az bir boşluk olmasını gerektirir (ve büyük / küçük harfe duyarlıdır).

Seçeneklerin biçimi, işletim sistemleri arasında büyük farklılıklar gösterir. Çoğu durumda sözdizimi, bir işletim sistemi gerekliliğinden ziyade gelenekseldir; tüm komut satırı basitçe, yorumlayıcı komut adının nerede bittiğini ve argümanlarının ve seçeneklerinin nerede başladığını söyleyebildiği sürece programcının istediği şekilde işleyebilen programa iletilen bir dizedir.

Bazı kuralları açıklamak için tümü bir dizindeki dosyaları listelemeyle ilgili olan komut satırı seçeneklerinin birkaç temsili örneği:

İşletim sistemiKomutGeçerli alternatifNotlar
OpenVMSdizin / sahipDirektör / Sahiptalimat vermek dizin dosyaların sahipliğini de görüntülemek için komut.
Dizin komut adının büyük / küçük harfe duyarlı olmadığını ve benzersiz kalması için gerektiği kadar az harfle kısaltılabileceğini unutmayın.
pencerelerDIR / Q / O: S d *dir / q d * / o: sAdları "D" ile başlayan dosyaların sahipliğini boyuta göre sıralanmış, en küçük başta olmak üzere görüntüler.
D * bağımsız değişkeninin etrafındaki boşluklara dikkat edin.
Unix benzeri sistemlerils -lS D *ls -S -l D *"D" ile başlayan (ancak "d" değil) uzun formatlı dosya ve dizinlerde, boyuta göre sıralanmış (en büyüğü önce) görüntülenir.
Tüm argümanların ve seçeneklerin etrafında boşluklar gereklidir, ancak bazıları birlikte çalıştırılabilir, örn. -IS aynıdır -l-S.
Veri Genel RDOS CLIliste / e / s 04-26-80 / bListe / S / E 4-26-80 / B26 Nisan 1980'den önce oluşturulan dosyalar için her özniteliği listeleyin.
Tarih bağımsız değişkeninin sonundaki / B'nin bir yerel anahtar, bu argümanın anlamını değiştirirken, / S ve / E Küresel değişimler, yani tüm komuta uygulayın.
Kısaltma komutları

İçinde Multics, komut satırı seçenekleri ve alt sistem anahtar sözcükleri kısaltılabilir. Bu fikir, PL / I programlama dili, kısaltılmış anahtar kelimeleriyle (ör. STRINGRANGE için STRG ve DECLARE için DCL). Örneğin, Multics "forum" alt sisteminde, -long_subject parametre kısaltılabilir -lgsj. Multics komutlarının kısaltılması da yaygındır, tipik olarak komut isimleri oluşturmak için alt çizgilerle birlikte dizilen kelimelerin ilk harflerine karşılık gelir. yaptı için delete_iacl_dir.

Diğer bazı sistemlerde kısaltmalar otomatiktir; örneğin, bir komut adının ilk karakterlerinin onu benzersiz şekilde tanımlamasına yetecek kadar izin verilmesi (örneğin SU kısaltması olarak SÜPER KULLANICI) diğerlerinde önceden programlanmış bazı özel kısaltmalar olabilir (ör. MD için MKDIR COMMAND.COM'da) veya toplu komut dosyaları ve takma adlar aracılığıyla kullanıcı tanımlı (ör. takma ad md mkdir içinde tcsh ).

DOS, Windows, OS / 2'de seçenek kuralları

DOS, OS / 2 ve Windows'ta, COMMAND.COM veya CMD.EXE'den (veya kendi komutlarından) çağrılan farklı programlar, aynı işletim sistemi içinde farklı sözdizimi kullanabilir. Örneğin:

  • Seçenekler, "karakterleri değiştir" seçeneklerinden biriyle gösterilebilir: /, -veya birine izin verilebilir. Aşağıya bakınız.
  • Olabilir veya olmayabilir harfe duyarlı.
  • Bazen seçenekler ve argümanları birlikte çalıştırılır, bazen boşlukla ayrılır ve bazen bir karakterle, tipik olarak : veya =; Böylece Prog -fFilename, Prog -f Dosya Adı, Prog -f: Dosya adı, Prog -f = Dosya adı.
  • Bazı programlar tek karakterli seçeneklerin birleştirilmesine izin verir;[10] diğerleri yapmaz. Anahtar -fA aynı anlama gelebilir -f -A,[10] veya yanlış olabilir veya geçerli ancak farklı bir parametre olabilir.

İçinde DOS, OS / 2 ve pencereler, eğik çizgi (/) en yaygın olanıdır, ancak bazen tire-eksi işareti de kullanılır. DOS'un birçok sürümünde (MS-DOS / PC DOS 2.xx ve üzeri, tüm sürümleri DR-DOS 5.0'dan beri PTS-DOS, Gömülü DOS, FreeDOS ve RxDOS ) karakter değiştir (bazen kısaltılmıştır şalter veya Switchchar) kullanılacak olan, bir sistem çağrısı (Zeka 21s / AX = 3700h). Bu API tarafından döndürülen varsayılan karakter: /, ancak yukarıda belirtilen sistemlerde, her zaman döndüren Datalight ROM-DOS ve MS-DOS / PC DOS 5.0 ve sonraki sürümler dışında kısa çizgi eksi ile değiştirilebilir. / bu aramadan (mevcut birçok aramadan biri yoksa TSR'ler Yeniden etkinleştirmek için SwitChar özelliği yüklenir). Bu sistemlerin bazılarında (MS-DOS / PC DOS 2.xx, DOS Plus 2.1, DR-DOS 7.02 ve üstü, PTS-DOS, Gömülü DOS, FreeDOS ve RxDOS), ayar ayrıca bir sistem tarafından önceden yapılandırılabilir. SWITCHAR direktif CONFIG.SYS. General Software'in Gömülü DOS'u aynı amaç için bir SWITCH komutu sağlar, oysa 4DOS ayarın üzerinden değiştirilmesine izin verir SETDOS / W: n.[13] DR-DOS altında, eğer ayar /ilk dizin ayırıcı \ ekranında KOMUT İSTEMİ parametre $ G eğik çizgiye dönüşecek / (aynı zamanda DOS, FlexOS, 4680 OS, 4690 OS, OS / 2 ve Windows'ta geçerli bir dizin ayırıcısıdır), böylece değişikliği göstermek için görsel bir ipucu görevi görür.[10] Ayrıca, mevcut ayar yerleşik yardım ekranlarına da yansıtılır.[10] DR-DOS'un bazı sürümleri COMMAND.COM ayrıca bir PROMPT jetonunu destekler $/ mevcut ayarı görüntülemek için. COMMAND.COM DR-DOS 7.02 ayrıca bir sözde ortam değişkeni isimli %/% taşınabilir toplu işlerin yazılmasına izin vermek için.[14][15] Birkaç harici DR-DOS komutu ek olarak bir Çevre değişkeni % SWITCHAR% sistem ayarını geçersiz kılmak için.

Ancak, birçok programın kullanımı için fiziksel olarak / komut satırı bağımsız değişkenlerini ayrıştırmadan önce anahtar ayarını almak yerine yalnızca. Çok küçük bir sayı, özellikle Unix benzeri sistemlerden gelen bağlantı noktaları, anahtar karakteri ona ayarlanmasa bile "-" kabul edecek şekilde programlanmıştır (örneğin netstat ve pingile birlikte verilir Microsoft Windows, / kabul edecek mi? mevcut seçenekleri listelemek için seçenek, ancak liste "-" kuralını belirtecektir).

Unix benzeri sistemlerde seçenek kuralları

İçinde Unix benzeri sistemler, ASCII tire-eksi seçenekler başlar; yeni (ve GNU ) kongre kullanmaktır iki tire ve sonra bir kelime (ör. --oluşturmak) eski kural (ve hala sık kullanılan seçenekler için bir seçenek olarak mevcuttur) seçeneğin kullanımını belirlemek için bir tire ve sonra bir harf (örneğin, -c); bir kısa çizginin ardından iki veya daha fazla harf varsa, bu iki seçeneğin belirtildiği anlamına gelebilir veya ikinci ve sonraki harflerin ilk seçenek için bir parametre (dosya adı veya tarih gibi) olduğu anlamına gelebilir.

Harfleri takip etmeyen iki kısa çizgi-eksi karakter (--), kalan bağımsız değişkenlerin seçenekler olarak ele alınmaması gerektiğini gösterebilir; bu, örneğin bir dosya adının kendisi bir kısa çizgiyle başlıyorsa veya başka bağımsız değişkenler bir iç komut için belirtilmişse (örn. sudo ). Çift tire eksi işaretleri bazen daha açıklayıcı seçenek adlarının kullanıldığı "uzun seçeneklerin" önüne geçmek için de kullanılır. Bu, ortak bir özelliktir GNU yazılım. getopt işlev ve program ve Getopts komutu genellikle komut satırı seçeneklerini ayrıştırmak için kullanılır.

Unix komut adları, argümanları ve seçenekleri büyük / küçük harfe duyarlıdır (diğer işletim sistemlerinden gelen popüler komutların Unix'e taşındığı birkaç örnek dışında).

Diğer sistemlerdeki seçenek kuralları

FlexOS, 4680 İşletim Sistemi ve 4690 İşletim Sistemi kullanım -.

CP / M tipik olarak kullanılır [.

Konuşma İzleme Sistemi (CMS) tek bir sol parantez komutun sonundaki seçenekleri diğer bağımsız değişkenlerden ayırmak için. Örneğin, aşağıdaki komutta seçenekler, hedef dosyanın varsa değiştirilmesi gerektiğini ve kaynak dosyanın tarih ve saatinin kopyada tutulması gerektiğini belirtir:KOPYALA kaynak dosyası bir hedef dosya b (ESKİ DEĞİŞTİR

Veri Genel CLI'nin altında RDOS, AOS, vb. işletim sistemleri ile birlikte gelen CLI sürümü Business Basic, sadece kullanır / anahtar karakteri büyük / küçük harfe duyarlı değildir ve bazı bağımsız değişkenlerdeki "yerel anahtarların" yorumlanma biçimini kontrol etmesine izin verir. MAC / U LIB / S A B C $ LPT / L makro assembler komutunun kullanıcı sembollerini eklemek için genel "U" seçeneğine sahiptir, ancak biri geçiş 2'de LIB'yi ve diğeri yazıcıya doğrudan listeleme $ LPT'yi belirtmek için iki yerel anahtar atlanmalıdır.

Yerleşik kullanım yardımı

Bir CLI'nin eleştirilerinden biri, mevcut eylemler konusunda kullanıcıya ipucu olmamasıdır.[kaynak belirtilmeli ] Buna karşılık, GUI'ler genellikle kullanıcıyı menüler, simgeler veya diğer görsel ipuçları ile mevcut eylemler hakkında bilgilendirir.[kaynak belirtilmeli ] Bu sınırlamanın üstesinden gelmek için, birçok CLI programı, tipik olarak argüman olmadan veya şunlardan biri olmadan çağrıldığında, geçerli parametrelerinin kısa bir özetini görüntüler. ?, -?, -h, -H, /?, / h, / H, /Yardım, -Yardımveya --Yardım.[10][16][17]

Ancak, kullanım yardımını göstermesi umuduyla parametresiz bir program adı girmek tehlikeli olabilir, çünkü komut satırı bağımsız değişkenleri isteğe bağlı olan programlar ve komut dosyaları başka bir bildirimde bulunulmadan yürütülecektir.

En azından yardım parametresi için istenmesine rağmen, programlar yukarıda örneklenen tüm seçenek giriş karakterlerini desteklemeyebilir. komut satırı seçenek karakteri -den değiştirilebilir / -e -, programlar sorgulayabilir SwitChar Mevcut ayarı belirlemek için API. Bu nedenle, bir program hepsini destekleyecek şekilde yapılandırılmamışsa, bir kullanıcının güvenilir bir şekilde yardım talep edebilmesi için bile mevcut ayarı bilmesi gerekebilir. SwitChar olarak değiştirildiyse - ve bu nedenle / karakter alternatif yol sınırlayıcı olarak DOS komut satırında da kabul edilir, programlar aşağıdaki gibi seçenekleri yanlış yorumlayabilir / h veya / H yardım parametreleri yerine yollar olarak.[10] Bununla birlikte, ilk veya tek parametre olarak verilirse, çoğu DOS programı, mevcut SwitChar ayarından bağımsız olarak, bunu geleneksel olarak yardım isteği olarak kabul edecektir.[10][13]

Bazı durumlarda, bir program için farklı yardım seviyeleri seçilebilir. Bunu destekleyen bazı programlar, yardım parametresine isteğe bağlı bir argüman olarak bir ayrıntı düzeyi verilmesine izin verir ( / H: 1, / H: 2, vb.) veya soru işaretli yardım parametreleri hakkında kısa bir yardım ve diğer yardım seçenekleri için daha uzun bir yardım ekranı verirler.[18]

Programa bağlı olarak, kabul edilen parametrelere ilişkin ek veya daha spesifik yardım, bazen söz konusu parametreyi yardım parametresine bir argüman olarak sağlayarak veya tam tersi ( / H: W veya içinde / W :? (varsayarsak / W program tarafından desteklenen başka bir parametre olabilir)).[19][20][17][16][18][nb 1]

Yardım parametresine benzer bir şekilde, ancak çok daha az yaygın olarak, bazı programlar, "hakkında" parametresi gibi bir "hakkında" parametresiyle çağrıldığında kendileri hakkında ek bilgiler (mod, durum, sürüm, yazar, lisans veya iletişim bilgileri gibi) sağlar. -!, /!, -hakkındaveya --hakkında.[16]

Beri ? ve ! karakterler genellikle komut satırında başka amaçlara da hizmet ederler, tüm senaryolarda kullanılamayabilirler, bu nedenle karşılık gelen yardım bilgilerine erişmek için tek seçenek olmamalıdır.

Nın sonu YARDIM komut çıktısı RT-11SJ bir VT100

Bir programın yerleşik dahili yardımında sağlanandan daha ayrıntılı yardım gerekiyorsa, birçok sistem özel bir harici "Yardım komut"command (veya benzeri), bir komut adını çağıran parametre olarak kabul eder ve harici bir yardım sistemini çağırır.

DR-DOS ailesinde yazarak /? veya / H -de COMMAND.COM bir komut yerine komut istemi, dinamik olarak oluşturulmuş mevcut dahili komutların bir listesini görüntüler;[10] 4DOS ve NDOS yazarak aynı özelliği destekleyin ? anında[13] (DR-DOS COMMAND.COM'un daha yeni sürümleri tarafından da kabul edilmektedir); dahili komutlar, tek tek devre dışı bırakılabilir veya yeniden etkinleştirilebilir SETDOS / I.[13] Buna ek olarak, DR-DOS COMMAND.COM'un bazı yeni sürümleri de bir ?% mevcut yerleşik listeyi görüntülemek için komut sözde ortam değişkenleri. Hızlı yardım referansı olarak amaçlarının yanı sıra bu, temeldeki komut satırı işlemcisinin olanaklarını sorgulamak için toplu işlerde kullanılabilir.[10]

Komut açıklaması sözdizimi

Yerleşik kullanım yardımı ve adam sayfaları geçerli komut formunu açıklamak için genellikle küçük bir sözdizimi kullanır:[21][22][23][nb 2]

  • açılı ayraçlar gereklidir parametreler: ping
  • köşeli parantezler isteğe bağlı parametreler: mkdir [-p]
  • için elipsler tekrarlanan öğeler: cp [kaynak2…]
  • dikey çubuklar tercih öğe sayısı: netstat {-t | -u}

Bu karakterlerin, doğrudan kabukta kullanıldıklarından farklı anlamlara sahip olduğuna dikkat edin. Parametre adının değişmez bir dizeyle karıştırılması olası olmadığında açılı ayraçlar ihmal edilebilir.

Boşluk karakteri

Pek çok bilgi işlem alanında, ancak özellikle komut satırında, boşluk karakteri iki farklı ve uyumsuz işleve sahip olduğu için sorunlara neden olabilir: bir komutun veya parametrenin parçası olarak veya bir parametre veya ad olarak ayırıcı. Belirsizlik, ilk etapta dosya ve dizin adlarında gömülü boşlukların yasaklanmasıyla önlenebilir (örneğin, bunların yerine alt çizgi _) veya tırnak karakterleri arasına gömülü boşluklar ekleyerek veya bir kaçış karakteri uzaydan önce, genellikle bir ters eğik çizgi (\). Örneğin

Uzun yol / Uzun program adı Parametre bir Parametre iki

belirsiz (program adının "program adı" parçası mı yoksa iki parametre mi?); ancak

Uzun_yol / Uzun_program_adı Parametre_bir Parametre_iki …,
LongPath / LongProgramName ParameterOne ParameterTwo …,
"Uzun yol / Uzun program adı" "Parametre bir" "Parametre iki"

ve

Uzun yol / Uzun program adı Parametre bir Parametre iki

belirsiz değildir. Unix tabanlı işletim sistemleri, fiyat teklifi ihtiyacını en aza indirmek için gömülü alanların kullanımını en aza indirir. İçinde Microsoft Windows, genellikle tırnak işareti kullanmak gerekir çünkü gömülü boşluklar (dizin adları gibi) yaygındır.

Komut satırı yorumlayıcısı

Çoğu kullanıcı kabuğu etkileşimli bir komut yorumlayıcısı olarak düşünse de, aslında her bir ifadenin bir komut çalıştırdığı bir programlama dilidir. Komut yürütmenin hem etkileşimli hem de programlama yönlerini karşılaması gerektiği için, tasarım olduğu kadar tarihe göre de şekillenen tuhaf bir dildir.

Dönem komut satırı yorumlayıcısı (CLI) uygulanır bilgisayar programları için tasarlandı yorumlamak bir kullanıcı tarafından girilebilen bir metin satırı dizisi, bir dosya veya başka bir tür veri akışı. Yorum bağlamı genellikle verilenlerden biridir. işletim sistemi veya Programlama dili.

Komut satırı yorumlayıcıları, kullanıcıların çeşitli komutları çok verimli (ve genellikle kısa süreli) bir şekilde vermelerine olanak tanır. Bu, kullanıcının komutların adlarını ve parametrelerini ve sözdizimini bilmesini gerektirir. dil bu yorumlanır.

Unix #! mekanizması ve OS / 2 EXTPROC komutu, toplu iş dosyalarının harici işlemcilere aktarılmasını kolaylaştırır. One can use these mechanisms to write specific command processors for dedicated uses, and process external data files which reside in batch files.

Many graphical interfaces, such as the OS/2 Sunum Yöneticisi and early versions of Microsoft Windows use command-lines to call helper programs to open documents and programs. The commands are stored in the graphical shell[açıklama gerekli ] or in files like the registry or the OS / 2 OS2USER.INI dosya.

Erken tarih

Bir Teletype Modeli 33 ASR teleprinter keyboard with punched tape reader and punch
ARALIK VT52 terminal

The earliest computers did not support interactive input/output devices, often relying on sense switches and lights to communicate with the computer operator. This was adequate for parti systems that ran one program at a time, often with the programmer acting as operator. This also had the advantage of low overhead, since lights and switches could be tested and set with one machine instruction. Later a single sistem konsolu was added to allow the operator to communicate with the system.

From the 1960s onwards, user interaction with computers was primarily by means of command-line interfaces, initially on machines like the Teletype Modeli 33 ASR, but then on early CRT tabanlı bilgisayar terminalleri benzeri VT52.

All of these devices were purely text based, with no ability to display graphic or pictures.[nb 3] For business Uygulama programları, text-based menüler were used, but for more general interaction the command line was the interface.

Around 1964 Louis Pouzin introduced the concept and the name kabuk içinde Multics, building on earlier, simpler facilities in the Uyumlu Zaman Paylaşım Sistemi (CTSS).[25][daha iyi kaynak gerekli ]

From the early 1970s the Unix operating system adapted the concept of a powerful command-line environment, and introduced the ability to boru the output of one command in as input to another. Unix also had the capability to save and re-run strings of commands as "shell scripts " which acted like custom commands.

The command-line was also the main interface for the early home computers such as the Commodore PET, Apple II ve BBC Micro – almost always in the form of a TEMEL interpreter. When more powerful business oriented microcomputers arrived with CP / M ve sonra DOS gibi bilgisayarlar IBM PC, the command-line began to borrow some of the syntax and features of the Unix shells such as Globbing ve borular of output.

The command-line was first seriously challenged by the PARC GUI approach used in the 1983 Apple Lisa ve 1984 Apple Macintosh. A few computer users used GUIs such as GEOS ve Windows 3.1 but the majority of IBM PC users did not replace their COMMAND.COM shell with a GUI until Windows 95 1995 yılında piyasaya sürüldü.[26][27]

Modern usage as an operating system shell

While most non-expert computer users now use a GUI almost exclusively, more advanced users have access to powerful command-line environments:

  • The default VAX/VMS command shell, using the DCL language, has been ported to Windows systems at least three times, including PC-DCL and Acceler8 DCL Lite. Unix command shells have been ported to VMS and DOS/Windows 95 and Windows NT types of operating systems. COMMAND.COM and Windows NT cmd.exe have been ported to Windows CE and presumably works on Microsoft Windows NT Embedded 4.0
  • pencereler Kaynak Seti ve Windows Unix Hizmetleri include Korn and the Bourne shells along with a Perl interpreter (Services of Unix contains Active State ActivePerl in later versions and Interix for versions 1 and 2 and a shell compiled by Microsoft)
  • IBM OS/2 (and derivatives such as eComStation ve ArcaOS ) var cmd.exe işlemci. This copies the COMMAND.COM commands, with extensions to REXX.
  • cmd.exe and COMMAND.COM are part of the Windows NT stream of operating systems.
  • Yet another cmd.exe is a stripped-down shell for Windows CE 3.0.
  • An MS-DOS type interpreter called PocketDOS has been ported to Windows CE machines; the most recent release is almost identical to MS-DOS 6.22 and can also run Windows 1, 2, and 3.0, QBasic and other development tools, 4NT and 4DOS. The latest release includes several shells, namely MS-DOS 6.22, PC DOS 7, DR DOS 3.xx, and others.
  • Windows users have a CLI environment named Windows Komut İstemi, which might use the CScript interface to alternate programs. Güç kalkanı provides a command-line interface, but its applets are not written in Kabuk betiği. Uygulamaları Unix kabuğu are also available as part of the POSIX sub-system,[28] Cygwin, MKS Araç Seti, UWIN, Hamilton C shell and other software packages. Available shells for these interoperability tools include csh, ksh, sh, bash, rsh, tclsh and less commonly zsh, psh
  • COMMAND.COM (4DOS), Windows NT cmd.exe (4NT, TCC), and OS/2 cmd.exe (4OS2) and others based on them are enhanced shells which can be a replacement for the native shell or a means of enhancement of the default shell.
  • Implementations of PHP have a shell for interactive use called php-cli.
  • Standart Tcl / Tk has two interactive shells, Tclsh and Wish, the latter being the GUI version.
  • Python, Yakut, Lua, XLNT, and other interpreters also have command shells for interactive use.
  • FreeBSD kullanır tcsh as its default interactive shell for the süper kullanıcı, ve kül as default scripting shell.
  • elma Mac os işletim sistemi[nb 4] ve birçok Linux dağıtımları var Bash uygulaması Unix kabuğu. Early versions of macOS used tcsh as the default shell.
  • Gömülü Linux (and other embedded Unix benzeri ) devices often use the Kül implementation of the Unix shell, as part of Meşgul kutusu.
  • Android kullanır mksh kabuk,[29][30] which replaces a shell derived from kül[31] that was used in older Android versions, supplemented with commands from the separate toolbox[32] ikili.
  • Routers with Cisco IOS,[33] Junos[34] and many others are commonly configured from the command line.

Komut dosyası oluşturma

Most command-line interpreters support komut dosyası oluşturma, to various extents. (They are, after all, interpreters of an interpreted programming language, albeit in many cases the language is unique to the particular command-line interpreter.) They will interpret scripts (variously termed shell scripts veya toplu dosyalar ) written in the dil that they interpret. Some command-line interpreters also incorporate the interpreter engines of other languages, such as REXX, in addition to their own, allowing the executing of scripts, in those languages, directly within the command-line interpreter itself.

Tersine, scripting programming languages, in particular those with an değerlendirme işlevi (such as REXX, Perl, Python, Yakut veya Jython ), can be used to implement command-line interpreters and filters. For a few işletim sistemleri en önemlisi DOS, such a command interpreter provides a more flexible command-line interface than the one supplied. In other cases, such a command interpreter can present a highly customised user interface employing the user interface and input/output facilities of the language.

Other command-line interfaces

The command line provides an interface between programs as well as the user. In this sense, a command line is an alternative to a dialog box. Editors and databases present a command line, in which alternate command processors might run. On the other hand, one might have options on the command line, which opens a dialog box. The latest version of 'Take Command' has this feature. DBase used a dialog box to construct command lines, which could be further edited before use.

Programs like BASIC, diskpart, Edlin, and QBASIC all provide command-line interfaces, some of which use the system shell. Basic is modeled on the default interface for 8-bit Intel computers. Calculators can be run as command-line or dialog interfaces.

Emacs provides a command-line interface in the form of its minibuffer. Commands and arguments can be entered using Emacs standard text editing support, and output is displayed in another buffer.

There are a number of text mode games, like Macera veya King's Quest 1-3, which relied on the user typing commands at the bottom of the screen. One controls the character by typing commands like 'get ring' or 'look'. The program returns a text which describes how the character sees it, or makes the action happen. metin macerası Bir Otostopçunun Galaksi Rehberi, bir parça etkileşimli kurgu dayalı Douglas Adam's book of the same name, is a teletype-style command-line game.

The most notable of these interfaces is the standart akışlar interface, which allows the output of one command to be passed to the input of another. Text files can serve either purpose as well. This provides the interfaces of piping, filters and redirection. Under Unix, devices are files too, so the normal type of file for the shell used for stdin,stdout and stderr is a tty device file.

Another command-line interface allows a shell program to launch helper programs, either to launch documents or start a program. The command is processed internally by the shell, and then passed on to another program to launch the document. The graphical interface of Windows and OS/2 rely heavily on command-lines passed through to other programs – console or graphical, which then usually process the command line without presenting a user-console.

Programs like the OS/2 E editor and some other IBM editörler, can process command-lines normally meant for the shell, the output being placed directly in the document window.

A web browser's URL input field can be used as a command line. It can be used to "launch" ağ uygulamaları, access browser configuration, as well as perform a search. Google, which has been called "the command line of the internet" will perform a domain-specific search when it detects search parameters in a known format.[35] This functionality is present whether the search is triggered from a browser field or on Google's website.

Birçok video oyunları on the PC feature a command line interface often referred to as a console. It is typically used by the game developers during development and by mod developers for debugging purposes as well as for cheating or skipping parts of the game.

Ayrıca bakınız

Notlar

  1. ^ An example is the comprehensive internal help system of the DR-DOS 7.03 HATA AYIKLA command, which can be invoked via ?? at the debug prompt (rather than only the default ? overview). Specific help pages can be selected via ?n (nerede n is the number of the page). Additionally, help for specific commands can be displayed by specifying the command name after ?, f.e. ?D will invoke help for the various dump commands (like D vb.). Some of these features were already supported by the DR DOS 3.41 SID86 ve GEMSID.
  2. ^ Conventions for describing commands on DOS benzeri işletim sistemleri. Notable difference: The Windows Server 2003 R2 documentation uses italic letters for "Information that the user must supply", while the Server 2008 documentation uses angle brackets. Italics can not be displayed by the internal "help" command while there is no problem with angle brackets.
  3. ^ Nın istisnası ile ASCII sanatı.
  4. ^ Üzerinden Finder, Applications, Utilities, terminal.

Referanslar

  1. ^ "Unix Shells". the notion of having a replaceable "command shell" rather than a "monitor" tightly integrated with the OS kernel tends to be attributed to Multics.
  2. ^ a b "Kabuğun Kökeni". www.multicians.org. Alındı 2017-04-12.
  3. ^ Metz, Cade (2013-01-03). "Say Bonjour to the Internet's Long-Lost French Uncle". Kablolu. Alındı 2017-07-31.
  4. ^ Mazières, David (Fall 2004). "MULTICS - The First Seven Years". Advanced Operating Systems. Stanford Computer Science Department. Alındı 2017-08-01.
  5. ^ a b Jones, M. (2011-12-06). "Evolution of shells in Linux". developerWorks. IBM. Alındı 2017-08-01.
  6. ^ "GNU BASH Reference".
  7. ^ "Microsoft Windows Command Shell Overview".
  8. ^ SID Users Guide (PDF). Dijital Araştırma. 1978. 595-2549. Arşivlendi (PDF) 2019-10-20 tarihinde orjinalinden. Alındı 2020-02-06. (4+69 pages)
  9. ^ SID-86 User's Guide for CP/M-86 (2 ed.). Dijital Araştırma. August 1982 [March 1982]. SID86UG.WS4. Arşivlendi 2019-10-20 tarihinde orjinalinden. Alındı 2020-02-06. [1] (NB. A retyped version of the manual by Emmanuel Roche with Q, SR, and Z commands added.)
  10. ^ a b c d e f g h ben j k Paul, Matthias R. (1997-07-30). NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds. MPDOSTIP. Release 157 (in German) (3 ed.). Arşivlendi from the original on 2017-09-10. Alındı 2014-09-06. (NB. NWDOSTIP.TXT, Novell DOS 7 ve OpenDOS 7.01 birçok belgelenmemiş özelliğin ve dahili öğenin açıklaması dahil. Yazarın daha büyük MPDOSTIP.ZIP koleksiyonunun bir parçasıdır ve 2001 yılına kadar korunmuştur ve o sırada birçok sitede dağıtılmıştır. Sağlanan bağlantı, NWDOSTIP.TXT dosyasının HTML ile dönüştürülmüş eski bir sürümüne işaret ediyor.)
  11. ^ Parker, Steve (2011). "Chapter 11: Choosing and using shells". Shell Scripting: Expert Recipes for Linux, Bash and more. Programmer to programmer. Indianapolis, USA: John Wiley & Sons. s. 262. ISBN  978-111816632-1. Alındı 2017-03-23. The shell has four different command prompts, called PS1, P52, P53, and PS4. PS stands for Prompt String.
  12. ^ RISC OS 3 User Guide (PDF). Acorn Computers Limited. 1992-03-01. s. 125.
  13. ^ a b c d Kardeşler, Hardin; Rawson, Tom; Conn, Rex C.; Paul, Matthias R .; Boya, Charles E .; Georgiev, Luchezar I. (2002-02-27). 4DOS 8.00 çevrimiçi yardım.
  14. ^ Paul, Matthias R. (1998-01-09). DELTREE.BAT R1.01 Extended file and directory delete. Caldera, Inc. Arşivlenen orijinal 2019-04-08 tarihinde. Alındı 2019-04-08.
  15. ^ DR-DOS 7.03 WHATSNEW.TXT - DR-DOS 7.02'den DR-DOS 7.03'e Değişiklikler. Caldera, Inc. 1998-12-24. Arşivlenen orijinal 2019-04-08 tarihinde. Alındı 2019-04-08.
  16. ^ a b c Paul, Matthias R. (2002-05-13). "[fd-dev] mkeyb". freedos-dev. Arşivlendi 2018-09-10 tarihinde orjinalinden. Alındı 2018-09-10. […] CPI /H […] CPI [@] [@] [/?|/Help[:topic]] [/!|/About] […] [?|&] […] /?, /Help Display this help screen or specific help for a topic (+) […] /!, /About Display the 'About' info screen […] /Cpifile (+) .CPI/.CP file name ; extension: <.CPI>; CPI.EXE=StdIn […] /Report Report file name <''=StdOut>; extension: <.RPT> […] /Style (+) Export <0>-6=BIN-raw/ROM/RAM/PSF0/1/SH/CHED; 7-12/13-18/19-24=ASM-hex/dec/bin/ip/il/p/l/mp/ml […] CPI /H:C […] Overview on codepage file parameter usage: […] CPI /H:S […] Overview on /Style parameters: […] ?, & Online edit mode (prompts for additional parameter input) […]
  17. ^ a b Paul, Matthias R. (2002-01-09). "SID86". Yeni Grupcomp.os.cpm. Alındı 2018-04-08. […] Since the DR-DOS 7.03 HATA AYIKLA is still based on the old SID86.EXE, I suggest to run DEBUG 1.51 and enter the extended help system with ?? from the debug prompt. This will give you eight screens full of syntax and feature help. Some of these features were also supported by older issues. […]
  18. ^ a b Paul, Matthias R .; Frinke, Axel C. (2006-01-16). FreeKEYB - Advanced international DOS keyboard and console driver (User Manual) (v7 preliminary ed.).
  19. ^ CCI Multiuser DOS 7.22 GOLD Çevrimiçi Belgeler. Concurrent Controls, Inc. (CCI). 1997-02-10. HELP.HLP. (NB. The symbolic instruction debugger SID86 provides a short help screen on ? and comprehensive help on ??.)
  20. ^ Paul, Matthias R. (1997-05-24) [1991]. DRDOSTIP.TXT — Tips und Tricks für DR DOS 3.41 - 5.0. MPDOSTIP (Almanca) (47 ed.). Arşivlendi 2016-11-07 tarihinde orjinalinden. Alındı 2016-11-07.
  21. ^ "The Open Group Base Specifications Issue 7, Chapter 12.1 Utility Argument Syntax". Açık Grup. 2008. Alındı 2013-04-07.man-pages(7) – Linux Conventions and Miscellany Manuel (NB. Conventions for describing commands on Unix-like operating systems.)
  22. ^ "Command shell overview". Windows Server 2003 Product Help. Microsoft. 2005-01-21. Alındı 2013-04-07.
  23. ^ "Command-Line Syntax Key". Windows Server 2008 R2 TechNet Library. Microsoft. 2010-01-25. Alındı 2013-04-07.
  24. ^ Kernighan, Brian W.; Pike, Rob (1984). The UNIX Programming Environment. Englewood Kayalıkları: Prentice-Hall. ISBN  0-13-937699-2.
  25. ^ Pouzin, Louis. "Kabuğun Kökeni". Multicians.org. Alındı 2013-09-22.
  26. ^ "Remembering Windows 95's launch 15 years later".
  27. ^ "A history of Windows". windows.microsoft.com. Arşivlenen orijinal on 2015-03-01.
  28. ^ "Windows POSIX shell compatibility".
  29. ^ "master - platform/external/mksh - Git at Google". android.googlesource.com. Alındı 2018-03-18.
  30. ^ "Android adb shell - ash or ksh?". stackoverflow.com. Alındı 2018-03-14.
  31. ^ "Android sh source". Arşivlenen orijinal on 2012-12-17.
  32. ^ "Android toolbox source".
  33. ^ "Cisco IOS Configuration Fundamentals Configuration Guide, Release 12.2". Cisco. 2013-10-30. Using the Command-Line Interface. The Cisco IOS command-line interface (CLI) is the primary user interface…
  34. ^ "Command-Line Interface Overview". www.juniper.net. Alındı 2018-03-14.
  35. ^ "Google strange goodness".

Dış bağlantılar