Unix styresystem. Unix system kommandosprog

Kommandotolk, kommandolinjetolk - computerprogram, den del af operativsystemet, der giver grundlæggende evner styre computeren ved interaktivt at indtaste kommandoer gennem en kommandolinjegrænseflade eller sekventielt udføre batchkommandofiler.

Som regel er dens funktioner begrænset til at give brugeren mulighed for at køre andre programmer; den kan også indeholde nogle grundlæggende kommandoer I/O og dets eget simple scripting programmeringssprog.

@ echo off : start Cls Titel Lommeregner Farve 71 Ekko Indtast ligning: Indstil /P exp = Sæt /A resultat =% exp % Titel beregnet ekko Din ligning: %exp% Ekko Løsning: %result% Pause > nul skal begynde

Lommeregner, til bash-skallen:

#!/usr/bin/env bash ekko "Lommeregner", mens læsning -s "Indtast udtryk: " expr do echo "Resultat: $(($expr ))" udført

Begreber

Skallen fungerer med enkle kommandoer.

Simpel kommando er en sekvens af ord adskilt af mellemrum. At trykke på Enter-tasten, når du indtaster en kommando eller et linjeskift, når du behandler et script, er et tegn for kommandofortolkeren, at kommandoen har fuldført. Det behandles og udføres.

Transportør er en sekvens af en eller flere kommandoer adskilt af |(& for cmd.exe). Standardoutputtet for hver kommando undtagen den sidste er forbundet vha program kanal med standardinputstrømmen af ​​følgende kommando. Hver kommando kører som en separat proces; tolken venter på færdiggørelse sidste kommando. Udgangsstatus for en pipeline er udgangsstatus for dens sidste kommando. Her er et eksempel på en simpel pipeline til bash-tolken:

$ls | tee spar | wc 15 15 100

Kommandotolke

Data Control Language - databasesprog til administrative funktioner

Digital Command Language er en kommandolinjefortolker til DEC-operativsystemer.

DCL - moderne fransk tungt pansret bjærgningskøretøj

MZ (format)

MZ- standard format 16-bit eksekverbare filer med filtypenavnet .EXE til DOS. Opkaldt efter sin signatur - ASCII-tegn MZ (4D 5A) i de første to bytes. Denne signatur er initialerne af Mark Zbikowski, en af ​​skaberne af MS-DOS. Formatet blev udviklet som en erstatning for det forældede .COM-format. MZ-eksekverbare filer inkluderer metadata, kan være større end 64 KB og bruge flere hukommelsessegmenter forskellige typer(kode, data og stak), kan indgangspunktet til programmet også være hvor som helst (i .COM-filer starter kommandoudførelsen altid direkte fra begyndelsen af ​​filen). Metoden til at indlæse en eksekverbar fil bestemmes af dens signatur: hvis den er til stede, behandles MZ-headeren, hvis ikke, lanceres filen som .COM - uanset filtypenavnet (f.eks. i den seneste MS-DOS versioner Kommandolinjefortolkeren COMMAND.COM er faktisk en EXE-fil).

Senere Windows eksekverbare formater starter med en MZ stub. Typisk vil en stub tilføjet af compilere udsende en besked som "Dette program kan ikke køres i DOS-tilstand."

Ældre DOS-linkere kan have brugt ZM-signaturen, som også genkendes af MS-DOS og en række kompatible operativsystemer.

SQL*Plus

SQL*Plus er et kommandolinjefortolkerprogram til at arbejde med et databasestyringssystem Oracle data Database, hvor SQL og PL/SQL kommandoer kan udføres i interaktiv form eller fra manuskriptet.

SQL*Plus fungerer som et relativt simpelt værktøj med en kommandolinjegrænseflade. Programmører og databaseadministratorer bruger det typisk som standardværktøj, da grænsefladen er tilgængelig i næsten enhver installation software Oracle.

TOPS-20

TOPS-20 (tidligere TENEX) - operativ system, udviklet af BBN Technologies (Bolt, Beranek og Newman) til DEC PDP-10 computere. TENEX inkluderede en komplet systemimplementering virtuel hukommelse, som tillod programmer ikke kun at få adgang til alle 262 kiloord hukommelse (svarende til 1152 kilobytes), men også at gøre det samtidigt; hukommelsessøgesystemet kopierede data fra og til eksterne medier efter behov.

