Komut mermilerinin karşılaştırılması - Comparison of command shells

Bash, birçok GNU / Linux dağıtımındaki varsayılan kabuk.

Bir komut kabuğu bir komut satırı arayüzü bilgisayar programı işletim sistemi.

Genel özellikleri

KabukOlağan ortamGenellikle çağrılırTanıtıldıPlatform bağımsızVarsayılan giriş kabuğuVarsayılan komut dosyası kabuğuLisansKaynak kod kullanılabilirliğiKullanıcı arayüzüFare desteğiUnicode destekISO 8601 destekKonsol yeniden yönlendirmeAkış yeniden yönlendirmeYapılandırılabilirlikBaşlatma / kapatma komut dosyalarıToplu komut dosyalarıKerestecilikstatik olarak bağlantılı, bağımsız tek dosya yürütülebilir olarak mevcuttur
Thompson kabuğuUNIXsh1971YokUNIXUNIXYokEvetMetin tabanlı CLIHayırHayırYokEvetYokYokYokYokYokYok
Bourne kabuğu 1977 versiyonu7th Ed. UNIXsh1977Evet[1]7th Ed. UNIX7th Ed. UNIX,Tescilli[2]EvetMetin tabanlı CLIHayırHayırYokEvetEvet (keyfi fds)Evet (değişkenler ve seçenekler aracılığıyla)Evet (.profil)Evet (Unix özelliği)HayırEvet
Bourne kabuğu şimdiki versiyonuÇeşitli UNIXsh1977Evet[3]SunOS-5.x, FreeBSD (root olmayan kullanıcı)[4]SunOS-5.xCDDL[5][daha iyi kaynak gerekli ]EvetMetin tabanlı CLIHayırEvet[nb 1][daha iyi kaynak gerekli ]YokEvetEvet (keyfi fds)Evet (değişkenler ve seçenekler aracılığıyla)Evet (.profil)Evet (Unix özelliği)Evet[nb 2]Evet
POSIX kabuk[6]POSIXsh1992[7]YokYokPOSIXYokYokMetin tabanlı CLIHayırEvet, yapılandırılmış yerel ayar tarafından kullanılıyorsaYokEvetEvet (keyfi fds)Evet (değişkenler ve seçenekler aracılığıyla)Belirtilmemiş (.profil örnek olarak verilmiştir)Evet (Unix özelliği)EvetYok
bash (v4)POSIXbash, sh1989[8]EvetGNU, Linux (kök için varsayılan), Mac os işletim sistemi 10.3–10.14GNU, Linux, Haiku, Mac os işletim sistemi 10.3–10.14GPLEvetMetin tabanlı CLIHayırEvet[9][daha iyi kaynak gerekli ]Evet (printf yerleşik)EvetEvet (keyfi fds)Evet (değişkenler ve seçenekler aracılığıyla)Evet (/ etc / profile, .bash_profile, .bash_login, .profil, .bashrc)Evet (Unix özelliği)EvetEvet
cshPOSIXcsh1978EvetSunOS?BSDEvetMetin tabanlı CLIHayırHayır?EvetEvet (stdin, standart çıkış, stdout + stderr)Evet (değişkenler ve seçenekler aracılığıyla)Evet (~ / .cshrc, ~ / .login, ~ / .logout)Evet (Unix özelliği)EvetEvet
tcshPOSIXtcsh, csh1983[10]EvetFreeBSD (kök için varsayılan), önceden Mac OS X?BSDEvetMetin tabanlı CLIHayırEvet?EvetEvet (stdin, standart çıkış, stdout + stderr)Evet (değişkenler ve seçenekler aracılığıyla)Evet (/etc/csh.cshrc, /etc/csh.login, ~ / .tcshrc, ~ / .cshrc, ~ / .history, ~ / .login, ~ / .cshdirs)Evet (Unix özelliği)EvetEvet
Hamilton C kabuğuWin32, OS / 2csh1988[11]Evet (OS / 2 sürümü artık korunmuyor)İsteğe bağlıİsteğe bağlıTescilliHayırMetin tabanlı CLIHayırHayırEvet (-t zaman damgası operatörü)EvetEvet (stdin, standart çıkış, stdout + stderr)Evet (değişkenler ve seçenekler aracılığıyla)Evet (login.csh, startup.csh ve logout.csh aracılığıyla)Evet (komut satırı seçeneği)EvetEvet
ScshPOSIXscsh1994Evet??BSD stilEvet?????Evet????Evet
ksh (ksh93t +)POSIXksh1983[12][13]EvetAIX, HP-UXOpenSolarisOrtak Kamu LisansıEvetMetin tabanlı CLIHayırEvetEvet (printf ile yerleşik % (% F) T[14])EvetEvet (keyfi fds)Evet (değişkenler ve seçenekler aracılığıyla)Evet (sistem ve kullanıcının profil ve kshrc)Evet (Unix özelliği)EvetEvet
pdkshPOSIXksh, sh1989?EvetOpenBSD[15]OpenBSD[15]Kamu malıEvetMetin tabanlı CLIHayırHayırYokEvetEvet (keyfi fds)Evet (değişkenler ve seçenekler aracılığıyla)Evet (/ etc / profile, .profil)Evet (Unix özelliği)EvetEvet
zshPOSIXzsh1990EvetDerin, GoboLinux, Grml, Mac os işletim sistemi 10.15+Grml, Mac os işletim sistemi 10.15+MIT stilEvetMetin tabanlı CLIek kod aracılığıyla[16]EvetEvet (tarihle ilgili çeşitli dahili özellikler, % F strftime biçim[17] ve -ben için seçenek fc yerleşik[18])EvetEvet (keyfi fds)Evet (değişkenler, seçenekler, işlevler, stiller vb. Aracılığıyla)Evet (sistem ve kullanıcının zshenv, zprofile, zshrc, zlogin, zlogout)Evet (Unix özelliği)EvetEvet
külPOSIXsh1989EvetMinix, BusyBox tabanlı sistemlerNetBSD, Minix, BusyBox tabanlı sistemlerBSD stilEvetMetin tabanlı CLIHayırKısmi (BusyBox için, komut satırı düzenlemede desteklenir, ancak dize işlemede desteklenmez[19])YokEvetEvet (keyfi fds)Evet (değişkenler ve seçenekler aracılığıyla)Evet (/ etc / profile, .profil)Evet (Unix özelliği)EvetEvet
ÇKPCP / M, MP / M(ÇKP)1976 (1974)HayırCP / M (giriş yok), MP / MCP / M, MP / MÜcretsiz yazılım (orijinal olarak tescillidir)Evet (başlangıçta kapalı kaynak)Metin tabanlı CLIHayırHayırHayırHayırHayırHayırEvet (otomatik olarak $$$. SUB)Kısmi (yalnızca harici aracılığıyla SUNMAK güncelleme komutu $$$. SUB)HayırEvet
COMMAND.COMDOSKOMUT1980Hayır (3. taraf uygulamaları, belirli bir DOS satıcısına veya sürümüne bağlı değildir, mevcuttur)DOS, Windows 95, 98, GD, BEN MİDOS, Windows 95, 98, GD, BEN Mİsatıcıya özel, örn. HANIM -EULA,[nb 3] veya BSD /GPL (ücretsiz klonlar)Hayır (OpenDOS, DR-DOS, PTS / DOS ve FreeDOS hariç)Metin tabanlı CLIHayırHayırHayır (DR-DOS hariç)Evet (aracılığıyla COMMAND con: veya CTTY con:)Evet (stdin, standart çıkış)Evet (başlangıç ​​parametreleri ve ortam değişkenleri aracılığıyla, DR-DOS ayrıca DIR / C / R varsayılan kullanıcı anahtarı komutu)Evet (otomatik AUTOEXEC.BAT birincil kabuk için veya açıkça / P, /P:filename.bat veya / K başlangıç ​​seçenekleri)Evet (aracılığıyla TELEFON ETMEK komut veya / C ve / K başlangıç ​​seçenekleri)HayırEvet
OS / 2 CMD.EXEOS / 2, eComStation, ArcaOSCMD1987HayırOS / 2, eComStation, ArcaOSOS / 2, eComStation, ArcaOSIBM -EULA[nb 4]HayırMetin tabanlı CLIHayırHayırHayırHayırEvet (stdin, standart çıkış, Stderr)?Kısmi (yalnızca aracılığıyla / K başlangıç ​​seçeneği)Evet (aracılığıyla TELEFON ETMEK komut veya / C ve / K başlangıç ​​seçenekleri)HayırEvet
pencereler CMD.EXE[nb 5]Win32CMD1993Hayırpencereler NT, 2000, XP, Sunucu 2003, Vistapencereler NT, 2000, XP, Sunucu 2003, VistaHANIM -EULA[nb 6]HayırMetin tabanlı CLIHayırKısmi (CHCP 65001 için UTF-8, ancak program bağımsız değişkenleri hala yerel kod sayfasında kodlanmıştır)HayırHayırEvetEvet (kayıt defteri, başlangıç ​​parametreleri ve ortam değişkenleri aracılığıyla)Evet (kayıt yoluyla otomatik veya açıkça / K başlangıç ​​seçeneği)Evet (aracılığıyla TELEFON ETMEK komut veya / C ve / K başlangıç ​​seçenekleri)HayırEvet
4DOS, NDOSDOS, Windows 95, 98, GD, BEN Mİ4DOS, NDOS1989 (1986)Hayır (belirli bir işletim sistemi satıcısına veya sürümüne bağlı değildir)İsteğe bağlıİsteğe bağlıMIT Lisansı, kısıtlamalarlaEvetMetin tabanlı CLI ile TUI uzantılarEvet (açılır pencereler, yardım sistemi, %_FARE iç değişken, MÜREKKEP / M komut)HayırEvetEvet (aracılığıyla CTTY con:, dışında DRAWBOX, ÇİZGİ ÇİZ, DRAWVLINE, LİSTE, EKRAN, SCRPUT, SEÇ, VSCRPUT komutlar ve dosya / dizin renklendirme)Evet (stdin, standart çıkış, Stderr, stdout + stderr)Evet (aracılığıyla 4DOS.INI/NDOS.INI dosya, başlangıç ​​parametreleri, ortam değişkenleri, SETDOS komut)Evet (otomatik AUTOEXEC.BAT birincil kabuk için ve 4START.BTM/4START.BAT Hem de 4EXIT.BTM/4EXIT.BAT herhangi bir kabuk için veya açıkça / P, /P:dirfilename.ext veya / K başlangıç ​​seçenekleri)Evet (aracılığıyla TELEFON ETMEK komut veya / C ve / K başlangıç ​​seçenekleri)EvetEvet
4OS2OS / 2, eComStation, ArcaOS4OS21992Hayır (belirli OS / 2 sürümlerine bağlı değildir)İsteğe bağlı (ancak ArcaOS ile birlikte gelir)İsteğe bağlıÜcretsizEvetMetin tabanlı CLIHayırHayırHayırHayırEvet (stdin, standart çıkış, Stderr, stdout + stderr)Evet (aracılığıyla 4OS2.INI dosya, başlangıç ​​parametreleri, ortam değişkenleri, SETDOS komut)Evet (otomatik olarak 4 BAŞLANGIÇ.CMD/4START.BTM Hem de 4EXIT.CMD/4EXIT.BTM dosyalar veya açıkça / K startup.cmd seçenek)Evet (aracılığıyla TELEFON ETMEK komut veya / C ve / K başlangıç ​​seçenekleri)Evet?
TCC (eski adıyla 4NT)Win32TCC1993Hayır (belirli NT sürümlerine bağlı değildir)isteğe bağlıisteğe bağlıSharewareHayırMetin tabanlı CLI (Emir almak: GUI )Evet (konsol faresi, açılır pencereler, yardım sistemi, % _XMOUSE, % _YMOUSE iç değişkenler, MÜREKKEP / M komut)EvetEvetHayırEvet (stdin, standart çıkış, Stderr, stdout + stderr)Evet (kayıt yoluyla, TCMD.INI/4NT.INI dosya, başlangıç ​​parametreleri, ortam değişkenleri, SETDOS komut)Evet (kayıt yoluyla otomatik ve TCSTART/4 BAŞLANGIÇ Hem de TCEXIT/4 ÇIKIŞveya açıkça / K başlangıç ​​seçeneği)Evet (aracılığıyla TELEFON ETMEK komut veya / C ve / K başlangıç ​​seçenekleri)EvetHayır
VMS DCL[20]OpenVMSOturum açma / etkileşimli işlem için otomatik olarak1977?EvetVMSVMSTescilli, VMS'de paketlenmişsadece özel lisanslaMetin tabanlı CLIDECwindows / Motif ileEvetEvet, en azından 1988 standardına kadarEvetEvet (sys $ girişi, sys $ çıktı Görev)Evet (semboller, mantıksal isimler ve seçenekler aracılığıyla)Evet (SYS $ MANAGER: SYLOGIN.COM ve kullanıcı tanımlı LOGIN.COM)EvetEvetHayır
Güç kalkanı.AĞGüç kalkanı2006Evetpencereler 10, 8, Sunucu 2008, 7, Vista, XP[nb 7]pencereler 10, 8, Sunucu 2008, 7MIT stilEvetGrafik CLIEvetEvetEvetHayırEvetEvet (değişkenler ve seçenekler aracılığıyla)Evet (% USERPROFILE% Documents WindowsPowerShell Microsoft.PowerShell_profile.ps1)Evet (PowerShell özelliği)EvetHayır
rcPlan 9, POSIXrc1989EvetPlan 9, Sürüm 10 UnixPlan 9, Sürüm 10 UnixLucent Public License???Evet??Evet????Evet
BeanShellJava?2005Evet??LGPL???Evet??Evet????Hayır
balıkPOSIXbalık2005[21]EvetGhostBSD?GPLEvetMetin tabanlı CLI?Evet??Evet (keyfi fds)Evet (ortam değişkenleri aracılığıyla ve web arayüzü aracılığıyla fish_config)Evet (/etc/fish/config.fish ve ~ / .config / fish / config.fish)Evet (Unix özelliği)Evet (~ / .config / fish / fish_history *)?
İyonRedoks, Linuxiyon2015[22]EvetRedoksRedoksMITEvetMetin tabanlı CLI?EvetEvet?Evet (keyfi fds)Evet (XDG Temel Dizini spesifikasyonuna uyar)Evet (~ / .config / ion / initrc)EvetEvet (~ / .local / share / ion / history)Kısmi (bağımsız bir yürütülebilir dosya olarak dağıtılmaz, ancak tek olarak oluşturulabilir)
KabukOlağan ortamGenellikle çağrılırTanıtıldıPlatform bağımsızVarsayılan oturum açma kabuğuVarsayılan komut dosyası kabuğuLisansKaynak kod kullanılabilirliğiKullanıcı arayüzüFare desteğiUnicode destekISO 8601 destekKonsol yeniden yönlendirmeAkış yeniden yönlendirmeYapılandırılabilirlikBaşlatma / kapatma komut dosyalarıToplu komut dosyalarıKerestecilikstatik olarak bağlantılı, bağımsız tek dosya yürütülebilir olarak mevcuttur

