Unix-shell
En Unix - skal er det udtryk, der bruges i computere for at henvise til kommandofortolkeren af Unix -baserede og lignende operativsystemer , såsom GNU/Linux , og som er deres traditionelle brugergrænseflade . Ved hjælp af instruktionerne fra tolken kan brugeren kommunikere med kernen og i forlængelse heraf udføre de nævnte ordrer, samt værktøjer , der giver ham mulighed for at styre driften af computeren. Af denne grund hed det på engelsk sådan, shell , som kan oversættes til "shell", fordi det er computersystemets synlige skal.
Kommandoerne fra tolkene kan bruges som et script, hvis de er skrevet i eksekverbare filer kaldet shell-scripts, på denne måde, når brugeren skal bruge flere kommandoer eller kommandoer kombineret med værktøjer, skriv i en tekstfil , markeret som eksekverbare, de operationer, som tolken senere, linje for linje, vil oversætte til kernen, så den kan udføre dem. Uden at være et shell-script udelukkende et programmeringssprog, kaldes processen med at skabe shell-scripts shell-programmering eller på engelsk shell-programmering eller shell-scripting .
I den mest generiske betydning af udtrykket betyder shell enhver fortolker, som brugere bruger til at skrive kommandoer. Dens etymologi kommer fra den naturlige brug af konsoller i computere, der tidligere kørte under Unix, når brugere tilsluttede sig den centrale computer, gjorde de det gennem konsoller (skaller), hvorved de gennem en tolk loggede ind og styrede hovedcomputeren. Senere, med udbredelsen af personlige computere og deres enkeltbrugerfilosofi, én computer pr. bruger (forstået som det modsatte af Unix's oprindelige filosofi, én computer, mange brugere forbundet med terminaler), blev der udviklet software, der emulerede de vigtigste egenskaber ved fysiske konsoller, så de stadig kunne bruges som klienter på en computer eller kerne, der forstod standardkonventionen, der blev brugt til at konfigurere og udføre nødhåndteringsopgaver med Unix-baserede servere.
Unix og lignende brugere kan vælge mellem forskellige skaller (program der skal køres når de logger på, se bash , ash , csh , Zsh , ksh , tcsh ). Grafiske brugergrænseflader til Unix, såsom GNOME , KDE og Xfce , kan kaldes visuelle skaller eller grafiske skaller . I sig selv er udtrykket shell normalt forbundet med kommandolinjen. På Unix kan ethvert program være en brugerskal. Brugere, der ønsker at bruge en anden syntaks til at komponere kommandoer, kan angive en anden fortolker som deres brugerskal.
Udtrykket shell refererer også til et bestemt program, såsom Bourne shell , sh . Bourne-skallen var skallen, der blev brugt i tidlige versioner af Unix og blev en de facto standard ; alle Unix-lignende systemer har mindst én skal, der er kompatibel med Bourne-skallen. Bourne shell-programmet er placeret i Unix-filhierarkiet på /bin/sh . På nogle systemer, såsom BSD , er /bin/sh en Bourne shell eller tilsvarende, men på andre systemer, såsom mange Linux-distributioner , er /bin/sh et symbolsk link til en shell, der understøtter flere funktioner (såsom Bash ). POSIX angiver sin standardskal som en streng delmængde af Korn-skallen .
Skalkategorier
De kan opdeles i fire kategorier: Bourne-type, C-konsoltype, ikke-traditionel og historisk.
Bourne shell kompatibel
- Bourne shell (sh) - Skrevet af Steve Bourne , da han var på Bell Labs . Den blev først distribueret med Version 7 Unix i 1978 og er blevet forbedret gennem årene.
- Almquist shell (aske) - Skrevet som en erstatning for den BSD -licenserede Bourne shell ; sh fra FreeBSD , NetBSD (og dets derivater) er baseret på ash og er blevet POSIX -forbedret til lejligheden.
- Bourne-Again shell (bash) -- Blev skrevet som en del af GNU -projektet for at give et supersæt af funktionalitet med Bourne-skallen.
- Debian Almquist Shell (dash) – Dash er en moderne erstatning for aske i Debian .
- Korn shell (ksh) - Skrevet af David Korn , mens han var hos Bell Labs .
- Z shell (zsh) -- Betragtes som den mest komplette: det er det tætteste der er på at omfatte et supersæt af sh, ash, bash, csh, ksh og tcsh.
Kompatibel med C-skallen
- C shell (csh) skrevet af Bill Joy , mens han var på University of California, Berkeley . Det blev først distribueret med BSD i 1979.
- TENEX C skal (tcsh).
Andet eller eksotisk
- fish , en venlig og interaktiv skal, udgivet første gang i 2005.
- mudsh , en smart shell i spilstil, der fungerer som en MUD .
- zoidberg, en modulær skal skrevet i Perl, konfigureret og drevet udelukkende i Perl .
- rc , standardskallen til Plan 9 fra Bell Labs og version 10 af Unix skrevet af Tom Duff . Der er lavet porte til Inferno og til Unix-baserede operativsystemer.
- er shell (s), en RC-kompatibel shell skrevet i midten af 90'erne.
- scsh (Scheme Shell)
Konfigurationsfiler til skaller
En shell læser konfigurationsfiler under flere omstændigheder under forskellige shell-afhængigheder. Denne tabel viser konfigurationsfilerne for de mest populære skaller:
| sh | ksh | csh | tcsh | bash | zsh | |
|---|---|---|---|---|---|---|
/etc/.login
|
Ingen | Ingen | Log på | Log på | Ingen | Ingen |
/etc/csh.cshrc
|
Ingen | Ingen | Ingen | Ja | Ingen | Ingen |
/etc/csh.login
|
Ingen | Ingen | Ingen | Log på | Ingen | Ja |
~/.tcshrc
|
Ingen | Ingen | Ingen | Ja | Ingen | Ingen |
~/.cshrc
|
Ingen | Ingen | Ja | Ja | Ingen | Ingen |
~/.login
|
Ingen | Ingen | Log på | Log på | Ingen | Ingen |
~/.logout
|
Ingen | Ingen | Log på | Log på | Ingen | Ingen |
/etc/profile
|
Log på | Log på | Ingen | Ingen | i.login | Ingen |
~/.profile
|
Log på | Log på | Ingen | Ingen | Log på | Ingen |
~/.bash_profile
|
Log på | Ingen | Ingen | Ingen | Log på | Ingen |
~/.bash_login
|
Ingen | Ingen | Ingen | Ingen | Log på | Ingen |
~/.bashrc
|
Ingen | Ingen | Ingen | Ingen | Log på | Ingen |
/etc/zshenv
|
Ingen | Ingen | Ingen | Ingen | Ingen | Ja |
/etc/zprofile
|
Ingen | Ingen | Ingen | Ingen | Ingen | Log på |
/etc/zshrc
|
Ingen | Ingen | Ingen | Ingen | Ingen | int. |
/etc/zlogin
|
Ingen | Ingen | Ingen | Ingen | Ingen | Log på |
/etc/zlogout
|
Ingen | Ingen | Ingen | Ingen | Ingen | Log på |
~/.zshenv
|
Ingen | Ingen | Ingen | Ingen | Ingen | Ja |
~/.zprofile
|
Ingen | Ingen | Ingen | Ingen | Ingen | Log på |
~/.zshrc
|
Ingen | Ingen | Ingen | Ingen | Ingen | int. |
~/.zlogin
|
Ingen | Ingen | Ingen | Ingen | Ingen | Log på |
~/.zlogout
|
Ingen | Ingen | Ingen | Ingen | Ingen | Log på |
Forklaring:
- "nej" betyder, at skallen slet ikke vil læse filen.
- "ja" betyder, at filen altid læses af skallen.
- "login" betyder, at filen læses, hvis skallen er en logningsshell.
- "n/login" betyder, at filen læses, hvis skallen ikke er en sessionsshell.
- "int." betyder, at en fil læses, hvis det er en interaktiv skal.
- "i.login" betyder, at en fil læses, hvis skallen er en interaktiv session.
Historisk
- Thompson shell (sh) - Den første Unix shell blev skrevet af Ken Thompson på Bell Labs . Distribueret med Unix version 1 til 6, fra 1971 til 1975. Det anses for meget rudimentært efter moderne standarder og bruges ikke på nuværende systemer. Der er nogle dele af det tilgængelige: Ancient UNIX Systems .
- PWB shell eller Mashey shell (sh) – En version af Thompson shell, skabt af John Mashey og andre, mens de var på Bell Labs . Distribueret med Programmer's Workbench UNIX , i 1976.
Ikke-Unix-skaller
Inden for Microsoft Windows -pakken af operativsystemer er det analoge programmerne command.com eller cmd.exe til Windows NT -baserede operativsystemer og Windows PowerShell introduceret med Windows Server 2008 .
Se også
- skal-skrift
- Tillæg: Programmer til Unix
- Core (datalogi)
Bibliografi
- Ellie Quigley (2001). "Introduktion til UNIX-skaller". Unix-skaller ved eksempel . Prentice Hall PTR. ISBN 0-13-066538-X . - Historien om forskellige skaller, anvendelser og ansvar for en skal i Unix.