En af Karakteristiske træk TENEX var dens brugerorienterede kommandolinjefortolker. I modsætning til typiske systemer af den tid[hvilken?], TENEX brugte for klarhedens skyld lange navne kommandoer selv med overflødige ord. For at udskrive indholdet af en mappe i UNIX bruges f.eks. kommandoen ls, og i TENEX - DIRECTORY (OF FILES), hvor DIRECTORY er et nøgleord og OF FILES er en redundans, der er introduceret for at gøre formålet med kommandoen For TENEX blev det skrevet selvkopierende lokale netværk Creeper-program, som fejlagtigt regnes for en af ​​verdens første computervirus.

Tag kommandoen

Take Command er navnet JP Software, der bruges til dens grafiske brugergrænseflade (GUI) kommandolinjefortolkere til Windows 3.1 (TC16), 32-bit versioner af Windows (TC32) og senere OS/2 Presentation Manager (TCOS2). De blev udgivet parallelt med versionerne 4DOS 5.5, 4NT 2.5 og 4OS2 2.52. Produkter til OS/2 og Windows i 16-bit versioner holdt indtil version 2.02 og kan stadig downloades fra JP Softwares FTP-websted.

Take Command i dag er en kommandolinjefortolker til familiens operativsystemer Microsoft Windows. Dens fordele i forhold til standardkommandoen Windows skal det samme som 4DOS før COMMAND.COM fra MS-DOS-distributionen.

Siden version 9 refererer navnet Take Command til hele softwarepakken: TCI ( kommandogrænseflade i faner) og 4NT. Udviklingen af ​​den originale version af Take Command er afbrudt. TCI-komponenten er nu udvidet til at omfatte en filhåndtering, brugerdefinerede paneler og en række andre vinduer, og 4NT er blevet omdøbt til TCC og derudover fulde version tilgængelig i gratis "lite" (TCC/LE).

Take Command har tilføjet en indbygget editor og debugger til batchfiler, kommandoerne inkluderer nu filadgang via FTP og HTTP, adgang til et netværksfilsystem, integration med Active Scripting, systemovervågning og administrationskommandoer Windows-tjenester.

Tag Command Console (TCC)

Tag Command Console (TCC) (tidligere 4DOS Til Windows NT og 4NT) er en kommandolinjefortolker produceret af JP Software som en mere funktionsrig erstatning for i Microsoft Windows - CMD.EXE. TCC er baseret på den tidligere udgivne 4DOS-skal til DOS og 4OS/2 til OS/2.

Siden version 12 er 4NT blevet fjernet Windows support 95, 98, ME, NT og 2000. Fra version 16 har TCC fjernet understøttelsen af ​​Windows XP, selvom drift i XP stadig er mulig. 4NT er blevet omdøbt til Take Command Console (TCC) som en del af JP Software Take Command version 9 og senere.

TCC giver stort sæt muligheder for at arbejde med kommandolinjen og batch-filer. For at give omfattende adgang til operativsystemet giver TCC dig mulighed for at arbejde sammen med andre scriptsprog - REXX, Ruby og Perl eller Windows scriptsprog i form af Active Scripting engines - VBScript og JScript, samt PerlScript ( via ActivePerl), TclScript (via ActiveTcl), PythonScript (via ActivePython) og en version af Object REXX-scriptmotoren.

Kommandolinjegrænseflade

Kommandolinjegrænseflade (CLI) er en type tekstgrænseflade (CUI) mellem en person og en computer, hvor instruktioner til computeren hovedsageligt gives gennem tastaturinput tekststrenge(kommandoer), i UNIX-systemer er det muligt at bruge en mus. Også kendt som konsol.

Kommandolinjegrænsefladen står i kontrast til menubaserede programstyringssystemer såvel som forskellige implementeringer GUI.

Formatet på informationsoutput i kommandolinjegrænsefladen er ikke reguleret; normalt er det også enkelt tekst output, men kan også være grafisk, lyd osv.

Gendannelseskonsol

Recovery Console er en komponent inkluderet i Windows 2000, Windows XP og Windows Server 2003. Det giver administratorer mulighed for at udføre et begrænset udvalg af opgaver ved hjælp af en kommandolinjegrænseflade. Dens hovedformål er at give administratorer mulighed for at gendanne operativsystemet i situationer, hvor Windows ikke starter til GUI-tilstand. Gendannelseskonsollen bruges til at give adgang til harddisk i en nødsituation via kommandolinjen. Således kan genoprettelseskonsollen tilgås enten via originalen installationsmedie, anvendes til Windows installationer, eller kan også installeres på HDD og tilføje NTLDR til menuen, men at stole på sidstnævnte er mere risikabelt, fordi det kræver, at computeren starter før NTLDR.