Etkileşimli özellikler

KabukKomut
isim
tamamlama
Yol
tamamlama
Komut
tartışma
tamamlama
Joker karakter
tamamlama
Komut
Tarih
Zorunlu
tartışma
Komut istemi
Otomatik
öneriler
Renkli
dizin
listeler
Metin
vurgulama
Sözdizimi
vurgulama
Dizin geçmişi, yığın veya benzer özelliklerÖrtük
dizin
değişiklik
Otomatik düzeltmeBirleşik
çevre
Snippet'lerDeğer
Komut istemi
Menü seçenekleri
Komut istemi
İlerleme
gösterge
Bağlam
hassas
Yardım
Komut
inşaatçı
Thompson kabuğuHayırHayırHayırHayırHayırHayırHayır??HayırHayırHayırHayırHayırHayırHayırHayırHayırHayırHayır
Bourne kabuğu 1977 versiyonuHayırHayırHayırHayırHayırHayırHayır??HayırHayırHayırHayırHayırHayırEvetHayırHayırHayırHayır
Bourne kabuğu şimdiki versiyonuHayırEvet[nb 8]HayırHayırEvet[nb 8]HayırHayırEvetEvetHayırEvet (CDPATH, pushd, popd, dirs), SVr4'ten beri CDPATHHayırHayırHayırHayırEvetHayırHayırHayırHayır
POSIX kabukHayırHayırHayırHayırEvetHayırHayırEvetEvetHayırEvet (CDPATH)HayırHayırHayırHayırEvetHayırHayırHayırHayır
bash (v4.0)EvetEvettanımlandığındaEvet[nb 9]EvetHayırHayırEvetEvetHayırEvet (CDPATH, pushd, popd)isteğe bağlıHayırHayırHayırEvetEvetHayırHayırHayır
cshEvetEvetHayırHayırEvetHayırHayırEvetEvetHayırEvet (cdpath, pushd, popd)isteğe bağlıHayırHayırHayırEvetHayırHayırHayırHayır
tcshEvetEvettanımlandığındaHayırEvetHayırHayırEvetEvetHayırEvet (cdpath, pushd, popd)isteğe bağlıEvetHayırHayırEvetHayırHayırHayırHayır
Hamilton C kabuğuEvetEvetHayırEvetEvetHayırHayır??HayırEvet (cdpath, pushd, popd)HayırHayırHayırHayırEvetHayırHayırHayırHayır
ScshHayırHayırHayırHayırHayırHayırHayır??HayırHayırHayırHayırHayırHayırEvetHayırHayırHayırHayır
ksh (ksh93t +)Evet (uzatılabilir)Evet (uzatılabilir)HayırHayırEvetHayırHayırEvetEvetHayırEvet (cdpath yerleşik pushd, popd işlevler olarak uygulanır)HayırHayırHayırHayırEvetEvetHayırHayırHayır
pdkshEvetEvetHayırHayırEvetHayırHayırEvetEvetHayırHayırHayırHayırHayırHayırEvetEvetHayırHayırHayır
zshEvetEvettanımlandığındaEvet[23]EvetHayırEvet (aracılığıyla tahmin veya kullanıcı tanımlı[24])EvetEvetÜçüncü taraf uzantısı[25]Evetisteğe bağlıEvetHayırtanımlandığında (ZLE widget'ları olarak)EvetEvetHayırEvetHayır
külHayırHayırHayırHayırEvetHayırHayırEvetEvetHayırHayırHayırHayırHayırHayırEvetEvetHayırHayırHayır
ÇKPHayırHayırHayırHayırHayırHayırHayırHayırHayırHayırHayırHayırHayırHayırHayırHayırHayırHayırHayırHayır
COMMAND.COMHayırHayırHayırHayırHayır[nb 10][nb 11]HayırHayırHayırHayır (yalnızca DR-DOS'ta % $ AÇIK%, % $ OFF%, % $ HEADER%, % $ FOOTER% )HayırHayırHayırHayırHayır (yalnızca COMMAND / Y ile tek adım[26])HayırHayırHayır (yalnızca harici aracılığıyla TERCİH komut, DR-DOS'ta ayrıca DEĞİŞTİRMEK / DRSWITCH dahili komutlar)HayırHayırHayır
OS / 2
CMD.EXE
EvetEvetHayırHayırEvetHayırHayırHayırHayırHayırHayırHayırHayırHayırHayırHayırHayırHayırHayırHayır
pencereler
CMD.EXE
kısmikısmiHayırHayırEvet (F8)HayırHayırHayırHayırHayırEvet (PUSHD, POPD)HayırHayırHayırHayırEvet (aracılığıyla AYAR / P komut)HayırHayırHayırHayır
4DOSEvetEvetEvetEvetEvet[nb 12][nb 13]HayırHayırEvetHayırHayır(açılır pencere aracılığıyla, genişletilmiş dizin aramaları, CDPATH, PUSHD, POPD, TARİHÇE, KİRLER, CDD, CD - komutlar ve % @ DIRSTACK [] işlevi)EvetHayırEvetHayırEvet (aracılığıyla GİRİŞ, MÜREKKEP ve ESET komutlar)Evet (aracılığıyla @SELECT [] işlev ve dolaylı olarak MÜREKKEP, GİRİŞ, DEĞİŞTİRMEK komutlar)HayırEvetHayır (hariç SEÇENEK INI dosya yönergeleri için komut)
4OS2????EvetHayırHayırEvetHayırHayırEvetEvetHayır?Hayır??HayırEvetHayır
TCC (eski adıyla 4NT)EvetEvetEvetEvetEvetHayırHayırEvetHayırEvet(açılır pencere aracılığıyla, genişletilmiş dizin aramaları, CDPATH, PUSHD, POPD, TARİHÇE, KİRLER, CDD, CD - komutlar ve % @ DIRSTACK [] işlevi)EvetHayırEvetHayırEvet (aracılığıyla GİRİŞ, MÜREKKEP, ESET ve AYAR / P komutlar)Evet (aracılığıyla @SELECT [] işlev ve dolaylı olarak MÜREKKEP, GİRİŞ, DEĞİŞTİRMEK komutlar)[nb 14]HayırEvetHayır
Güç kalkanıEvetEvetEvetEvetEvet (F8)EvetEvet, İMKB'de[27]??Evet, İMKB'de[27] ve PSReadLine[28] modül (v5.0'a dahildir[29])Evet; çoklu yığınlar; birden çok konum türü[30]HayırEvet, PSReadLine'da[28] modülEvet, İMKB'de[27]Evet, İMKB'de[27]EvetEvet[31]Evet[32]Evet, İMKB'de[27]açılır pencere[33]
rcEvet[nb 15]Evet[nb 15]HayırHayırEvet[nb 15]HayırHayır??HayırHayırHayırHayırHayırHayır?HayırHayırHayırHayır
BeanShellEvetEvetHayırHayırHayırHayırHayır??HayırHayırHayırHayırHayırHayırHayırHayırHayırHayırHayır
VMS DCLMinimum benzersizlik şemasıHayırHayırHayırEvetEvetHayır??HayırHayırHayırHayırHayırHayırEvetHayırHayırHayırHayır
balıkEvetEvetman sayfalarında tanımlandığında veya çözümlendiğinde[34]Evet[34]EvetHayırEvet??EvetEvetEvetEvetEvet[nb 16]HayırEvet(üzerinden fish_config komut)HayırHayırHayır
KabukKomut
isim
tamamlama
Yol
tamamlama
Komut
tartışma
tamamlama
Joker karakter
tamamlama
Komut
Tarih
Zorunlu
tartışma
Komut istemi
Otomatik
öneriler
Renkli
dizin
listeler
Metin
vurgulama
Sözdizimi
vurgulama
Dizin geçmişi, yığın veya benzer özelliklerÖrtük
dizin
değişiklik
Otomatik düzeltmeBirleşik
çevre
Snippet'lerDeğer
Komut istemi
Menü seçenekleri
Komut istemi
İlerleme
gösterge
Bağlam
hassas
Yardım
Komut
inşaatçı

Arka planda yürütme

Arka planda yürütme bir kabuğun arka planda bir komut çalıştırmasına izin verir. POSIX kabukları ve diğer Unix kabukları, & komutun sonundaki karakter ve Güç kalkanı kullanabilirsiniz Başlangıç ​​İşlemi veya Başlangıç-İş komutlar.

Tamamlama sayısı

Komut satırı tamamlama Bash.

Tamamlama özellikleri, eksik olanlar için eşleşen kelimeleri arayarak ve önererek komut satırına komutlar yazmada kullanıcıya yardımcı olur. Tamamlama, genellikle tamamlama tuşuna basılarak istenir (genellikle Sekme ↹ anahtarı).

Komut adı tamamlama bir komutun adının tamamlanmasıdır. Çoğu kabukta komut, komut yolunda bir program olabilir (genellikle $ PATH), yerleşik bir komut, işlev veya takma ad.

Yol tamamlama göreceli veya mutlak bir dosya yolunun tamamlanmasıdır.

Joker karakter tamamlama , bir ifadenin herhangi bir sayıda dosyayla eşleştiği, desteklenen herhangi bir sözdizimini kullanan yol tamamlama genellemesidir. dosya eşleştirme.

Değişken tamamlama bir değişken adının tamamlanmasıdır (Çevre değişkeni veya kabuk değişkeni) .Bash, zsh ve fish, tüm değişken adları için tamamlanır. PowerShell, ortam değişkeni adları, kabuk değişkeni adları ve - kullanıcı tanımlı işlevler içinden - parametre adları için tamamlamalara sahiptir.

Komut bağımsız değişkeni tamamlama belirli bir komutun argümanlarının tamamlanmasıdır. İki tür argüman vardır: isimli ve konumsal: Adlandırılmış bağımsız değişkenler, genellikle seçenekler, bir değerden önce gelen adları veya harfleri ile tanımlanırken, konumsal argümanlar yalnızca değerden oluşur. Bazı kabuklar bağımsız değişken adlarının tamamlanmasına izin verir, ancak çok azı tamamlama değerlerini destekler.

Bash, zsh ve fish, ayrı bir tamamlama tanım dosyasında dağıtılan, komutun dışındaki bir tanım aracılığıyla parametre adı tamamlama sunar. Komut parametresi adı / değeri tamamlamaları için, bu kabuklar, komut için herhangi bir tamamlanma tanımlanmamışsa yol / dosya adının tamamlandığını varsayar. Tamamlama, bir kabuk işlevi çağırarak tamamlamalar önermek için ayarlanabilir.[35] Balık kabuğu ek olarak adam sayfaları tamamlamaları / önerileri iyileştirmek için kullanılabilecek parametre bilgilerini çıkarmak. PowerShell'de, tüm komut türleri (cmdlet'ler, işlevler, komut dosyaları) her bağımsız değişken için adlar, türler ve geçerli değer aralıkları / listeleri hakkındaki verileri doğal olarak ortaya çıkarır. Bu meta veriler, yerleşik komutlar / işlevler, kullanıcı tanımlı komutlar / işlevler ve komut dosyası dosyaları için bağımsız değişken adını ve değer tamamlamayı otomatik olarak desteklemek için PowerShell tarafından kullanılır. Bağımsız cmdlet'ler, tamamlama değerlerinin çalışan sistemde dinamik olarak hesaplandığı bağımsız değişken değerlerinin dinamik tamamlanmasını da tanımlayabilir.

Komut geçmişi

Bir kabuğun kullanıcısı, kullanıcının daha önce yazdığına benzer bir şey yazdığını görebilir. Kabuk destekliyorsa komut geçmişi kullanıcı önceki komutu satır düzenleyicisine çağırabilir ve tekrar vermeden önce onu düzenleyebilir.

Tamamlamayı destekleyen mermiler, önceki komutun bir kısmı / ilk kısmı verildiğinde komut geçmişinden komutu doğrudan tamamlayabilir.

Çoğu modern mermi komuta geçmişini destekler. Genel olarak komut geçmişini destekleyen mermiler, yalnızca tarihten gelen komutları geri çağırmaktan ziyade tarihten tamamlanmayı da destekler. Düz komut metnine ek olarak, PowerShell ayrıca komut geçmişine yürütme başlangıç ​​ve bitiş zamanını ve yürütme durumunu da kaydeder.

Zorunlu argüman istemi

Zorunlu bağımsız değişkenler / parametreler, komut, işlev veya komut dosyası dosyasının çağrılması üzerine bir değer atanması gereken bağımsız değişkenler / parametrelerdir. Çağrının öncesinde zorunlu değerlerin eksik olduğunu belirleyebilen bir kabuk, komutun başarısız olmasına izin vermek yerine bu değerleri sorarak etkileşimli kullanıcıya yardımcı olabilir. Eksik değerler için kabuk istemine sahip olmak, bir komut dosyası, komut veya işlevin yazarına eksik değerler için (etkileşimli olarak çalıştırıldığını belirledikten sonra) veya bir mesajla başarısız olmak için komut dosyası kodu oluşturmak yerine bir parametreyi zorunlu olarak işaretleyin.

PowerShell komutların, işlevlerin ve betiklerin bağımsız değişkenleri / parametreleri zorunlu. Kabuk, çağrılmadan önce bağlanmamış herhangi bir zorunlu argüman / parametre olup olmadığını belirler ve daha sonra gerçek çağrılmadan önce kullanıcıya değer (ler) i sorar.[36]

Otomatik öneriler

Komut satırı tamamlama Güç kalkanı ISE.

Otomatik önerilerle, kabuk etkileşimli kullanıcı yazarken izler ve kullanıcı yerine yazmayı kesintiye uğratmadan bağlamla ilgili önerileri görüntüler. açıkça tamamlanmasını talep etmek.

PowerShell Entegre Komut Dosyası Ortamı, keşfedilebilir meta verileri kullanarak "intellisense" (yani kullanıcı yazdıkça otomatik olarak açılan öneriler, ayrıca kullanıcı ör. Tuşlarına basarak tamamlama listelerini açıkça talep ettiğinde) kullanır. Sekme ↹

Dizin geçmişi, yığın veya benzer özellikler

Bir kabuk, kullanıcının mevcut konumlar olarak kullandığı konumları kaydedebilir ve geçmişte herhangi bir konuma / dizine hızlı geçişe izin verebilir.

Zsh dizin yığınının kullanımlarından biri, bir dizin geçmişini kaydetmektir. Özellikle, AUTO_PUSHD seçenek ve gelişmiş CD argümanlar ve tamamlama bu amaçla kullanılır.

PowerShell, birden çok adlandırılmış yığının kullanılmasına izin verir. Konumlar (dizinler) mevcut yığına veya adlandırılmış bir yığına itilebilir / buradan çıkarılabilir. Herhangi bir yığın, geçerli (varsayılan) yığın haline gelebilir. Diğer çoğu kabuğun aksine, PowerShell'ler yer konsept, konum yığınlarının dosya sistemi konumlarının yanı sıra diğer konum türlerini de tutmasına izin verir. Active Directory organizasyon birimleri / grupları, SQL Server veritabanları / tablolar / nesneler, İnternet Bilgi Sunucusu uygulamalar / siteler / sanal dizinler.

4DOS ve Take Command Console, geçerli dizinlerin geçmişini kaydeder ve kullanıcının bir açılır pencere kullanarak geçmişte bir dizine geçmesine izin verir.

Örtülü dizin değişikliği

Bir dizin adı doğrudan geçerli konumu dizine değiştiren bir komut olarak kullanılabilir.

Bu ilgisiz bir yük sürücüsü tarafından desteklenen özellik Eşzamanlı DOS, Çok kullanıcılı DOS, Sistem Müdürü ve GERÇEK / 32, burada L: sürücü harfi dolaylı olarak yüklenen bir uygulamanın yük yolunu işaret edecek şekilde güncellenecek ve böylece uygulamaların, mutlak bir yol yerine standart bir sürücü harfi altındaki kendi yük dizinlerinde bulunan dosyalara başvurmasına izin verecektir.[37]

Otomatik düzeltme

Bir komut satırı bir komutla veya bağımsız değişkenlerle doğrudan eşleşmediğinde, yazım denetimi, yaygın yazım hatalarını otomatik olarak düzeltebilir (örneğin büyük küçük harf duyarlılığı, eksik harfler). Buna iki yaklaşım var; kabuk, komut çağırma üzerine olası düzeltmeler önerebilir veya bu, tamamlama veya otomatik önerme işleminin bir parçası olarak daha erken gerçekleşebilir.

tcsh ve zsh kabuklar, komut çağrısı üzerine isteğe bağlı yazım denetimi / düzeltme özelliğine sahiptir.

Fish, tamamlandığında ve otomatik öneride bulunduğunda otomatik düzeltmeyi yapar. Bu nedenle özellik, tüm komutu yazarken ve enter tuşuna basarken engel teşkil etmez, oysa sekme ve sağ ok tuşlarının yoğun kullanımı kabuğu büyük / küçük harfe duyarlı hale getirir.

PSReadLine[28] PowerShell modülü (sürüm 5.0 ile birlikte gelir), komutu göndermeden önce çalışan bir CommandValidationHandler ScriptBlock belirtme seçeneği sağlar. Bu, genellikle yanlış yazılmış komutların özel olarak düzeltilmesine ve komutu gerçekten çalıştırmadan önce doğrulamaya izin verir.

Entegre ortam

Entegre bir ortam, komut satırı arayüzünün düzenleyicilerle (genellikle birden çok belge) entegrasyonudur, yardım sistemi ve muhtemelen hata ayıklama ve diğer araçlar.

Komut Konsolunu Alın (TCC) komut satırı bölmesi, dosya gezgini, düzenleyici, toplu hata ayıklayıcı ve daha fazlasını içeren entegre bir ortamla birlikte gelir.[38]

PowerShell ISE entegre komut satırı, kopyala-yapıştır, birden çok belge düzenleyicisi desteğine sahip bir komut satırı bölmesi içerir, kaynak düzeyinde hata ayıklama, yardım bölmesi, komut gezgini bölmesi ve komut dosyası arabirimi komut dosyalarının / modüllerin menüleri, eklentileri vb. değiştirmesine olanak tanır. ISE (menüler, pencereler, kısayollar, eklentiler) komut dosyaları aracılığıyla özelleştirilebilir.[39]

Snippet'ler

Snippet'ler, yeniden kullanılabilir komut dosyası kodunun küçük bölgeleridir. Parçacıklar genellikle tuş vuruşlarını kaydetmek veya kullanıcıya genel komut dosyası kalıplarında yardımcı olmak için kullanılır. Birçok metin düzenleyici, yerleşik işlevsellik olarak veya eklentiler aracılığıyla komut dosyası oluşturmak için snippet'leri destekler.

PowerShell, Tümleşik Komut Dosyası Ortamındaki (ISE) parçacıkları destekler Ctrl+J.[40]

Değer istemi

Bir kabuk komut dosyası, etkileşimli kullanıcıdan bir değer isteyebilir.

Menü / seçenekler seçici

Bir kabuk betiği, etkileşimli kullanıcıya bir seçenekler listesi sunabilir.

Ilerleme göstergesi

Bir kabuk komut dosyası (veya iş), uzun süre çalışan görevlerin ilerlemesini etkileşimli kullanıcıya bildirebilir.

Unix / Linux sistemleri, komut dosyalarındaki ilerleme göstergelerini kullanarak veya "pv" programı gibi bağımsız komutlar olarak başka araçlar desteği sunabilir.[41] Ancak bunlar, mermilerin entegre özellikleri değildir.

PowerShell, bir ilerleme çubuğunu yazmak / güncellemek için yerleşik bir komuta ve API işlevlerine (komut yazarken kullanılacak) sahiptir. İlerleme çubuğu mesajları, normal komut çıktısından ayrı olarak gönderilir ve ilerleme çubuğu, ilerleme mesajlarının etkileşimli bir komut dosyasından, bir arka plan işinden veya uzak bir oturumdan kaynaklanıp kaynaklanmadığına bakılmaksızın her zaman nihai etkileşimli kullanıcı konsolunda görüntülenir.

Etkileşimli tablo

Bir komut yürütmeden elde edilen çıktı, etkileşimli olarak sıralanabilen ve filtrelenebilen ve / veya komut yürütme bittikten sonra başka şekilde manipüle edilebilen bir tablo / ızgarada görüntülenebilir.

Güç kalkanı Out-GridView cmdlet, verileri etkileşimli sıralama ve filtreleme ile etkileşimli bir pencerede görüntüler.

Renkli dizin listeleri

JP Yazılımı komut satırı işlemcileri, isteğe bağlı olarak tanımlanmış bir% COLORDIR% ortam değişkeni aracılığıyla, dosya uzantılarına ve / veya özniteliklerine göre dizin listelerindeki dosya ve dizin adlarının kullanıcı tarafından yapılandırılabilir renklendirmesini sağlar.

Unix / Linux kabukları için bu, ls komut ve terminal.

Metin vurgulama

İçindeki komut satırı işlemcileri DOS Plus, Çok kullanıcılı DOS, GERÇEK / 32 ve tüm sürümlerinde DR-DOS kaçış dizilerini tanımlamak için bir dizi isteğe bağlı ortam değişkenini destekleyerek metin vurgulamasını, ters çevirmeyi veya renklendirmeyi görüntüleme veya yazdırma amacıyla kontrol etmeye izin verir. TÜR. Bahsedilen tüm komut satırı işlemcileri desteği % $ AÇIK% ve % $ OFF%. Tanımlanırsa, bu diziler dosya adlarından önce ve sonra yayınlanır. % $ ON% için tipik bir dizi 033 [1m ile birlikte ANSI.SYS, 033p için ASCII IBM için terminal veya 016 veya ESC / P yazıcı. Benzer şekilde,% $ OFF% için tipik diziler sırasıyla 033 [0m, 033q, 024 olacaktır. Değişkenler % $ HEADER% ve % $ FOOTER% metin vurgulama, sayfalandırma veya diğer biçimlendirme seçeneklerini kontrol etmek için metin bloklarından önce ve sonra yayılan dizileri tanımlamak için yalnızca DR-DOS 7.02 ve sonraki sürümlerde COMMAND.COM tarafından desteklenir.

Unix / Linux kabukları için bu, terminalin bir özelliğidir.

Sözdizimi vurgulama

Bağımsız bir proje, Z Kabuğuna (zsh) bir eklenti olarak sözdizimi vurgulama sunar.[42] Ancak bu, kabuğun bir parçası değildir.

PowerShell, PSReadLine aracılığıyla komut satırında özelleştirilebilir sözdizimi vurgulama sağlar[28] modül. Bu modül, PowerShell v3.0 + ile kullanılabilir ve v5.0'a dahildir. Ek olarak, v5.0'da "powershell.exe" komut satırı ana bilgisayarına varsayılan olarak yüklenir. PowerShell ISE ayrıca komut satırında ve komut dosyası bölmesinde sözdizimi vurgulama içerir.[39]Command Console (TCC), entegre ortamda sözdizimi vurgulama sunar.

Bağlama duyarlı yardım

4DOS, 4OS2, 4NT / Take Command Console ve PowerShell (PowerShell ISE'de), aşağıdaki durumlarda bağlama duyarlı yardım bilgilerini arar F1 basıldı.

Zsh, çeşitli biçimlerde yapılandırılabilir bağlama duyarlı yardım sağlar. yardım et Araç, _complete_help komut veya bazı komutlar için seçeneklerin tamamlanmasında.

Komut oluşturucu

Komut oluşturucu, kullanıcının bir komutu doldurmasına yardımcı olan kılavuzlu bir iletişim kutusudur. PowerShell, PowerShell ISE'de bulunan veya ayrı ayrı görüntülenebilen bir komut oluşturucuya sahiptir. Göster-Komuta cmdlet.[43]

Programlama özellikleri

KabukFonksiyonlarİstisna işlemeDeğişken ikamelerinde ara ve değiştirAritmetikKayan noktaMatematik işlevi kitaplığıDoğrusal diziler veya listelerİlişkili dizilerLambda işlevlerideğerlendirme işleviSözde rasgele sayı oluşturmaBayt kodu
Bourne kabuğu 1977 versiyonuHayırEvet (aracılığıyla tuzak)HayırHayırHayırHayırHayırHayırHayırEvetHayırHayır
Bourne kabuğu şimdiki versiyonuEvet, SVR2'den beriEvet (aracılığıyla tuzak)HayırEvet[nb 8]HayırHayırHayırHayırHayırEvetHayırHayır
POSIX kabukEvetEvet (aracılığıyla tuzak)HayırEvetHayırHayırHayırHayırHayırEvetHayırHayır
bash (v4.0)EvetEvet (aracılığıyla tuzak)Evet (aracılığıyla ${//} sözdizimi)EvetHayırHayırEvetEvetHayırEvetEvet ($ RASTGELE)Hayır
cshHayırHayırEvet (aracılığıyla $ var: s /// sözdizimi)EvetHayırHayırEvetHayırHayırEvetHayırHayır
tcshHayırHayırEvet (aracılığıyla $ var: s /// sözdizimi)EvetHayırHayırEvetHayırHayırEvetHayırHayır
Hamilton C kabuğuEvetHayırEvet (aracılığıyla $ var: s /// sözdizimi)EvetEvetEvetEvetHayırHayırEvetEvet (rastgele yardımcı program)Hayır
ScshEvet?Evet (dize işlevleri ve normal ifadeler aracılığıyla)???Evet?EvetEvetEvet (rastgele tam sayı, rastgele gerçek)Evet (derleyici, Scheme48 sanal makinesidir, scshvm)
ksh (ksh93t +)EvetEvet (aracılığıyla tuzak)Evet (aracılığıyla ${//} sözdizimi ve yerleşik komutlar)EvetEvetEvetEvetEvetHayırEvetEvet ($ RASTGELE)Evet (derleyici çağrılır shcomp)
pdkshEvetEvet (aracılığıyla tuzak)HayırEvetHayırHayırEvetHayırHayırEvetEvet ($ RASTGELE)Hayır
zshEvetEvetEvet (aracılığıyla $ {: s //} ve ${//} sözdizimi)EvetEvetEvet (zsh / mathfunc modül)EvetEvetHayırEvetEvet ($ RASTGELE)Evet (yerleşik zcompile komut)
külEvetEvet (aracılığıyla tuzak)HayırEvet (1992'den beri)[44]HayırHayırHayırHayırHayırEvetHayırHayır
ÇKPHayır?HayırHayır??HayırHayırHayırHayırHayırHayır
COMMAND.COMHayırKısmi (yalnızca Otomatik başarısız (üzerinden COMMAND / F (veya / N DR-DOS'un bazı sürümlerinde))HayırHayırHayırHayırHayırHayırHayırHayırHayırHayır
OS / 2 CMD.EXEHayırHayırHayır?HayırHayır?HayırHayırHayırHayırHayır
pencereler CMD.EXEEvet (aracılığıyla ÇAĞRI: etiket)HayırEvet (aracılığıyla AYARLAMAK %varname:ifade sözdizimi)Evet (aracılığıyla SET / A)[45]HayırHayırEvet (aracılığıyla AYARLAMAK[46])HayırHayırHayırEvet (% rastgele%)Hayır
4DOSEvetEvet (aracılığıyla AÇIK komut, isteğe bağlı Otomatik başarısızlık 4DOS / F)Evet (aracılığıyla % @ Değiştirin [...] işlevi)Evet (aracılığıyla SET / A)??Evet (aralıklarla, listeleri dahil et, @dosya listeleri ve İÇİN komut)HayırHayırEvetEvet (% @ Rastgele [...] işlevi)Evet (aracılığıyla BATCOMP komut)
4OS2????????HayırEvetEvet (% @ Rastgele [...] işlevi)?
TCC (eski adıyla 4NT)EvetEvet (aracılığıyla AÇIK ve çeşitli ... MONİTÖR komutlar)Evet (aracılığıyla % @ Değiştirin [...] işlevi)Evet (aracılığıyla SET / A)??Evet (aralıklarla, listeleri dahil et, @dosya listeleri ve İÇİN komut)?HayırEvetEvet (% @ Rastgele [...] işlevi)Evet (aracılığıyla BATCOMP komut)
Güç kalkanıEvetEvet (Deneyin-Yakala-Sonunda)Evet (-değiştirmek Şebeke)EvetEvet[Matematik dersi[47]EvetEvetEvetEvetEvetEvet, otomatik
rcEvetEvetHayır???Evet?HayırEvetHayırHayır
BeanShellEvetEvet?Evet??EvetEvetHayırEvetEvetEvet
VMS DCLEvetEvetHayırEvetHayırevet, derlenmiş programlar içinEvetHayırHayırHayırHayırHayır
balıkEvetEvet (aracılığıyla tuzak)HayırEvetEvetEvetEvetHayırHayırEvetEvet (rastgele)Hayır

Dize işleme ve dosya adı eşleştirme

KabukDize işlemeDeğişim (Brace genişlemesi )Desen eşleştirme (düzenli ifadeler yerleşik)Desen eşleştirme (dosya adı Globbing )Globbing niteleyicileri (dosya özniteliklerine dayalı dosya adı oluşturma)Yinelemeli globbing (herhangi bir alt dizinden dosya oluşturma)
Bourne kabuğu 1977 versiyonu?HayırHayırEvet (*, ?, [...])HayırHayır
Bourne kabuğu son versiyonKısmi (değişken genişletmede önek ve son ek çıkarma)HayırHayırEvet (*, ?, [...])HayırHayır
POSIX kabukKısmi (değişken genişletmede önek ve son ek çıkarma)HayırHayırEvet (*, ?, [...])HayırHayır
bash (v4.0)Kısmi (değişken genişletmede önek ve son ek çıkarma)EvetEvetEvet (*, ?, [...], {...})HayırEvet (**/...)
cshEvet (: s ve diğer düzenleme operatörleri)EvetHayırEvetHayırHayır
tcshEvet (: s ve diğer düzenleme operatörleri)EvetEvetEvetHayırHayır
Hamilton C kabuğuEvet (: s ve diğer düzenleme operatörleri + substr, strlen, strindex, printf, reverse, Upper, Lower, concat ve diğer yerleşik işlevler)EvetHayırEvetHayırEvet (belirsiz dizin aracılığıyla "..." joker karakter[48])
Scsh??EvetEvetHayırHayır
ksh (ksh93t +)Kısmi (değişken genişletmede önek, son ek çıkarma ve dize değiştirme)Evet[49]EvetEvet (*, ?, [...])HayırEvet (ile -G ayarla, sembolik bağları takip etme)
pdksh?Evet[49]HayırEvetHayırHayır
zshEvet (değişken işleme yoluyla: ör. Alt dize çıkarma, parametre genişletme yoluyla çeşitli dönüşümler)EvetEvetEvet (*, ?, [...], genişletilmiş globbing[50])EvetEvet (**/... veya ***/... sembolik bağlantıları takip etmek için)
kül??HayırEvetHayırHayır
ÇKPHayırHayırHayırHayırHayırHayır
COMMAND.COMHayırHayırHayırEvet (*, ?)HayırHayır
OS / 2 CMD.EXEHayırHayırHayırEvet (*, ?)Kısmi (yalnızca DIR / A: ... komut)Hayır
pencereler CMD.EXEKısmi (yalnızca aracılığıyla / F İÇİN ve SET / A)HayırHayır[nb 17]Evet (*, ?)Kısmi (yalnızca DIR / A: ... komut)Evet (aracılığıyla İÇİN / R komut veya mevcut olduğu durumlarda dolaylı olarak / S alt dizin seçeneği)
4DOSEvet (değişken işlevler aracılığıyla %@...[], genişletilmiş ortam değişkeni işleme, çeşitli dize komutları ve / F İÇİN ve SET / A)HayırHayırEvet (*, ?, [...], genişletilmiş joker karakterler, SEÇ popup komutu)Evet (aracılığıyla / A: ... öznitelik ve /BEN"..." açıklama seçenekleri ve / [S ...] boyut, / [T ...] zaman, / [D ...] tarih ve /[!...] dosya dışlama aralıkları)Evet (aracılığıyla İÇİN / R komut veya dolaylı olarak KÜRESEL komut veya mevcut olduğunda / S alt dizin seçeneği)
4OS2?HayırHayır???
TCC (eski adıyla 4NT)Evet (değişken işlevler aracılığıyla %@...[], genişletilmiş ortam değişkeni işleme, çeşitli dize komutları ve / F İÇİN ve SET / A)HayırEvetEvet (*, ?, [...], genişletilmiş joker karakterler, SEÇ popup komutu)Evet (aracılığıyla / A: ... öznitelik ve /BEN"..." açıklama seçenekleri ve / [S ...] boyut, / [T ...] zaman, / [D ...] tarih /[Ö...] sahibi ve /[!...] dosya dışlama aralıkları)Evet (aracılığıyla İÇİN / R komut veya dolaylı olarak KÜRESEL komut veya mevcut olduğunda / S alt dizin seçeneği)
Güç kalkanıEvet (Concat / Substring / Insert / Remove / Replace, ToLower / ToUpper, Trim / TrimStart / TrimEnd, Compare, Contains / StartsWith / EndWith, Format, IndexOf / LastIndexOf, Pad / PadLeft / PadRight, Split / Join, normal ifade fonksiyonları ve diğer .NET dizesi işlevleri)HayırEvet (tam normal ifade desteği)[nb 18]Evet (*, ?, [...])??
rc??HayırEvetHayırHayır
BeanShell??Evet???
VMS DCLEvetHayırHayırEvetHayırEvet (aracılığıyla [SUBDIR ...])
balıkEvet (yerleşik dize işlevi)Evetevet (yerleşik aracılığıyla dize eşleşmesi ve dize değiştirme fonksiyonlar)Evet (*, ?, {...})HayırEvet (**/...)

Arası iletişim

KabukBorularKomut ikamesiİşlem ikamesiAlt kabuklarTCP /UDP akış olarak bağlantılarTuş istifleme
Bourne kabuğueşzamanlı baytEvetHayırEvetHayırYok[nb 19]
POSIX kabukeşzamanlı baytEvetHayırEvetHayırYok[nb 19]
bash (v4.0)eşzamanlı baytEvetEvet (sistem destekliyorsa / dev / fd /⟨N⟩ veya adlandırılmış borular)EvetEvet (yalnızca müşteri)Yok[nb 19]
csheşzamanlı baytEvetHayırEvetHayırYok[nb 19]
tcsheşzamanlı baytEvetHayırEvetHayırYok[nb 19]
Hamilton C kabuğueşzamanlı baytEvetHayırEvetHayır?
ScshMetin???EvetYok[nb 19]
ksh (ksh93t +)baytlar (eğer serileştirilmiş nesneler içerebilir baskı -C kullanılır) eşzamanlıEvet ($(...) ve $ { ...;})Evet (sistem destekliyorsa / dev / fd /⟨N⟩)EvetEvet (ve SCTP desteği, yalnızca istemci)Yok[nb 19]
pdksheşzamanlı baytEvetHayırEvetHayırYok[nb 19]
zsheşzamanlı baytEvetEvetEvetEvet (istemci ve sunucu, ancak yalnızca TCP)Yok[nb 19]
küleşzamanlı baytEvetHayırEvetHayırYok[nb 19]
ÇKPHayırHayırHayırHayırHayırHayır
COMMAND.COMmetin sıralı geçici dosyalarHayırHayırKısmi (yalnızca DR-DOS multitasker altında COMMAND.COM / T)HayırHayır
OS / 2 CMD.EXEeşzamanlı metinHayırHayır?HayırHayır
pencereler CMD.EXEeşzamanlı metinEvet (aracılığıyla / F İÇİN komut)HayırEvet (Backtick: ` içinde FOR / F usebackq)HayırHayır
4DOSmetin sıralı geçici dosyalarEvet (aracılığıyla / F İÇİN komut)?Kısmi (üzerinden % @ EXECSTR [] ve % @ EXEC []veya aracılığıyla AYAR / M, ESET / M ve AYARLANMADI / M ve %@USTA[...])HayırEvet (aracılığıyla KEYSTACK ve KSTACK)[51]
4OS2eşzamanlı metin???HayırEvet (aracılığıyla ANAHTARLIK)
TCC (eski adıyla 4NT)eşzamanlı metinEvet (aracılığıyla / F İÇİN komut)?Kısmi (üzerinden % @ EXECSTR [] ve % @ EXEC [])Evet (aracılığıyla FTP, TFTP, FTPS, SFTP, HTTP, HTTPS ve IFTP, yalnızca müşteri)Evet (aracılığıyla KEYSTACK)
Güç kalkanıeşzamanlı nesnelerEvetHayırEvetEvet?
rceşzamanlı metinEvetEvet (aracılığıyla: <{cmd} sistem destekliyorsa / dev / fd /⟨N⟩)EvetHayır?
BeanShelldesteklenmiyor???Evet?
VMS DCLmetin (aracılığıyla BORU komut)EvetHayırEvet (yumurtlama)Evet (yalnızca sunucu TCP'si)Hayır
balıkeşzamanlı baytEvet (...)Hayır (bozuk)[52]HayırHayırYok[nb 19]

Tuş istifleme

Belirli bir çalışan uygulamanın klavye girdisi olarak neyi kabul edebileceği beklentisiyle, kabuğun kullanıcısı kabuğa bir dizi oluşturma talimatı verir. simüle uygulamanın etkileşimli bir kullanıcıdan klavye girişi olarak yorumlayacağı tuş vuruşları. Kullanıcı, tuş vuruşu dizilerini göndererek uygulamayı, giriş yeniden yönlendirmesi yoluyla elde edilmesi imkansız olan veya başka şekilde etkileşimli bir kullanıcı gerektiren eylemleri gerçekleştirmesi için yönlendirebilir. Örneğin, bir uygulama yeniden yönlendirilemeyen tuş vuruşlarını etkiliyorsa, normal ve genişletilmiş anahtarlar arasında ayrım yapıyorsa, başlangıçta veya belirli koşullar altında yeni girişi kabul etmeden önce veya standart girişi hiç okumadığından kuyruğu temizler. Tuş vuruşu istifleme, tipik olarak, gönderilen simüle edilmiş anahtarların zamanlamasını kontrol etmek veya sıra temizlenene kadar yeni anahtarları geciktirmek için araçlar sağlar. Ayrıca, bir klavyede bulunmayan anahtarların simülasyonuna da izin verir (çünkü ilgili tuşlar fiziksel olarak mevcut değildir veya çünkü farklı bir klavye düzeni kullanılmaktadır) ve bu nedenle bir kullanıcı tarafından yazılması imkansız olacaktır.

Güvenlik özellikleri

KabukGüvenli (şifre) istemiŞifrelenmiş değişkenler / parametrelerDosya / dizin şifreleriİzni uygulaGüvenilmeyen komut dosyası engellemeKısıtlanmış kabuk alt kümesiGüvenli veri alt kümesi
Bourne kabuğuüzerinden stty[nb 20]Hayır?Yok[nb 21]HayırEvetHayır
POSIX kabuküzerinden stty[nb 20]Hayır?Yok[nb 21]HayırHayırHayır
bash (v4.0)okuma -'lerHayır?Yok[nb 21]HayırEvetHayır
cshüzerinden stty[nb 20]Hayır?Yok[nb 21]HayırEvetHayır
tcshüzerinden stty[nb 20]Hayır?Yok[nb 21]HayırEvetHayır
Hamilton C kabuğuHayırHayırHayırHayırHayırHayırHayır
Scshüzerinden stty[nb 20]Hayır?Yok[nb 21]HayırHayırHayır
ksh (ksh93t +)üzerinden stty[nb 20]Hayır?Yok[nb 21]HayırEvetHayır
pdkshüzerinden stty[nb 20]Hayır?Yok[nb 21]HayırEvetHayır
zshokuma -'lerHayır?Yok[nb 21]HayırEvetHayır
külüzerinden stty[nb 20]Hayır?Yok[nb 21]HayırEvetHayır
ÇKPHayırHayırHayırHayırHayırHayırHayır
COMMAND.COMKısmi (yalnızca DR-DOS altında, dosya / dizin korumalıysa parola ister)HayırKısmi (yalnızca DR-DOS altında dizinadı; dirpwd dosyaadı; dosyapwd sözdizimi)[nb 22]Kısmi (yalnızca DR-DOS altında, dosyalar okuma ve / veya yürütme izni için parola korumalıysa)[nb 23]HayırHayırHayır
OS / 2 CMD.EXEHayırHayırHayırHayırHayırHayırHayır
pencereler CMD.EXEHayırHayırHayırHayırHayırHayırHayır
4DOSEvet (aracılığıyla GİRİŞ / P veya MÜREKKEP / P)[nb 24]HayırKısmi (yalnızca DR-DOS altında dirname ;; dirpwd dosyaadı ;; dosyapwd sözdizimi)[nb 22]Kısmi (yalnızca DR-DOS altında, dosyalar okuma ve / veya yürütme izni için parola korumalıysa)[nb 23]HayırHayırHayır
4OS2?HayırHayırHayırHayırHayırHayır
TCC (eski adıyla 4NT)Evet (aracılığıyla GİRİŞ / P, MÜREKKEP / P veya QUERYBOX / P)[nb 24]HayırHayırHayırHayırHayırHayır
Güç kalkanıEvet[nb 25]EvetHayırHayır[nb 26]Evet[53]Evet[nb 27]Evet[54]
rcüzerinden stty[nb 20]Hayır?Yok[nb 21]HayırEvet[55]Hayır
BeanShell???????
VMS DCLEvetHayırHayırEvetHayırEvetHayır
balıkokuma -'lerHayır?Yok[nb 21]HayırEvet (aracılığıyla balık -l)?

Güvenli bilgi istemi

Bazı kabuk komut dosyalarının, aşağıdaki gibi hassas bilgiler için kullanıcıyı sorgulaması gerekir: şifreler özel dijital anahtarlar, PIN kodları veya diğer gizli bilgiler. Hassas giriş, yetkisiz kişiler tarafından temizlenebileceği ekrana / giriş cihazına geri yansıtılmamalıdır. Hassas bilgilerin düz metin bellek gösterimi de, örneğin takas dosyaları, çekirdek dökümler vb. Yoluyla bilgilerin tehlikeye atılmasına izin verebileceğinden kaçınılmalıdır.[56]

Kabuklar bash, zsh ve PowerShell bunu belirli bir özellik olarak sunar.[57][58] Bunu belirli bir özellik olarak sunmayan kabuklar yine de yankıyı başka yollarla kapatabilir. Bir Unix / Linux işletim sisteminde çalışan kabuklar, stty giriş karakterlerinin yankılanmasını kapatmak / açmak için harici komut.[59] Karakterleri geri yansıtmamaya ek olarak, PowerShell'ler -AsSecureString seçeneği ayrıca, giriş işlemi sırasında girişi karakter karakter şifreler ve dizenin hiçbir zaman bellek dökümleri, tarama, transkripsiyon vb. yoluyla tehlikeye atılabileceği bellekte şifrelenmemiş olarak temsil edilmesini sağlar.

Şifrelenmiş değişkenler / parametreler

Bir komut dosyası bir ortam değişkenine bir şifre okursa, düz metin olarak bellekte bulunur ve bu nedenle bir çekirdek dökümü aracılığıyla erişilebilir. Aynı zamanda, komut dosyası tarafından başlatılan diğer işlemler tarafından erişilebilen işlem ortamındadır.[60]

PowerShell, şifrelenmiş dize değişkenleri / parametreleri ile çalışabilir.[61] Şifrelenmiş değişkenler, değerlerin yanlışlıkla ör. transkriptler, yankılamalar, günlük dosyaları, bellek veya çökme dökümleri ve hatta kötü amaçlı bellek taraması. PowerShell, bu tür şifrelenmiş dizelerin metin dosyalarında kaydedilmesini de destekler ve geçerli kullanıcının sahip olduğu bir anahtarla korunur.

İzni uygula

Bazı işletim sistemleri bir yürütmek bir dosya için kullanıcılara / gruplara verilebilecek izin.

Unix sistemlerinde, yürütme izni dosyayı bir program olarak çağırmaya erişimi denetler ve hem çalıştırılabilir dosyalar hem de komut dosyaları için geçerlidir. program yükleyici, çalıştırma izninin uygulanmasında ne çağıran programdan ne de çağrılan programdan herhangi bir zorunluluk gerekmez - bu aynı zamanda kabuklar ve diğer yorumlayıcı programlar için de geçerlidir. POSIX C kitaplığı çekirdek ile arayüz oluşturmak için kullanılır. POSIX, exec Dosya yürütme iznini reddederse, işlevler ailesi EACCESS (izin reddedildi) ile başarısız olacaktır (bkz. yürütmek - Sistem Arayüzleri Referansı, Tek UNIX Spesifikasyonu, Sayı 7 Açık Grup ).

yürütmek izin yalnızca komut dosyası doğrudan çalıştırıldığında geçerlidir. Yorumlama kabuğuna bir argüman olarak bir komut dosyası çağrılırsa, kullanıcının tutup tutmadığına bakılmaksızın çalıştırılır. yürütmek bu komut dosyası için izin.

Windows ayrıca bir yürütmek izin verilmezse, Windows'a özgü kabukların hiçbiri, izin verilmemişse komut dosyasının yürütülmesini engellemez.

Güvenilmeyen komut dosyası engelleme

Bazı kabuklar, güvenilmez olduğu belirlenen komut dosyalarını engeller veya bir sistem yöneticisi tarafından istenirse komut dosyalarını çalıştırmayı reddeder.

Komut dosyası kaynak yürütme kısıtlaması

PowerShell, bilinmeyen / güvenilmeyen bir kaynaktan (ör. İnternet) elde edilmiş olarak işaretlenmiş komut dosyalarının yürütülmesini engelleyecek şekilde ayarlanabilir.[62] Web tarayıcıları, IM istemcileri, posta okuyucuları vb. Gibi internete yönelik uygulamalar, PowerShell tarafından anlaşılan alternatif bir veri akışında, internetten indirilen dosyaları kaynak bölge ile işaretler.

İmzalı komut dosyası kısıtlaması

Komut dosyası / kod imzalama politikaları, bir operasyon departmanının yalnızca güvenilir bir gözden geçiren / onaylayan tarafından incelenen ve imzalanan onaylı komut dosyalarını / kodları çalıştırmasını sağlamak için kullanılabilir. İmza rejimleri aynı zamanda kurcalamaya karşı da koruma sağlar. Satıcıdan bir müşteriye bir komut dosyası gönderilirse, müşteri, komut dosyasının aktarım sırasında değiştirilmediğinden ve komut dosyasının gerçekten de satıcıdan kaynaklandığından ve bir operatörü çalıştırması için sosyal mühendislik yapmaya çalışan bir saldırgandan değil, satıcıdan kaynaklandığından emin olmak için imzalamayı kullanabilir. saldırı komut dosyası.

PowerShell, komut dosyası güvenilir bir dijital sertifika kullanılarak dijital olarak imzalanmışsa, aksi takdirde engellenen komut dosyalarının (örneğin, güvenilmeyen bir bölgeden kaynaklanan) yürütülmesine izin verecek şekilde ayarlanabilir.[63][64][65]

Çok düzeyli yürütme politikaları

Bir şirket, şirket içinde ve / veya şirketin belirli bölümlerinde küresel olarak yürütme kısıtlaması uygulamak isteyebilir. İmzalı komut dosyalarını çalıştırmak için bir politika belirlemek, ancak şirketin belirli bölümlerinin bölgeli kısıtlamalar için kendi politikalarını belirlemesine izin vermek isteyebilir.

PowerShell, komut dosyası engelleme ilkelerinin birden çok düzeyde uygulanmasına izin verir: Yerel makine, mevcut kullanıcı vb. yerel makine için bir politika tanımlanmışsa, yerel makinenin tüm kullanıcıları için, yalnızca bırakılmışsa uygulanır. Tanımsız daha yüksek seviyede daha düşük seviyeler için tanımlanabilir.

Kısıtlanmış kabuk alt kümesi

Kullanıcı için yalnızca sınırlı sayıda komut ve eylemin mevcut olduğu bir modda başlamak üzere birkaç kabuk başlatılabilir veya yapılandırılabilir. Bir güvenlik olmasa da sınır (bir kaynağa erişen komut, kaynak yerine engellenir), yine de bu genellikle kullanıcıların oturum açmadan önce eylemlerini kısıtlamak için kullanılır.

Kısıtlı mod, POSIX Kabuklar için belirtim ve Linux / Unix kabuklarının çoğu, yerleşik komutların birkaçının devre dışı bırakıldığı ve yalnızca belirli bir dizinden harici komutların çalıştırılabildiği böyle bir modu destekler.[66][67]

PowerShell, kısıtlı modları destekler oturum yapılandırma dosyaları veya oturum yapılandırmaları. Bir oturum yapılandırma dosyası, görünür (kullanılabilir) cmdlet'leri, takma adları, işlevleri, yol sağlayıcıları ve daha fazlasını tanımlayabilir.[68]

Güvenli veri alt kümesi

Scripts that invoke other scripts can be a security risk as they can potentially execute foreign code in the context of the user who launched the initial script. Scripts will usually be designed to exclusively include scripts from known safe locations; but in some instances, e.g. when offering the user a way to configure the environment or loading localized messages, the script may need to include other scripts/files.[69] One way to address this risk is for the shell to offer a safe subset of commands which can be executed by an included script.

Güç kalkanı data sections can contain constants and expressions using a restricted subset of operators and commands.[70] PowerShell data sections are used when e.g. localized strings needs to be read from an external source while protecting against unwanted side effects.

Notlar

  1. ^ Since mid 1990s.
  2. ^ if compiled with -DACCT.
  3. ^ MS-DOS and Windows component – covered by a valid license for MS-DOS or Microsoft Windows.
  4. ^ OS/2 component – covered by a valid license for OS/2.
  5. ^ Command extensions enabled, or "CMD /X".
  6. ^ Windows component – covered by a valid license for Microsoft Windows.
  7. ^ Windows PowerShell is installed with Windows 7, however, it is an optional download for users of Windows Vista or Windows XP.
  8. ^ a b c current versions from Jörg Schilling.
  9. ^ Alt-Shift-8 or Alt-* will expand to the full matching list of filenames.
  10. ^ Aracılığıyla mevcut DOSKEY add-on.
  11. ^ Available in DR-DOS through TARİH.
  12. ^ Alternatively available through the DOSKEY add-on as well.
  13. ^ Alternatively available in DR-DOS through TARİH yanı sıra.
  14. ^ TCC has special prompt functions for Yes, No, Cancel, Close, Retry.
  15. ^ a b c Handled by Rio, GNU okuma satırı, editline veya vrl.
  16. ^ The fish shell is an interactive character based input/output surface.
  17. ^ Not available as a shell built-in. Harici FINDSTR /R command is available in most Windows releases.
  18. ^ PowerShell leverages the full .AĞ regular expression engine which features named captures, zero-width lookahead/-behind, greedy/non-greedy, character classes, level counting etc.
  19. ^ a b c d e f g h ben j k xautomation and xdotool can be used to generate keystrokes under X Pencere Sistemi; or a program can be run in a pseudoterminal to be able to control it (as with the beklemek aracı).
  20. ^ a b c d e f g h ben The shell can use the stty utility to suppress echoing of typed characters to the screen. This requires multiple steps: 1. reading the current echo state, 2. switching echo off, 3. reading the input, 4. switching echo state back to the original state.
  21. ^ a b c d e f g h ben j k l execute permission is enforced by a separate program, the program loader, by refusing to invoke the interpreter (possibly a shell) specified by the script's hashbang. The interpreter does not enforce the execute permission if invoked directly as the program loader would, with the file as an argument; this only requires read permission, as does piping the file as input to the interpreter, in which case the interpreter cannot see the execute permission.
  22. ^ a b Under DR-DOS the password separator for file and directory passwords is a semicolon. This is also supported under 4DOS for as long as the command does not support include lists. Under 4DOS, the password separator must be doubled for all commands supporting include lists in order to distinguish passwords from include lists. Commands not supporting include lists accept both forms. DR-DOS 7.02 and higher optionally accept a doubled semicolon as well, so that doubled semicolons work under both COMMAND.COM and 4DOS regardless of the command executed.
  23. ^ a b DR-DOS supports file passwords for read/write/delete and optionally execute permissions. Files are not protected by default, but the system can be set up so that f.e. batch scripts require a password to read.
  24. ^ a b INPUT /P ve INKEY /P echoes back asterisks for each typed character.
  25. ^ Read-Host -AsSecureString reads a string of characters from the input device into an encrypted string, one character at a time thus ensuring that there is no memory image of the clear text which could be gleaned from scanning memory, or from crash dumps, memory dumps, paging files, log files or similar.
  26. ^ PowerShell script files (.ps1 files) are by default associated with the Notepad editor, not with the PowerShell execution engine. Invoking a .ps1 file will launch Notepad rather than executing the script.
  27. ^ Startup scripts per computer/user can import modules and expose a subset the commands/functions available in the modules.

Referanslar

  1. ^ Bir platform independent version based on the historical UNIX V7 original source code is available from Geoff Collyer
  2. ^ The historic UNIX V7 version is available under a BSD-style license through the Unix Heritage Society and others.
  3. ^ Bir platform independent version based on the SVr4/Solaris source code is available from Jörg Schilling
  4. ^ Ferrell, John, "Chapter 2. Default Shell", FreeBSD Quickstart Guide for Linux Users, The FreeBSD Documentation Project, alındı 2015-07-24
  5. ^ "SchilliX-ON / SchilliX-ON Mercurial / [b1d9a2] /usr/src/cmd/sh". Sourceforge.net. Alındı 2015-07-02.
  6. ^ IEEE and The Open Group (2008). IEEE 1003.1 Standard for Information Technology – Portable Operating System Interface (POSIX): Shell and Utilities, Issue 7.
  7. ^ As part of IEEE Std.1003.2-1992 (POSIX.2); integrated into IEEE Std.1003.1 with the 2001 revision.
  8. ^ Fox, Brian (1989-06-07). Tower Jr., Leonard H. (ed.). "Bash is in beta release!". Yeni Grupgnu.announce. Usenet:  [email protected]. Alındı 2010-10-28.
  9. ^ Cooper, Mendel, "Chapter 37.3.2. Bash, version 4.2", Advanced Bash-Scripting Guide, The Linux Documentation Project, alındı 2015-04-30, "Bash now supports the u and U Unicode escape."
  10. ^ Greer, Ken (1983-10-03). "C shell with command and filename recognition/completion". Yeni Grupnet.sources. Alındı 2010-12-29.
  11. ^ Sussman, Ann (1988-12-26). "Hamilton C Shell, OS / 2 Uygulamalarının Geliştirilmesini Hızlandırıyor" (PDF). PC Haftası (1988-12-26 - 1989-01-02): 37. Alındı 2010-11-22.
  12. ^ Gomes, Ron (1983-06-09). "Toronto USENIX Conference Schedule (tentative)". Yeni Grupnet.usenix. Alındı 2010-12-29.
  13. ^ Harris, Guy (1983-10-10). "csh question". Yeni Grupnet.flame. Alındı 2010-12-29.
  14. ^ ksh93(1) man page
  15. ^ a b Default shell in OpenBSD is ksh (pdksh).
  16. ^ The zsh command line editor is fully configurable and can allow mouse support in various ways such as with Stéphane Chazelas's mouse.zsh.
  17. ^ zsh(1) man page and subpages
  18. ^ zshbuiltins(1) man page
  19. ^ "#782228 - busybox sh doesn't support multibyte characters in string handling - Debian Bug report logs". Bugs.debian.org. 2015-04-09. Alındı 2015-07-02.
  20. ^ "HP OpenVMS DCL Dictionary". Arşivlenen orijinal 2007-03-25 tarihinde. Alındı 2009-03-23.
  21. ^ Liljencrantz, Axel (2005-05-17). "Fish - The friendly interactive shell". Alındı 2013-04-08.
  22. ^ Soller, Jeremy (2015-11-15). "d79c8f511573fb7710abc63b4236a40022914520". Alındı 2019-08-03.
  23. ^ "[Z Shell] Completion System". Zsh.sourceforge.net. Alındı 2015-02-24.
  24. ^ Örneğin. via 3rd party such as zsh-autosuggestions
  25. ^ zsh does not feature syntax highlighting, but a 3rd party project exists which offers this capability as an add-on: zsh-syntax-highlighting
  26. ^ Paul, Matthias R. (1997-10-02) [1997-09-29]. "Caldera OpenDOS 7.01 / 7.02 Güncellemesi Alpha 3 IBMBIO.COM - README.TXT ve BOOT.TXT - OpenDOS'un nasıl başlatıldığına dair kısa bir açıklama". Arşivlenen orijinal 2003-10-04 tarihinde. Alındı 2009-03-29. [1]
  27. ^ a b c d e "Windows PowerShell Integrated Scripting Environment (ISE)". Microsoft Technet. Alındı 2015-09-12.
  28. ^ a b c d Shirk, Jason (2018-02-15). "PSReadLine: A bash inspired readline implementation for PowerShell" - GitHub aracılığıyla.
  29. ^ "Arşivlenmiş kopya". Arşivlenen orijinal 17 Eylül 2016'da. Alındı 8 Eylül 2016.CS1 Maint: başlık olarak arşivlenmiş kopya (bağlantı)
  30. ^ Push-Location (with alias pushd) ve Pop-Location (with alias popd) allows multiple location types (directories of file systems, organizational units of Active Directory, nodes of Windows Kayıt Defteri etc) to be pushed onto and popped from location stacks.
  31. ^ $host.ui.PromptForChoice function allows for a menu-style prompt for choices. The prompt works from background jobs as well as from remote sessions, displaying the menu prompt on the console of the controlling session.
  32. ^ Write-Progress cmdlet writes a progress bar which can indicate percentage, remaining seconds etc. The progress bar messages work from background jobs or remote sessions in addition to interactive scripts, i.e. the progress bar is displayed on the console of the controlling session, not as part of the regular output.
  33. ^ Show-Command cmdlet inspects the command definition and opens an interactive windows with a named input field for each parameter/switch
  34. ^ a b "fish: Documentation". Bölüm Sekme tamamlama. Alındı 2016-01-10.
  35. ^ "zsh: 20. Completion System". Zsh.sourceforge.net. 2013-03-06. Alındı 2013-08-18.
  36. ^ "Use PowerShell to Make Mandatory Parameters". Blogs.technet.com. Alındı 2015-02-24.
  37. ^ Eşzamanlı DOS 386 - Çok Kullanıcılı / Çok Görevli İşletim Sistemi - Kullanım Kılavuzu (PDF). Dijital Araştırma.
  38. ^ "#1 Windows Command Line Replacement - Windows CMD Command Prompt Commands". JP Yazılımı. Alındı 2013-08-18.
  39. ^ a b "Windows PowerShell 3.0 Integrated Scripting Environment (ISE)". Technet.microsoft.com. Alındı 2013-08-18.
  40. ^ "PowerShell v3 ISE and ISE scripting model changes & improvements". PowerShell Magazine. 2011-09-28. Alındı 2013-08-18.
  41. ^ "pv(1): monitor progress of data through pipe - Linux man page". Linux.die.net. Alındı 2015-02-24.
  42. ^ "zsh-users/zsh-syntax-highlighting: Fish shell like syntax highlighting for Zsh". GitHub. Alındı 2013-08-18.
  43. ^ "Show-Command". Technet.microsoft.com. Alındı 2013-08-18.
  44. ^ "Ash Variants". Arşivlenen orijinal 2010-03-10 tarihinde. Alındı 2014-12-15.
  45. ^ "Set - Environment Variable - Windows CMD". SS64.com. Alındı 2015-02-24.
  46. ^ "How to loop through array in batch?". Yığın Taşması. Alındı 2015-02-24.
  47. ^ The .NET System.Math class defines mathematical functions that can be used through the shortcut [Math], Örneğin. [Math]::Sin için sinüs işlevi.[2]
  48. ^ Hamilton C shell Language reference: Wildcarding and pattern matching, Hamilton Laboratories, alındı 2013-10-29, ... Indefinite Directory: match any number of directory levels – zero or more – whatever it takes to make the rest of the pattern match.
  49. ^ a b Seebach, Peter (2008). Beginning Portable Shell Scripting: From Novice to Professional. Expert's voice in open source. Apress. s. 149. ISBN  9781430210436. Alındı 2014-09-17. Brace expansion is available in ksh93, pdksh, bash, and zsh.
  50. ^ Zsh offers a variety of globbing options.
  51. ^ 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.
  52. ^ "find a way to make `psub --fifo` safe from deadlock · Issue #1040 · fish-shell/fish-shell". GitHub.
  53. ^ "About Execution Policies". Technet.microsoft.com. Alındı 2015-02-24.
  54. ^ "About Data Sections". Technet.microsoft.com. Alındı 2015-02-24.
  55. ^ "Ubuntu Manpage: rc - shell". Manpages.ubuntu.com. 2003-07-17. Alındı 2015-02-24.
  56. ^ Provos, Niels. "Encrypting Virtual Memory". Center for Information Technology Integration, University of Michigan. Alındı 2012-12-20.
  57. ^ "bash - GNU Bourne-Again SHell". read -s Silent mode. If input is coming from a terminal, characters are not echoed.
  58. ^ "Using the Read-Host Cmdlet". By adding the -assecurestring parameter you can mask the data entered at the prompt
  59. ^ "Linux / Unix Command: stty". Linux.about.com. Alındı 2015-02-24.
  60. ^ Albing, Carl; Vossen, J. P.; Newham, Cameron (2007). "3.8. Prompting for a Password". Bash yemek kitabı (1. baskı). Sebastopol, California: O'Reilly Media. s.65. ISBN  978-0-596-52678-8. Be aware that if you read a password into an environment variable it is in memory in plain text, and thus may be accessed via a core dump or /proc/core. It is also in the process environment, which may be accessible by other processes.
  61. ^ Holmes, Lee. "SecureStrings in PowerShell". Alındı 2012-12-18.
  62. ^ "PowerShell Security :: Windows OS Security :: Articles & Tutorials". WindowSecurity.com. Alındı 2013-08-18.
  63. ^ "Signing PowerShell Scripts". Hanselman.com. Alındı 2015-12-24.
  64. ^ "Hey, Scripting Guy! How Can I Sign Windows PowerShell Scripts with an Enterprise Windows PKI? (Part 2 of 2) - Hey, Scripting Guy! Blog - Site Home - TechNet Blogs". Blogs.technet.com. Alındı 2013-08-18.
  65. ^ "Running Windows PowerShell Scripts". Technet.microsoft.com. Alındı 2013-08-18.
  66. ^ "man sh - shell, the standard command language interpreter / posix" (Fransızcada). Pwet.fr. Arşivlenen orijinal 2014-12-21 tarihinde. Alındı 2013-08-18.
  67. ^ "Bash Reference Manual: The Restricted Shell". Gnu.org. 2010-12-28. Alındı 2013-08-18.
  68. ^ "New-PSSessionConfigurationFile". Technet.microsoft.com. Alındı 2013-08-18.
  69. ^ Albing, Carl; Vossen, J. P.; Newham, Cameron (2007). Bash yemek kitabı (1. baskı). Sebastopol, California, USA: O'Reilly Media. ISBN  978-0-596-52678-8. [...] is hardly what one thinks of as a passive list of configured variables. It can run other commands (e.g., cat) and use if statements to vary its choices. It even ends by echoing a message. Be careful when you source something, as it's a wide open door into your script.
  70. ^ "About Data Sections". Microsoft. Alındı 2012-12-18.

Dış bağlantılar