Sammenligning af programmeringssprog

Tabellen nedenfor fremhæver tilstedeværelsen eller fraværet af visse funktioner i nogle af nutidens populære programmeringssprog. Kolonnerne er ordnet alfabetisk. Hvis en funktion på et sprog ikke er direkte tilgængelig, men kan emuleres på andre måder, angiver tabellen, at den ikke eksisterer.

Ved udfyldning af tabellen tages der kun hensyn til faktuelle data, på trods af at tilstedeværelsen af ​​en funktion ikke nødvendigvis er en fordel ved sproget, og fraværet er en ulempe.

NTFS forbindelsespunkt

NTFS Junction Point - en nyskabelse i fil NTFS system 3.0 (standard filsystem i Windows 2000). Essensen af ​​innovationen er, at det angivne logiske drev eller mappe vil blive vist som en mappe på en anden logisk drev eller i en anden mappe. Denne funktion giver dig mulighed for at skabe nogle effekter med filsystem(gem for eksempel to profiler af den samme bruger og skift mellem dem uden særlige problemer). Sammenføjningspunktet er implementeret i NTFS som en speciel type gentagelsespunkt.

Denne funktion kan konfigureres i snap-in'et Diskhåndtering: klik Højreklik på det tilsluttede drev skal du vælge "Skift drevbogstav eller drevsti...", så vil alle blive vist på listen mulige måder til disken er disken som standard tilgængelig med sit bogstav ("X:" - hvor X er drevbogstavet). Du kan ændre stien til disken ved hjælp af de tilsvarende knapper under listen.

For at oprette et forbindelsespunkt til en mappe, kan du bruge linkd-værktøjet, som er inkluderet i Windows 2000 og Windows XP Resource Kits. I Windows Vista og ovenover kan et forbindelsespunkt eller symbolsk link oprettes ved hjælp af standarden konsol kommando mklink.

For at få adgang til en sådan mappe behøver du ikke nogen yderligere indstillinger applikationer, det vil sige, adgang udføres ved at indtaste mappeadressen. Dermed forsvinder grænsen på 26 lokale mængder på én computer (antallet af bogstaver i det engelske alfabet til navngivning af diske), da diskenheden kan tilgås uden at tildele den et navn.

Shebang (Unix)

Shebang (eng. shebang, sha-bang, hashbang, pound-bang eller hash-pling) - i programmering, en sekvens af to symboler: en hash og udråbstegn("#!") i begyndelsen af ​​scriptfilen.

Når et shebang-script udføres som et program på Unix-lignende operativsystemer, behandler programindlæseren resten af ​​linjen efter shebang som navnet på fortolkerprogramfilen. Indlæseren starter dette program og giver det navnet på scriptfilen med shebang som parameter. For eksempel, hvis det fulde navn på scriptfilen er "sti/til/script", og den første linje i denne fil er:

#!/bin/sh så kører loaderen "/bin/sh" (normalt en Bourne shell eller kompatibel kommandolinjefortolker) og sender "sti/til/script" som den første parameter.

Shebang-linjen springes normalt over af tolken, da "#"-tegnet er starten på kommentartegn i mange scriptsprog. Nogle tolke, der ikke bruger et hash-tegn til at angive begyndelsen af ​​kommentarer (såsom Scheme), kan udelade shebang-linjen for at bestemme formålet. Andre løsninger er afhængige af en præprocessor, der behandler og fjerner shebang-linjen, før resten af ​​scriptet sendes til compileren eller fortolkeren. Sådan fungerer InstantFPC for eksempel, som giver dig mulighed for at køre programmer skrevet i Gratis Pascal, ligesom scripts på nogle operativsystemer.

Når du arbejder med FreeBSD, i de fleste tilfælde at udføre daglige opgaver der bruges en kommandogrænseflade (den såkaldte ``shell''), som accepterer kommandoer, der gives til den, og udfører dem. Mange kommandofortolkere har indbyggede værktøjer til at udføre almindeligt anvendte kommandoer, såsom fil- og mappeoperationer, kommandolinjeredigering, kommandomakroer og miljøvariabler. FreeBSD kommer med flere kommandofortolkere, såsom sh eller Bourne Shell og csh, også kendt som C-shell. Mange andre mere kraftfulde, såsom tcsh eller bash, er tilgængelige i ports-kollektionen. Hvilken shell skal du bruge? Det er en smagssag. Hvis du er en C-programmør, vil du sikkert kunne lide tcsh, og hvis du har arbejdet med Linux, vil du være mere komfortabel med bash end noget andet. Hver af disse fortolkere har sine egne specielle egenskaber, der adskiller den fra de andre og kan påvirke dit valg.En af de mest brugte funktioner i kommandofortolkeren er færdiggørelsen af ​​et delvist filnavn til det fulde. Du kan bare skrive de første par tegn i filnavnet, trykke på TAB-tasten, og skallen vil automatisk.For eksempel har vi to filer ved navn foobar og foo.bar. Lad os sige, at vi vil slette filen foo.bar . For at gøre dette skal du skrive rm fo på tastaturet. .Du vil se følgende: rm foo.bar .Her er det såkaldte konsolkald, der signalerer, at tolken ikke er i stand til at fuldføre filnavnet, da det er umuligt at identificere filen entydigt baseret på de tegn, du har indtastet. For eksempel starter filnavnene foobar og foo.bar begge med fo , men efter at have trykket på TAB kan de kun udvides unikt til foo . Hvis du nu indtaster et punktum (.) og trykker TAB igen, vil tolken udfylde hele filnavnet Når der arbejdes med evt. kommandotolk Du vil støde på miljøvariabler. En miljøvariabel er en streng af tegn, der er identificeret med et navn. Betyder miljøvariabler kan læses af ethvert program, der kører fra en shell, og indeholder ofte konfigurationsindstillinger for mange programmer og hjælpeprogrammer. Nedenfor er nogle af de mest almindelige miljøvariabler med en forklaring på deres betydning:

VariabelBeskrivelse BRUGERNuværende brugernavn.STIKolonseparerede mapper til at søge efter eksekverbare filer.SKÆRMNetværksnavnet på den virtuelle X11-skærm, hvis tilgængelig for tilslutning.SKALDen nuværende kommandotolk.SEMESTERTerminalens navn (type). Bruges til at finde ud af terminalens muligheder.TERMCAPListe over escape-sekvenser til styring af forskellige terminalfunktioner.OSTYPENavn (type) på operativsystemet. For eksempel FreeBSD.MACHTYPEMaskin (processor) arkitektur.REDAKTØRBruger foretrukken tekst editor. SØGERBrugerens foretrukne filvisningsværktøj.MANPATHKolon-separerede mapper, hvori der søges efter systemmappefiler.

Afhængigt af den skal du bruger, kan du bruge forskellige kommandoer til at se og indstille værdierne for miljøvariabler. For eksempel i csh- og tcsh-fortolkerne er det setenv . I sh og bash sættes disse og eksporteres. Især for at indstille eller ændre værdien af ​​EDITOR-variablen (i csh eller tcsh) til /usr/local/bin/emacs , kør kommandoen: setenv EDITOR /usr/local/bin/emacs Hvis du bruger bash: eksport EDITOR="/usr /local/bin/emacs" For at få værdien af ​​en variabel, for eksempel på kommandolinjen, skal du placere et dollartegn ($) foran variabelnavnet. Ekko $TERM-kommandoen vil for eksempel udskrive værdien af ​​$TERM-variablen Kommandofortolkeren accepterer visse tegn, kaldet metategn, som kontroller, der bærer specielle funktioner. Nogle af de mest brugte er symbolet *, som erstatter et vilkårligt antal tegn i et filnavn, og ? , der erstatter ét tegn. Disse metategn bruges til at søge efter filer efter maske, for eksempel gør kommandoen echo * næsten det samme som kommandoen ls, da alle filer fra nuværende bibliotek(faktisk er dette altid tilfældet og afhænger af kommandofortolkeren, f.eks. i bash vil *-masken ikke inkludere filer, der starter med en prik. - skjulte filer.) I nogle situationer kræves det, at fortolkeren opfatter metakarakterer som almindelige, ikke bærer en særlig betydning belastninger. Dette kan opnås ved at indlede tegnet med en omvendt skråstreg (\). For eksempel vil echo $TERM-kommandoen udskrive typen af ​​din terminal, mens echo \$TERM-kommandoen vil udskrive ordet $TERM , ikke værdien af ​​$TERM-variablen.

3.4.1. Sådan ændres standardkommandofortolkeren

Det enkleste ville nok være at bruge kommandoen chsh. Hvis EDITOR-variablen er defineret, vil $EDITOR-teksteditoren blive indlæst, ellers vi. Du bliver nødt til at ændre værdien af ​​feltet ``Shell:"" og afslutte editoren, og gemme resultaterne. Du kan også bruge -s muligheden for chsh kommandoen. For eksempel: % chsh -s /usr/local/bin/bash
Bemærk: Husk, for at bruge et program som kommandofortolker, skal det være det Nødvendigvis nævnt i filen /etc/shells. Normalt, når du installerer tolke fra ports-træet, sker dette automatisk. Hvis dette ikke er tilfældet, skal du selv tilføje den passende linje til denne fil. Lad os for eksempel sige, at du har installeret bash manuelt, uden at bruge den tilsvarende port, og placeret den i mappen /usr/local/bin. I dette tilfælde kan du skrive: # echo "/usr/local/bin/bash" >> /etc/shells Nu kan du trygt bruge chsh-kommandoen.

overvejes interne teams, understøttet af Cmd.exe-fortolkeren og de mest almindeligt anvendte eksterne kommandoer (kommandolinjeværktøjer). Mekanismer til I/O-omdirigering, pipelining og betinget kommandoudførelse er beskrevet. Eksempler på kommandoer til at arbejde med filsystemet er givet.

I Windows, som i andre operativsystemer, udføres interaktive (tastet fra tastaturet og umiddelbart udførte) kommandoer ved hjælp af den såkaldte kommandofortolker, ellers kaldet kommandoprocessor eller kommandoskal. Begyndende med Windows versioner NT, operativsystemet implementerer en kommandofortolker, Cmd.exe, som har meget mere avancerede muligheder.

1.2.1 Start af skallen

I Windows NT/2000/XP filen Cmd.exe, ligesom andre eksekverbare filer, svarende til eksterne OS-kommandoer, er placeret i mappen %SystemRoot%\SYSTEM32 (med værdien miljøvariabel%SystemRoot% er systemmappe Windows, normalt C:\Windows eller C:\WinNT). For at starte kommandofortolkeren (åbn en ny kommandolinjesession) kan du vælge Kør... i menuen Start, indtaste filnavnet Cmd.exe og klikke på OK. Som følge heraf åbnes et nyt vindue (se fig. 1), hvor du kan køre kommandoer og se resultatet af deres arbejde.

Ris. 1 - Cmd.exe-fortolker-kommandovindue i Windows XP

1.2.2 Indstilling af parametre for tolkekommandovinduet

Kommandolinjeværktøjet, som kommer som standard applikation Windows OS har sit eget sæt af muligheder og indstillinger. En måde at se disse muligheder på er at bruge punktet Egenskaber i vinduets kontrolmenu (højreklik på vinduets titel). I egenskabsvinduet (se figur 2) vil fire faner med muligheder være tilgængelige: generelt, skrifttype, layout og farver.

Ris. 2 – vindue til opsætning af tolkegenskaber

1.2.3. Interne og eksterne teams. Kommandostruktur

Nogle kommandoer genkendes og udføres direkte af skallen selv - disse kommandoer kaldes indre(for eksempel COPY eller DIR). Andre OS-kommandoer er individuelle programmer, placeret som standard i samme mappe som Cmd.exe, som Windows indlæser og kører som andre programmer. Sådanne kommandoer kaldes ydre(for eksempel MERE eller XCOPY).

Lad os se på strukturen af ​​selve kommandolinjen og princippet om at arbejde med den. For at udføre en kommando, efter kommandolinjeprompten (f.eks. C:\>), skal du indtaste navnet på denne kommando (ca. store og små bogstaver er ikke vigtigt), dens parametre og kontakter (om nødvendigt) og trykke på tasten . For eksempel:

C:\>KOPIERING C:\minfil.txt A:\ /V

Kommandonavnet her er COPY, parametrene er C:\minfil.txt og A:\, og nøglen er /V. Bemærk, at i nogle kommandoer kan skift ikke begynde med symbolet /, men med symbolet – (minus), for eksempel -V.

Mange Windows kommandoer har et stort antal yderligere parametre og nøgler, som ofte er svære at huske. De fleste kommandoer har indbygget hjælp, der kort beskriver formålet og syntaksen for kommandoen. Du kan få adgang til denne hjælp ved at indtaste kommandoen med /?-knappen. For eksempel, hvis vi kører kommandoen ATTRIB /?, vil vi i MS-DOS-vinduet se følgende tekst:

Vis og skift filattributter.

ATTRIB [+R|-R] [+A|-A] [+S|-S] [+H|-H] [[drev:][sti]filnavn]

Indstilling af attributten.

Fjernelse af en attribut.

R Skrivebeskyttet attribut.

En "Arkiv"-attribut.

S Attribut "System".

H Skjult egenskab.

/S Behandle filer i alle undermapper af den angivne sti.

For nogle kommandoer kan den indbyggede hjælpetekst være ret stor og passer muligvis ikke på én skærm. I dette tilfælde kan hjælpen vises sekventielt på én skærm ved at bruge MORE-kommandoen og rørsymbolet |, for eksempel:

I dette tilfælde, efter at have udfyldt den næste skærm, vil hjælpeudgangen blive afbrudt, indtil der trykkes på en vilkårlig tast. Derudover kan du ved at bruge output-omdirigeringssymbolerne > og >> dirigere tekst, der vises på skærmen til tekstfil til yderligere visning. For at udlæse hjælpetekst for XCOPY-kommandoen til tekstfilen xcopy.txt, skal du f.eks. bruge følgende kommando:

XCOPY /? > XCOPY.TXT

Kommentar. I stedet for filnavnet kan du angive betegnelserne for dine computerenheder. Følgende er understøttet på Windows enhedsnavne: PRN (printer), CON (terminal: tastatur til input, monitor for output), NUL (tom enhed, alle I/O-operationer på den ignoreres).

På de fleste Linux-operativsystemer er bash. Indtast følgende kommando for at bestemme den aktuelle fortolker:

$ echo $SHELL
/bin/bash

Dette eksempel brugerkommandolinjefortolker bash. Der er mange andre kommandotolke. For at aktivere en anden tolk kan du indtaste dens navn på kommandolinjen (ksh, tcsh, csh, sh, bash osv.).

De fleste fuldt udstyrede Linux-operativsystemer giver alle de kommandofortolkere, der er beskrevet her. Men på mindre operativsystemer kan der leveres en eller to tolke.

Kontroller tilgængeligheden af ​​den vare, du er interesseret itolkkommandolinje

For det meste på en enkel måde For at kontrollere tilgængeligheden af ​​kommandofortolkeren af ​​interesse skal du indtaste dens navn på kommandolinjen. Hvis tolken er startet, er den tilgængelig.

Der er flere grunde til at vælge alternative skaller.

  • Erfaring med at arbejde på UNIX System V-systemer (hvoraf mange bruger ksh som standard) eller Sun Microsystems og andre Berkeley UNIX-systemer (som ofte bruger csh). I dette tilfælde brugen af ​​disse tolkekommandolinjevil være mere bekvemt.
  • Behovet for at køre scripts, der er oprettet til en specifik kommandofortolker.
  • Mulighederne for en alternativ skal kan være at foretrække. For eksempel et af gruppens medlemmer Linux-brugere foretrækker at bruge ksh, fordi han ikke kan lide den måde, bash opretter aliaser på.

Selvom de fleste brugere foretrækker at arbejde i én skal, hjælper de opnåede færdigheder dem med at lære at arbejde i andre.tolke kommandolinje , indimellem kigger ind referencevejledning(for eksempel ved at bruge kommandoen manbash). De fleste bruger bash, fordi der ikke er nogen grund til at skifte til en anden tolk.

Ved hjælp af Bash og ch

Navnet bash er et akronym for Bourne Again SHell. Denne forkortelse angiver, at bash arver Bourneshell-fortolkeren (sh-kommando), skabt af Steve Bourne fra AT&TBell Labs. Brian Fox fra Free Software Foundation skabte bash som en del af GNU-projektet. Efterfølgende gik udviklingen over i hænderne på Chet Ramey ved Case Western Reserve University.

Bash-fortolkeren indeholder funktioner, der blev udviklet til sh- og ksh-fortolkerne i tidlige versioner af UNIX, samt en række funktioner i csh-fortolkeren.

Du kan forvente, at de fleste Linux-systemer, bortset fra specialiserede (såsom dem, der er indlejret eller opstartet fra eksternt drev), er bash standardfortolkeren. I specialiserede systemer kan en mindre kommandotolk være påkrævet, hvilket også indebærer begrænsede kapaciteter.

De fleste eksempler heriartikeldesignet til bash brug.

Bash-tolken kan køre i forskellige kompatibilitetstilstande og simulere adfærden af ​​andre skaller. Det kan efterligne adfærden af ​​Bourne shell (sh) eller en POSK standard-kompatibel shell (bash -posix).

Som følge heraf er det mere sandsynligt, at bash med succes kan læse konfigurationsfiler og køre scripts skrevet specifikt til andre skaller.

Alle operationsstuer stilles til rådighed Linux systemer Brug som standard bash-fortolkeren, undtagen for operativsystemer, der er startet fra flytbare medier, som bruger askefortolkeren som standard.

Brug af tcsh (og den tidligere csh-fortolker)

tcsh-kommandofortolkeren er en open source-implementering af Cshell (csh)-fortolkeren. kildekode. Csh-fortolkeren blev skabt af Bill Joy og bruges som standard på næsten alle Berkeley UNIX-systemer (sådanne systemer blev distribueret af Sun Microsystems).

Mange af csh's funktioner, såsom kommandolinjeredigering og kommandohistorikhåndteringsmetoder, er blevet implementeret i tcsh og andre skaller. Ligesom sh-kommandoen kører bash-fortolkeren i sh-kompatibel tilstand, kører csh-kommandoen tcsh-fortolkeren i csh-kompatibel tilstand.

Brug af asketolk

Ask-tolken er en letvægtsversion af Berkeley UNIX sh-tolken. Den indeholder ikke mange grundlæggende funktioner og giver ikke funktioner såsom kommandohistorik.

Asketolken er velegnet til brug i indlejrede systemer med begrænset systemressourcer. På FedoraCore 4-operativsystemet er askefortolkeren en størrelsesorden mindre end bash-fortolkeren.

Bruger zsh

zsh-fortolkeren er en anden klon af sh-fortolkeren. Det er POSIX-kompatibelt (som bash), men har andre funktioner, herunder stavekontrol og en anden tilgang til kommandolinjeredigering. zsh-fortolkeren var standard i tidlige operativsystemer. MacOS-systemer X, men i moderne systemer Standardfortolkeren er bash.

Anmærkning: Diskuterer de interne kommandoer, der understøttes af Cmd.exe-fortolkeren, og de mest almindeligt anvendte eksterne kommandoer(kommandolinjeværktøjer). Mekanismer til I/O-omdirigering, pipelining og betinget kommandoudførelse er beskrevet. Eksempler på kommandoer til at arbejde med filsystemet er givet.

Windows kommandolinje shell. Tolk Cmd.exe

På operationsstuen Windows system Som i andre operativsystemer udføres interaktive (tastet fra tastaturet og umiddelbart udførte) kommandoer ved hjælp af en såkaldt kommandofortolker, ellers kaldet en kommandoprocessor eller kommandoskal. Kommandotolk eller kommandolinje shell er et program, der, mens det er i Random Access Memory, læser de kommandoer, du skriver, og behandler dem. I Windows 9x, som i MS-DOS, kommandotolk som standard var repræsenteret af den eksekverbare kommandofil. com. Startende med versionen af ​​Windows NT, har operativsystemet implementeret kommandotolk Cmd.exe, som har meget mere kraftfulde muligheder.

Lancering af skallen

I Windows NT/2000/XP, Cmd.exe-filen, ligesom andre eksekverbare filer, der svarer til eksterne teams operativsystemet er placeret i mappen %SystemRoot%\SYSTEM32 (værdien af ​​miljøvariablen %SystemRoot% er Windows-systemmappen, normalt C:\Windows eller C:\WinNT). For at starte kommandofortolkeren (åbn en ny kommandolinjesession) kan du vælge Kør... i menuen Start, indtaste filnavnet Cmd.exe og klikke på OK. Som følge heraf åbnes et nyt vindue (se fig. 2.1), hvor du kan køre kommandoer og se resultatet af deres arbejde.


Ris. 2.1.

Interne og eksterne teams. Kommandostruktur

Nogle kommandoer genkendes og udføres direkte af selve skallen - disse kaldes interne kommandoer (f.eks. COPY eller DIR) Andre operativsystemkommandoer er separate programmer, der som standard ligger i samme mappe som Cmd.exe, som Windows indlæser og udfører tilsvarende andre programmer. Sådanne kommandoer kaldes eksterne (for eksempel MORE eller XCOPY).

Lad os se på strukturen af ​​selve kommandolinjen og princippet om at arbejde med den. For at udføre kommandoen skal du kommandolinjeprompter(f.eks. C:\>) indtast navnet på denne kommando (ca. bogstaver er ikke vigtigt), dens parametre og kontakter (om nødvendigt) og tryk på tasten . For eksempel:

C:\>KOPIERING C:\minfil.txt A:\ /V

Kommandonavnet her er COPY, parametrene er C:\minfil.txt og A:\, og nøglen er /V. Bemærk, at i nogle kommandoer kan kontakterne ikke begynde med symbolet /, men med symbolet – (minus), for eksempel -V .

Mange Windows-kommandoer har et stort antal ekstra parametre og kontakter, som ofte er svære at huske. De fleste kommandoer har indbygget hjælp, der kort beskriver formålet og syntaksen for kommandoen. Du kan få adgang til denne hjælp ved at indtaste kommandoen med /?-knappen. For eksempel, hvis vi kører kommandoen ATTRIB /?, vil vi i MS-DOS-vinduet se følgende tekst:

Vis og skift filattributter. ATTRIB [+R|-R] [+A|-A] [+S|-S] [+H|-H] [[drev:][sti]filnavn] + Indstil attributten. - Fjernelse af en attribut. R Skrivebeskyttet attribut. En "Arkiv"-attribut. S Attribut "System". H Skjult egenskab. /S Behandle filer i alle undermapper af den angivne sti.

For nogle kommandoer kan den indbyggede hjælpetekst være ret stor og passer muligvis ikke på én skærm. I dette tilfælde kan hjælpen vises sekventielt på én skærm ved at bruge MORE-kommandoen og rørsymbolet |, for eksempel:

I dette tilfælde, efter at have udfyldt den næste skærm, vil hjælpeudgangen blive afbrudt, indtil der trykkes på en vilkårlig tast. Du kan også bruge output-omdirigeringssymbolerne > og >> til at dirigere den tekst, der vises på skærmen, til en tekstfil til senere visning. For at udlæse hjælpetekst for XCOPY-kommandoen til tekstfilen xcopy.txt, skal du f.eks. bruge følgende kommando:

XCOPY /? > XCOPY.TXT

Kommentar

I stedet for filnavnet kan du angive betegnelserne for dine computerenheder. Følgende enhedsnavne understøttes på Windows: PRN(Printer), LPT1–LPT3(tilsvarende parallelle porte), AUX(enhed tilsluttet serie Port 1), COM1–COM3 (tilsvarende serielle porte), CON (terminal: for input er det tastaturet, for output er det monitoren), NUL (en tom enhed, alle I/O-operationer for den ignoreres).

I/O-omdirigering og kommandopipelining (sammensætning)

Lad os se nærmere på de UNIX-lignende koncepter for omfordeling af standard input/output-enheder og pipelining-kommandoudførelse understøttet i Windows.

Ved at bruge I/O remapping kan et program dirigere sit output til input fra et andet eller opsnappe output fra et andet program og bruge det som sit input. Det er således muligt at overføre information fra proces til proces med minimal softwareoverhead. Rent praktisk betyder det, at for programmer, der bruger standard input- og outputenheder, tillader operativsystemet:

  • output programmeddelelser ikke til skærmen (standard output stream), men til en fil eller til en printer (output omdirigering);
  • læs inputdata ikke fra tastaturet (standard inputstrøm), men fra en tidligere forberedt fil (input omdirigering);
  • videregive beskeder, der udsendes af et program som input til et andet program (pipelining eller instruktionssammensætning).

Fra kommandolinjen implementeres disse funktioner som følger. For at omdirigere tekstbeskeder output af enhver kommando til en tekstfil, skal du bruge konstruktionen

kommando > filnavn

Hvis filen angivet til output allerede eksisterede, overskrives den (det gamle indhold går tabt); hvis den ikke eksisterede, oprettes den. Du kan heller ikke oprette filen igen, men tilføje informationsoutputtet med kommandoen til slutningen eksisterende fil. For at gøre dette skal output-omdirigeringskommandoen angives således:

kommando >> filnavn

Ved hjælp af et symbol< можно прочитать входные данные для заданной команды не с клавиатуры, а из определенного (заранее подготовленного) файла:

hold< имя_файла

Her er nogle eksempler på I/O-omdirigering.

  1. Display indbygget hjælp til COPY kommandoer til filen copy.txt:

    KOPI /? > copy.txt

  2. Tilføj hjælpetekst til XCOPY kommandoer til filen copy.txt:

    XCOPY /? >> copy.txt

  3. Gå ind ny dato fra filen date.txt (DATE er en kommando til at se og ændre systemdatoen):

    DATO< date.txt

Hvis der opstår en fejl ved udførelse af en bestemt kommando, vises en meddelelse om dette på skærmen som standard. Om nødvendigt kan fejlmeddelelser (standard fejlstrøm) omdirigeres til en tekstfil ved hjælp af konstruktionen

kommando 2> filnavn

I dette tilfælde vil standard output blive produceret til en fil. Det er også muligt informationsmeddelelser og fejlmeddelelser udsendes til den samme fil. Dette gøres som følger: